10 #define HKEY_CLASSES_ROOT ((HKEY)(LONG_PTR)(LONG)0x80000000)
11 #define HKEY_CURRENT_USER ((HKEY)(LONG_PTR)(LONG)0x80000001)
12 #define HKEY_LOCAL_MACHINE ((HKEY)(LONG_PTR)(LONG)0x80000002)
13 #define HKEY_USERS ((HKEY)(LONG_PTR)(LONG)0x80000003)
14 #define HKEY_PERFORMANCE_DATA ((HKEY)(LONG_PTR)(LONG)0x80000004)
15 #define HKEY_CURRENT_CONFIG ((HKEY)(LONG_PTR)(LONG)0x80000005)
16 #define HKEY_DYN_DATA ((HKEY)(LONG_PTR)(LONG)0x80000006)
17 #define HKEY_PERFORMANCE_TEXT ((HKEY)(LONG_PTR)(LONG)0x80000050)
18 #define HKEY_PERFORMANCE_NLSTEXT ((HKEY)(LONG_PTR)(LONG)0x80000060)
20 #define REG_OPTION_VOLATILE 1
21 #define REG_OPTION_NON_VOLATILE 0
22 #define REG_CREATED_NEW_KEY 1
23 #define REG_OPENED_EXISTING_KEY 2
26 #define REG_EXPAND_SZ 2
28 #define REG_DWORD_LITTLE_ENDIAN 4
30 #define REG_DWORD_BIG_ENDIAN 5
32 #define REG_MULTI_SZ 7
33 #define REG_RESOURCE_LIST 8
34 #define REG_FULL_RESOURCE_DESCRIPTOR 9
35 #define REG_RESOURCE_REQUIREMENTS_LIST 10
36 #define REG_QWORD_LITTLE_ENDIAN 11
38 #define REG_NOTIFY_CHANGE_NAME 1
39 #define REG_NOTIFY_CHANGE_ATTRIBUTES 2
40 #define REG_NOTIFY_CHANGE_LAST_SET 4
41 #define REG_NOTIFY_CHANGE_SECURITY 8
43 /* Shutdown flags for InitiateShutdownA/W */
44 #define SHUTDOWN_FORCE_OTHERS 0x00000001
45 #define SHUTDOWN_FORCE_SELF 0x00000002
46 #define SHUTDOWN_GRACE_OVERRIDE 0x00000020
47 #define SHUTDOWN_INSTALL_UPDATES 0x00000040
48 #define SHUTDOWN_NOREBOOT 0x00000010
49 #define SHUTDOWN_POWEROFF 0x00000008
50 #define SHUTDOWN_RESTART 0x00000004
51 #define SHUTDOWN_RESTARTAPPS 0x00000080
53 #define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60)
55 #define RRF_RT_REG_NONE (1 << 0)
56 #define RRF_RT_REG_SZ (1 << 1)
57 #define RRF_RT_REG_EXPAND_SZ (1 << 2)
58 #define RRF_RT_REG_BINARY (1 << 3)
59 #define RRF_RT_REG_DWORD (1 << 4)
60 #define RRF_RT_REG_MULTI_SZ (1 << 5)
61 #define RRF_RT_REG_QWORD (1 << 6)
62 #define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
63 #define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
64 #define RRF_RT_ANY (0x0000FFFF)
65 #define RRF_NOEXPAND (1 << 28)
66 #define RRF_ZEROONFAILURE (1 << 29)
69 typedef ACCESS_MASK REGSAM
;
70 typedef _Return_type_success_(return==ERROR_SUCCESS
) LONG LSTATUS
;
71 typedef struct value_entA
{
77 typedef struct value_entW
{
84 BOOL WINAPI
AbortSystemShutdownA(_In_opt_ LPCSTR
);
85 BOOL WINAPI
AbortSystemShutdownW(_In_opt_ LPCWSTR
);
87 #if (_WIN32_WINNT >= 0x0600)
88 DWORD WINAPI
InitiateShutdownA(_In_opt_ LPSTR
, _In_opt_ LPSTR
, _In_ DWORD
, _In_ DWORD
, _In_ DWORD
);
89 DWORD WINAPI
InitiateShutdownW(_In_opt_ LPWSTR
, _In_opt_ LPWSTR
, _In_ DWORD
, _In_ DWORD
, _In_ DWORD
);
92 BOOL WINAPI
InitiateSystemShutdownA(_In_opt_ LPSTR
, _In_opt_ LPSTR
, _In_ DWORD
, _In_ BOOL
, _In_ BOOL
);
93 BOOL WINAPI
InitiateSystemShutdownW(_In_opt_ LPWSTR
, _In_opt_ LPWSTR
, _In_ DWORD
, _In_ BOOL
, _In_ BOOL
);
94 BOOL WINAPI
InitiateSystemShutdownExA(_In_opt_ LPSTR
, _In_opt_ LPSTR
, _In_ DWORD
, _In_ BOOL
, _In_ BOOL
, _In_ DWORD
);
95 BOOL WINAPI
InitiateSystemShutdownExW(_In_opt_ LPWSTR
, _In_opt_ LPWSTR
, _In_ DWORD
, _In_ BOOL
, _In_ BOOL
, _In_ DWORD
);
96 LSTATUS WINAPI
RegCloseKey(_In_ HKEY
);
97 LSTATUS WINAPI
RegConnectRegistryA(_In_opt_ LPCSTR
, _In_ HKEY
, _Out_ PHKEY
);
98 LSTATUS WINAPI
RegConnectRegistryW(_In_opt_ LPCWSTR
,_In_ HKEY
, _Out_ PHKEY
);
100 #if (_WIN32_WINNT >= 0x0600)
101 LSTATUS WINAPI
RegCopyTreeA(_In_ HKEY
, _In_opt_ LPCSTR
, _In_ HKEY
);
102 LSTATUS WINAPI
RegCopyTreeW(_In_ HKEY
, _In_opt_ LPCWSTR
, _In_ HKEY
);
105 LSTATUS WINAPI
RegCreateKeyA(_In_ HKEY
, _In_opt_ LPCSTR
, _Out_ PHKEY
);
106 LSTATUS WINAPI
RegCreateKeyW(_In_ HKEY
, _In_opt_ LPCWSTR
, _Out_ PHKEY
);
107 LSTATUS WINAPI
RegCreateKeyExA(_In_ HKEY
, _In_ LPCSTR
, _Reserved_ DWORD
, _In_opt_ LPSTR
, _In_ DWORD
, _In_ REGSAM
, _In_opt_ LPSECURITY_ATTRIBUTES
, _Out_ PHKEY
, _Out_opt_ PDWORD
);
108 LSTATUS WINAPI
RegCreateKeyExW(_In_ HKEY
, _In_ LPCWSTR
, _Reserved_ DWORD
, _In_opt_ LPWSTR
, _In_ DWORD
, _In_ REGSAM
, _In_opt_ LPSECURITY_ATTRIBUTES
, _Out_ PHKEY
, _Out_opt_ PDWORD
);
109 LSTATUS WINAPI
RegDeleteKeyA(_In_ HKEY
, _In_ LPCSTR
);
110 LSTATUS WINAPI
RegDeleteKeyW(_In_ HKEY
, _In_ LPCWSTR
);
111 LSTATUS WINAPI
RegDeleteKeyExA(_In_ HKEY
, _In_ LPCSTR
, _In_ REGSAM
, _Reserved_ DWORD
);
112 LSTATUS WINAPI
RegDeleteKeyExW(_In_ HKEY
, _In_ LPCWSTR
, _In_ REGSAM
, _Reserved_ DWORD
);
114 #if (_WIN32_WINNT >= 0x0600)
115 LSTATUS WINAPI
RegDeleteKeyValueA(_In_ HKEY
, _In_opt_ LPCSTR
, _In_opt_ LPCSTR
);
116 LSTATUS WINAPI
RegDeleteKeyValueW(_In_ HKEY
, _In_opt_ LPCWSTR
, _In_opt_ LPCWSTR
);
117 LSTATUS WINAPI
RegDeleteTreeA(_In_ HKEY
, _In_opt_ LPCSTR
);
118 LSTATUS WINAPI
RegDeleteTreeW(_In_ HKEY
, _In_opt_ LPCWSTR
);
121 LSTATUS WINAPI
RegDeleteValueA(_In_ HKEY
, _In_opt_ LPCSTR
);
122 LSTATUS WINAPI
RegDeleteValueW(_In_ HKEY
, _In_opt_ LPCWSTR
);
124 #if (_WIN32_WINNT >= 0x0500)
125 LONG WINAPI
RegDisablePredefinedCache(VOID
);
126 LSTATUS WINAPI
RegSaveKeyExA(_In_ HKEY
, _In_ LPCSTR
, _In_opt_ LPSECURITY_ATTRIBUTES
, _In_ DWORD
);
127 LSTATUS WINAPI
RegSaveKeyExW(_In_ HKEY
, _In_ LPCWSTR
, _In_opt_ LPSECURITY_ATTRIBUTES
, _In_ DWORD
);
130 #if (_WIN32_WINNT >= 0x0600)
131 LONG WINAPI
RegDisablePredefinedCacheEx(VOID
);
132 LONG WINAPI
RegDisableReflectionKey(_In_ HKEY
);
133 LONG WINAPI
RegEnableReflectionKey(_In_ HKEY
);
141 _Out_writes_opt_(cchName
) LPSTR lpName
,
149 _Out_writes_opt_(cchName
) LPWSTR lpName
,
157 _Out_writes_to_opt_(*lpcchName
, *lpcchName
+ 1) LPSTR lpName
,
158 _Inout_ LPDWORD lpcchName
,
159 _Reserved_ LPDWORD lpReserved
,
160 _Out_writes_to_opt_(*lpcchClass
,*lpcchClass
+ 1) LPSTR lpClass
,
161 _Inout_opt_ LPDWORD lpcchClass
,
162 _Out_opt_ PFILETIME lpftLastWriteTime
);
169 _Out_writes_to_opt_(*lpcchName
, *lpcchName
+ 1) LPWSTR lpName
,
170 _Inout_ LPDWORD lpcchName
,
171 _Reserved_ LPDWORD lpReserved
,
172 _Out_writes_to_opt_(*lpcchClass
,*lpcchClass
+ 1) LPWSTR lpClass
,
173 _Inout_opt_ LPDWORD lpcchClass
,
174 _Out_opt_ PFILETIME lpftLastWriteTime
);
181 _Out_writes_to_opt_(*lpcchValueName
, *lpcchValueName
+ 1) LPSTR lpValueName
,
182 _Inout_ LPDWORD lpcchValueName
,
183 _Reserved_ LPDWORD lpReserved
,
184 _Out_opt_ LPDWORD lpType
,
185 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPBYTE lpData
,
186 _Inout_opt_ LPDWORD lpcbData
);
193 _Out_writes_to_opt_(*lpcchValueName
, *lpcchValueName
+ 1) LPWSTR lpValueName
,
194 _Inout_ LPDWORD lpcchValueName
,
195 _Reserved_ LPDWORD lpReserved
,
196 _Out_opt_ LPDWORD lpType
,
197 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPBYTE lpData
,
198 _Inout_opt_ LPDWORD lpcbData
);
200 #if (_WIN32_WINNT >= 0x0600)
206 _In_opt_ LPCSTR lpSubKey
,
207 _In_opt_ LPCSTR lpValue
,
209 _Out_opt_ LPDWORD pdwType
,
210 _When_((dwFlags
& 0x7F) == RRF_RT_REG_SZ
|| (dwFlags
& 0x7F) == RRF_RT_REG_EXPAND_SZ
||
211 (dwFlags
& 0x7F) == (RRF_RT_REG_SZ
| RRF_RT_REG_EXPAND_SZ
) || *pdwType
== REG_SZ
||
212 *pdwType
== REG_EXPAND_SZ
, _Post_z_
)
213 _When_((dwFlags
& 0x7F) == RRF_RT_REG_MULTI_SZ
|| *pdwType
== REG_MULTI_SZ
, _Post_ _NullNull_terminated_
)
214 _Out_writes_bytes_to_opt_(*pcbData
,*pcbData
) PVOID pvData
,
215 _Inout_opt_ LPDWORD pcbData
);
221 _In_opt_ LPCWSTR lpSubKey
,
222 _In_opt_ LPCWSTR lpValue
,
224 _Out_opt_ LPDWORD pdwType
,
225 _When_((dwFlags
& 0x7F) == RRF_RT_REG_SZ
|| (dwFlags
& 0x7F) == RRF_RT_REG_EXPAND_SZ
||
226 (dwFlags
& 0x7F) == (RRF_RT_REG_SZ
| RRF_RT_REG_EXPAND_SZ
) || *pdwType
== REG_SZ
||
227 *pdwType
== REG_EXPAND_SZ
, _Post_z_
)
228 _When_((dwFlags
& 0x7F) == RRF_RT_REG_MULTI_SZ
|| *pdwType
== REG_MULTI_SZ
, _Post_ _NullNull_terminated_
)
229 _Out_writes_bytes_to_opt_(*pcbData
,*pcbData
) PVOID pvData
,
230 _Inout_opt_ LPDWORD pcbData
);
234 LSTATUS WINAPI
RegFlushKey(_In_ HKEY
);
240 _In_ SECURITY_INFORMATION SecurityInformation
,
241 _Out_writes_bytes_opt_(*lpcbSecurityDescriptor
) PSECURITY_DESCRIPTOR pSecurityDescriptor
,
242 _Inout_ LPDWORD lpcbSecurityDescriptor
);
244 LSTATUS WINAPI
RegLoadKeyA(_In_ HKEY
, _In_opt_ LPCSTR
, _In_ LPCSTR
);
245 LSTATUS WINAPI
RegLoadKeyW(_In_ HKEY
, _In_opt_ LPCWSTR
, _In_ LPCWSTR
);
247 #if (_WIN32_WINNT >= 0x0600)
253 _In_opt_ LPCSTR pszValue
,
254 _Out_writes_bytes_opt_(cbOutBuf
) LPSTR pszOutBuf
,
256 _Out_opt_ LPDWORD pcbData
,
258 _In_opt_ LPCSTR pszDirectory
);
264 _In_opt_ LPCWSTR pszValue
,
265 _Out_writes_bytes_opt_(cbOutBuf
) LPWSTR pszOutBuf
,
267 _Out_opt_ LPDWORD pcbData
,
269 _In_opt_ LPCWSTR pszDirectory
);
273 LSTATUS WINAPI
RegNotifyChangeKeyValue(_In_ HKEY
, _In_ BOOL
, _In_ DWORD
, _In_opt_ HANDLE
, _In_ BOOL
);
274 LSTATUS WINAPI
RegOpenCurrentUser(_In_ REGSAM
, _Out_ PHKEY
);
275 LSTATUS WINAPI
RegOpenKeyA(_In_ HKEY
, _In_opt_ LPCSTR
, _Out_ PHKEY
);
276 LSTATUS WINAPI
RegOpenKeyW(_In_ HKEY
, _In_opt_ LPCWSTR
, _Out_ PHKEY
);
277 LSTATUS WINAPI
RegOpenKeyExA(_In_ HKEY
, _In_opt_ LPCSTR
, _In_opt_ DWORD
, _In_ REGSAM
, _Out_ PHKEY
);
278 LSTATUS WINAPI
RegOpenKeyExW(_In_ HKEY
, _In_opt_ LPCWSTR
, _In_opt_ DWORD
, _In_ REGSAM
, _Out_ PHKEY
);
284 _Out_writes_to_opt_(*lpcchClass
, *lpcchClass
+ 1) LPSTR lpClass
,
285 _Inout_opt_ LPDWORD lpcchClass
,
286 _Reserved_ LPDWORD lpReserved
,
287 _Out_opt_ LPDWORD lpcSubKeys
,
288 _Out_opt_ LPDWORD lpcbMaxSubKeyLen
,
289 _Out_opt_ LPDWORD lpcbMaxClassLen
,
290 _Out_opt_ LPDWORD lpcValues
,
291 _Out_opt_ LPDWORD lpcbMaxValueNameLen
,
292 _Out_opt_ LPDWORD lpcbMaxValueLen
,
293 _Out_opt_ LPDWORD lpcbSecurityDescriptor
,
294 _Out_opt_ PFILETIME lpftLastWriteTime
);
300 _Out_writes_to_opt_(*lpcchClass
, *lpcchClass
+ 1) LPWSTR lpClass
,
301 _Inout_opt_ LPDWORD lpcchClass
,
302 _Reserved_ LPDWORD lpReserved
,
303 _Out_opt_ LPDWORD lpcSubKeys
,
304 _Out_opt_ LPDWORD lpcbMaxSubKeyLen
,
305 _Out_opt_ LPDWORD lpcbMaxClassLen
,
306 _Out_opt_ LPDWORD lpcValues
,
307 _Out_opt_ LPDWORD lpcbMaxValueNameLen
,
308 _Out_opt_ LPDWORD lpcbMaxValueLen
,
309 _Out_opt_ LPDWORD lpcbSecurityDescriptor
,
310 _Out_opt_ PFILETIME lpftLastWriteTime
);
314 RegQueryMultipleValuesA(
316 _Out_writes_(num_vals
) PVALENTA val_list
,
318 _Out_writes_bytes_to_opt_(*ldwTotsize
, *ldwTotsize
) __out_data_source(REGISTRY
) LPSTR lpValueBuf
,
319 _Inout_opt_ LPDWORD ldwTotsize
);
323 RegQueryMultipleValuesW(
325 _Out_writes_(num_vals
) PVALENTW val_list
,
327 _Out_writes_bytes_to_opt_(*ldwTotsize
, *ldwTotsize
) __out_data_source(REGISTRY
) LPWSTR lpValueBuf
,
328 _Inout_opt_ LPDWORD ldwTotsize
);
330 #if (_WIN32_WINNT >= 0x0600)
331 LONG WINAPI
RegQueryReflectionKey(_In_ HKEY
, _Out_ BOOL
*);
338 _In_opt_ LPCSTR lpSubKey
,
339 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPSTR lpData
,
340 _Inout_opt_ PLONG lpcbData
);
346 _In_opt_ LPCWSTR lpSubKey
,
347 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPWSTR lpData
,
348 _Inout_opt_ PLONG lpcbData
);
354 _In_opt_ LPCSTR lpValueName
,
355 _Reserved_ LPDWORD lpReserved
,
356 _Out_opt_ LPDWORD lpType
,
357 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPBYTE lpData
,
358 _When_(lpData
== NULL
, _Out_opt_
)
359 _When_(lpData
!= NULL
, _Inout_opt_
) LPDWORD lpcbData
);
365 _In_opt_ LPCWSTR lpValueName
,
366 _Reserved_ LPDWORD lpReserved
,
367 _Out_opt_ LPDWORD lpType
,
368 _Out_writes_bytes_to_opt_(*lpcbData
, *lpcbData
) __out_data_source(REGISTRY
) LPBYTE lpData
,
369 _When_(lpData
== NULL
, _Out_opt_
)
370 _When_(lpData
!= NULL
, _Inout_opt_
) LPDWORD lpcbData
);
372 LSTATUS WINAPI
RegReplaceKeyA(_In_ HKEY
, _In_opt_ LPCSTR
, _In_ LPCSTR
, _In_ LPCSTR
);
373 LSTATUS WINAPI
RegReplaceKeyW(_In_ HKEY
, _In_opt_ LPCWSTR
, _In_ LPCWSTR
, _In_ LPCWSTR
);
374 LSTATUS WINAPI
RegRestoreKeyA(_In_ HKEY
, _In_ LPCSTR
, _In_ DWORD
);
375 LSTATUS WINAPI
RegRestoreKeyW(_In_ HKEY
, _In_ LPCWSTR
, _In_ DWORD
);
376 LSTATUS WINAPI
RegSaveKeyA(_In_ HKEY
, _In_ LPCSTR
, _In_opt_ LPSECURITY_ATTRIBUTES
);
377 LSTATUS WINAPI
RegSaveKeyW(_In_ HKEY
, _In_ LPCWSTR
, _In_opt_ LPSECURITY_ATTRIBUTES
);
378 LSTATUS WINAPI
RegSetKeySecurity(_In_ HKEY
, _In_ SECURITY_INFORMATION
, _In_ PSECURITY_DESCRIPTOR
);
380 #if (_WIN32_WINNT >= 0x0600)
386 _In_opt_ LPCSTR lpSubKey
,
387 _In_opt_ LPCSTR lpValueName
,
389 _In_reads_bytes_opt_(cbData
) LPCVOID lpData
,
396 _In_opt_ LPCWSTR lpSubKey
,
397 _In_opt_ LPCWSTR lpValueName
,
399 _In_reads_bytes_opt_(cbData
) LPCVOID lpData
,
408 _In_opt_ LPCSTR lpSubKey
,
410 _In_reads_bytes_opt_(cbData
) LPCSTR lpData
,
417 _In_opt_ LPCWSTR lpSubKey
,
419 _In_reads_bytes_opt_(cbData
) LPCWSTR lpData
,
426 _In_opt_ LPCSTR lpValueName
,
427 _Reserved_ DWORD Reserved
,
429 _In_reads_bytes_opt_(cbData
) const BYTE
*lpData
,
436 _In_opt_ LPCWSTR lpValueName
,
437 _Reserved_ DWORD Reserved
,
439 _In_reads_bytes_opt_(cbData
) const BYTE
*lpData
,
442 LSTATUS WINAPI
RegUnLoadKeyA(_In_ HKEY
, _In_opt_ LPCSTR
);
443 LSTATUS WINAPI
RegUnLoadKeyW(_In_ HKEY
, _In_opt_ LPCWSTR
);
446 typedef VALENTW VALENT
,*PVALENT
;
447 #define AbortSystemShutdown AbortSystemShutdownW
448 #define InitiateSystemShutdown InitiateSystemShutdownW
449 #define InitiateSystemShutdownEx InitiateSystemShutdownExW
450 #define RegConnectRegistry RegConnectRegistryW
451 #if (_WIN32_WINNT >= 0x0600)
452 #define InitiateShutdown InitiateShutdownW
453 #define RegCopyTree RegCopyTreeW
455 #define RegCreateKey RegCreateKeyW
456 #define RegCreateKeyEx RegCreateKeyExW
457 #define RegDeleteKey RegDeleteKeyW
458 #define RegDeleteKeyEx RegDeleteKeyExW
459 #if (_WIN32_WINNT >= 0x0600)
460 #define RegDeleteKeyValue RegDeleteKeyValueW
461 #define RegDeleteTree RegDeleteTreeW
463 #define RegDeleteValue RegDeleteValueW
464 #define RegEnumKey RegEnumKeyW
465 #define RegEnumKeyEx RegEnumKeyExW
466 #define RegEnumValue RegEnumValueW
467 #if (_WIN32_WINNT >= 0x0600)
468 #define RegGetValue RegGetValueW
470 #define RegLoadKey RegLoadKeyW
471 #if (_WIN32_WINNT >= 0x0600)
472 #define RegLoadMUIString RegLoadMUIStringW
474 #define RegOpenKey RegOpenKeyW
475 #define RegOpenKeyEx RegOpenKeyExW
476 #define RegQueryInfoKey RegQueryInfoKeyW
477 #define RegQueryMultipleValues RegQueryMultipleValuesW
478 #define RegQueryValue RegQueryValueW
479 #define RegQueryValueEx RegQueryValueExW
480 #define RegReplaceKey RegReplaceKeyW
481 #define RegRestoreKey RegRestoreKeyW
482 #define RegSaveKey RegSaveKeyW
483 #define RegSaveKeyEx RegSaveKeyExW
484 #if (_WIN32_WINNT >= 0x0600)
485 #define RegSetKeyValue RegSetKeyValueW
487 #define RegSetValue RegSetValueW
488 #define RegSetValueEx RegSetValueExW
489 #define RegUnLoadKey RegUnLoadKeyW
491 typedef VALENTA VALENT
,*PVALENT
;
492 #define AbortSystemShutdown AbortSystemShutdownA
493 #define InitiateSystemShutdown InitiateSystemShutdownA
494 #define InitiateSystemShutdownEx InitiateSystemShutdownExA
495 #define RegConnectRegistry RegConnectRegistryA
496 #if (_WIN32_WINNT >= 0x0600)
497 #define InitiateShutdown InitiateShutdownA
498 #define RegCopyTree RegCopyTreeA
500 #define RegCreateKey RegCreateKeyA
501 #define RegCreateKeyEx RegCreateKeyExA
502 #define RegDeleteKey RegDeleteKeyA
503 #define RegDeleteKeyEx RegDeleteKeyExA
504 #if (_WIN32_WINNT >= 0x0600)
505 #define RegDeleteKeyValue RegDeleteKeyValueA
506 #define RegDeleteTree RegDeleteTreeA
508 #define RegDeleteValue RegDeleteValueA
509 #define RegEnumKey RegEnumKeyA
510 #define RegEnumKeyEx RegEnumKeyExA
511 #define RegEnumValue RegEnumValueA
512 #if (_WIN32_WINNT >= 0x0600)
513 #define RegGetValue RegGetValueA
515 #define RegLoadKey RegLoadKeyA
516 #if (_WIN32_WINNT >= 0x0600)
517 #define RegLoadMUIString RegLoadMUIStringA
519 #define RegOpenKey RegOpenKeyA
520 #define RegOpenKeyEx RegOpenKeyExA
521 #define RegQueryInfoKey RegQueryInfoKeyA
522 #define RegQueryMultipleValues RegQueryMultipleValuesA
523 #define RegQueryValue RegQueryValueA
524 #define RegQueryValueEx RegQueryValueExA
525 #define RegReplaceKey RegReplaceKeyA
526 #define RegRestoreKey RegRestoreKeyA
527 #define RegSaveKey RegSaveKeyA
528 #define RegSaveKeyEx RegSaveKeyExA
529 #if (_WIN32_WINNT >= 0x0600)
530 #define RegSetKeyValue RegSetKeyValueA
532 #define RegSetValue RegSetValueA
533 #define RegSetValueEx RegSetValueExA
534 #define RegUnLoadKey RegUnLoadKeyA