ICEnroll::enumProviders メソッド (xenroll.h)
[このメソッドは、Windows Server 2008 および Windows Vista では使用できなくなりました。
enumProviders メソッドは、ProviderType プロパティで指定された使用可能な暗号化サービス プロバイダー (CSP) の名前を取得します。 このメソッドは、 最初に ICEnroll インターフェイスで定義されました。
構文
HRESULT enumProviders(
[in] LONG dwIndex,
[in] LONG dwFlags,
[out] BSTR *pbstrProvName
);
パラメーター
[in] dwIndex
名前を取得する CSP の序数位置を指定します。 最初の CSP に 0 を指定します。
[in] dwFlags
CryptEnumProviders 関数に渡されるフラグを指定します。 このパラメーターは現在使用されていません。0 を指定します。
[out] pbstrProvName
指定したプロパティ型を持つ CSP の名前を受け取る BSTR 変数へのポインター。 BSTR の使用が完了したら、SysFreeString 関数を呼び出して解放します。
戻り値
C++
戻り値は HRESULT です。 値 S_OK は成功を示します。 ERROR_NO_MORE_ITEMS値は、 ProviderType プロパティによって示されるプロパティ型を持つ CSP がそれ以上ない場合に返されます。VB
戻り値は、CSP の名前を含む String 変数です。 エラーが発生した場合、またはそれ以上項目がない場合は、例外が発生します。注釈
ProviderType プロパティの値が設定されていない場合は、レジストリで設定されている ProviderType の既定値 (通常はPROV_RSA_FULL) が使用されます。
enumProviders メソッドは、CryptEnumProviders 関数を呼び出します。
例
BSTR bstrProvName = NULL;
DWORD nProv;
int j;
HRESULT hr;
// array of CSP provider types (see Wincrypt.h)
DWORD nProvType[] = { PROV_RSA_FULL,
PROV_RSA_SIG,
// list shortened for brevity
//...
PROV_STT_ISS };
// Loop, for each Prov Type.
for (j = 0; j < (sizeof(nProvType)/sizeof(DWORD)); j++)
{
nProv = 0;
// pEnroll is previously instantiated ICEnroll interface pointer
hr = pEnroll->put_ProviderType( nProvType[j] );
if ( FAILED(hr))
{
printf("Failed put_ProviderType - %x\n", hr);
goto error;
}
// Enumerate the CSPs of this type.
while ( S_OK == ( hr = pEnroll->enumProviders(nProv,
0,
&bstrProvName)))
{
printf("Provider %ws (type %d )\n", bstrProvName,
nProvType[j] );
nProv++;
if ( bstrProvName )
{
SysFreeString( bstrProvName );
bstrProvName = NULL;
}
}
// Print message if provider type does not have any CSPs.
if ( 0 == nProv )
printf("There were no CSPs of type %d\n", dwType );
}
error:
// Clean up resources, and so on.
if ( bstrProvName )
SysFreeString( bstrProvName );
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | xenroll.h |
Library | Uuid.lib |
[DLL] | Xenroll.dll |