OPENCARDNAME_EXA構造体 (winscard.h)

OPENCARDNAME_EX 構造体には、SCardUIDlgSelectCard 関数がスマート カードの初期化に使用する情報 カード の選択] ダイアログ ボックスが含まれています。

構文

typedef struct {
  DWORD                      dwStructSize;
  SCARDCONTEXT               hSCardContext;
  HWND                       hwndOwner;
  DWORD                      dwFlags;
  LPCSTR                     lpstrTitle;
  LPCSTR                     lpstrSearchDesc;
  HICON                      hIcon;
  POPENCARD_SEARCH_CRITERIAA pOpenCardSearchCriteria;
  LPOCNCONNPROCA             lpfnConnect;
  LPVOID                     pvUserData;
  DWORD                      dwShareMode;
  DWORD                      dwPreferredProtocols;
  LPSTR                      lpstrRdr;
  DWORD                      nMaxRdr;
  LPSTR                      lpstrCard;
  DWORD                      nMaxCard;
  DWORD                      dwActiveProtocol;
  SCARDHANDLE                hCardHandle;
} OPENCARDNAME_EXA, *POPENCARDNAME_EXA, *LPOPENCARDNAME_EXA;

メンバーズ

dwStructSize

構造体の長さ (バイト単位)。 このメンバーの値を NULLすることはできません。

hSCardContext

スマート カードリソース マネージャーとの通信に使用されるコンテキスト。 SCardEstablishContext 呼び出して、リソース マネージャー コンテキスト を設定し、SCardReleaseContext を して解放します。 このメンバーの値を NULLすることはできません。

hwndOwner

ダイアログ ボックスを所有するウィンドウ。 このメンバーには、任意の有効なウィンドウ ハンドルを指定することも、デスクトップの既定値に対して NULL することもできます。

dwFlags

ダイアログ ボックスの初期化に使用できるビット フラグのセット。 ダイアログ ボックスが戻ると、ユーザーの入力を示すようにこれらのフラグが設定されます。 このメンバーには、次のいずれかのフラグを指定できます。

価値 意味
SC_DLG_MINIMAL_UI
呼び出し元のアプリケーションによって検索されるカードが見つからないため、リーダーで使用できない場合にのみ、ダイアログ ボックスを表示します。 これにより、カードを見つけ、(内部ダイアログ ボックス メカニズムまたはユーザー コールバック関数を介して) 接続し、呼び出し元のアプリケーションに返すことができます。
SC_DLG_NO_UI
検索結果に関係なく、カードの選択ユーザー インターフェイス (UI) の表示を強制しません。
SC_DLG_FORCE_UI
検索結果に関係なく、カードの選択 UI を強制的に表示します。

lpstrTitle

ダイアログ ボックスのタイトル バーに配置する文字列へのポインター。 このメンバーが NULL場合、システムは既定のタイトル "カードの選択:" を使用します。

lpstrSearchDesc

スマート カードを挿入するプロンプトとしてユーザーに表示される文字列へのポインター。 このメンバーが NULL場合、システムは既定のテキスト "スマート カードを挿入してください" を使用します。

hIcon

アイコンのハンドル (32 x 32 ピクセル)。 ダイアログ ボックスに表示するベンダー固有のアイコンを指定できます。 この値が NULL場合は、汎用のスマート カード リーダーで読み込まれたアイコンが表示されます。

pOpenCardSearchCriteria

使用する OPENCARD_SEARCH_CRITERIA 構造体へのポインター。使用されていない場合は NULL

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
);

pvUserData

ユーザー データへの void ポインター。 このポインターは、Connect ルーチンで呼び出し元に返されます。

dwShareMode

lpfnConnect NULLされていない場合、dwShareMode および dwPreferredProtocols メンバー 無視されます。 lpfnConnect が NULL 、dwShareMode が 0 以外の場合、 dwShare Mode および dwPreferredProtocols パラメーターとして dwPreferredProtocols dwPreferredProtocols を使用する SCardConnect を する内部呼び出 しが行われます。 接続が成功した場合、hCardHandle は、SCardConnectによって返されるハンドルに設定されます。 lpfnConnect NULL 、dwShareMode が 0 の場合、hCardHandle は NULLに設定

dwPreferredProtocols

dwShareModeで説明されているように、内部接続 使用されます。

lpstrRdr

カードがある場合、lpstrRdr バッファーには、配置されたカードを含むリーダーの名前が含まれます。 バッファーの長は 256 文字以上にする必要があります。

nMaxRdr

lpstrRdrが指すバッファーのサイズ (バイト単位) または文字 (Unicode バージョン )。 バッファーが小さすぎてリーダー情報を格納するには、SCardUIDlgSelectCard SCARD_E_NO_MEMORYと lpstrRdrが指すバッファーの必要なサイズ 返します。

lpstrCard

カードがある場合、lpstrCard バッファーには、検索されたカードの名前が含まれます。 バッファーの長は 256 文字以上にする必要があります。

nMaxCard

lpstrCardが指すバッファーのサイズ (バイト単位) または文字 (Unicode バージョン )。 バッファーが小さすぎてカード情報を格納するには、SCardUIDlgSelectCard は、SCARD_E_NO_MEMORYと nMaxCard内のバッファーの必要なサイズ 返します。

dwActiveProtocol

ダイアログ ボックスがカードに接続するときに使用される実際のプロトコル。

hCardHandle

接続されたカードのハンドル (内部ダイアログ ボックス接続または lpfnConnect コールバック)。

備考

手記

winscard.h ヘッダーは、OPENCARDNAME_EXをエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー winscard.h

関連項目

SCardConnect

SCardEstablishContext

SCardReleaseContext の

SCardUIDlgSelectCard

スマート カードの戻り値の