Windows API Guide: PolyLine Function


Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long

Platforms

  • Windows 95: Supported.
  • Windows 98: Supported.
  • Windows NT: Requires Windows NT 3.1 or later.
  • Windows 2000: Supported.
  • Windows CE: Requires Windows CE 1.0 or later.

Description & Usage

RegEnumKeyEx enumerates all of the subkeys under a given key. The function retrieves the subkey name, class name, and last write time of each subkey. The key under which the subkeys are enumerated must have been opened with subkey-enumeration access (see the example). The program must use the function in a loop, incrementing the index value (which determines which subkey is identified) until the list has been exhaused. The subkeys are not retrieved in any clear order.

Return Value

If an error occured, the function returns a non-zero error code. If successful, the function returns 0.

Visual Basic-Specific Issues

None.

Parameters

hKey
A handle to the open registry key containing the subkeys to be enumerated (having been opened with subkey-enumeration access). This could also be one of the following flags identifying a predefined base keys:
HKEY_CLASSES_ROOT
The HKEY_CLASSES_ROOT base key.
HKEY_CURRENT_CONFIG
The HKEY_CURRENT_CONFIG base key.
HKEY_CURRENT_USER
The HKEY_CURRENT_USER base key.
HKEY_DYN_DATA
Windows 95, 98: The HKEY_DYN_DATA base key.
HKEY_LOCAL_MACHINE
The HKEY_LOCAL_MACHINE base key.
HKEY_PERFORMANCE_DATA
Windows NT, 2000: The HKEY_PERFORMANCE_DATA base key.
HKEY_USERS
The HKEY_USERS base key.
dwIndex
The index of the particular subkey to retrieve information about. Valid indices begin with 0 and go up to one less than the number of subkeys.
lpName
String which receives the name of the subkey whose information is being retrieved. This must be initialized to a sufficient size to receive the string.
lpcbName
The size of the string passed as lpName. This also receives the length of the string the function places in lpName.
lpReserved
Reserved -- set to 0. Visual Basic users must use the ByVal keyword immediately before the 0.
lpClass
String which receives the name of the subkey's class. This must be initialized to a sufficient size to receive the string.
lpcbClass
The size of the string passed as lpClass. This also receives the length of the string the function places in lpClass.
lpftLastWriteTime
Receives the time and date on which the subkey was last written to.

Constant Definitions

Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_CURRENT_USER = &H80000001 Const HKEY_DYN_DATA = &H80000006 Const HKEY_LOCAL_MACHINE = &H80000002 Const HKEY_PERFORMANCE_DATA = &H80000004 Const HKEY_USERS = &H80000003

Example

' This code is licensed according to the terms and conditions listed here. ' Enumerate the subkeys under HKEY_LOCAL_MACHINE\Software.  The name ' and class of each subkey is displayed for the user.  Note the use of the loop which ' starts at 0 and keeps incrementing the index until no more subkeys exist. Dim keyname As String  ' receives name of each subkey Dim keylen As Long  ' length of keyname Dim classname As String  ' receives class of each subkey Dim classlen As Long  ' length of classname Dim lastwrite As FILETIME ' receives last-write-to time, but we ignore it here Dim hkey As Long  ' handle to the HKEY_LOCAL_MACHINE\Software key Dim index As Long  ' counter variable for index Dim retval As Long  ' function's return value ' Open the desired registry key.  Note the access level requested. retval = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0, KEY_ENUMERATE_SUB_KEYS, hkey) ' Test to make sure the key was opened successfully. If retval <> 0 Then   Debug.Print "Registry key could not be opened -- aborting."   End  ' terminate the program End If ' List through each possible subkey.  Note how the strings receiving the information ' must be reinitialized each loop iteration. index = 0  ' initial index value While retval = 0  ' while we keep having success (retval equals 0 from the above API call)   keyname = Space(255): classname = Space(255)  ' make room in string buffers   keylen = 255: classlen = 255  ' identify the allocated space   ' Get information about the next subkey, if one exists.   retval = RegEnumKeyEx(hkey, index, keyname, keylen, ByVal 0, classname, classlen, lastwrite)   If retval = 0  ' only display info if another subkey was found     ' Extract the useful information from the string buffers.     keyname = Left(keyname, keylen)  ' trim off the excess space     classname = Left(classname, classlen)     ' Display the returned information.     Debug.Print "HKEY_LOCAL_MACHINE\Software\"; keyname  ' display full subkey name     Debug.Print "  (class: "; classname  ' display subkey's class   End If   index = index + 1  ' increment the index counter Wend  ' end the loop ' Close the registry key after enumeration is complete. retval = RegCloseKey(hkey)

See Also

RegEnumValue

Category

Registry

Go back to the alphabetical Function listing.
Go back to the Reference section index.


Last Modified: March 19, 2000
This page is copyright © 2000 Paul Kuliniewicz. Copyright Information Revised October 29, 2000 .
Go back to the Windows API Guide home page.
E-mail: vbapi@vbapi.com Send Encrypted E-Mail
This page is at http://www.vbapi.com/ref/r/regenumkeyex.html



Windows API Guide
Windows API Guide - Reference - Volume 1: Version 3.0 For the MS-DOS and PC-DOS Operating Systems
ISBN: B001V0KQIY
EAN: N/A
Year: 1998
Pages: 610

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net