ISCardDatabase::ListCardInterfaces 方法

[ListCardInterfaces 方法可用于"要求"部分中指定的操作系统。 它不适用于 Windows Server 2003 Service Pack 1 (SP1) 及更高版本、Windows Vista、Windows Server 2008 和操作系统的后续版本。 智能卡模块提供类似的功能。]

ListCardInterfaces 方法检索指定 (支持的所有接口) GUID 的标识符

语法

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

parameters

bstrCardName []

智能卡的名称。

ppInterfaceGuids [out]

指向接口 GUID 的指针(如果成功); 如果 操作失败,则为空。

返回值

方法返回以下可能值之一。

返回代码 说明
S _ OK
操作已成功完成。
E _ INVALIDARG
参数无效。
E _ 指针
ppInterfaceGuids 中传递了错误的指针
E _ OUTOFMEMORY
内存不足。

备注

若要检索 智能卡的主要服务提供商 ,请调用 GetProviderCardId

若要检索所有已知的 智能卡、读取器读取器组,请分别调用 ListCards、ListReadersListReaderGroups。

有关此接口提供的所有方法的列表,请参阅 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仅服务器 2003 [ 桌面应用]
客户端支持结束
Windows XP
服务器支持结束
Windows Server 2003
标头
将Dmgr.h
类型库
将Dmgr.tlb
DLL
Scardssp.dll
IID
IID _ ISCardDatabase 定义为 1461AAC8-6810-11D0-918F-00AA00C18068

另请参阅

GetProviderCardId

ISCardDatabase

ListCards

ListReaderGroups

ListReaders