スマート カード ユーザー インターフェイス
スマート カード ユーザー インターフェイス (UI) は、ユーザーが開くスマート カードを指定または検索できる 1 つの一般的なダイアログ ボックスです (つまり、アプリケーションに接続して使用します)。
共通ダイアログ ボックスを使用できる 2 つの方法を次に示します。 どちらも、ダイアログ ボックス UI が表示されることを前提としています。 詳細については、「 OPENCARDNAME」を参照してください。
開くスマート カードを選択するには
- OPENCARDNAME 型の変数を宣言します。
- 共通ダイアログ ボックスに十分な情報を入力して、呼び出し元のアプリケーションが探しているスマート カードの検索を絞り込みます。 これには、 lpstrGroupNames、 lpstrCardNames、 rgguidInterfaces の指定が含まれます。 これには、OPENCARDNAME 構造体の dwShareMode メンバーと dwPreferredProtocols メンバーを使用して、共通ダイアログ ボックスがカードに接続するときに使用する優先共有モードとプロトコルの指定も含まれます。
- GetOpenCardName 関数を呼び出して、ユーザーに共通のダイアログ ボックスを表示します。 単純なヘルプ情報行が表示され、要求されているカードのいずれかが見つかった場合は、カードがディスプレイで強調表示されます。 複数のカード名検索の場合、優先カードの 1 つを含む最初のリーダーが強調表示されます。
- その後、ユーザーはカードを選択し、[OK] をクリックして、スマート カードに接続します。
特定のカードを検索するには
OPENCARDNAME 型の変数を宣言します。
共通ダイアログ ボックスに十分な情報を入力して、呼び出し元のアプリケーションが探しているスマート カードの検索を絞り込みます。 これには、 lpstrGroupNames、 lpstrCardNames、 rgguidInterfaces の指定が含まれます。
Connect、Check、Disconnect の各コールバック関数を作成し、lpfnConnect、lpfnCheck、lpfnDisconnect の各データ メンバーを適切に設定します。
注意
この方法で共通ダイアログ ボックスを使用する場合は、3 つの関数とメンバーすべてを使用できる必要があります。
GetOpenCardName 共通ダイアログ ボックス関数を呼び出します。
一般的なダイアログ ボックスで、要求されたカードが検索されます。 一致するカード名または ATR 文字列が見つかった場合は、Connect、Check、Disconnect コールバック関数が順番に呼び出されます。 カードが Check ルーチンを渡した場合 (つまり、Check コールバックは TRUE を返します)、このカードはユーザーに表示で強調表示されます。
注意
複数のカード名が指定されている場合、要求されたカードの 1 つを含み、Check ルーチンを渡す最初のリーダーが、選択したカードになります。
一致が見つからない場合は、共通のダイアログ ボックスが表示されます。