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 的算法的序号位置。 为第一个算法指定零。
[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 |