Mercurial > projects > ddbg_continued
comparison win32/winreg.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:586e4a649642 | 1:4a9dcbd9e54f |
---|---|
1 /***********************************************************************\ | |
2 * winreg.d * | |
3 * * | |
4 * Windows API header module * | |
5 * * | |
6 * Translated from MinGW Windows headers * | |
7 * by Stewart Gordon * | |
8 * * | |
9 * Placed into public domain * | |
10 \***********************************************************************/ | |
11 module win32.winreg; | |
12 pragma(lib, "advapi32.lib"); | |
13 | |
14 private import win32.w32api, win32.winbase, win32.windef; | |
15 | |
16 const HKEY | |
17 HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, | |
18 HKEY_CURRENT_USER = cast(HKEY) 0x80000001, | |
19 HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, | |
20 HKEY_USERS = cast(HKEY) 0x80000003, | |
21 HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, | |
22 HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, | |
23 HKEY_DYN_DATA = cast(HKEY) 0x80000006; | |
24 | |
25 enum : DWORD { | |
26 REG_OPTION_NON_VOLATILE, | |
27 REG_OPTION_VOLATILE | |
28 } | |
29 | |
30 enum : DWORD { | |
31 REG_CREATED_NEW_KEY = 1, | |
32 REG_OPENED_EXISTING_KEY | |
33 } | |
34 | |
35 enum : DWORD { | |
36 REG_NONE = 0, | |
37 REG_SZ, | |
38 REG_EXPAND_SZ, | |
39 REG_BINARY, | |
40 REG_DWORD_LITTLE_ENDIAN, | |
41 REG_DWORD = REG_DWORD_LITTLE_ENDIAN, | |
42 REG_DWORD_BIG_ENDIAN, | |
43 REG_LINK, | |
44 REG_MULTI_SZ, | |
45 REG_RESOURCE_LIST, | |
46 REG_FULL_RESOURCE_DESCRIPTOR, | |
47 REG_RESOURCE_REQUIREMENTS_LIST, | |
48 REG_QWORD_LITTLE_ENDIAN, | |
49 REG_QWORD = REG_QWORD_LITTLE_ENDIAN | |
50 } | |
51 | |
52 const DWORD | |
53 REG_NOTIFY_CHANGE_NAME = 1, | |
54 REG_NOTIFY_CHANGE_ATTRIBUTES = 2, | |
55 REG_NOTIFY_CHANGE_LAST_SET = 4, | |
56 REG_NOTIFY_CHANGE_SECURITY = 8; | |
57 | |
58 alias ACCESS_MASK REGSAM; | |
59 | |
60 struct VALENTA { | |
61 LPSTR ve_valuename; | |
62 DWORD ve_valuelen; | |
63 DWORD ve_valueptr; | |
64 DWORD ve_type; | |
65 } | |
66 alias VALENTA* PVALENTA; | |
67 | |
68 struct VALENTW { | |
69 LPWSTR ve_valuename; | |
70 DWORD ve_valuelen; | |
71 DWORD ve_valueptr; | |
72 DWORD ve_type; | |
73 } | |
74 alias VALENTW* PVALENTW; | |
75 | |
76 // RRF - Registry Routine Flags (for RegGetValue) | |
77 static if (WINVER >= 0x600) { | |
78 enum : DWORD { | |
79 RRF_RT_REG_NONE = 0x00000001, | |
80 RRF_RT_REG_SZ = 0x00000002, | |
81 RRF_RT_REG_EXPAND_SZ = 0x00000004, | |
82 RRF_RT_REG_BINARY = 0x00000008, | |
83 RRF_RT_REG_DWORD = 0x00000010, | |
84 RRF_RT_REG_MULTI_SZ = 0x00000020, | |
85 RRF_RT_REG_QWORD = 0x00000040, | |
86 RRF_RT_DWORD = RRF_RT_REG_BINARY | RRF_RT_REG_DWORD, | |
87 RRF_RT_QWORD = RRF_RT_REG_BINARY | RRF_RT_REG_QWORD, | |
88 RRF_RT_ANY = 0x0000FFFF, | |
89 RRF_NOEXPAND = 0x10000000, | |
90 RRF_ZEROONFAILURE = 0x20000000 | |
91 } | |
92 } | |
93 | |
94 extern (Windows) { | |
95 LONG RegCloseKey(HKEY); | |
96 LONG RegConnectRegistryA(LPCSTR, HKEY, PHKEY); | |
97 LONG RegConnectRegistryW(LPCWSTR, HKEY, PHKEY); | |
98 LONG RegCreateKeyExA(HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, | |
99 LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); | |
100 LONG RegCreateKeyExW(HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, | |
101 LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); | |
102 LONG RegDeleteKeyA(HKEY, LPCSTR); | |
103 LONG RegDeleteKeyW(HKEY, LPCWSTR); | |
104 LONG RegDeleteValueA(HKEY, LPCSTR); | |
105 LONG RegDeleteValueW(HKEY, LPCWSTR); | |
106 LONG RegEnumKeyExA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, LPSTR, PDWORD, | |
107 PFILETIME); | |
108 LONG RegEnumKeyExW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, LPWSTR, PDWORD, | |
109 PFILETIME); | |
110 LONG RegEnumValueA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, PDWORD, LPBYTE, | |
111 PDWORD); | |
112 LONG RegEnumValueW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, PDWORD, LPBYTE, | |
113 PDWORD); | |
114 LONG RegFlushKey(HKEY); | |
115 LONG RegLoadKeyA(HKEY, LPCSTR, LPCSTR); | |
116 LONG RegLoadKeyW(HKEY, LPCWSTR, LPCWSTR); | |
117 LONG RegOpenKeyExA(HKEY, LPCSTR, DWORD, REGSAM, PHKEY); | |
118 LONG RegOpenKeyExW(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY); | |
119 LONG RegQueryInfoKeyA(HKEY, LPSTR, PDWORD, PDWORD, PDWORD, PDWORD, | |
120 PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); | |
121 LONG RegQueryInfoKeyW(HKEY, LPWSTR, PDWORD, PDWORD, PDWORD, PDWORD, | |
122 PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); | |
123 LONG RegQueryMultipleValuesA(HKEY, PVALENTA, DWORD, LPSTR, LPDWORD); | |
124 LONG RegQueryMultipleValuesW(HKEY, PVALENTW, DWORD, LPWSTR, LPDWORD); | |
125 LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); | |
126 LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); | |
127 LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); | |
128 LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); | |
129 LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); | |
130 LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); | |
131 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); | |
132 LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, BYTE*, DWORD); | |
133 LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, BYTE*, DWORD); | |
134 LONG RegUnLoadKeyA(HKEY, LPCSTR); | |
135 LONG RegUnLoadKeyW(HKEY, LPCWSTR); | |
136 static if (_WIN32_WINDOWS >= 0x410) { | |
137 LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); | |
138 } | |
139 | |
140 static if (_WIN32_WINNT_ONLY) { | |
141 BOOL AbortSystemShutdownA(LPCSTR); | |
142 BOOL AbortSystemShutdownW(LPCWSTR); | |
143 BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); | |
144 BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); | |
145 LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, | |
146 PSECURITY_DESCRIPTOR, PDWORD); | |
147 LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); | |
148 LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); | |
149 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, | |
150 PSECURITY_DESCRIPTOR); | |
151 | |
152 static if (_WIN32_WINNT >= 0x500) { | |
153 LONG RegDisablePredefinedCache(); | |
154 LONG RegOpenCurrentUser(REGSAM, PHKEY); | |
155 LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); | |
156 } | |
157 | |
158 static if (_WIN32_WINNT >= 0x501) { | |
159 LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); | |
160 LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); | |
161 } | |
162 | |
163 static if (_WIN32_WINNT >= 0x600) { | |
164 LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, | |
165 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); | |
166 LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, | |
167 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); | |
168 } | |
169 } | |
170 | |
171 deprecated { | |
172 LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); | |
173 LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); | |
174 LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); | |
175 LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); | |
176 LONG RegOpenKeyA(HKEY, LPCSTR, PHKEY); | |
177 LONG RegOpenKeyW(HKEY, LPCWSTR, PHKEY); | |
178 LONG RegQueryValueA(HKEY, LPCSTR, LPSTR, PLONG); | |
179 LONG RegQueryValueW(HKEY, LPCWSTR, LPWSTR, PLONG); | |
180 LONG RegSetValueA(HKEY, LPCSTR, DWORD, LPCSTR, DWORD); | |
181 LONG RegSetValueW(HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD); | |
182 } | |
183 } | |
184 | |
185 version (Unicode) { | |
186 alias VALENTW VALENT; | |
187 alias RegConnectRegistryW RegConnectRegistry; | |
188 alias RegCreateKeyExW RegCreateKeyEx; | |
189 alias RegDeleteKeyW RegDeleteKey; | |
190 alias RegDeleteValueW RegDeleteValue; | |
191 alias RegEnumKeyExW RegEnumKeyEx; | |
192 alias RegEnumValueW RegEnumValue; | |
193 alias RegLoadKeyW RegLoadKey; | |
194 alias RegOpenKeyExW RegOpenKeyEx; | |
195 alias RegQueryInfoKeyW RegQueryInfoKey; | |
196 alias RegQueryMultipleValuesW RegQueryMultipleValues; | |
197 alias RegQueryValueExW RegQueryValueEx; | |
198 alias RegReplaceKeyW RegReplaceKey; | |
199 alias RegSaveKeyW RegSaveKey; | |
200 alias RegSetValueExW RegSetValueEx; | |
201 alias RegUnLoadKeyW RegUnLoadKey; | |
202 | |
203 static if (_WIN32_WINNT_ONLY) { | |
204 alias AbortSystemShutdownW AbortSystemShutdown; | |
205 alias InitiateSystemShutdownW InitiateSystemShutdown; | |
206 alias RegRestoreKeyW RegRestoreKey; | |
207 static if (_WIN32_WINNT >= 0x501) { | |
208 alias RegSaveKeyExA RegSaveKeyEx; | |
209 } | |
210 static if (_WIN32_WINNT >= 0x600) { | |
211 alias RegGetValueW RegGetValue; | |
212 } | |
213 } | |
214 deprecated { | |
215 alias RegCreateKeyW RegCreateKey; | |
216 alias RegEnumKeyW RegEnumKey; | |
217 alias RegOpenKeyW RegOpenKey; | |
218 alias RegQueryValueW RegQueryValue; | |
219 alias RegSetValueW RegSetValue; | |
220 } | |
221 } else { | |
222 alias VALENTA VALENT; | |
223 alias RegConnectRegistryA RegConnectRegistry; | |
224 alias RegCreateKeyExA RegCreateKeyEx; | |
225 alias RegDeleteKeyA RegDeleteKey; | |
226 alias RegDeleteValueA RegDeleteValue; | |
227 alias RegEnumKeyExA RegEnumKeyEx; | |
228 alias RegEnumValueA RegEnumValue; | |
229 alias RegLoadKeyA RegLoadKey; | |
230 alias RegOpenKeyExA RegOpenKeyEx; | |
231 alias RegQueryInfoKeyA RegQueryInfoKey; | |
232 alias RegQueryMultipleValuesA RegQueryMultipleValues; | |
233 alias RegQueryValueExA RegQueryValueEx; | |
234 alias RegReplaceKeyA RegReplaceKey; | |
235 alias RegSaveKeyA RegSaveKey; | |
236 alias RegSetValueExA RegSetValueEx; | |
237 alias RegUnLoadKeyA RegUnLoadKey; | |
238 static if (_WIN32_WINNT_ONLY) { | |
239 alias AbortSystemShutdownA AbortSystemShutdown; | |
240 alias InitiateSystemShutdownA InitiateSystemShutdown; | |
241 alias RegRestoreKeyW RegRestoreKey; | |
242 static if (_WIN32_WINNT >= 0x501) { | |
243 alias RegSaveKeyExA RegSaveKeyEx; | |
244 } | |
245 static if (_WIN32_WINNT >= 0x600) { | |
246 alias RegGetValueA RegGetValue; | |
247 } | |
248 } | |
249 deprecated { | |
250 alias RegCreateKeyA RegCreateKey; | |
251 alias RegEnumKeyA RegEnumKey; | |
252 alias RegOpenKeyA RegOpenKey; | |
253 alias RegQueryValueA RegQueryValue; | |
254 alias RegSetValueA RegSetValue; | |
255 } | |
256 } | |
257 | |
258 alias VALENT* PVALENT; |