次の方法で共有


ISCardDatabase::ListReaders メソッド

[ ListReaders メソッドは、[要件] セクションで指定されたオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、およびそれ以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します

ListReaders メソッドは、スマート カード データベースに登録されているスマート カードリーダーの名前を取得します。

構文

HRESULT ListReaders(
  [in]  LONG        localeId,
  [out] LPSAFEARRAY *ppReaders
);

パラメーター

localeId [in]

言語ローカライズ ID。

ppReaders [out]

成功した場合にスマート カード リーダーの名前を含む BSTR の SAFEARRAY へのポインター。操作が失敗した場合は NULL

戻り値

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

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

 

解説

既知のすべての スマート カード または リーダー グループを取得するには、それぞれ ListCards または ListReaderGroups を呼び出します。

プライマリ サービス プロバイダーまたは特定のカードのインターフェイスを取得するには、GetProviderCardId または ListCardInterfaces をそれぞれ指定します。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardDatabase」を参照してください。

上記の COM エラー コードに加えて、スマート カード関数が呼び出されて要求を完了した場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。

次の例は、スマート カード データベースに登録されているスマート カード リーダーの名前を取得する方法を示しています。

LPSAFEARRAY pReaders = NULL;
HRESULT     hr;

// Determine the reader groups.
hr = pISCDataBase->ListReaders(0x0409,  // English (US)
                               &pReaders);
if (FAILED(hr))
{
   printf("Failed ListReaders\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
Header
Scardmgr.h
タイプ ライブラリ
Scardmgr.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardDatabaseは 1461AAC8-6810-11D0-918F-00AA00C18068 として定義されています

関連項目

GetProviderCardId

ISCardDatabase

ListCardInterfaces

ListCards

ListReaderGroups