Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 1
/**
2
 * This file has no copyright assigned and is placed in the Public Domain.
3
 * This file is part of the w64 mingw-runtime package.
4
 * No warranty is given; refer to the file DISCLAIMER within this package.
5
 */
6
#ifndef _WINREG_
7
#define _WINREG_
8
 
9
#ifdef __cplusplus
10
extern "C" {
11
#endif
12
 
13
#ifndef WINVER
14
#define WINVER 0x0502
15
#endif
16
 
17
#define RRF_RT_REG_NONE 0x00000001
18
#define RRF_RT_REG_SZ 0x00000002
19
#define RRF_RT_REG_EXPAND_SZ 0x00000004
20
#define RRF_RT_REG_BINARY 0x00000008
21
#define RRF_RT_REG_DWORD 0x00000010
22
#define RRF_RT_REG_MULTI_SZ 0x00000020
23
#define RRF_RT_REG_QWORD 0x00000040
24
 
25
#define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
26
#define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
27
#define RRF_RT_ANY 0x0000ffff
28
 
29
#define RRF_NOEXPAND 0x10000000
30
#define RRF_ZEROONFAILURE 0x20000000
31
 
32
  typedef ACCESS_MASK REGSAM;
33
 
34
#define HKEY_CLASSES_ROOT ((HKEY) (ULONG_PTR)((LONG)0x80000000))
35
#define HKEY_CURRENT_USER ((HKEY) (ULONG_PTR)((LONG)0x80000001))
36
#define HKEY_LOCAL_MACHINE ((HKEY) (ULONG_PTR)((LONG)0x80000002))
37
#define HKEY_USERS ((HKEY) (ULONG_PTR)((LONG)0x80000003))
38
#define HKEY_PERFORMANCE_DATA ((HKEY) (ULONG_PTR)((LONG)0x80000004))
39
#define HKEY_PERFORMANCE_TEXT ((HKEY) (ULONG_PTR)((LONG)0x80000050))
40
#define HKEY_PERFORMANCE_NLSTEXT ((HKEY) (ULONG_PTR)((LONG)0x80000060))
41
#define HKEY_CURRENT_CONFIG ((HKEY) (ULONG_PTR)((LONG)0x80000005))
42
#define HKEY_DYN_DATA ((HKEY) (ULONG_PTR)((LONG)0x80000006))
43
 
44
#define REG_SECURE_CONNECTION 1
45
 
46
#ifndef _PROVIDER_STRUCTS_DEFINED
47
#define _PROVIDER_STRUCTS_DEFINED
48
 
49
#define PROVIDER_KEEPS_VALUE_LENGTH 0x1
50
  struct val_context {
51
    int valuelen;
52
    LPVOID value_context;
53
    LPVOID val_buff_ptr;
54
  };
55
 
56
  typedef struct val_context *PVALCONTEXT;
57
 
58
  typedef struct pvalueA {
59
    LPSTR pv_valuename;
60
    int pv_valuelen;
61
    LPVOID pv_value_context;
62
    DWORD pv_type;
63
  }PVALUEA,*PPVALUEA;
64
 
65
  typedef struct pvalueW {
66
    LPWSTR pv_valuename;
67
    int pv_valuelen;
68
    LPVOID pv_value_context;
69
    DWORD pv_type;
70
  }PVALUEW,*PPVALUEW;
71
 
72
#ifdef UNICODE
73
  typedef PVALUEW PVALUE;
74
  typedef PPVALUEW PPVALUE;
75
#else
76
  typedef PVALUEA PVALUE;
77
  typedef PPVALUEA PPVALUE;
78
#endif
79
 
80
  typedef DWORD __cdecl QUERYHANDLER(LPVOID keycontext,PVALCONTEXT val_list,DWORD num_vals,LPVOID outputbuffer,DWORD *total_outlen,DWORD input_blen);
81
 
82
  typedef QUERYHANDLER *PQUERYHANDLER;
83
 
84
  typedef struct provider_info {
85
    PQUERYHANDLER pi_R0_1val;
86
    PQUERYHANDLER pi_R0_allvals;
87
    PQUERYHANDLER pi_R3_1val;
88
    PQUERYHANDLER pi_R3_allvals;
89
    DWORD pi_flags;
90
    LPVOID pi_key_context;
91
  } REG_PROVIDER;
92
 
93
  typedef struct provider_info *PPROVIDER;
94
 
95
  typedef struct value_entA {
96
    LPSTR ve_valuename;
97
    DWORD ve_valuelen;
98
    DWORD_PTR ve_valueptr;
99
    DWORD ve_type;
100
  } VALENTA,*PVALENTA;
101
 
102
  typedef struct value_entW {
103
    LPWSTR ve_valuename;
104
    DWORD ve_valuelen;
105
    DWORD_PTR ve_valueptr;
106
    DWORD ve_type;
107
  } VALENTW,*PVALENTW;
108
 
109
#ifdef UNICODE
110
  typedef VALENTW VALENT;
111
  typedef PVALENTW PVALENT;
112
#else
113
  typedef VALENTA VALENT;
114
  typedef PVALENTA PVALENT;
115
#endif
116
#endif
117
 
118
#define WIN31_CLASS NULL
119
 
120
#ifdef UNICODE
121
#define RegConnectRegistry RegConnectRegistryW
122
#define RegConnectRegistryEx RegConnectRegistryExW
123
#define RegCreateKey RegCreateKeyW
124
#define RegCreateKeyEx RegCreateKeyExW
125
#define RegDeleteKey RegDeleteKeyW
126
#define RegDeleteKeyEx RegDeleteKeyExW
127
#define RegDeleteValue RegDeleteValueW
128
#define RegEnumKey RegEnumKeyW
129
#define RegEnumKeyEx RegEnumKeyExW
130
#define RegEnumValue RegEnumValueW
131
#define RegLoadKey RegLoadKeyW
132
#define RegOpenKey RegOpenKeyW
133
#define RegOpenKeyEx RegOpenKeyExW
134
#define RegQueryInfoKey RegQueryInfoKeyW
135
#define RegQueryValue RegQueryValueW
136
#define RegQueryMultipleValues RegQueryMultipleValuesW
137
#define RegQueryValueEx RegQueryValueExW
138
#define RegReplaceKey RegReplaceKeyW
139
#define RegRestoreKey RegRestoreKeyW
140
#define RegSaveKey RegSaveKeyW
141
#define RegSetValue RegSetValueW
142
#define RegSetValueEx RegSetValueExW
143
#define RegUnLoadKey RegUnLoadKeyW
144
#define RegGetValue RegGetValueW
145
#define InitiateSystemShutdown InitiateSystemShutdownW
146
#define AbortSystemShutdown AbortSystemShutdownW
147
#else
148
#define RegConnectRegistry RegConnectRegistryA
149
#define RegConnectRegistryEx RegConnectRegistryExA
150
#define RegCreateKey RegCreateKeyA
151
#define RegCreateKeyEx RegCreateKeyExA
152
#define RegDeleteKey RegDeleteKeyA
153
#define RegDeleteKeyEx RegDeleteKeyExA
154
#define RegDeleteValue RegDeleteValueA
155
#define RegEnumKey RegEnumKeyA
156
#define RegEnumKeyEx RegEnumKeyExA
157
#define RegEnumValue RegEnumValueA
158
#define RegLoadKey RegLoadKeyA
159
#define RegOpenKey RegOpenKeyA
160
#define RegOpenKeyEx RegOpenKeyExA
161
#define RegQueryInfoKey RegQueryInfoKeyA
162
#define RegQueryValue RegQueryValueA
163
#define RegQueryMultipleValues RegQueryMultipleValuesA
164
#define RegQueryValueEx RegQueryValueExA
165
#define RegReplaceKey RegReplaceKeyA
166
#define RegRestoreKey RegRestoreKeyA
167
#define RegSaveKey RegSaveKeyA
168
#define RegSetValue RegSetValueA
169
#define RegSetValueEx RegSetValueExA
170
#define RegUnLoadKey RegUnLoadKeyA
171
#define RegGetValue RegGetValueA
172
#define InitiateSystemShutdown InitiateSystemShutdownA
173
#define AbortSystemShutdown AbortSystemShutdownA
174
#endif
175
 
176
  WINADVAPI LONG WINAPI RegCloseKey(HKEY hKey);
177
  WINADVAPI LONG WINAPI RegOverridePredefKey(HKEY hKey,HKEY hNewHKey);
178
  WINADVAPI LONG WINAPI RegOpenUserClassesRoot(HANDLE hToken,DWORD dwOptions,REGSAM samDesired,PHKEY phkResult);
179
  WINADVAPI LONG WINAPI RegOpenCurrentUser(REGSAM samDesired,PHKEY phkResult);
180
  WINADVAPI LONG WINAPI RegDisablePredefinedCache();
181
  WINADVAPI LONG WINAPI RegConnectRegistryA(LPCSTR lpMachineName,HKEY hKey,PHKEY phkResult);
182
  WINADVAPI LONG WINAPI RegConnectRegistryW(LPCWSTR lpMachineName,HKEY hKey,PHKEY phkResult);
183
  WINADVAPI LONG WINAPI RegConnectRegistryExA(LPCSTR lpMachineName,HKEY hKey,ULONG Flags,PHKEY phkResult);
184
  WINADVAPI LONG WINAPI RegConnectRegistryExW(LPCWSTR lpMachineName,HKEY hKey,ULONG Flags,PHKEY phkResult);
185
  WINADVAPI LONG WINAPI RegCreateKeyA(HKEY hKey,LPCSTR lpSubKey,PHKEY phkResult);
186
  WINADVAPI LONG WINAPI RegCreateKeyW(HKEY hKey,LPCWSTR lpSubKey,PHKEY phkResult);
187
  WINADVAPI LONG WINAPI RegCreateKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD Reserved,LPSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
188
  WINADVAPI LONG WINAPI RegCreateKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD Reserved,LPWSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
189
  WINADVAPI LONG WINAPI RegDeleteKeyA(HKEY hKey,LPCSTR lpSubKey);
190
  WINADVAPI LONG WINAPI RegDeleteKeyW(HKEY hKey,LPCWSTR lpSubKey);
191
  WINADVAPI LONG WINAPI RegDeleteKeyExA(HKEY hKey,LPCSTR lpSubKey,REGSAM samDesired,DWORD Reserved);
192
  WINADVAPI LONG WINAPI RegDeleteKeyExW(HKEY hKey,LPCWSTR lpSubKey,REGSAM samDesired,DWORD Reserved);
193
  WINADVAPI LONG WINAPI RegDisableReflectionKey(HKEY hBase);
194
  WINADVAPI LONG WINAPI RegEnableReflectionKey(HKEY hBase);
195
  WINADVAPI LONG WINAPI RegQueryReflectionKey(HKEY hBase,WINBOOL *bIsReflectionDisabled);
196
  WINADVAPI LONG WINAPI RegDeleteValueA(HKEY hKey,LPCSTR lpValueName);
197
  WINADVAPI LONG WINAPI RegDeleteValueW(HKEY hKey,LPCWSTR lpValueName);
198
  WINADVAPI LONG WINAPI RegEnumKeyA(HKEY hKey,DWORD dwIndex,LPSTR lpName,DWORD cchName);
199
  WINADVAPI LONG WINAPI RegEnumKeyW(HKEY hKey,DWORD dwIndex,LPWSTR lpName,DWORD cchName);
200
  WINADVAPI LONG WINAPI RegEnumKeyExA(HKEY hKey,DWORD dwIndex,LPSTR lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPSTR lpClass,LPDWORD lpcchClass,PFILETIME lpftLastWriteTime);
201
  WINADVAPI LONG WINAPI RegEnumKeyExW(HKEY hKey,DWORD dwIndex,LPWSTR lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPWSTR lpClass,LPDWORD lpcchClass,PFILETIME lpftLastWriteTime);
202
  WINADVAPI LONG WINAPI RegEnumValueA(HKEY hKey,DWORD dwIndex,LPSTR lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
203
  WINADVAPI LONG WINAPI RegEnumValueW(HKEY hKey,DWORD dwIndex,LPWSTR lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
204
  WINADVAPI LONG WINAPI RegFlushKey(HKEY hKey);
205
  WINADVAPI LONG WINAPI RegGetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,LPDWORD lpcbSecurityDescriptor);
206
  WINADVAPI LONG WINAPI RegLoadKeyA(HKEY hKey,LPCSTR lpSubKey,LPCSTR lpFile);
207
  WINADVAPI LONG WINAPI RegLoadKeyW(HKEY hKey,LPCWSTR lpSubKey,LPCWSTR lpFile);
208
  WINADVAPI LONG WINAPI RegNotifyChangeKeyValue(HKEY hKey,WINBOOL bWatchSubtree,DWORD dwNotifyFilter,HANDLE hEvent,WINBOOL fAsynchronous);
209
  WINADVAPI LONG WINAPI RegOpenKeyA(HKEY hKey,LPCSTR lpSubKey,PHKEY phkResult);
210
  WINADVAPI LONG WINAPI RegOpenKeyW(HKEY hKey,LPCWSTR lpSubKey,PHKEY phkResult);
211
  WINADVAPI LONG WINAPI RegOpenKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult);
212
  WINADVAPI LONG WINAPI RegOpenKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult);
213
  WINADVAPI LONG WINAPI RegQueryInfoKeyA(HKEY hKey,LPSTR lpClass,LPDWORD lpcchClass,LPDWORD lpReserved,LPDWORD lpcSubKeys,LPDWORD lpcbMaxSubKeyLen,LPDWORD lpcbMaxClassLen,LPDWORD lpcValues,LPDWORD lpcbMaxValueNameLen,LPDWORD lpcbMaxValueLen,LPDWORD lpcbSecurityDescriptor,PFILETIME lpftLastWriteTime);
214
  WINADVAPI LONG WINAPI RegQueryInfoKeyW(HKEY hKey,LPWSTR lpClass,LPDWORD lpcchClass,LPDWORD lpReserved,LPDWORD lpcSubKeys,LPDWORD lpcbMaxSubKeyLen,LPDWORD lpcbMaxClassLen,LPDWORD lpcValues,LPDWORD lpcbMaxValueNameLen,LPDWORD lpcbMaxValueLen,LPDWORD lpcbSecurityDescriptor,PFILETIME lpftLastWriteTime);
215
  WINADVAPI LONG WINAPI RegQueryValueA(HKEY hKey,LPCSTR lpSubKey,LPSTR lpData,PLONG lpcbData);
216
  WINADVAPI LONG WINAPI RegQueryValueW(HKEY hKey,LPCWSTR lpSubKey,LPWSTR lpData,PLONG lpcbData);
217
  WINADVAPI LONG WINAPI RegQueryMultipleValuesA(HKEY hKey,PVALENTA val_list,DWORD num_vals,LPSTR lpValueBuf,LPDWORD ldwTotsize);
218
  WINADVAPI LONG WINAPI RegQueryMultipleValuesW(HKEY hKey,PVALENTW val_list,DWORD num_vals,LPWSTR lpValueBuf,LPDWORD ldwTotsize);
219
  WINADVAPI LONG WINAPI RegQueryValueExA(HKEY hKey,LPCSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
220
  WINADVAPI LONG WINAPI RegQueryValueExW(HKEY hKey,LPCWSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
221
  WINADVAPI LONG WINAPI RegReplaceKeyA(HKEY hKey,LPCSTR lpSubKey,LPCSTR lpNewFile,LPCSTR lpOldFile);
222
  WINADVAPI LONG WINAPI RegReplaceKeyW(HKEY hKey,LPCWSTR lpSubKey,LPCWSTR lpNewFile,LPCWSTR lpOldFile);
223
  WINADVAPI LONG WINAPI RegRestoreKeyA(HKEY hKey,LPCSTR lpFile,DWORD dwFlags);
224
  WINADVAPI LONG WINAPI RegRestoreKeyW(HKEY hKey,LPCWSTR lpFile,DWORD dwFlags);
225
  WINADVAPI LONG WINAPI RegSaveKeyA(HKEY hKey,LPCSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
226
  WINADVAPI LONG WINAPI RegSaveKeyW(HKEY hKey,LPCWSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
227
  WINADVAPI LONG WINAPI RegSetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
228
  WINADVAPI LONG WINAPI RegSetValueA(HKEY hKey,LPCSTR lpSubKey,DWORD dwType,LPCSTR lpData,DWORD cbData);
229
  WINADVAPI LONG WINAPI RegSetValueW(HKEY hKey,LPCWSTR lpSubKey,DWORD dwType,LPCWSTR lpData,DWORD cbData);
230
  WINADVAPI LONG WINAPI RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData);
231
  WINADVAPI LONG WINAPI RegSetValueExW(HKEY hKey,LPCWSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData);
232
  WINADVAPI LONG WINAPI RegUnLoadKeyA(HKEY hKey,LPCSTR lpSubKey);
233
  WINADVAPI LONG WINAPI RegUnLoadKeyW(HKEY hKey,LPCWSTR lpSubKey);
234
  WINADVAPI LONG WINAPI RegGetValueA(HKEY hkey,LPCSTR lpSubKey,LPCSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
235
  WINADVAPI LONG WINAPI RegGetValueW(HKEY hkey,LPCWSTR lpSubKey,LPCWSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
236
  WINADVAPI WINBOOL WINAPI InitiateSystemShutdownA(LPSTR lpMachineName,LPSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown);
237
  WINADVAPI WINBOOL WINAPI InitiateSystemShutdownW(LPWSTR lpMachineName,LPWSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown);
238
  WINADVAPI WINBOOL WINAPI AbortSystemShutdownA(LPSTR lpMachineName);
239
  WINADVAPI WINBOOL WINAPI AbortSystemShutdownW(LPWSTR lpMachineName);
240
 
241
#include 
242
 
243
#define REASON_SWINSTALL SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_INSTALLATION
244
#define REASON_HWINSTALL SHTDN_REASON_MAJOR_HARDWARE|SHTDN_REASON_MINOR_INSTALLATION
245
#define REASON_SERVICEHANG SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_HUNG
246
#define REASON_UNSTABLE SHTDN_REASON_MAJOR_SYSTEM|SHTDN_REASON_MINOR_UNSTABLE
247
#define REASON_SWHWRECONF SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_RECONFIG
248
#define REASON_OTHER SHTDN_REASON_MAJOR_OTHER|SHTDN_REASON_MINOR_OTHER
249
#define REASON_UNKNOWN SHTDN_REASON_UNKNOWN
250
#define REASON_LEGACY_API SHTDN_REASON_LEGACY_API
251
#define REASON_PLANNED_FLAG SHTDN_REASON_FLAG_PLANNED
252
 
253
#define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60)
254
 
255
#ifdef UNICODE
256
#define InitiateSystemShutdownEx InitiateSystemShutdownExW
257
#define RegSaveKeyEx RegSaveKeyExW
258
#else
259
#define InitiateSystemShutdownEx InitiateSystemShutdownExA
260
#define RegSaveKeyEx RegSaveKeyExA
261
#endif
262
 
263
  WINADVAPI WINBOOL WINAPI InitiateSystemShutdownExA(LPSTR lpMachineName,LPSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown,DWORD dwReason);
264
  WINADVAPI WINBOOL WINAPI InitiateSystemShutdownExW(LPWSTR lpMachineName,LPWSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown,DWORD dwReason);
265
  WINADVAPI LONG WINAPI RegSaveKeyExA(HKEY hKey,LPCSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD Flags);
266
  WINADVAPI LONG WINAPI RegSaveKeyExW(HKEY hKey,LPCWSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD Flags);
267
  WINADVAPI LONG WINAPI Wow64Win32ApiEntry (DWORD dwFuncNumber,DWORD dwFlag,DWORD dwRes);
268
 
269
#ifdef __cplusplus
270
}
271
#endif
272
#endif