首页 > 代码库 > RegEnumValue

RegEnumValue

1VB声明

Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long

2说明

枚举指定项的值

3返回值

Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

4参数表

参数 类型及说明
hKey Long,一个已打开项的句柄,或者指定一个标准项名
dwIndex Long,欲获取值的索引。注意第一个值的索引编号为零
lpValueName String,用于装载位于指定索引处值名的一个缓冲区
lpcbValueName Long,用于装载lpValueName缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量
lpReserved Long,未用;设为零
lpType Long,用于装载值的类型代码的变量
lpData Byte,用于装载值数据的一个缓冲区
lpcbData Long,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际载入缓冲区的字符数量
例如:
HKEY hKey;
int i=0;
TCHAR portName[255],commName[255];
DWORD dwLong,dwSize;
while(1)
{
dwLong = dwSize = sizeof(portName)/sizeof(TCHAR);
if( ::RegEnumValue( hKey, i, portName, &dwLong, NULL, NULL, (PUCHAR)commName, &dwSize ) == ERROR_NO_MORE_ITEMS )
break;
m_cbCom->AddString( commName );// commName
i++;
}
这段代码就是枚举注册表中串口个数的一部分。[1] 

RegEnumValue