次の方法で共有


SCardUIDlgSelectCardA 関数 (winscard.h)

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

構文

LONG SCardUIDlgSelectCardA(
  [in] LPOPENCARDNAMEA_EX unnamedParam1
);

パラメーター

[in] unnamedParam1

[カードの選択] ダイアログ ボックスのOPENCARDNAME_EX構造へのポインター。

戻り値

関数に [ カードの選択 ] ダイアログ ボックスが正常に表示された場合、戻り値はSCARD_S_SUCCESS。

関数が失敗した場合はエラー コードを返します。 詳細については、「 スマート カードの戻り値」を参照してください。

注釈

SCardUIDlgSelectCard 関数は、特定のスマート カードに接続するためのメソッドを提供します。 呼び出されると、この関数は、pDlgStruc パラメーターで指定されたOPENCARD_SEARCH_CRITERIA メンバーと一致する適切なスマート カードの検索を実行します。 pDlgStrucdwFlags メンバーに応じて、この関数は次のアクションを実行します。

アクション
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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winscard.h
Library Scarddlg.lib
[DLL] Scarddlg.dll

こちらもご覧ください

OPENCARDNAME_EX