Пользовательский интерфейс смарт-карты

Пользовательский интерфейс интеллектуальной карта — это единое общее диалоговое окно, позволяющее пользователю указать или найти смарт-карта для открытия (то есть подключиться к приложению и использовать его в ней).

Ниже приведены два способа использования общего диалогового окна. Предполагается, что будет отображаться пользовательский интерфейс диалогового окна. Дополнительные сведения см. в разделе OPENCARDNAME.

Выбор смарт-карта для открытия

  1. Объявите переменную типа OPENCARDNAME.
  2. Предоставьте достаточно сведений в общем диалоговом окне, чтобы сузить поиск интеллектуальной карта, которую ищет вызывающее приложение. Сюда входит указание lpstrGroupNames, lpstrCardNames и rgguidInterfaces. Сюда также входит указание предпочтительного режима общего доступа и протокола для использования, когда общее диалоговое окно подключается к карта с помощью элементов dwShareMode и dwPreferredProtocols структуры OPENCARDNAME.
  3. Вызовите функцию GetOpenCardName , чтобы отобразить общее диалоговое окно для пользователя. Отобразится простая строка справки, и при обнаружении одной из запрашиваемых карточек карта будет выделена на экране. Для поиска нескольких карта имен будет выделено первое средство чтения, содержащее одну из предпочтительных карточек.
  4. Затем пользователь выбирает карта, нажимает кнопку ОК и подключается к смарт-карта.

Поиск определенного карта

  1. Объявите переменную типа OPENCARDNAME.

  2. Предоставьте достаточно сведений в общем диалоговом окне, чтобы сузить поиск интеллектуальной карта, которую ищет вызывающее приложение. Сюда входит указание lpstrGroupNames, lpstrCardNames и rgguidInterfaces.

  3. Создайте функции обратного вызова Connect, Check и Disconnect и задайте соответствующие элементы данных lpfnConnect, lpfnCheck и lpfnDisconnect .

    Примечание

    Все три функции и члены должны быть доступны при использовании общего диалогового окна таким образом.

     

  4. Вызовите функцию общего диалогового окна GetOpenCardName .

  5. Затем в общем диалоговом окне будет выполнен поиск запрошенных карточек. При обнаружении соответствующего имени карта или строки ATR функции обратного вызова Connect, Check и Disconnect будут вызываться последовательно. Если карта передает подпрограмму проверки (то есть обратный вызов Check возвращает значение TRUE), этот карта выделяется на экране для пользователя.

    Примечание

    Если задано несколько карта имен, то первым средством чтения, содержащим одну из запрошенных карточек и проходящим проверку, будет выбран карта.

     

  6. Если совпадений не найдено, появится общее диалоговое окно.