OPENCARD_SEARCH_CRITERIAA結構 (winscard.h)
SCardUIDlgSelectCard 函式會使用 OPENCARD_SEARCH_CRITERIA 結構,以辨識符合呼叫者所設定需求的卡片。 不過,您可以呼叫 SCardUIDlgSelectCard 而不使用此結構。
語法
typedef struct {
DWORD dwStructSize;
LPSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCA lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA;
成員
dwStructSize
結構的長度,以位元組為單位。 不得 NULL。
lpstrGroupNames
緩衝區的指標,其中包含 Null 終止的組名字符串。 緩衝區中的最後一個字串必須以兩個 Null 字元終止。 每個字串都是要包含在搜尋中的卡片群組名稱。 如果 lpstrGroupNamesNULL,則會搜尋預設群組 (Scard$DefaultReaders)。
nMaxGroupNames
lpstrGroupNames 字串中的位元元數上限(ANSI 版本)或字元數上限(Unicode 版本)。
rgguidInterfaces
保留供日後使用。 識別所需介面的 GUID 陣列。 將此成員設定為 NULL。
cguidInterfaces
保留供日後使用。 rgguidInterfaces 陣列中的介面數目。 將此成員設定為 NULL。
lpstrCardNames
緩衝區的指標,其中包含 Null 終止的卡片名稱字串。 緩衝區中的最後一個字串必須以兩個 Null 字元終止。 每個字串都是要找到的卡片名稱。
nMaxCardNames
lpstrGroupNames 字串中的位元組數上限(ANSI 版本)或字元數上限。
lpfnCheck
呼叫端卡片驗證例程的指標。 如果不需要特殊卡片驗證,此指標會 NULL。 如果驗證例程拒絕卡片,則會傳回 FALSE,而且卡片將會中斷連線。 如果驗證例程接受卡片,則會傳回 true
檢查例程的原型如下所示。
Boolean Check(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
lpfnConnect
呼叫端卡片連接例程的指標。 如果呼叫端需要執行其他處理以連線到卡片,此函式指標會設定為使用者的 connect 函式。 如果 connect 函式成功,卡片會保持連線並初始化,並傳回卡片句柄。
線上例程的原型如下所示。
Connect(
hSCardContext, // the card context passed in the parameter block
szReader, // the name of the reader
mszCards, // multiple string that contains
// the possible card names in the reader
pvUserData // pointer to user data passed in parameter block
);
lpfnDisconnect
呼叫端卡片中斷連線例程的指標。
中斷聯機例程的原型如下所示。
Disconnect(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
pvUserData
Void 用戶數據的指標。 此指標會傳回 Connect、Check 和 Disconnect 例程上的呼叫端。
dwShareMode
如果 lpfnConnect 不是 NULL,則會忽略 dwShareMode 和 dwPreferredProtocols 成員。 如果
dwPreferredProtocols
用於內部連線,如 dwShareMode中所述。
言論
注意
winscard.h 標頭會將 OPENCARD_SEARCH_CRITERIA 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winscard.h |