home *** CD-ROM | disk | FTP | other *** search
- /*++ BUILD Version: 0001 // Increment this if a change has global effects
-
- Copyright (c) 1991-1996 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.
-
- --*/
-
- #ifndef _WINREG_
- #define _WINREG_
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #ifndef WINVER
- #define WINVER 0x0400 // version 4.0
- #endif /* !WINVER */
-
- //
- // 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 )
- #if(WINVER >= 0x0400)
- #define HKEY_CURRENT_CONFIG (( HKEY ) 0x80000005 )
- #define HKEY_DYN_DATA (( HKEY ) 0x80000006 )
-
- /*NOINC*/
- #ifndef _PROVIDER_STRUCTS_DEFINED
- #define _PROVIDER_STRUCTS_DEFINED
-
- #define PROVIDER_KEEPS_VALUE_LENGTH 0x1
- struct val_context {
- int valuelen; // the total length of this value
- LPVOID value_context; // provider's context
- LPVOID val_buff_ptr; // where in the ouput buffer the value is.
- };
-
- typedef struct val_context FAR *PVALCONTEXT;
-
- typedef struct pvalueA { // Provider supplied value/context.
- LPSTR pv_valuename; // The value name pointer
- int pv_valuelen;
- LPVOID pv_value_context;
- DWORD pv_type;
- }PVALUEA, FAR *PPVALUEA;
- typedef struct pvalueW { // Provider supplied value/context.
- LPWSTR pv_valuename; // The value name pointer
- int pv_valuelen;
- LPVOID pv_value_context;
- DWORD pv_type;
- }PVALUEW, FAR *PPVALUEW;
- #ifdef UNICODE
- typedef PVALUEW PVALUE;
- typedef PPVALUEW PPVALUE;
- #else
- typedef PVALUEA PVALUE;
- typedef PPVALUEA PPVALUE;
- #endif // UNICODE
-
- typedef
- DWORD _cdecl
- QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals,
- LPVOID outputbuffer, DWORD FAR *total_outlen, DWORD input_blen);
-
- typedef QUERYHANDLER FAR *PQUERYHANDLER;
-
- typedef struct provider_info {
- PQUERYHANDLER pi_R0_1val;
- PQUERYHANDLER pi_R0_allvals;
- PQUERYHANDLER pi_R3_1val;
- PQUERYHANDLER pi_R3_allvals;
- DWORD pi_flags; // capability flags (none defined yet).
- LPVOID pi_key_context;
- }REG_PROVIDER;
-
- typedef struct provider_info FAR *PPROVIDER;
-
- typedef struct value_entA {
- LPSTR ve_valuename;
- DWORD ve_valuelen;
- DWORD ve_valueptr;
- DWORD ve_type;
- }VALENTA, FAR *PVALENTA;
- typedef struct value_entW {
- LPWSTR ve_valuename;
- DWORD ve_valuelen;
- DWORD ve_valueptr;
- DWORD ve_type;
- }VALENTW, FAR *PVALENTW;
- #ifdef UNICODE
- typedef VALENTW VALENT;
- typedef PVALENTW PVALENT;
- #else
- typedef VALENTA VALENT;
- typedef PVALENTA PVALENT;
- #endif // UNICODE
-
- #endif // not(_PROVIDER_STRUCTS_DEFINED)
- /*INC*/
-
- #endif /* WINVER >= 0x0400 */
-
- //
- // 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 (
- HKEY hKey
- );
-
- WINADVAPI
- LONG
- APIENTRY
- RegConnectRegistryA (
- LPSTR lpMachineName,
- HKEY hKey,
- PHKEY phkResult
- );
- WINADVAPI
- LONG
- APIENTRY
- RegConnectRegistryW (
- LPWSTR lpMachineName,
- HKEY hKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegConnectRegistry RegConnectRegistryW
- #else
- #define RegConnectRegistry RegConnectRegistryA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegCreateKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- PHKEY phkResult
- );
- WINADVAPI
- LONG
- APIENTRY
- RegCreateKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegCreateKey RegCreateKeyW
- #else
- #define RegCreateKey RegCreateKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegCreateKeyExA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD Reserved,
- LPSTR lpClass,
- DWORD dwOptions,
- REGSAM samDesired,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- PHKEY phkResult,
- LPDWORD lpdwDisposition
- );
- WINADVAPI
- 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
-
- WINADVAPI
- LONG
- APIENTRY
- RegDeleteKeyA (
- HKEY hKey,
- LPCSTR lpSubKey
- );
- WINADVAPI
- LONG
- APIENTRY
- RegDeleteKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey
- );
- #ifdef UNICODE
- #define RegDeleteKey RegDeleteKeyW
- #else
- #define RegDeleteKey RegDeleteKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegDeleteValueA (
- HKEY hKey,
- LPCSTR lpValueName
- );
- WINADVAPI
- LONG
- APIENTRY
- RegDeleteValueW (
- HKEY hKey,
- LPCWSTR lpValueName
- );
- #ifdef UNICODE
- #define RegDeleteValue RegDeleteValueW
- #else
- #define RegDeleteValue RegDeleteValueA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegEnumKeyA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpName,
- DWORD cbName
- );
- WINADVAPI
- LONG
- APIENTRY
- RegEnumKeyW (
- HKEY hKey,
- DWORD dwIndex,
- LPWSTR lpName,
- DWORD cbName
- );
- #ifdef UNICODE
- #define RegEnumKey RegEnumKeyW
- #else
- #define RegEnumKey RegEnumKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegEnumKeyExA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpName,
- LPDWORD lpcbName,
- LPDWORD lpReserved,
- LPSTR lpClass,
- LPDWORD lpcbClass,
- PFILETIME lpftLastWriteTime
- );
- WINADVAPI
- 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
-
- WINADVAPI
- LONG
- APIENTRY
- RegEnumValueA (
- HKEY hKey,
- DWORD dwIndex,
- LPSTR lpValueName,
- LPDWORD lpcbValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- WINADVAPI
- 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
-
- WINADVAPI
- LONG
- APIENTRY
- RegFlushKey (
- HKEY hKey
- );
-
- WINADVAPI
- LONG
- APIENTRY
- RegGetKeySecurity (
- HKEY hKey,
- SECURITY_INFORMATION SecurityInformation,
- PSECURITY_DESCRIPTOR pSecurityDescriptor,
- LPDWORD lpcbSecurityDescriptor
- );
-
- WINADVAPI
- LONG
- APIENTRY
- RegLoadKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPCSTR lpFile
- );
- WINADVAPI
- LONG
- APIENTRY
- RegLoadKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPCWSTR lpFile
- );
- #ifdef UNICODE
- #define RegLoadKey RegLoadKeyW
- #else
- #define RegLoadKey RegLoadKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegNotifyChangeKeyValue (
- HKEY hKey,
- BOOL bWatchSubtree,
- DWORD dwNotifyFilter,
- HANDLE hEvent,
- BOOL fAsynchronus
- );
-
- WINADVAPI
- LONG
- APIENTRY
- RegOpenKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- PHKEY phkResult
- );
- WINADVAPI
- LONG
- APIENTRY
- RegOpenKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegOpenKey RegOpenKeyW
- #else
- #define RegOpenKey RegOpenKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegOpenKeyExA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD ulOptions,
- REGSAM samDesired,
- PHKEY phkResult
- );
- WINADVAPI
- LONG
- APIENTRY
- RegOpenKeyExW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- DWORD ulOptions,
- REGSAM samDesired,
- PHKEY phkResult
- );
- #ifdef UNICODE
- #define RegOpenKeyEx RegOpenKeyExW
- #else
- #define RegOpenKeyEx RegOpenKeyExA
- #endif // !UNICODE
-
- WINADVAPI
- 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
- );
- WINADVAPI
- 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
-
- WINADVAPI
- LONG
- APIENTRY
- RegQueryValueA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPSTR lpValue,
- PLONG lpcbValue
- );
- WINADVAPI
- LONG
- APIENTRY
- RegQueryValueW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPWSTR lpValue,
- PLONG lpcbValue
- );
- #ifdef UNICODE
- #define RegQueryValue RegQueryValueW
- #else
- #define RegQueryValue RegQueryValueA
- #endif // !UNICODE
-
- #if(WINVER >= 0x0400)
- WINADVAPI
- LONG
- APIENTRY
- RegQueryMultipleValuesA (
- HKEY hKey,
- PVALENTA val_list,
- DWORD num_vals,
- LPSTR lpValueBuf,
- LPDWORD ldwTotsize
- );
- WINADVAPI
- LONG
- APIENTRY
- RegQueryMultipleValuesW (
- HKEY hKey,
- PVALENTW val_list,
- DWORD num_vals,
- LPWSTR lpValueBuf,
- LPDWORD ldwTotsize
- );
- #ifdef UNICODE
- #define RegQueryMultipleValues RegQueryMultipleValuesW
- #else
- #define RegQueryMultipleValues RegQueryMultipleValuesA
- #endif // !UNICODE
- #endif /* WINVER >= 0x0400 */
-
- WINADVAPI
- LONG
- APIENTRY
- RegQueryValueExA (
- HKEY hKey,
- LPCSTR lpValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- WINADVAPI
- LONG
- APIENTRY
- RegQueryValueExW (
- HKEY hKey,
- LPCWSTR lpValueName,
- LPDWORD lpReserved,
- LPDWORD lpType,
- LPBYTE lpData,
- LPDWORD lpcbData
- );
- #ifdef UNICODE
- #define RegQueryValueEx RegQueryValueExW
- #else
- #define RegQueryValueEx RegQueryValueExA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegReplaceKeyA (
- HKEY hKey,
- LPCSTR lpSubKey,
- LPCSTR lpNewFile,
- LPCSTR lpOldFile
- );
- WINADVAPI
- LONG
- APIENTRY
- RegReplaceKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- LPCWSTR lpNewFile,
- LPCWSTR lpOldFile
- );
- #ifdef UNICODE
- #define RegReplaceKey RegReplaceKeyW
- #else
- #define RegReplaceKey RegReplaceKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegRestoreKeyA (
- HKEY hKey,
- LPCSTR lpFile,
- DWORD dwFlags
- );
- WINADVAPI
- LONG
- APIENTRY
- RegRestoreKeyW (
- HKEY hKey,
- LPCWSTR lpFile,
- DWORD dwFlags
- );
- #ifdef UNICODE
- #define RegRestoreKey RegRestoreKeyW
- #else
- #define RegRestoreKey RegRestoreKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegSaveKeyA (
- HKEY hKey,
- LPCSTR lpFile,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes
- );
- WINADVAPI
- LONG
- APIENTRY
- RegSaveKeyW (
- HKEY hKey,
- LPCWSTR lpFile,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes
- );
- #ifdef UNICODE
- #define RegSaveKey RegSaveKeyW
- #else
- #define RegSaveKey RegSaveKeyA
- #endif // !UNICODE
-
- WINADVAPI
- LONG
- APIENTRY
- RegSetKeySecurity (
- HKEY hKey,
- SECURITY_INFORMATION SecurityInformation,
- PSECURITY_DESCRIPTOR pSecurityDescriptor
- );
-
- WINADVAPI
- LONG
- APIENTRY
- RegSetValueA (
- HKEY hKey,
- LPCSTR lpSubKey,
- DWORD dwType,
- LPCSTR lpData,
- DWORD cbData
- );
- WINADVAPI
- LONG
- APIENTRY
- RegSetValueW (
- HKEY hKey,
- LPCWSTR lpSubKey,
- DWORD dwType,
- LPCWSTR lpData,
- DWORD cbData
- );
- #ifdef UNICODE
- #define RegSetValue RegSetValueW
- #else
- #define RegSetValue RegSetValueA
- #endif // !UNICODE
-
-
- WINADVAPI
- LONG
- APIENTRY
- RegSetValueExA (
- HKEY hKey,
- LPCSTR lpValueName,
- DWORD Reserved,
- DWORD dwType,
- CONST BYTE* lpData,
- DWORD cbData
- );
- WINADVAPI
- 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
-
- WINADVAPI
- LONG
- APIENTRY
- RegUnLoadKeyA (
- HKEY hKey,
- LPCSTR lpSubKey
- );
- WINADVAPI
- LONG
- APIENTRY
- RegUnLoadKeyW (
- HKEY hKey,
- LPCWSTR lpSubKey
- );
- #ifdef UNICODE
- #define RegUnLoadKey RegUnLoadKeyW
- #else
- #define RegUnLoadKey RegUnLoadKeyA
- #endif // !UNICODE
-
- //
- // Remoteable System Shutdown APIs
- //
-
- WINADVAPI
- BOOL
- APIENTRY
- InitiateSystemShutdownA(
- LPSTR lpMachineName,
- LPSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- );
- WINADVAPI
- BOOL
- APIENTRY
- InitiateSystemShutdownW(
- LPWSTR lpMachineName,
- LPWSTR lpMessage,
- DWORD dwTimeout,
- BOOL bForceAppsClosed,
- BOOL bRebootAfterShutdown
- );
- #ifdef UNICODE
- #define InitiateSystemShutdown InitiateSystemShutdownW
- #else
- #define InitiateSystemShutdown InitiateSystemShutdownA
- #endif // !UNICODE
-
-
- WINADVAPI
- BOOL
- APIENTRY
- AbortSystemShutdownA(
- LPSTR lpMachineName
- );
- WINADVAPI
- BOOL
- APIENTRY
- AbortSystemShutdownW(
- LPWSTR lpMachineName
- );
- #ifdef UNICODE
- #define AbortSystemShutdown AbortSystemShutdownW
- #else
- #define AbortSystemShutdown AbortSystemShutdownA
- #endif // !UNICODE
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif // _WINREG_
-