Поделиться через


Метод ISCardDatabase::ListCardInterfaces

[Метод ListCardInterfaces доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функции.]

Метод ListCardInterfaces извлекает идентификаторы (GUID) всех интерфейсов, поддерживаемых для указанного смарт-карта.

Синтаксис

HRESULT ListCardInterfaces(
  [in]  BSTR        bstrCardName,
  [out] LPSAFEARRAY *ppInterfaceGuids
);

Параметры

bstrCardName [in]

Имя смарт-карта.

ppInterfaceGuids [out]

Указатель на идентификаторы GUID интерфейса в случае успешного выполнения; Значение NULL , если операция завершилась сбоем.

Возвращаемое значение

Метод возвращает одно из следующих возможных значений.

Код возврата Описание
S_OK
Operation completed successfully (Операция выполнена успешно).
E_INVALIDARG
Недопустимый параметр.
E_POINTER
В ppInterfaceGuids был передан недопустимый указатель.
E_OUTOFMEMORY
Недостаточно памяти.

 

Комментарии

Чтобы получить основной поставщик услуг смарт-карта, вызовите GetProviderCardId.

Чтобы получить все известные смарт-карты, читатели и группы читателей вызовите ListCards, ListReaders и ListReaderGroups соответственно.

Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardDatabase.

В дополнение к приведенным выше кодам com-ошибок этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Примеры

В следующем примере показано получение идентификаторов интерфейсов, поддерживаемых для указанного смарт-карта.

BSTR         bstrCard = NULL;
LPSAFEARRAY  pGuids = NULL;
HRESULT      hr;

bstrCard = SysAllocString(L"GemSAFE");
// Call the function for the specified card.
hr = pISCDataBase->ListCardInterfaces(bstrCard,
                                      &pGuids);
if (FAILED(hr))
{
   printf("Failed ListCardInterfaces\n");
   // Take other error handling action as needed.
}
else
{
   // Use the safe array as needed.
   // ...
   // Free BSTR when done.
   if (bstrCard)
       SysFreeString(bstrCard);
}

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Прекращение поддержки сервера
Windows Server 2003
Заголовок
Scardmgr.h
Библиотека типов
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCardDatabase определяется как 1461AAC8-6810-11D0-918F-00AA00C18068

См. также раздел

GetProviderCardId

ISCardDatabase

ListCards

ListReaderGroups

ListReaders