次の方法で共有


SCardUIDlgSelectCardA 関数 (winscard.h)

SCardUIDlgSelectCard 関数は、[カード の選択] ダイアログ ボックス スマート カードを表示します。

構文

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_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 スマート カード ベース コンポーネントのバージョン 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 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winscard.h
ライブラリ Scarddlg.lib
DLL Scarddlg.dll

関連項目

OPENCARDNAME_EX