次の方法で共有


ISCardDatabase::GetProviderCardId メソッド

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

GetProviderCardId メソッドは、指定されたスマート カードプライマリ サービス プロバイダーの識別子 (GUID) を取得します。

構文

HRESULT GetProviderCardId(
  [in]  BSTR   bstrCardName,
  [out] LPGUID *ppguidProviderId
);

パラメーター

bstrCardName [in]

スマート カードの名前。

ppguidProviderId [out]

成功した場合は、プライマリ サービス プロバイダーの識別子 (GUID) へのポインター。操作に失敗した場合は NULL

戻り値

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

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

 

解説

スマート カードのインターフェイスを一覧表示するには、ListCardInterfaces を呼び出します。

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

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

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

次の例は、指定したスマート カードのプライマリ サービス プロバイダーの識別子を取得する方法を示しています。

BSTR     bstrCard = NULL;
LPGUID   pguidProvId = NULL;
HRESULT  hr;

bstrCard = SysAllocString(L"My Card");
hr = pISCDataBase->GetProviderCardId(bstrCard,&pguidProvId);
if (FAILED(hr))
{
   printf("Failed GetProviderCardId\n");
}
else
{
    // Use pguidProvId as needed.
}

// Free BSTR when done.
if ( NULL != bstrCard )
{
    SysFreeString(bstrCard);
    bstrCard=NULL;
}

要件

要件
サポートされている最小のクライアント
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 として定義されています

関連項目

ISCardDatabase

ListCardInterfaces

ListCards

ListReaderGroups

ListReaders