ICEnroll3::EnumAlgs メソッド (xenroll.h)
[このメソッドは、Windows Server 2008 および Windows Vista では使用できなくなりました。
EnumAlgs メソッドは、現在の暗号化サービス プロバイダー (CSP) でサポートされている特定のアルゴリズム クラス内の暗号化アルゴリズムの ID を取得します。 このメソッドは、 ICEnroll3 インターフェイスで最初に定義されました。
構文
HRESULT EnumAlgs(
[in] LONG dwIndex,
[in] LONG algClass,
[out] LONG *pdwAlgID
);
パラメーター
[in] dwIndex
ID を取得するアルゴリズムの序数位置を指定します。 最初のアルゴリズムに 0 を指定します。
[in] algClass
暗号化アルゴリズム クラス。 このメソッドによって返される ID は、指定したクラスに格納されます。 次のいずれかを指定します。
- ALG_CLASS_HASH
- ALG_CLASS_KEY_EXCHANGE
- ALG_CLASS_MSG_ENCRYPT
- ALG_CLASS_DATA_ENCRYPT
- ALG_CLASS_SIGNATURE
[out] pdwAlgID
現在の CSP でサポートされている暗号化アルゴリズム ID を受け取る変数へのポインター。
戻り値
C++
戻り値は HRESULT です。 値 S_OK は成功を示します。 列挙するアルゴリズムがこれ以上ない場合は、ERROR_NO_MORE_ITEMS値が返されます。VB
現在の CSP でサポートされている暗号化アルゴリズム ID。 列挙するアルゴリズムがこれ以上ない場合は、ERROR_NO_MORE_ITEMS値が返されます。注釈
このメソッドで使用されるアルゴリズム ID とクラス定数については、「Wincrypt.h」を参照してください。
例
#include <windows.h>
#include <stdio.h>
#include <Xenroll.h>
DWORD dwAlgID;
DWORD dwIndex;
BSTR bstrAlgName = NULL;
HRESULT hr, hr2;
// Loop through the AlgIDs.
dwIndex = 0;
while ( TRUE )
{
// Enumerate the alg IDs for a specific class.
hr = pEnroll->EnumAlgs(dwIndex, ALG_CLASS_SIGNATURE, &dwAlgID);
if ( S_OK != hr )
{
break;
}
// Do something with the AlgID.
// For example, retrieve the corresponding name.
hr2 = pEnroll->GetAlgName( dwAlgID, &bstrAlgName);
if ( FAILED( hr2 ) )
printf("Failed GetAlgName [%x]\n", hr);
else
printf("AlgID: %d Name: %S\n", dwAlgID, bstrAlgName );
// Reuse the BSTR variable in next iteration.
if ( NULL != bstrAlgName )
{
SysFreeString( bstrAlgName );
bstrAlgName = NULL;
}
// Increment the index.
dwIndex++;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | xenroll.h |
Library | Uuid.lib |
[DLL] | Xenroll.dll |