RegEnumKeyEx
The RegEnumKeyEx
function enumerates subkeys of the specified open registry key. The function
retrieves information about one subkey each time it is called. Unlike the RegEnumKey
LONG RegEnumKeyEx(
HKEY hKey, |
// handle of key to
enumerate |
DWORD dwIndex, |
// index of subkey
to enumerate |
LPTSTR lpName, |
// address of
buffer for subkey name |
LPDWORD lpcbName, |
// address for size
of subkey buffer |
LPDWORD lpReserved, |
// reserved |
LPTSTR lpClass, |
// address of
buffer for class string |
LPDWORD lpcbClass, |
// address for size
of class buffer |
PFILETIME lpftLastWriteTime |
// address for time
key last written to |
); |
|
Parameters
hKey
Identifies a
currently open key or any of the following predefined reserved handle values:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
The enumerated keys are subkeys of the key identified by hKey.
dwIndex
Specifies the
index of the subkey to retrieve. This parameter should be zero for the first
call to the RegEnumKeyEx function and then incremented for subsequent
calls.
Because subkeys are not ordered, any new subkey will have an arbitrary
index. This means that the function may return subkeys in any order.
lpName
Points to a
buffer that receives the name of the subkey, including the terminating null
character. The function copies only the name of the subkey, not the full key
hierarchy, to the buffer.
lpcbName
Points to a
variable that specifies the size, in characters, of the buffer specified by the
lpName parameter. This size should include the terminating null character.
When the function returns, the variable pointed to by lpcbName contains
the number of characters stored in the buffer. The count returned does not
include the terminating null character.
lpReserved
Reserved;
must be NULL.
lpClass
Points to a
buffer that contains the class of the enumerated subkey when the function
returns. This parameter can be NULL if the class is not required.
lpcbClass
Points to a
variable that specifies the size, in characters, of the buffer specified by the
lpClass parameter. The size should include the terminating null
character. When the function returns, lpcbClass contains the number of
characters stored in the buffer. The count returned does not include the
terminating null character. This parameter can be NULL only if lpClass
is NULL.
lpftLastWriteTime
Points to a
variable that receives the time the enumerated subkey was last written to.
Return Values
If the
function succeeds, the return value is ERROR_SUCCESS.
If the
function fails, the return value is a nonzero error code defined in WINERROR.H.
You can use the FormatMessage
Remarks
To enumerate
subkeys, an application should initially call the RegEnumKeyEx function
with the dwIndex parameter set to zero. The application should then
increment the dwIndex parameter and call RegEnumKeyEx until there
are no more subkeys (until the function returns ERROR_NO_MORE_ITEMS).
The
application can also set dwIndex to the index of the last subkey on the
first call to the function and decrement the index until the subkey with the
index 0 is enumerated. To retrieve the index of the last subkey, use the RegQueryInfoKey
While an
application is using the RegEnumKeyEx function, it should not make calls
to any registration functions that might change the key being enumerated.
The key
identified by hKey must have been opened with KEY_ENUMERATE_SUB_KEYS
access (KEY_READ includes KEY_ENUMERATE_SUB_KEYS). Use the RegCreateKeyEx
or RegOpenKeyEx function to open the key.
See Also