The RegOpenKeyEx function opens the specified key.
LONG RegOpenKeyEx(
| HKEY hKey, | // handle of open key |
| LPCTSTR lpSubKey, | // address of name of subkey to open |
| DWORD ulOptions, | // reserved |
| REGSAM samDesired, | // security access mask |
| PHKEY phkResult | // address of handle of open key |
| ); |
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
lpSubKey
Points to a null-terminated string containing the name of the subkey to open. If this parameter is NULL or a pointer to an empty string, the function will open a new handle of the key identified by the hKey parameter. In this case, the function will not close the handles previously opened.
ulOptions
Reserved; must be zero.
samDesired
Specifies an access mask that describes the desired security access for the new key. This parameter can be a combination of the following values:
| Value | Meaning |
| KEY_ALL_ACCESS | Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access. |
| KEY_CREATE_LINK | Permission to create a symbolic link. |
| KEY_CREATE_SUB_KEY | Permission to create subkeys. |
| KEY_ENUMERATE_SUB_KEYS | Permission to enumerate subkeys. |
| KEY_EXECUTE | Permission for read access. |
| KEY_NOTIFY | Permission for change notification. |
| KEY_QUERY_VALUE | Permission to query subkey data. |
| KEY_READ | Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY access. |
| KEY_SET_VALUE | Permission to set subkey data. |
| KEY_WRITE | Combination of KEY_SET_VALUE and KEY_CREATE_SUB_KEY access. |
phkResult
Points to a variable that receives the handle of the opened key.
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 function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.
Remarks
Unlike the RegCreateKeyEx function, the RegOpenKeyEx function does not create the specified key if the key does not exist in the registry.
See Also