A version of this page is also available for

Windows Embedded CE 6.0 R3


This function opens the specified key.

A remote application interface (RAPI) version of this function exists called CeRegOpenKeyEx (RAPI).


LONG RegOpenKeyEx( 
  HKEY hKey, 
  LPCWSTR lpSubKey, 
  DWORD ulOptions, 
  REGSAM samDesired, 
  PHKEY phkResult 


  • hKey
    [in] Handle to a currently open key or any of the following predefined reserved handle values:


    Windows Embedded CE does not support the HKEY_CURRENT_CONFIG, HKEY_PERFORMANCE_DATA, or HKEY_DYN_DATA predefined reserved handle values.

  • lpSubKey
    [in] Pointer to a null-terminated string containing the name of the subkey to open. If this parameter is set to NULL or a pointer to an empty string, the function opens a new handle to the key identified by hKey. In this case, the function does not close the handles previously opened.
  • ulOptions
    [in] Reserved. Set to zero.
  • samDesired
    [in] Not supported. Set to zero.
  • phkResult
    [out] Pointer to a variable that receives a handle to the opened key. When you no longer need the returned handle, call the RegCloseKey function to close it.

Return Value

ERROR_SUCCESS indicates success. A nonzero error code defined in Winerror.h indicates failure. To get a generic description of the error, call the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag set. The message resource is optional, so FormatMessage might fail.


Unlike the RegCreateKeyEx function, this function does not create the specified key if the key does not exist in the registry.


Header winreg.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


Registry Functions

Other Resources

State and Notifications Broker