OPENCARDNAME_EXW 構造体 (winscard.h)

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

構文

typedef struct {
  DWORD                      dwStructSize;
  SCARDCONTEXT               hSCardContext;
  HWND                       hwndOwner;
  DWORD                      dwFlags;
  LPCWSTR                    lpstrTitle;
  LPCWSTR                    lpstrSearchDesc;
  HICON                      hIcon;
  POPENCARD_SEARCH_CRITERIAW pOpenCardSearchCriteria;
  LPOCNCONNPROCW             lpfnConnect;
  LPVOID                     pvUserData;
  DWORD                      dwShareMode;
  DWORD                      dwPreferredProtocols;
  LPWSTR                     lpstrRdr;
  DWORD                      nMaxRdr;
  LPWSTR                     lpstrCard;
  DWORD                      nMaxCard;
  DWORD                      dwActiveProtocol;
  SCARDHANDLE                hCardHandle;
} OPENCARDNAME_EXW, *POPENCARDNAME_EXW, *LPOPENCARDNAME_EXW;

メンバー

dwStructSize

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

hSCardContext

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

hwndOwner

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

dwFlags

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

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

lpstrTitle

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

lpstrSearchDesc

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

hIcon

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

pOpenCardSearchCriteria

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

lpfnConnect

呼び出し元のカード接続ルーチンへのポインター。 呼び出し元がカードに接続するために追加の処理を実行する必要がある場合、この関数ポインターはユーザーの connect 関数に設定されます。 接続関数が成功した場合、カードは接続され、初期化され、カード ハンドルが返されます。

接続ルーチンのプロトタイプは次のとおりです。

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

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

dwPreferredProtocols

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

lpstrRdr

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

nMaxRdr

lpstrRdr が指すバッファーのサイズ (バイト (ANSI バージョン) または文字 (Unicode バージョン)。 バッファーが小さすぎてリーダー情報を含めなければ、 SCardUIDlgSelectCardlpstrRdr が指すバッファーのSCARD_E_NO_MEMORYと必要なサイズを返します。

lpstrCard

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

nMaxCard

lpstrCard が指すバッファーのサイズ (バイト (ANSI バージョン) または文字 (Unicode バージョン)。 バッファーが小さすぎてカード情報を含めなければ、SCardUIDlgSelectCardnMaxCard 内のバッファーのSCARD_E_NO_MEMORYと必要なサイズを返します。

dwActiveProtocol

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

hCardHandle

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

解説

注意

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

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winscard.h

関連項目

SCardConnect

SCardEstablishContext

SCardReleaseContext

SCardUIDlgSelectCard

スマート カードの戻り値