次の方法で共有


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
);

パラメーター

bstrCardName [in]

スマート カードの名前。

ppInterfaceGuids [out]

成功した場合はインターフェイス GUID へのポインター。操作に失敗した場合は NULL

戻り値

メソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
操作は正常に完了しました。
E_INVALIDARG
無効なパラメーター。
E_POINTER
ppInterfaceGuids で不適切なポインターが渡されました。
E_OUTOFMEMORY
メモリが不足しています。

 

解説

スマート カードのプライマリ サービス プロバイダーを取得するには、GetProviderCardId を呼び出します。

既知のすべての スマート カードリーダーリーダー グループ を取得するには、 それぞれ ListCardsListReaders、および 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