OPENCARD_SEARCH_CRITERIAW構造 (winscard.h)
OPENCARD_SEARCH_CRITERIA構造体は、呼び出し元によって設定された要件を満たすカードを認識するために、SCardUIDlgSelectCard 関数によって使用されます。 ただし、この構造体を使用せずに SCardUIDlgSelectCard を 呼び出すことができます。
構文
typedef struct {
DWORD dwStructSize;
LPWSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPWSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCW lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAW, *POPENCARD_SEARCH_CRITERIAW, *LPOPENCARD_SEARCH_CRITERIAW;
メンバー
dwStructSize
構造体の長さ (バイト単位)。 NULL にすることはできません。
lpstrGroupNames
null で終わるグループ名の文字列を含むバッファーへのポインター。 バッファー内の最後の文字列は、2 つの null 文字で終了する必要があります。 各文字列は、検索に含めるカードのグループの名前です。 lpstrGroupNames が NULL の場合、既定のグループ (Scard$DefaultReaders) が検索されます。
nMaxGroupNames
lpstrGroupNames 文字列内の最大バイト数 (ANSI バージョン) または文字 (Unicode バージョン)。
rgguidInterfaces
将来利用するために予約されています。 必要なインターフェイスを識別する GUID の配列。 このメンバーを NULL に設定 します。
cguidInterfaces
将来利用するために予約されています。 rgguidInterfaces 配列内のインターフェイスの数。 このメンバーを NULL に設定 します。
lpstrCardNames
null で終わるカード名前文字列を含むバッファーへのポインター。 バッファー内の最後の文字列は、2 つの null 文字で終了する必要があります。 各文字列は、配置されるカードの名前です。
nMaxCardNames
lpstrGroupNames 文字列内の最大バイト数 (ANSI バージョン) または文字 (Unicode バージョン)。
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(
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 メンバーは無視されます。 lpfnConnect が NULL で、dwShareMode が 0 以外の場合、dwShareMode と dwPreferredProtocols をパラメーターとして使用する SCardConnect に対して内部呼び出しが行われます。
dwPreferredProtocols
dwShareMode で説明されているように、内部接続に使用されます。
注釈
注意
winscard.h ヘッダーは、OPENCARD_SEARCH_CRITERIAをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winscard.h |