[PSDK]
[reactos.git] / include / psdk / winreg.h
1 #ifndef _WINREG_H
2 #define _WINREG_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 #define HKEY_CLASSES_ROOT ((HKEY)0x80000000)
8 #define HKEY_CURRENT_USER ((HKEY)0x80000001)
9 #define HKEY_LOCAL_MACHINE ((HKEY)0x80000002)
10 #define HKEY_USERS ((HKEY)0x80000003)
11 #define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004)
12 #define HKEY_CURRENT_CONFIG ((HKEY)0x80000005)
13 #define HKEY_DYN_DATA ((HKEY)0x80000006)
14 #define REG_OPTION_VOLATILE 1
15 #define REG_OPTION_NON_VOLATILE 0
16 #define REG_CREATED_NEW_KEY 1
17 #define REG_OPENED_EXISTING_KEY 2
18 #define REG_NONE 0
19 #define REG_SZ 1
20 #define REG_EXPAND_SZ 2
21 #define REG_BINARY 3
22 #define REG_DWORD_LITTLE_ENDIAN 4
23 #define REG_DWORD 4
24 #define REG_DWORD_BIG_ENDIAN 5
25 #define REG_LINK 6
26 #define REG_MULTI_SZ 7
27 #define REG_RESOURCE_LIST 8
28 #define REG_FULL_RESOURCE_DESCRIPTOR 9
29 #define REG_RESOURCE_REQUIREMENTS_LIST 10
30 #define REG_QWORD_LITTLE_ENDIAN 11
31 #define REG_QWORD 11
32 #define REG_NOTIFY_CHANGE_NAME 1
33 #define REG_NOTIFY_CHANGE_ATTRIBUTES 2
34 #define REG_NOTIFY_CHANGE_LAST_SET 4
35 #define REG_NOTIFY_CHANGE_SECURITY 8
36
37 #define RRF_RT_REG_NONE (1 << 0)
38 #define RRF_RT_REG_SZ (1 << 1)
39 #define RRF_RT_REG_EXPAND_SZ (1 << 2)
40 #define RRF_RT_REG_BINARY (1 << 3)
41 #define RRF_RT_REG_DWORD (1 << 4)
42 #define RRF_RT_REG_MULTI_SZ (1 << 5)
43 #define RRF_RT_REG_QWORD (1 << 6)
44 #define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
45 #define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
46 #define RRF_RT_ANY (0x0000FFFF)
47 #define RRF_NOEXPAND (1 << 28)
48 #define RRF_ZEROONFAILURE (1 << 29)
49
50 #ifndef RC_INVOKED
51 typedef ACCESS_MASK REGSAM;
52 typedef LONG LSTATUS;
53 typedef struct value_entA {
54 LPSTR ve_valuename;
55 DWORD ve_valuelen;
56 DWORD ve_valueptr;
57 DWORD ve_type;
58 } VALENTA,*PVALENTA;
59 typedef struct value_entW {
60 LPWSTR ve_valuename;
61 DWORD ve_valuelen;
62 DWORD ve_valueptr;
63 DWORD ve_type;
64 } VALENTW,*PVALENTW;
65 BOOL WINAPI AbortSystemShutdownA(LPCSTR);
66 BOOL WINAPI AbortSystemShutdownW(LPCWSTR);
67 BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL);
68 BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL);
69 LONG WINAPI RegCloseKey(HKEY);
70 LONG WINAPI RegConnectRegistryA(LPCSTR,HKEY,PHKEY);
71 LONG WINAPI RegConnectRegistryW(LPCWSTR,HKEY,PHKEY);
72 #if (_WIN32_WINNT >= 0x0600)
73 LONG WINAPI RegCopyTreeA(HKEY,LPCSTR,HKEY);
74 LONG WINAPI RegCopyTreeW(HKEY,LPCWSTR,HKEY);
75 #endif
76 LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY);
77 LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
78 LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD);
79 LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY);
80 LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR);
81 LONG WINAPI RegDeleteKeyExA (HKEY,LPCSTR,REGSAM,DWORD);
82 LONG WINAPI RegDeleteKeyExW (HKEY,LPCWSTR,REGSAM,DWORD);
83 #if (_WIN32_WINNT >= 0x0600)
84 LONG WINAPI RegDeleteKeyValueA(HKEY,LPCSTR,LPCSTR);
85 LONG WINAPI RegDeleteKeyValueW(HKEY,LPCWSTR,LPCWSTR);
86 #endif
87 LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR);
88 #if (_WIN32_WINNT >= 0x0600)
89 LONG WINAPI RegDeleteTreeA(HKEY,LPCSTR);
90 LONG WINAPI RegDeleteTreeW(HKEY,LPCWSTR);
91 #endif
92 LONG WINAPI RegDeleteValueA(HKEY,LPCSTR);
93 LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR);
94 #if (_WIN32_WINNT >= 0x0500)
95 LONG WINAPI RegDisablePredefinedCache(VOID);
96 LONG WINAPI RegSaveKeyExA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES,DWORD);
97 LONG WINAPI RegSaveKeyExW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES,DWORD);
98 #endif
99 #if (_WIN32_WINNT >= 0x0600)
100 LONG WINAPI RegDisablePredefinedCacheEx(VOID);
101 LONG WINAPI RegDisableReflectionKey(HKEY);
102 LONG WINAPI RegEnableReflectionKey(HKEY);
103 #endif
104 LONG WINAPI RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
105 LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
106 LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME);
107 LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME);
108 LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
109 LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD);
110 #if (_WIN32_WINNT >= 0x0600)
111 LONG WINAPI RegGetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPDWORD,PVOID,LPDWORD);
112 LONG WINAPI RegGetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPDWORD,PVOID,LPDWORD);
113 #endif
114 LONG WINAPI RegFlushKey(HKEY);
115 LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD);
116 LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
117 LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
118 #if (_WIN32_WINNT >= 0x0600)
119 LONG WINAPI RegLoadMUIStringA(HKEY,LPCSTR,LPSTR,DWORD,LPDWORD,DWORD,LPCSTR);
120 LONG WINAPI RegLoadMUIStringW(HKEY,LPCWSTR,LPWSTR,DWORD,LPDWORD,DWORD,LPCWSTR);
121 #endif
122 LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
123 LONG WINAPI RegOpenCurrentUser(REGSAM,PHKEY);
124 LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY);
125 LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY);
126 LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY);
127 LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY);
128 LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
129 LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME);
130 LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,LPDWORD);
131 LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,LPDWORD);
132 #if (_WIN32_WINNT >= 0x0600)
133 LONG WINAPI RegQueryReflectionKey(HKEY,BOOL*);
134 #endif
135 LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG);
136 LONG WINAPI RegQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
137 LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
138 LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG);
139 LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
140 LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
141 LONG WINAPI RegRestoreKeyA(HKEY,LPCSTR,DWORD);
142 LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
143 LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES);
144 LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES);
145 LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR);
146 #if (_WIN32_WINNT >= 0x0600)
147 LONG WINAPI RegSetKeyValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD);
148 LONG WINAPI RegSetKeyValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD);
149 #endif
150 LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
151 LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD);
152 LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD);
153 LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
154 LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR);
155 LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR);
156
157 #ifdef UNICODE
158 typedef VALENTW VALENT,*PVALENT;
159 #define AbortSystemShutdown AbortSystemShutdownW
160 #define InitiateSystemShutdown InitiateSystemShutdownW
161 #define RegConnectRegistry RegConnectRegistryW
162 #if (_WIN32_WINNT >= 0x0600)
163 #define RegCopyTree RegCopyTreeW
164 #endif
165 #define RegCreateKey RegCreateKeyW
166 #define RegCreateKeyEx RegCreateKeyExW
167 #define RegDeleteKey RegDeleteKeyW
168 #define RegDeleteKeyEx RegDeleteKeyExW
169 #if (_WIN32_WINNT >= 0x0600)
170 #define RegDeleteKeyValue RegDeleteKeyValueW
171 #define RegDeleteTree RegDeleteTreeW
172 #endif
173 #define RegDeleteValue RegDeleteValueW
174 #define RegEnumKey RegEnumKeyW
175 #define RegEnumKeyEx RegEnumKeyExW
176 #define RegEnumValue RegEnumValueW
177 #if (_WIN32_WINNT >= 0x0600)
178 #define RegGetValue RegGetValueW
179 #endif
180 #define RegLoadKey RegLoadKeyW
181 #if (_WIN32_WINNT >= 0x0600)
182 #define RegLoadMUIString RegLoadMUIStringW
183 #endif
184 #define RegOpenKey RegOpenKeyW
185 #define RegOpenKeyEx RegOpenKeyExW
186 #define RegQueryInfoKey RegQueryInfoKeyW
187 #define RegQueryMultipleValues RegQueryMultipleValuesW
188 #define RegQueryValue RegQueryValueW
189 #define RegQueryValueEx RegQueryValueExW
190 #define RegReplaceKey RegReplaceKeyW
191 #define RegRestoreKey RegRestoreKeyW
192 #define RegSaveKey RegSaveKeyW
193 #define RegSaveKeyEx RegSaveKeyExW
194 #if (_WIN32_WINNT >= 0x0600)
195 #define RegSetKeyValue RegSetKeyValueW
196 #endif
197 #define RegSetValue RegSetValueW
198 #define RegSetValueEx RegSetValueExW
199 #define RegUnLoadKey RegUnLoadKeyW
200 #else
201 typedef VALENTA VALENT,*PVALENT;
202 #define AbortSystemShutdown AbortSystemShutdownA
203 #define InitiateSystemShutdown InitiateSystemShutdownA
204 #define RegConnectRegistry RegConnectRegistryA
205 #if (_WIN32_WINNT >= 0x0600)
206 #define RegCopyTree RegCopyTreeA
207 #endif
208 #define RegCreateKey RegCreateKeyA
209 #define RegCreateKeyEx RegCreateKeyExA
210 #define RegDeleteKey RegDeleteKeyA
211 #define RegDeleteKeyEx RegDeleteKeyExA
212 #if (_WIN32_WINNT >= 0x0600)
213 #define RegDeleteKeyValue RegDeleteKeyValueA
214 #define RegDeleteTree RegDeleteTreeA
215 #endif
216 #define RegDeleteValue RegDeleteValueA
217 #define RegEnumKey RegEnumKeyA
218 #define RegEnumKeyEx RegEnumKeyExA
219 #define RegEnumValue RegEnumValueA
220 #if (_WIN32_WINNT >= 0x0600)
221 #define RegGetValue RegGetValueA
222 #endif
223 #define RegLoadKey RegLoadKeyA
224 #if (_WIN32_WINNT >= 0x0600)
225 #define RegLoadMUIString RegLoadMUIStringA
226 #endif
227 #define RegOpenKey RegOpenKeyA
228 #define RegOpenKeyEx RegOpenKeyExA
229 #define RegQueryInfoKey RegQueryInfoKeyA
230 #define RegQueryMultipleValues RegQueryMultipleValuesA
231 #define RegQueryValue RegQueryValueA
232 #define RegQueryValueEx RegQueryValueExA
233 #define RegReplaceKey RegReplaceKeyA
234 #define RegRestoreKey RegRestoreKeyA
235 #define RegSaveKey RegSaveKeyA
236 #define RegSaveKeyEx RegSaveKeyExA
237 #if (_WIN32_WINNT >= 0x0600)
238 #define RegSetKeyValue RegSetKeyValueA
239 #endif
240 #define RegSetValue RegSetValueA
241 #define RegSetValueEx RegSetValueExA
242 #define RegUnLoadKey RegUnLoadKeyA
243 #endif
244 #endif
245 #ifdef __cplusplus
246 }
247 #endif
248 #endif