SCardUIDlgSelectCardW 関数 (winscard.h)
SCardUIDlgSelectCard 関数は、スマート カード [カードの選択] ダイアログ ボックスを表示します。
構文
LONG SCardUIDlgSelectCardW(
[in] LPOPENCARDNAMEW_EX unnamedParam1
);
パラメーター
[in] unnamedParam1
[カードの選択] ダイアログ ボックスのOPENCARDNAME_EX構造へのポインター。
戻り値
関数で [ カードの選択 ] ダイアログ ボックスが正常に表示された場合、戻り値はSCARD_S_SUCCESS。
関数が失敗した場合はエラー コードを返します。 詳細については、「 スマート カードの戻り値」を参照してください。
注釈
SCardUIDlgSelectCard 関数は、特定のスマート カードに接続するためのメソッドを提供します。 呼び出されると、この関数は、pDlgStruc パラメーターで指定されたOPENCARD_SEARCH_CRITERIAメンバーと一致する適切なスマート カードの検索を実行します。 pDlgStruc の dwFlags メンバーに応じて、この関数は次のアクションを実行します。
値 | アクション |
---|---|
SC_DLG_FORCE_UI | スマート カード [カードの選択] ダイアログ ボックスからユーザーが選択したカードに接続します。 |
SC_DLG_MINIMAL_UI | 1 つのスマート カードのみが条件を満たす場合はスマート カードを選択し、複数のスマート カードが条件を満たす場合はユーザーの選択に関する情報を返します。 |
SC_DLG_NO_UI | 使用可能な最初のカードを選択します。 |
この関数は GetOpenCardName に置き換えられます。 GetOpenCardName 関数は、Microsoft Smart Card Base Components のバージョン 1.0 との下位互換性のために維持されています。
例
次の例は、スマート カード [カードの選択] ダイアログ ボックスを表示する方法を示しています。
SCARDCONTEXT hSC;
OPENCARDNAME_EX dlgStruct;
WCHAR szReader[256];
WCHAR szCard[256];
LONG lReturn;
// Establish a context.
// It will be assigned to the structure's hSCardContext field.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
NULL,
NULL,
&hSC );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardEstablishContext\n");
exit(1);
}
// Initialize the structure.
memset(&dlgStruct, 0, sizeof(dlgStruct));
dlgStruct.dwStructSize = sizeof(dlgStruct);
dlgStruct.hSCardContext = hSC;
dlgStruct.dwFlags = SC_DLG_FORCE_UI;
dlgStruct.lpstrRdr = (LPSTR) szReader;
dlgStruct.nMaxRdr = 256;
dlgStruct.lpstrCard = (LPSTR) szCard;
dlgStruct.nMaxCard = 256;
dlgStruct.lpstrTitle = (LPSTR) "My Select Card Title";
// Display the select card dialog box.
lReturn = SCardUIDlgSelectCard(&dlgStruct);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardUIDlgSelectCard - %x\n", lReturn );
else
printf("Reader: %S\nCard: %S\n", szReader, szCard );
// Release the context (by SCardReleaseContext - not shown here).
注意
winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardUIDlgSelectCard を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |
Library | Scarddlg.lib |
[DLL] | Scarddlg.dll |