次の方法で共有


スマート カード ユーザー インターフェイス

スマート カード ユーザー インターフェイス (UI) は、ユーザーが開くスマート カードを指定または検索できる 1 つの一般的なダイアログ ボックスです (つまり、アプリケーションに接続して使用します)。

共通ダイアログ ボックスを使用できる 2 つの方法を次に示します。 どちらも、ダイアログ ボックス UI が表示されることを前提としています。 詳細については、「 OPENCARDNAME」を参照してください。

開くスマート カードを選択するには

  1. OPENCARDNAME 型の変数を宣言します。
  2. 共通ダイアログ ボックスに十分な情報を入力して、呼び出し元のアプリケーションが探しているスマート カードの検索を絞り込みます。 これには、 lpstrGroupNameslpstrCardNamesrgguidInterfaces の指定が含まれます。 これには、OPENCARDNAME 構造体の dwShareMode メンバーと dwPreferredProtocols メンバーを使用して、共通ダイアログ ボックスがカードに接続するときに使用する優先共有モードとプロトコルの指定も含まれます。
  3. GetOpenCardName 関数を呼び出して、ユーザーに共通のダイアログ ボックスを表示します。 単純なヘルプ情報行が表示され、要求されているカードのいずれかが見つかった場合は、カードがディスプレイで強調表示されます。 複数のカード名検索の場合、優先カードの 1 つを含む最初のリーダーが強調表示されます。
  4. その後、ユーザーはカードを選択し、[OK] をクリックして、スマート カードに接続します。

特定のカードを検索するには

  1. OPENCARDNAME 型の変数を宣言します。

  2. 共通ダイアログ ボックスに十分な情報を入力して、呼び出し元のアプリケーションが探しているスマート カードの検索を絞り込みます。 これには、 lpstrGroupNameslpstrCardNamesrgguidInterfaces の指定が含まれます

  3. ConnectCheckDisconnect の各コールバック関数を作成し、lpfnConnectlpfnCheck、lpfnDisconnect の各データ メンバーを適切に設定します。

    注意

    この方法で共通ダイアログ ボックスを使用する場合は、3 つの関数とメンバーすべてを使用できる必要があります。

     

  4. GetOpenCardName 共通ダイアログ ボックス関数を呼び出します。

  5. 一般的なダイアログ ボックスで、要求されたカードが検索されます。 一致するカード名または ATR 文字列が見つかった場合は、ConnectCheckDisconnect コールバック関数が順番に呼び出されます。 カードが Check ルーチンを渡した場合 (つまり、Check コールバックは TRUE を返します)、このカードはユーザーに表示で強調表示されます。

    注意

    複数のカード名が指定されている場合、要求されたカードの 1 つを含み、Check ルーチンを渡す最初のリーダーが、選択したカードになります。

     

  6. 一致が見つからない場合は、共通のダイアログ ボックスが表示されます。