OPENCARDNAMEA 構造体 (winscard.h)
OPENCARDNAME 構造体には、GetOpenCardName 関数がスマート カードの初期化に使用する情報 カード の選択] ダイアログ ボックスが含まれています。
構文
typedef struct {
DWORD dwStructSize;
HWND hwndOwner;
SCARDCONTEXT hSCardContext;
LPSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPSTR lpstrCardNames;
DWORD nMaxCardNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPSTR lpstrRdr;
DWORD nMaxRdr;
LPSTR lpstrCard;
DWORD nMaxCard;
LPCSTR lpstrTitle;
DWORD dwFlags;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
DWORD dwActiveProtocol;
LPOCNCONNPROCA lpfnConnect;
LPOCNCHKPROC lpfnCheck;
LPOCNDSCPROC lpfnDisconnect;
SCARDHANDLE hCardHandle;
} OPENCARDNAMEA, *POPENCARDNAMEA, *LPOPENCARDNAMEA;
メンバーズ
dwStructSize
構造体の長さをバイト単位で指定します。 このメンバーは NULL
hwndOwner
ダイアログ ボックスを所有するウィンドウ。 このメンバーには、任意の有効なウィンドウ ハンドルを指定することも、デスクトップの既定値に対して NULL
hSCardContext
スマート カードリソース マネージャーとの通信に使用されるコンテキスト。 SCardEstablishContext
lpstrGroupNames
null で終わるグループ名文字列を含むバッファーへのポインター。 バッファー内の最後の文字列は、2 つの null 文字で終了する必要があります。 各文字列は、検索に含めるカードのグループの名前です。 lpstrGroupNames
nMaxGroupNames
lpstrCardNames
null で終わるカード名文字列を含むバッファーへのポインター。 バッファー内の最後の文字列は、2 つの null 文字で終了する必要があります。 各文字列は、検索するカードの名前です。
nMaxCardNames
rgguidInterfaces
将来の使用のために予約されています。 NULL
cguidInterfaces
先物用に予約されています。 NULL
lpstrRdr
カードがある場合、lpstrRdr バッファーには、配置されたカードを含むリーダーの名前が含まれます。 バッファーの長は 256 文字以上にする必要があります。
nMaxRdr
lpstrRdrが指すバッファーのサイズ (バイト単位 (ANSI バージョン) または文字 (Unicode
lpstrCard
カードがある場合、lpstrCard バッファーには、検索されたカードの名前が含まれます。 バッファーの長は 256 文字以上にする必要があります。
nMaxCard
lpstrCardが指すバッファーのサイズ (バイト単位 (ANSI バージョン) または文字 (Unicode バージョン
lpstrTitle
ダイアログ ボックスのタイトル バーに配置する文字列へのポインター。 このメンバーが NULL
dwFlags
ダイアログ ボックスの初期化に使用できるビット フラグのセット。 ダイアログ ボックスが戻るときに、ユーザーの入力を示すようにこれらのフラグを設定します。 このメンバーは、次のフラグの組み合わせにすることができます。
価値 | 意味 |
---|---|
|
呼び出し元のアプリケーションによって検索されるカードが見つからないため、リーダーで使用できる場合にのみ、ダイアログ ボックスを表示します。 これにより、カードを見つけ、(内部ダイアログ ボックス メカニズムまたはユーザー コールバック関数を介して) 接続し、呼び出し元のアプリケーションに返すことができます。 |
|
検索結果に関係なく、カードの選択ユーザー インターフェイス (UI) の表示を強制しません。 |
|
検索結果に関係なく、カードの選択 UI を強制的に表示します。 |
pvUserData
ユーザー データへの void ポインター。 このポインターは、Connect、Check、Disconnect ルーチンで呼び出し元に返されます。
dwShareMode
lpfnConnect
lpfnConnect
dwPreferredProtocols
dwShareModeで説明されているように、内部接続
dwActiveProtocol
ダイアログ ボックスがカードに接続するときに使用されている実際のプロトコルを返します。
lpfnConnect
呼び出し元のカード接続ルーチンへのポインター。 呼び出し元がカードに接続するために追加の処理を実行する必要がある場合、この関数ポインターはユーザーの接続関数に設定されます。 接続関数が成功した場合、カードは接続されて初期化され、カード ハンドルが返されます。
接続ルーチンのプロトタイプは次のとおりです。
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
);
lpfnCheck
呼び出し元のカード検証ルーチンへのポインター。 特別なカード検証が必要ない場合、このポインターは NULL
カードが検証ルーチンによって拒否された場合、lpfnDisconnectで示されているように、
カードが検証ルーチンによって受け入れられる場合は、true
チェック ルーチンのプロトタイプは次のとおりです。
Check(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the 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
);
hCardHandle
接続されたカードのハンドル (内部ダイアログ ボックス接続または lpfnConnect コールバック)。
備考
手記
winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OPENCARDNAME を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ヘッダー | winscard.h |
関連項目
GetOpenCardName を
SCardReleaseContext の