// // Copyright (c) Microsoft Corporation. All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you licensed this SOFTWARE PRODUCT. // If you did not accept the terms of the EULA, you are not authorized to use // this source code. For a copy of the EULA, please see the LICENSE.RTF on your // install media. // /*++ BUILD Version: 0001 // Increment this if a change has global effects Module Name: Winreg.h Abstract: This module contains the function prototypes and constant, type and structure definitions for the Windows 32-Bit Registry API. --*/ #ifndef _WINREG_ #define _WINREG_ #ifdef _MAC #include #endif // @CESYSGEN IF FILESYS_FSREG || FILESYS_FSREGHIVE || FILESYS_FSRGLITE #ifdef __cplusplus extern "C" { #endif #ifndef WINVER #define WINVER 0x0500 // version 5.0 #endif /* !WINVER */ // // Requested Key access mask type. // typedef ACCESS_MASK REGSAM; // // Reserved Key Handles. // #define HKEY_CLASSES_ROOT (( HKEY ) (ULONG_PTR)0x80000000 ) #define HKEY_CURRENT_USER (( HKEY ) (ULONG_PTR)0x80000001 ) #define HKEY_LOCAL_MACHINE (( HKEY ) (ULONG_PTR)0x80000002 ) #define HKEY_USERS (( HKEY ) (ULONG_PTR)0x80000003 ) // // Default values for parameters that do not exist in the Win 3.1 // compatible APIs. // #define WIN31_CLASS NULL // // API Prototypes. // WINADVAPI LONG APIENTRY RegCloseKey ( IN HKEY hKey ); WINADVAPI LONG APIENTRY RegCreateKeyExA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN DWORD Reserved, IN LPSTR lpClass, IN DWORD dwOptions, IN REGSAM samDesired, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, OUT PHKEY phkResult, OUT LPDWORD lpdwDisposition ); WINADVAPI LONG APIENTRY RegCreateKeyExW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN DWORD Reserved, IN LPWSTR lpClass, IN DWORD dwOptions, IN REGSAM samDesired, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, OUT PHKEY phkResult, OUT LPDWORD lpdwDisposition ); #ifdef UNICODE #define RegCreateKeyEx RegCreateKeyExW #else #define RegCreateKeyEx RegCreateKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegDeleteKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey ); WINADVAPI LONG APIENTRY RegDeleteKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey ); #ifdef UNICODE #define RegDeleteKey RegDeleteKeyW #else #define RegDeleteKey RegDeleteKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegDeleteValueA ( IN HKEY hKey, IN LPCSTR lpValueName ); WINADVAPI LONG APIENTRY RegDeleteValueW ( IN HKEY hKey, IN LPCWSTR lpValueName ); #ifdef UNICODE #define RegDeleteValue RegDeleteValueW #else #define RegDeleteValue RegDeleteValueA #endif // !UNICODE WINADVAPI LONG APIENTRY RegEnumKeyExA ( IN HKEY hKey, IN DWORD dwIndex, OUT LPSTR lpName, IN OUT LPDWORD lpcbName, IN LPDWORD lpReserved, IN OUT LPSTR lpClass, IN OUT LPDWORD lpcbClass, OUT PFILETIME lpftLastWriteTime ); WINADVAPI LONG APIENTRY RegEnumKeyExW ( IN HKEY hKey, IN DWORD dwIndex, OUT LPWSTR lpName, IN OUT LPDWORD lpcbName, IN LPDWORD lpReserved, IN OUT LPWSTR lpClass, IN OUT LPDWORD lpcbClass, OUT PFILETIME lpftLastWriteTime ); #ifdef UNICODE #define RegEnumKeyEx RegEnumKeyExW #else #define RegEnumKeyEx RegEnumKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegEnumValueA ( IN HKEY hKey, IN DWORD dwIndex, OUT LPSTR lpValueName, IN OUT LPDWORD lpcbValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); WINADVAPI LONG APIENTRY RegEnumValueW ( IN HKEY hKey, IN DWORD dwIndex, OUT LPWSTR lpValueName, IN OUT LPDWORD lpcbValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); #ifdef UNICODE #define RegEnumValue RegEnumValueW #else #define RegEnumValue RegEnumValueA #endif // !UNICODE WINADVAPI LONG APIENTRY RegFlushKey ( IN HKEY hKey ); WINADVAPI LONG APIENTRY RegOpenKeyExA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN DWORD ulOptions, IN REGSAM samDesired, OUT PHKEY phkResult ); WINADVAPI LONG APIENTRY RegOpenKeyExW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN DWORD ulOptions, IN REGSAM samDesired, OUT PHKEY phkResult ); #ifdef UNICODE #define RegOpenKeyEx RegOpenKeyExW #else #define RegOpenKeyEx RegOpenKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegQueryInfoKeyA ( IN HKEY hKey, OUT LPSTR lpClass, IN OUT LPDWORD lpcbClass, IN LPDWORD lpReserved, OUT LPDWORD lpcSubKeys, OUT LPDWORD lpcbMaxSubKeyLen, OUT LPDWORD lpcbMaxClassLen, OUT LPDWORD lpcValues, OUT LPDWORD lpcbMaxValueNameLen, OUT LPDWORD lpcbMaxValueLen, OUT LPDWORD lpcbSecurityDescriptor, OUT PFILETIME lpftLastWriteTime ); WINADVAPI LONG APIENTRY RegQueryInfoKeyW ( IN HKEY hKey, OUT LPWSTR lpClass, IN OUT LPDWORD lpcbClass, IN LPDWORD lpReserved, OUT LPDWORD lpcSubKeys, OUT LPDWORD lpcbMaxSubKeyLen, OUT LPDWORD lpcbMaxClassLen, OUT LPDWORD lpcValues, OUT LPDWORD lpcbMaxValueNameLen, OUT LPDWORD lpcbMaxValueLen, OUT LPDWORD lpcbSecurityDescriptor, OUT PFILETIME lpftLastWriteTime ); #ifdef UNICODE #define RegQueryInfoKey RegQueryInfoKeyW #else #define RegQueryInfoKey RegQueryInfoKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegQueryValueExA ( IN HKEY hKey, IN LPCSTR lpValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, IN OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); WINADVAPI LONG APIENTRY RegQueryValueExW ( IN HKEY hKey, IN LPCWSTR lpValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, IN OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); #ifdef UNICODE #define RegQueryValueEx RegQueryValueExW #else #define RegQueryValueEx RegQueryValueExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegSetValueExA ( IN HKEY hKey, IN LPCSTR lpValueName, IN DWORD Reserved, IN DWORD dwType, IN CONST BYTE* lpData, IN DWORD cbData ); WINADVAPI LONG APIENTRY RegSetValueExW ( IN HKEY hKey, IN LPCWSTR lpValueName, IN DWORD Reserved, IN DWORD dwType, IN CONST BYTE* lpData, IN DWORD cbData ); #ifdef UNICODE #define RegSetValueEx RegSetValueExW #else #define RegSetValueEx RegSetValueExA #endif // !UNICODE #ifdef __cplusplus } #endif #ifdef WINCEOEM #include #ifdef WINCEMACRO #include // internal defines #endif #endif // @CESYSGEN ENDIF #endif // _WINREG_