diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/winreg.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'public/sdk/inc/winreg.h')
-rw-r--r-- | public/sdk/inc/winreg.h | 779 |
1 files changed, 779 insertions, 0 deletions
diff --git a/public/sdk/inc/winreg.h b/public/sdk/inc/winreg.h new file mode 100644 index 000000000..0eb8fe06f --- /dev/null +++ b/public/sdk/inc/winreg.h @@ -0,0 +1,779 @@ +/*++ 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_ |