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
라이브러리 Uuid.lib
DLL Xenroll.dll

추가 정보

CEnroll

ICEnroll3

ICEnroll4