RegOpenKey Function

Opens the specified registry key.

Note  This function is provided only for compatibility with 16-bit versions of Windows. Applications should use the RegOpenKeyEx function.

Syntax

C++
LONG WINAPI RegOpenKey(
  __in      HKEY hKey,
  __in_opt  LPCTSTR lpSubKey,
  __out     PHKEY phkResult
);

Parameters

hKey [in]

A handle to an open registry key. This handle is returned by the RegCreateKeyEx or RegOpenKeyEx function, or it can be one of the following predefined keys:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey [in, optional]

The name of the registry key to be opened. This key must be a subkey of the key identified by the hKey parameter.

Key names are not case sensitive.

If this parameter is NULL or a pointer to an empty string, the function returns the same handle that was passed in.

For more information, see Registry Element Size Limits.

phkResult [out]

A pointer to a variable that receives a handle to the opened key. If the key is not one of the predefined registry keys, call the RegCloseKey function after you have finished using the handle.

Return Value

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

The RegOpenKey function uses the default security access mask to open a key. If opening the key requires a different access right, the function fails, returning ERROR_ACCESS_DENIED. An application should use the RegOpenKeyEx function to specify an access mask in this situation.

RegOpenKey does not create the specified key if the key does not exist in the database.

If your service or application impersonates different users, do not use this function with HKEY_CURRENT_USER. Instead, call the RegOpenCurrentUser function.

Requirements

Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderWinreg.h (include Windows.h)
LibraryAdvapi32.lib
DLLAdvapi32.dll
Unicode and ANSI namesRegOpenKeyW (Unicode) and RegOpenKeyA (ANSI)

See Also

RegCloseKey
RegDeleteKey
Registry Functions
Registry Overview
RegOpenKeyEx

Send comments about this topic to Microsoft

Build date: 11/19/2009

Tags :


Page view tracker