/* * winreg.h Win32 registry functions. * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _WINREG_ #define _WINREG_ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #ifdef __cplusplus extern "C" { #endif /* Registry access mask data type */ typedef ACCESS_MASK REGSAM; /* Registry API return value data type */ typedef LONG LSTATUS; /* RegGetValue() flags */ #define RRF_RT_REG_NONE 0x00000001L #define RRF_RT_REG_SZ 0x00000002L #define RRF_RT_REG_EXPAND_SZ 0x00000004L #define RRF_RT_REG_BINARY 0x00000008L #define RRF_RT_REG_DWORD 0x00000010L #define RRF_RT_REG_MULTI_SZ 0x00000020L #define RRF_RT_REG_QWORD 0x00000040L #define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REF_DWORD) #define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REF_QWORD) #define RRF_RT_ANY 0x0000FFFFL #define RRF_NOEXPAND 0x10000000L #define RRF_ZEROONFAILURE 0x20000000L /* RegLoadAppKey() flags */ #define REG_PROCESS_APPKEY 0x00000001L /* RegLoadMUIString() flags */ #define REG_MUI_STRING_TRUNCATE 0x00000001L /* Special key handles */ #define HKEY_CLASSES_ROOT ((HKEY)0x80000000L) #define HKEY_CURRENT_USER ((HKEY)0x80000001L) #define HKEY_LOCAL_MACHINE ((HKEY)0x80000002L) #define HKEY_USERS ((HKEY)0x80000003L) #define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004L) #define HKEY_PERFORMANCE_TEXT ((HKEY)0x80000050L) #define HKEY_PERFORMANCE_NLSTEXT ((HKEY)0x80000060L) #if (WINVER >= 0x0400) #define HKEY_CURRENT_CONFIG ((HKEY)0x80000005L) #define HKEY_DYN_DATA ((HKEY)0x80000006L) #define HKEY_CURRENT_USER_LOCAL_SETTINGS ((HKEY)0x80000007L) #endif /* RegConnectRegistryEx() flags */ #if (WINVER >= 0x0400) #define REG_SECURE_CONNECTION 1L #endif /* Default value for parameters that didn't exist in Win16 */ #define WIN31_CLASS NULL /* Old names for shutdown reason codes */ #define REASON_SWINSTALL \ (SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_INSTALLATION) #define REASON_HWINSTALL \ (SHTDN_REASON_MAJOR_HARDWARE | SHTDN_REASON_MINOR_INSTALLATION) #define REASON_SERVICEHANG (SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_HUNG) #define REASON_UNSTABLE (SHTDN_REASON_MAJOR_SYSTEM | SHTDN_REASON_MINOR_UNSTABLE) #define REASON_SWHWRECONF (SHTDN_REASON_MAJOR_SOFTWARE | SHTDN_REASON_MINOR_RECONFIG) #define REASON_OTHER (SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER) #define REASON_UNKNOWN SHTDN_REASON_UNKNOWN #define REASON_LEGACY_API SHTDN_REASON_LEGACY_API #define REASON_PLANNED_FLAG SHTDN_REASON_FLAG_PLANNED /* Maximum shutdown timeout */ #define MAX_SHUTDOWN_TIMEOUT 315360000L /* Shutdown flags */ #define SHUTDOWN_FORCE_OTHERS 0x00000001L #define SHUTDOWN_FORCE_SELF 0x00000002L #define SHUTDOWN_RESTART 0x00000004L #define SHUTDOWN_POWEROFF 0x00000008L #define SHUTDOWN_NOREBOOT 0x00000010L #define SHUTDOWN_GRACE_OVERRIDE 0x00000020L #define SHUTDOWN_INSTALL_UPDATES 0x00000040L #define SHUTDOWN_RESTARTAPPS 0x00000080L #define SHUTDOWN_SKIP_SVC_PRESHUTDOWN 0x00000100L /* Value context */ #if (WINVER >= 0x0400) struct val_context { int valuelen; LPVOID value_context; LPVOID val_buff_ptr; }; typedef struct val_context * PVALCONTEXT; #endif /* Provider value context */ #if (WINVER >= 0x0400) typedef struct pvalueA { LPSTR pv_valuename; int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; } PVALUEA; typedef PVALUEA *PPVALUEA; typedef struct pvalueW { LPWSTR pv_valuename; int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; } PVALUEW; typedef PVALUEW *PPVALUEW; #ifdef UNICODE typedef PVALUEW PVALUE; typedef PPVALUEW PPVALUE; #else typedef PVALUEA PVALUE; typedef PPVALUEA PPVALUE; #endif #endif /* Query handler callback function */ #if (WINVER >= 0x0400) typedef DWORD (__cdecl QUERYHANDLER)( LPVOID, PVALCONTEXT, DWORD, LPVOID, DWORD *, DWORD ); typedef QUERYHANDLER *PQUERYHANDLER; #endif /* Provider information */ #if (WINVER >= 0x0400) typedef struct provider_info { PQUERYHANDLER pi_R0_1val; PQUERYHANDLER pi_R0_allvals; PQUERYHANDLER pi_R3_1val; PQUERYHANDLER pi_R3_allvals; DWORD pi_flags; LPVOID pi_key_context; } REG_PROVIDER; typedef struct provider_info *PPROVIDER; #endif /* Value entry */ #if (WINVER >= 0x0400) typedef struct value_entA { LPSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; } VALENTA; typedef VALENTA *PVALENTA; typedef struct value_entW { LPWSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; } VALENTW; typedef VALENTW *PVALENTW; #ifdef UNICODE typedef VALENTW VALENT; typedef PVALENTW PVALENT; #else typedef VALENTA VALENT; typedef PVALENTA PVALENT; #endif #endif /* Functions in ADVAPI32.DLL */ WINADVAPI BOOL APIENTRY AbortSystemShutdownA( LPSTR ); WINADVAPI BOOL APIENTRY AbortSystemShutdownW( LPWSTR ); WINADVAPI DWORD APIENTRY InitiateShutdownA( LPSTR, LPSTR, DWORD, DWORD, DWORD ); WINADVAPI DWORD APIENTRY InitiateShutdownW( LPWSTR, LPWSTR, DWORD, DWORD, DWORD ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownA( LPSTR, LPSTR, DWORD, BOOL, BOOL ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownExA( LPSTR, LPSTR, DWORD, BOOL, BOOL, DWORD ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownExW( LPWSTR, LPWSTR, DWORD, BOOL, BOOL, DWORD ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownW( LPWSTR, LPWSTR, DWORD, BOOL, BOOL ); WINADVAPI LSTATUS APIENTRY RegCloseKey( HKEY ); WINADVAPI LSTATUS APIENTRY RegConnectRegistryA( LPCSTR, HKEY, PHKEY ); WINADVAPI LSTATUS APIENTRY RegConnectRegistryExA( LPCSTR, HKEY, ULONG, PHKEY ); WINADVAPI LSTATUS APIENTRY RegConnectRegistryExW( LPCWSTR, HKEY, ULONG, PHKEY ); WINADVAPI LSTATUS APIENTRY RegConnectRegistryW( LPCWSTR, HKEY, PHKEY ); WINADVAPI LSTATUS APIENTRY RegCreateKeyA( HKEY, LPCSTR, PHKEY ); WINADVAPI LSTATUS APIENTRY RegCreateKeyExA( HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, CONST LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegCreateKeyExW( HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, CONST LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegCreateKeyTransactedA( HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, CONST LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegCreateKeyTransactedW( HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, CONST LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegCreateKeyW( HKEY, LPCWSTR, PHKEY ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyA( HKEY, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyExA( HKEY, LPCSTR, REGSAM, DWORD ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyExW( HKEY, LPCWSTR, REGSAM, DWORD ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyTransactedA( HKEY, LPCSTR, REGSAM, DWORD, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyTransactedW( HKEY, LPCWSTR, REGSAM, DWORD, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyW( HKEY, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteValueA( HKEY, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteValueW( HKEY, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegDisablePredefinedCache( VOID ); WINADVAPI LSTATUS APIENTRY RegDisablePredefinedCacheEx( VOID ); WINADVAPI LONG APIENTRY RegDisableReflectionKey( HKEY ); WINADVAPI LONG APIENTRY RegEnableReflectionKey( HKEY ); WINADVAPI LSTATUS APIENTRY RegEnumKeyA( HKEY, DWORD, LPSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegEnumKeyExA( HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPSTR, LPDWORD, PFILETIME ); WINADVAPI LSTATUS APIENTRY RegEnumKeyExW( HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPWSTR, LPDWORD, PFILETIME ); WINADVAPI LSTATUS APIENTRY RegEnumKeyW( HKEY, DWORD, LPWSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegEnumValueA( HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegEnumValueW( HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPBYTE, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegFlushKey( HKEY ); WINADVAPI LSTATUS APIENTRY RegGetKeySecurity( HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegGetValueA( HKEY, LPCSTR, LPCSTR, DWORD, LPDWORD, PVOID, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegGetValueW( HKEY, LPCWSTR, LPCWSTR, DWORD, LPDWORD, PVOID, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegLoadAppKeyA( LPCSTR, PHKEY, REGSAM, DWORD, DWORD ); WINADVAPI LSTATUS APIENTRY RegLoadAppKeyW( LPCWSTR, PHKEY, REGSAM, DWORD, DWORD ); WINADVAPI LSTATUS APIENTRY RegLoadKeyA( HKEY, LPCSTR, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegLoadKeyW( HKEY, LPCWSTR, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegLoadMUIStringA( HKEY, LPCSTR, LPSTR, DWORD, LPDWORD, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegLoadMUIStringW( HKEY, LPCWSTR, LPWSTR, DWORD, LPDWORD, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegNotifyChangeKeyValue( HKEY, BOOL, DWORD, HANDLE, BOOL ); WINADVAPI LSTATUS APIENTRY RegOpenCurrentUser( REGSAM, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOpenKeyA( HKEY, LPCSTR, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOpenKeyExA( HKEY, LPCSTR, DWORD, REGSAM, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOpenKeyExW( HKEY, LPCWSTR, DWORD, REGSAM, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOpenKeyTransactedA( HKEY, LPCSTR, DWORD, REGSAM, PHKEY, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegOpenKeyTransactedW( HKEY, LPCWSTR, DWORD, REGSAM, PHKEY, HANDLE, PVOID ); WINADVAPI LSTATUS APIENTRY RegOpenKeyW( HKEY, LPCWSTR, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOpenUserClassesRoot( HANDLE, DWORD, REGSAM, PHKEY ); WINADVAPI LSTATUS APIENTRY RegOverridePredefKey( HKEY, HKEY ); WINADVAPI LSTATUS APIENTRY RegQueryInfoKeyA( HKEY, LPSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME ); WINADVAPI LSTATUS APIENTRY RegQueryInfoKeyW( HKEY, LPWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPDWORD, PFILETIME ); WINADVAPI LONG APIENTRY RegQueryReflectionKey( HKEY, BOOL * ); WINADVAPI LSTATUS APIENTRY RegQueryValueA( HKEY, LPCSTR, LPSTR, PLONG ); WINADVAPI LSTATUS APIENTRY RegQueryValueExA( HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegQueryValueExW( HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegQueryValueW( HKEY, LPCWSTR, LPWSTR, PLONG ); WINADVAPI LSTATUS APIENTRY RegReplaceKeyA( HKEY, LPCSTR, LPCSTR, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegReplaceKeyW( HKEY, LPCWSTR, LPCWSTR, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegRestoreKeyA( HKEY, LPCSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegRestoreKeyW( HKEY, LPCWSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegSaveKeyA( HKEY, LPCSTR, LPSECURITY_ATTRIBUTES ); WINADVAPI LSTATUS APIENTRY RegSaveKeyExA( HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD ); WINADVAPI LSTATUS APIENTRY RegSaveKeyExW( HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD ); WINADVAPI LSTATUS APIENTRY RegSaveKeyW( HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES ); WINADVAPI LSTATUS APIENTRY RegSetKeySecurity( HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR ); WINADVAPI LSTATUS APIENTRY RegSetValueA( HKEY, LPCSTR, DWORD, LPCSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegSetValueExA( HKEY, LPCSTR, DWORD, DWORD, CONST BYTE *, DWORD ); WINADVAPI LSTATUS APIENTRY RegSetValueExW( HKEY, LPCWSTR, DWORD, DWORD, CONST BYTE *, DWORD ); WINADVAPI LSTATUS APIENTRY RegSetValueW( HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD ); WINADVAPI LSTATUS APIENTRY RegUnLoadKeyA( HKEY, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegUnLoadKeyW( HKEY, LPCWSTR ); #if (WINVER >= 0x0400) WINADVAPI LSTATUS APIENTRY RegQueryMultipleValuesA( HKEY, PVALENTA, DWORD, LPSTR, LPDWORD ); WINADVAPI LSTATUS APIENTRY RegQueryMultipleValuesW( HKEY, PVALENTW, DWORD, LPWSTR, LPDWORD ); #endif #if (WINVER >= 0x0600) WINADVAPI LSTATUS APIENTRY RegRenameKey( HKEY, LPCWSTR, LPCWSTR ); #endif #if (_WIN32_WINNT >= 0x0600) WINADVAPI LSTATUS APIENTRY RegCopyTreeA( HKEY, LPCSTR, HKEY ); WINADVAPI LSTATUS APIENTRY RegCopyTreeW( HKEY, LPCWSTR, HKEY ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyValueA( HKEY, LPCSTR, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteKeyValueW( HKEY, LPCWSTR, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteTreeA( HKEY, LPCSTR ); WINADVAPI LSTATUS APIENTRY RegDeleteTreeW( HKEY, LPCWSTR ); WINADVAPI LSTATUS APIENTRY RegSetKeyValueA( HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD ); WINADVAPI LSTATUS APIENTRY RegSetKeyValueW( HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD ); #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define AbortSystemShutdown AbortSystemShutdownW #define InitiateShutdown InitiateShutdownW #define InitiateSystemShutdown InitiateSystemShutdownW #define InitiateSystemShutdownEx InitiateSystemShutdownExW #define RegConnectRegistry RegConnectRegistryW #define RegConnectRegistryEx RegConnectRegistryExW #define RegCreateKey RegCreateKeyW #define RegCreateKeyEx RegCreateKeyExW #define RegCreateKeyTransacted RegCreateKeyTransactedW #define RegDeleteKey RegDeleteKeyW #define RegDeleteKeyEx RegDeleteKeyExW #define RegDeleteKeyTransacted RegDeleteKeyTransactedW #define RegDeleteValue RegDeleteValueW #define RegEnumKey RegEnumKeyW #define RegEnumKeyEx RegEnumKeyExW #define RegEnumValue RegEnumValueW #define RegGetValue RegGetValueW #define RegLoadAppKey RegLoadAppKeyW #define RegLoadKey RegLoadKeyW #define RegLoadMUIString RegLoadMUIStringW #define RegOpenKey RegOpenKeyW #define RegOpenKeyEx RegOpenKeyExW #define RegOpenKeyTransacted RegOpenKeyTransactedW #define RegQueryInfoKey RegQueryInfoKeyW #define RegQueryValue RegQueryValueW #define RegQueryValueEx RegQueryValueExW #define RegReplaceKey RegReplaceKeyW #define RegRestoreKey RegRestoreKeyW #define RegSaveKey RegSaveKeyW #define RegSaveKeyEx RegSaveKeyExW #define RegSetValue RegSetValueW #define RegSetValueEx RegSetValueExW #define RegUnLoadKey RegUnLoadKeyW #if (WINVER >= 0x0400) #define RegQueryMultipleValues RegQueryMultipleValuesW #endif #if (_WIN32_WINNT >= 0x0600) #define RegCopyTree RegCopyTreeW #define RegDeleteKeyValue RegDeleteKeyValueW #define RegDeleteTree RegDeleteTreeW #define RegSetKeyValue RegSetKeyValueW #endif #else #define AbortSystemShutdown AbortSystemShutdownA #define InitiateShutdown InitiateShutdownA #define InitiateSystemShutdown InitiateSystemShutdownA #define InitiateSystemShutdownEx InitiateSystemShutdownExA #define RegConnectRegistry RegConnectRegistryA #define RegConnectRegistryEx RegConnectRegistryExA #define RegCreateKey RegCreateKeyA #define RegCreateKeyEx RegCreateKeyExA #define RegCreateKeyTransacted RegCreateKeyTransactedA #define RegDeleteKey RegDeleteKeyA #define RegDeleteKeyEx RegDeleteKeyExA #define RegDeleteKeyTransacted RegDeleteKeyTransactedA #define RegDeleteValue RegDeleteValueA #define RegEnumKey RegEnumKeyA #define RegEnumKeyEx RegEnumKeyExA #define RegEnumValue RegEnumValueA #define RegGetValue RegGetValueA #define RegLoadAppKey RegLoadAppKeyA #define RegLoadKey RegLoadKeyA #define RegLoadMUIString RegLoadMUIStringA #define RegOpenKey RegOpenKeyA #define RegOpenKeyEx RegOpenKeyExA #define RegOpenKeyTransacted RegOpenKeyTransactedA #define RegQueryInfoKey RegQueryInfoKeyA #define RegQueryValue RegQueryValueA #define RegQueryValueEx RegQueryValueExA #define RegReplaceKey RegReplaceKeyA #define RegRestoreKey RegRestoreKeyA #define RegSaveKey RegSaveKeyA #define RegSaveKeyEx RegSaveKeyExA #define RegSetValue RegSetValueA #define RegSetValueEx RegSetValueExA #define RegUnLoadKey RegUnLoadKeyA #if (WINVER >= 0x0400) #define RegQueryMultipleValues RegQueryMultipleValuesA #endif #if (_WIN32_WINNT >= 0x0600) #define RegCopyTree RegCopyTreeA #define RegDeleteKeyValue RegDeleteKeyValueA #define RegDeleteTree RegDeleteTreeA #define RegSetKeyValue RegSetKeyValueA #endif #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _WINREG_ */