Метод ISCardDatabase::ListCards
[Метод ListCards доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функциональные возможности.]
Метод ListCards извлекает все имена смарт-карта, которые соответствуют указанным идентификаторам интерфейса (GUID), указанной строке ATR или обоим.
Синтаксис
HRESULT ListCards(
[in] LPBYTEBUFFER pAtr,
[in] LPSAFEARRAY pInterfaceGuids,
[in] LONG localeId,
[out] LPSAFEARRAY *ppCardNames
);
Параметры
-
pAtr [in]
-
Указатель на смарт-карта строку ATR. Строка ATR должна быть упакована в IByteBuffer.
-
pInterfaceGuids [in]
-
Указатель на SAFEARRAY идентификаторов интерфейса COM (GUID) в формате BSTR.
-
localeId [in]
-
Идентификатор локализации языка.
-
ppCardNames [out]
-
Указатель на SAFEARRAY BSTR, который содержит имена смарт-карт, удовлетворяющих параметрам поиска в случае успешного выполнения; Значение NULL , если операция завершилась сбоем.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Недопустимый параметр. |
|
Был передан неправильный указатель. |
|
Недостаточно памяти. |
Комментарии
Чтобы получить все известные средства чтения или средства чтения, вызовите ListReaders или ListReaderGroups соответственно.
Чтобы получить основную службу или интерфейсы определенного карта GetProviderCardId или ListCardInterfaces соответственно.
Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardDatabase.
В дополнение к приведенным выше кодам ошибок COM этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.
Примеры
В следующем примере показано получение имен смарт-карта, соответствующих указанной строке ATR.
// Define or determine byAtr as needed for your ATR use.
BYTE byAtr[] = {0x3b,0x27,0x00,0x80,0x65,0xa2,0x0c,0x01,0x01,0x37};
LPSAFEARRAY pSafeArray = NULL;
HRESULT hr;
// pIByteBuff is a pointer to an instance of IByteBuffer.
hr = pIByteBuff->Initialize(sizeof(byAtr), byAtr);
// Call the function for the specified ATR.
hr = pISCDataBase->ListCards(pIByteBuff,
NULL,
0,
&pSafeArray);
if (FAILED(hr))
{
printf("Failed ListCards\n");
// Take other error handling action as needed.
}
else
{
// Use the safe array as needed.
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Окончание поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardDatabase определяется как 1461AAC8-6810-11D0-918F-00AA00C18068 |
См. также раздел