home *** CD-ROM | disk | FTP | other *** search
- /*++ BUILD Version: 0001 // Increment this if a change has global effects
-
- Copyright (c) 1991 Microsoft Corporation
-
- Module Name:
-
- Winreg.h
-
- Abstract:
-
- This module contains the function prototypes and constant, type and
- structure definitions for the Windows 32-Bit Registry API.
-
- Author:
-
- David J. Gilman (davegi) 07-Nov-1991
-
- --*/
-
- #ifndef __WINREG_H
- #define __WINREG_H
-
- #ifndef __WINBASE_H
- #include <winbase.h>
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- //
- // Requested Key access mask type.
- //
-
- typedef ACCESS_MASK REGSAM;
-
- //
- // Type definitions.
- //
-
- DECLARE_HANDLE(HKEY);
- typedef HKEY *PHKEY;
-
- //
- // Reserved Key Handles.
- //
-
- #define HKEY_CLASSES_ROOT (( HKEY ) 0x80000000 )
- #define HKEY_CURRENT_USER (( HKEY ) 0x80000001 )
- #define HKEY_LOCAL_MACHINE (( HKEY ) 0x80000002 )
- #define HKEY_USERS (( HKEY ) 0x80000003 )
- #define HKEY_PERFORMANCE_DATA (( HKEY ) 0x80000004 )
-
- //
- // Default values for parameters that do not exist in the Win 3.1
- // compatible APIs.
- //
-
- #define WIN31_CLASS NULL
-
- //
- // API Prototypes.
- //
-
-
- LONG
- APIENTRY
- RegCloseKey (
- HKEY hKey
- );
-
- LONG
- APIENTRY
- RegConnectRegistryA (
- LPSTR lpMachineName,
- HKEY hKey,
- PHKEY phkResult
- );
- LONG
- APIENTRY
- RegConnectRegistryW (
- LPWSTR lpMachineName,
- HKEY hKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegConnectRegistry RegConnectRegistryW
- #else
- #define RegConnectRegistry RegConnectRegistryA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegCreateKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- PHKEY phkResult
- );
- LONG
- APIENTRY
- RegCreateKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegCreateKey RegCreateKeyW
- #else
- #define RegCreateKey RegCreateKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegCreateKeyExA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD Reserved,
- LPSTR lpClass,
- DWORD dwOptions,
- REGSAM samDesired,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- PHKEY phkResult,
- LPDWORD lpdwDisposition
- );
- LONG
- APIENTRY
- RegCreateKeyExW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- DWORD Reserved,
- LPWSTR lpClass,
- DWORD dwOptions,
- REGSAM samDesired,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- PHKEY phkResult,
- LPDWORD lpdwDisposition
- );
- #ifdef UNICODE
- #define RegCreateKeyEx RegCreateKeyExW
- #else
- #define RegCreateKeyEx RegCreateKeyExA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegDeleteKeyA (
- HKEY hKey,
- LPCSTR lpSubKey
- );
- LONG
- APIENTRY
- RegDeleteKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey
- );
- #ifdef UNICODE
- #define RegDeleteKey RegDeleteKeyW
- #else
- #define RegDeleteKey RegDeleteKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegDeleteValueA (
- HKEY hKey,
- LPSTR lpValueName
- );
- LONG
- APIENTRY
- RegDeleteValueW (
- HKEY hKey,
- LPWSTR lpValueName
- );
- #ifdef UNICODE
- #define RegDeleteValue RegDeleteValueW
- #else
- #define RegDeleteValue RegDeleteValueA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegEnumKeyA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpName,
- DWORD cbName
- );
- LONG
- APIENTRY
- RegEnumKeyW (
- HKEY hKey,
- DWORD dwIndex,
- LPWSTR lpName,
- DWORD cbName
- );
- #ifdef UNICODE
- #define RegEnumKey RegEnumKeyW
- #else
- #define RegEnumKey RegEnumKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegEnumKeyExA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpName,
- LPDWORD lpcbName,
- LPDWORD lpReserved,
- LPSTR lpClass,
- LPDWORD lpcbClass,
- PFILETIME lpftLastWriteTime
- );
- LONG
- APIENTRY
- RegEnumKeyExW (
- HKEY hKey,
- DWORD dwIndex,
- LPWSTR lpName,
- LPDWORD lpcbName,
- LPDWORD lpReserved,
- LPWSTR lpClass,
- LPDWORD lpcbClass,
- PFILETIME lpftLastWriteTime
- );
- #ifdef UNICODE
- #define RegEnumKeyEx RegEnumKeyExW
- #else
- #define RegEnumKeyEx RegEnumKeyExA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegEnumValueA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpValueName,
- LPDWORD lpcbValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- LONG
- APIENTRY
- RegEnumValueW (
- HKEY hKey,
- DWORD dwIndex,
- LPWSTR lpValueName,
- LPDWORD lpcbValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- #ifdef UNICODE
- #define RegEnumValue RegEnumValueW
- #else
- #define RegEnumValue RegEnumValueA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegFlushKey (
- HKEY hKey
- );
-
- LONG
- APIENTRY
- RegGetKeySecurity (
- HKEY hKey,
- SECURITY_INFORMATION SecurityInformation,
- PSECURITY_DESCRIPTOR pSecurityDescriptor,
- LPDWORD lpcbSecurityDescriptor
- );
-
- LONG
- APIENTRY
- RegLoadKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPCSTR lpFile
- );
- LONG
- APIENTRY
- RegLoadKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPCWSTR lpFile
- );
- #ifdef UNICODE
- #define RegLoadKey RegLoadKeyW
- #else
- #define RegLoadKey RegLoadKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegNotifyChangeKeyValue (
- HKEY hKey,
- BOOL bWatchSubtree,
- DWORD dwNotifyFilter,
- HANDLE hEvent,
- BOOL fAsynchronus
- );
-
- LONG
- APIENTRY
- RegOpenKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- PHKEY phkResult
- );
- LONG
- APIENTRY
- RegOpenKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegOpenKey RegOpenKeyW
- #else
- #define RegOpenKey RegOpenKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegOpenKeyExA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD ulOptions,
- REGSAM samDesired,
- PHKEY phkResult
- );
- LONG
- APIENTRY
- RegOpenKeyExW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- DWORD ulOptions,
- REGSAM samDesired,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegOpenKeyEx RegOpenKeyExW
- #else
- #define RegOpenKeyEx RegOpenKeyExA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegQueryInfoKeyA (
- HKEY hKey,
- LPSTR lpClass,
- LPDWORD lpcbClass,
- LPDWORD lpReserved,
- LPDWORD lpcSubKeys,
- LPDWORD lpcbMaxSubKeyLen,
- LPDWORD lpcbMaxClassLen,
- LPDWORD lpcValues,
- LPDWORD lpcbMaxValueNameLen,
- LPDWORD lpcbMaxValueLen,
- LPDWORD lpcbSecurityDescriptor,
- PFILETIME lpftLastWriteTime
- );
- LONG
- APIENTRY
- RegQueryInfoKeyW (
- HKEY hKey,
- LPWSTR lpClass,
- LPDWORD lpcbClass,
- LPDWORD lpReserved,
- LPDWORD lpcSubKeys,
- LPDWORD lpcbMaxSubKeyLen,
- LPDWORD lpcbMaxClassLen,
- LPDWORD lpcValues,
- LPDWORD lpcbMaxValueNameLen,
- LPDWORD lpcbMaxValueLen,
- LPDWORD lpcbSecurityDescriptor,
- PFILETIME lpftLastWriteTime
- );
- #ifdef UNICODE
- #define RegQueryInfoKey RegQueryInfoKeyW
- #else
- #define RegQueryInfoKey RegQueryInfoKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegQueryValueA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPSTR lpValue,
- PLONG lpcbValue
- );
- LONG
- APIENTRY
- RegQueryValueW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPWSTR lpValue,
- PLONG lpcbValue
- );
- #ifdef UNICODE
- #define RegQueryValue RegQueryValueW
- #else
- #define RegQueryValue RegQueryValueA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegQueryValueExA (
- HKEY hKey,
- LPSTR lpValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- LONG
- APIENTRY
- RegQueryValueExW (
- HKEY hKey,
- LPWSTR lpValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- #ifdef UNICODE
- #define RegQueryValueEx RegQueryValueExW
- #else
- #define RegQueryValueEx RegQueryValueExA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegReplaceKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPCSTR lpNewFile,
- LPCSTR lpOldFile
- );
- LONG
- APIENTRY
- RegReplaceKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPCWSTR lpNewFile,
- LPCWSTR lpOldFile
- );
- #ifdef UNICODE
- #define RegReplaceKey RegReplaceKeyW
- #else
- #define RegReplaceKey RegReplaceKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegRestoreKeyA (
- HKEY hKey,
- LPCSTR lpFile,
- DWORD dwFlags
- );
- LONG
- APIENTRY
- RegRestoreKeyW (
- HKEY hKey,
- LPCWSTR lpFile,
- DWORD dwFlags
- );
- #ifdef UNICODE
- #define RegRestoreKey RegRestoreKeyW
- #else
- #define RegRestoreKey RegRestoreKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegSaveKeyA (
- HKEY hKey,
- LPCSTR lpFile,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes
- );
- LONG
- APIENTRY
- RegSaveKeyW (
- HKEY hKey,
- LPCWSTR lpFile,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes
- );
- #ifdef UNICODE
- #define RegSaveKey RegSaveKeyW
- #else
- #define RegSaveKey RegSaveKeyA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegSetKeySecurity (
- HKEY hKey,
- SECURITY_INFORMATION SecurityInformation,
- PSECURITY_DESCRIPTOR pSecurityDescriptor
- );
-
- LONG
- APIENTRY
- RegSetValueA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD dwType,
- LPCSTR lpData,
- DWORD cbData
- );
- LONG
- APIENTRY
- RegSetValueW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- DWORD dwType,
- LPCWSTR lpData,
- DWORD cbData
- );
- #ifdef UNICODE
- #define RegSetValue RegSetValueW
- #else
- #define RegSetValue RegSetValueA
- #endif // !UNICODE
-
-
- LONG
- APIENTRY
- RegSetValueExA (
- HKEY hKey,
- LPCSTR lpValueName,
- DWORD Reserved,
- DWORD dwType,
- CONST BYTE* lpData,
- DWORD cbData
- );
- LONG
- APIENTRY
- RegSetValueExW (
- HKEY hKey,
- LPCWSTR lpValueName,
- DWORD Reserved,
- DWORD dwType,
- CONST BYTE* lpData,
- DWORD cbData
- );
- #ifdef UNICODE
- #define RegSetValueEx RegSetValueExW
- #else
- #define RegSetValueEx RegSetValueExA
- #endif // !UNICODE
-
- LONG
- APIENTRY
- RegUnLoadKeyA (
- HKEY hKey,
- LPCSTR lpSubKey
- );
- LONG
- APIENTRY
- RegUnLoadKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey
- );
- #ifdef UNICODE
- #define RegUnLoadKey RegUnLoadKeyW
- #else
- #define RegUnLoadKey RegUnLoadKeyA
- #endif // !UNICODE
-
- //
- // Remoteable System Shutdown APIs
- //
-
- BOOL
- APIENTRY
- InitiateSystemShutdownA(
- LPSTR lpMachineName,
- LPSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- );
- BOOL
- APIENTRY
- InitiateSystemShutdownW(
- LPWSTR lpMachineName,
- LPWSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- );
- #ifdef UNICODE
- #define InitiateSystemShutdown InitiateSystemShutdownW
- #else
- #define InitiateSystemShutdown InitiateSystemShutdownA
- #endif // !UNICODE
-
-
- BOOL
- APIENTRY
- AbortSystemShutdownA(
- LPSTR lpMachineName
- );
- BOOL
- APIENTRY
- AbortSystemShutdownW(
- LPWSTR lpMachineName
- );
- #ifdef UNICODE
- #define AbortSystemShutdown AbortSystemShutdownW
- #else
- #define AbortSystemShutdown AbortSystemShutdownA
- #endif // !UNICODE
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // _WINREG_
-