次の方法で共有


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

こちらもご覧ください

CEnroll

ICEnroll3

ICEnroll4