Функция SCardUIDlgSelectCardA (winscard.h)
Синтаксис
LONG SCardUIDlgSelectCardA(
[in] LPOPENCARDNAMEA_EX unnamedParam1
);
Параметры
[in] unnamedParam1
Указатель на структуру
Возвращаемое значение
Если функция успешно отображает диалоговое окно выбор карточки, возвращаемое значение SCARD_S_SUCCESS.
Если функция завершается ошибкой, возвращается код ошибки. Дополнительные сведения см. в возвращаемых значений смарт-карт.
Замечания
Ценность | Действие |
---|---|
SC_DLG_FORCE_UI |
Подключается к карточке, выбранной пользователем из диалогового окна |
SC_DLG_MINIMAL_UI | Выбирает смарт-карту, если только одна смарт-карта соответствует критериям или возвращает сведения о выборе пользователя, если несколько смарт-карт соответствуют критериям. |
SC_DLG_NO_UI | Выбирает первую доступную карточку. |
Эта функция заменяет GetOpenCardName. Функция GetOpenCardName
Примеры
В следующем примере показано, как отобразить диалоговое окно выбора карточки смарт-карты.
SCARDCONTEXT hSC;
OPENCARDNAME_EX dlgStruct;
WCHAR szReader[256];
WCHAR szCard[256];
LONG lReturn;
// Establish a context.
// It will be assigned to the structure's hSCardContext field.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
NULL,
NULL,
&hSC );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardEstablishContext\n");
exit(1);
}
// Initialize the structure.
memset(&dlgStruct, 0, sizeof(dlgStruct));
dlgStruct.dwStructSize = sizeof(dlgStruct);
dlgStruct.hSCardContext = hSC;
dlgStruct.dwFlags = SC_DLG_FORCE_UI;
dlgStruct.lpstrRdr = (LPSTR) szReader;
dlgStruct.nMaxRdr = 256;
dlgStruct.lpstrCard = (LPSTR) szCard;
dlgStruct.nMaxCard = 256;
dlgStruct.lpstrTitle = (LPSTR) "My Select Card Title";
// Display the select card dialog box.
lReturn = SCardUIDlgSelectCard(&dlgStruct);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardUIDlgSelectCard - %x\n", lReturn );
else
printf("Reader: %S\nCard: %S\n", szReader, szCard );
// Release the context (by SCardReleaseContext - not shown here).
Заметка
Заголовок winscard.h определяет SCardUIDlgSelectCard как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winscard.h |
библиотеки |
Scarddlg.lib |
DLL | Scarddlg.dll |