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