VB聲明
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說明
枚舉指定項的值返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一個錯誤代碼參數表
參數 類型及說明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++;
}
這段代碼就是枚舉註冊表中串口個數的一部分。