Вместо этого используйте функциональность, содержащуюся во встроенном пространстве имен Microsoft.Win32.Registry.
Справочную информацию и множество примеров можно найти в MSDN .
Обновление
Если вам нужно использовать API, то подпись на RegEnumValue должна быть изменена на что-то вроде:
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA"(ByVal hKey As Integer, ByVal dwIndex As Integer, ByVal lpValueName As String, ByRef lpcbValueName As Integer, ByVal lpReserved As Integer, ByRef lpType As Integer, ByRef lpData As StringBuilder, ByRef lpcbData As Integer) As Integer
Затем измените тип strData на StringBuilder и создайте новый экземпляр StringBuilder, где вы в настоящее время заполняете strData пробелами:
strData = New StringBuilder(buffer)
Возможно, должны быть внесены и другие изменения, но пока это большое.
Обновление 2
Для другого объявления необходимо, чтобы их значения Long были изменены на Integer, а параметром результата для RegOpenKey является ByRef:
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Integer) As Integer
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Integer, ByVal lpSubKey As String, ByRef phkResult As Integer) As Integer
Обновление 3
Изучив мой старый код API, я обнаружил, что вам нужно проделать немало дополнительной работы для обработки результатов:
Как только вы определили, что RegEnumValue был успешным (возвращаемое значение 0), вам нужно обработать результаты на основе параметра 3 с конца (lpType), который сообщит вам тип данных.
Затем, основываясь на типе (то есть REG_SZ, REG_DWORD и т. Д.), Вам нужно будет вызвать один из методов API RegQueryValueExA:
Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA"(ByVal hKey As Integer, ByVal lpValueName As String, ByVal lpReserved As Integer, ByRef lpType As Integer, ByVal lpData As String, ByRef lpcbData As Integer) As Integer
Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA"(ByVal hKey As Integer, ByVal lpValueName As String, ByVal lpReserved As Integer, ByRef lpType As Integer, ByRef lpData As Integer, ByRef lpcbData As Integer) As Integer
и т.д.. для получения значения в записи реестра.