// OnInitDialog 中註冊回調
MP4_ServerCheckPassword(checkpassWord);
// 委托定義
int CALLBACK checkpassword(char *username, WORD namelen, char *password, WORD passlen)
{
/* 範例邏輯(註解掉)
if ((username[0] == '1') && (username[1] == '2') && (username[2] == '3') && (password[0] == 'w'))
return 0;
else
return -1;
*/
return 0; // 預設全通過
}
///
/// 驗證使用者帳號密碼
///
/// 使用者名稱
/// 使用者名稱長度
/// 密碼
/// 密碼長度
/// 0=驗證通過, -1=驗證失敗
public int CheckPassword(string username, ushort namelen, string passWord, ushort passlen)
{
// 實際驗證邏輯:查資料庫、比對雜湊、檢查權限等
// 範例:僅允許 admin/123456
if (username == "admin" && passWord == "123456")
return 0;
return -1; // 驗證失敗,客戶端將無法取得畫面
}
CheckPasswordCallback checkPassDelegate;,否則 GC 回收導致回調失效0 = 允許連線/出圖,-1 = 拒絕連線 (客戶端無畫面)char* + 長度 → C# string + ushort 長度對應 VC++ 範例 Settings 對話框中的畫質下拉選單:

詳細實作請見下一篇(第 3 部分)。