FIX: Run-Time Error 87 Using RegEnumValue Function

ID: Q173009


The information in this article applies to:
  • Microsoft Visual Basic Control Creation, Learning, Professional, and Enterprise Editions for Windows, version 5.0
    on the following platforms: NT
  • Microsoft Visual Basic Standard, Professional, and Enterprise Editions, 32-bit only, for Windows, version 4.0
    on the following platforms: NT


SYMPTOMS

When attempting to call the RegEnumValue API from Visual Basic or Visual Basic for Applications code, you may receive the following error:

Error 87 - Invalid Parameter

This problem occurs if you are running the Windows NT 4.0 Operating System and you have obtained the declaration for the RegEnumValue API from Visual Basic's API Text Viewer program.


CAUSE

The Declare statement for RegEnumValue in Visual Basic's API Text Viewer is incorrect.


RESOLUTION

The declaration of RegEnumValue as it currently exists in the API Text Viewer is:


   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 Any, lpcbData As Long) As Long 

The fifth parameter, lpReserved, should be defined as ByVal. The correct declaration is:

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

You can also change the statement in the file win32api.txt so the next time you use the API Text Viewer, the Declare statement will be correct.


STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug has been fixed in Visual Basic 6.0.


REFERENCES

An updated version of the Win32API.txt file is available for download for registered users of Visual Basic. For more information about downloading this file, please see the following Knowledge Base article:

Q178020 : FILE: WIN32API.EXE: Updated Version of Win32api32.txt File

Additional query words: kbVBp400bug kbVBp500bug kbVBp600fix kbVBp kbdsd kbDSupport KBWIN32SDK
KBAPI

Keywords : kbGrpVB
Version :
Platform : NT WINDOWS
Issue type : kbbug


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.