共用方式為


ICEnroll3::EnumAlgs 方法 (xenroll.h)

[此方法已不再可供 Windows Server 2008 和 Windows Vista 使用。]

EnumAlgs 方法會擷取目前密碼編譯服務提供者所支援之指定演算法類別中的密碼編譯演算法標識碼, (CSP) 。 這個方法最初是在 ICEnroll3 介面中定義。

語法

HRESULT EnumAlgs(
  [in]  LONG dwIndex,
  [in]  LONG algClass,
  [out] LONG *pdwAlgID
);

參數

[in] dwIndex

指定將擷取其標識碼之演算法的序數位置。 為第一個演算法指定零。

[in] algClass

密碼編譯演算法類別。 這個方法傳回的標識碼會位於指定的類別中。 請指定下列其中一個選項:

  • ALG_CLASS_HASH
  • ALG_CLASS_KEY_EXCHANGE
  • ALG_CLASS_MSG_ENCRYPT
  • ALG_CLASS_DATA_ENCRYPT
  • ALG_CLASS_SIGNATURE

[out] pdwAlgID

要接收目前 CSP 所支援之密碼編譯演算法識別碼的變數指標。

傳回值

C++

傳回值為 HRESULT。 值S_OK表示成功。 當沒有其他要列舉的演算法時,會傳回值ERROR_NO_MORE_ITEMS。

VB

目前 CSP 支援的密碼編譯演算法識別碼。 當沒有其他要列舉的演算法時,會傳回值ERROR_NO_MORE_ITEMS。

備註

如需此方法所使用的演算法識別碼和類別常數,請參閱 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