winreg.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _WINREG_
  7. #define _WINREG_
  8. #include <_mingw_unicode.h>
  9. #include <winapifamily.h>
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13. #ifndef WINVER
  14. #define WINVER 0x0502
  15. #endif
  16. #define RRF_RT_REG_NONE 0x00000001
  17. #define RRF_RT_REG_SZ 0x00000002
  18. #define RRF_RT_REG_EXPAND_SZ 0x00000004
  19. #define RRF_RT_REG_BINARY 0x00000008
  20. #define RRF_RT_REG_DWORD 0x00000010
  21. #define RRF_RT_REG_MULTI_SZ 0x00000020
  22. #define RRF_RT_REG_QWORD 0x00000040
  23. #define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD)
  24. #define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD)
  25. #define RRF_RT_ANY 0x0000ffff
  26. #if (_WIN32_WINNT >= 0x0A00)
  27. #define RRF_SUBKEY_WOW6464KEY 0x00010000
  28. #define RRF_SUBKEY_WOW6432KEY 0x00020000
  29. #define RRF_WOW64_MASK 0x00030000
  30. #endif
  31. #define RRF_NOEXPAND 0x10000000
  32. #define RRF_ZEROONFAILURE 0x20000000
  33. #define REG_PROCESS_APPKEY 0x00000001
  34. typedef ACCESS_MASK REGSAM;
  35. typedef LONG LSTATUS;
  36. #define HKEY_CLASSES_ROOT ((HKEY) (ULONG_PTR)((LONG)0x80000000))
  37. #define HKEY_CURRENT_USER ((HKEY) (ULONG_PTR)((LONG)0x80000001))
  38. #define HKEY_LOCAL_MACHINE ((HKEY) (ULONG_PTR)((LONG)0x80000002))
  39. #define HKEY_USERS ((HKEY) (ULONG_PTR)((LONG)0x80000003))
  40. #define HKEY_PERFORMANCE_DATA ((HKEY) (ULONG_PTR)((LONG)0x80000004))
  41. #define HKEY_PERFORMANCE_TEXT ((HKEY) (ULONG_PTR)((LONG)0x80000050))
  42. #define HKEY_PERFORMANCE_NLSTEXT ((HKEY) (ULONG_PTR)((LONG)0x80000060))
  43. #if (WINVER >= 0x0400)
  44. #define HKEY_CURRENT_CONFIG ((HKEY) (ULONG_PTR)((LONG)0x80000005))
  45. #define HKEY_DYN_DATA ((HKEY) (ULONG_PTR)((LONG)0x80000006))
  46. #define HKEY_CURRENT_USER_LOCAL_SETTINGS ((HKEY) (ULONG_PTR)((LONG)0x80000007))
  47. #ifndef _PROVIDER_STRUCTS_DEFINED
  48. #define _PROVIDER_STRUCTS_DEFINED
  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. typedef struct val_context *PVALCONTEXT;
  56. typedef struct pvalueA {
  57. LPSTR pv_valuename;
  58. int pv_valuelen;
  59. LPVOID pv_value_context;
  60. DWORD pv_type;
  61. }PVALUEA,*PPVALUEA;
  62. typedef struct pvalueW {
  63. LPWSTR pv_valuename;
  64. int pv_valuelen;
  65. LPVOID pv_value_context;
  66. DWORD pv_type;
  67. }PVALUEW,*PPVALUEW;
  68. __MINGW_TYPEDEF_AW(PVALUE)
  69. __MINGW_TYPEDEF_AW(PPVALUE)
  70. typedef DWORD __cdecl QUERYHANDLER(LPVOID keycontext,PVALCONTEXT val_list,DWORD num_vals,LPVOID outputbuffer,DWORD *total_outlen,DWORD input_blen);
  71. typedef QUERYHANDLER *PQUERYHANDLER;
  72. typedef struct provider_info {
  73. PQUERYHANDLER pi_R0_1val;
  74. PQUERYHANDLER pi_R0_allvals;
  75. PQUERYHANDLER pi_R3_1val;
  76. PQUERYHANDLER pi_R3_allvals;
  77. DWORD pi_flags;
  78. LPVOID pi_key_context;
  79. } REG_PROVIDER;
  80. typedef struct provider_info *PPROVIDER;
  81. typedef struct value_entA {
  82. LPSTR ve_valuename;
  83. DWORD ve_valuelen;
  84. DWORD_PTR ve_valueptr;
  85. DWORD ve_type;
  86. } VALENTA,*PVALENTA;
  87. typedef struct value_entW {
  88. LPWSTR ve_valuename;
  89. DWORD ve_valuelen;
  90. DWORD_PTR ve_valueptr;
  91. DWORD ve_type;
  92. } VALENTW,*PVALENTW;
  93. __MINGW_TYPEDEF_AW(VALENT)
  94. __MINGW_TYPEDEF_AW(PVALENT)
  95. #endif
  96. #endif
  97. #define WIN31_CLASS NULL
  98. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  99. #define REG_MUI_STRING_TRUNCATE 0x00000001
  100. #if (WINVER >= 0x0400)
  101. #define REG_SECURE_CONNECTION 1
  102. #endif
  103. #define RegConnectRegistry __MINGW_NAME_AW(RegConnectRegistry)
  104. #define RegConnectRegistryEx __MINGW_NAME_AW(RegConnectRegistryEx)
  105. #define RegCreateKey __MINGW_NAME_AW(RegCreateKey)
  106. #define RegCreateKeyEx __MINGW_NAME_AW(RegCreateKeyEx)
  107. #define RegDeleteKey __MINGW_NAME_AW(RegDeleteKey)
  108. #define RegDeleteKeyEx __MINGW_NAME_AW(RegDeleteKeyEx)
  109. #define RegDeleteValue __MINGW_NAME_AW(RegDeleteValue)
  110. #define RegEnumKey __MINGW_NAME_AW(RegEnumKey)
  111. #define RegEnumKeyEx __MINGW_NAME_AW(RegEnumKeyEx)
  112. #define RegEnumValue __MINGW_NAME_AW(RegEnumValue)
  113. #define RegLoadKey __MINGW_NAME_AW(RegLoadKey)
  114. #define RegOpenKey __MINGW_NAME_AW(RegOpenKey)
  115. #define RegOpenKeyEx __MINGW_NAME_AW(RegOpenKeyEx)
  116. #define RegQueryInfoKey __MINGW_NAME_AW(RegQueryInfoKey)
  117. #define RegQueryValue __MINGW_NAME_AW(RegQueryValue)
  118. #define RegQueryMultipleValues __MINGW_NAME_AW(RegQueryMultipleValues)
  119. #define RegQueryValueEx __MINGW_NAME_AW(RegQueryValueEx)
  120. #define RegReplaceKey __MINGW_NAME_AW(RegReplaceKey)
  121. #define RegRestoreKey __MINGW_NAME_AW(RegRestoreKey)
  122. #define RegSaveKey __MINGW_NAME_AW(RegSaveKey)
  123. #define RegSetValue __MINGW_NAME_AW(RegSetValue)
  124. #define RegSetValueEx __MINGW_NAME_AW(RegSetValueEx)
  125. #define RegUnLoadKey __MINGW_NAME_AW(RegUnLoadKey)
  126. #define RegGetValue __MINGW_NAME_AW(RegGetValue)
  127. #define InitiateSystemShutdown __MINGW_NAME_AW(InitiateSystemShutdown)
  128. #define AbortSystemShutdown __MINGW_NAME_AW(AbortSystemShutdown)
  129. WINADVAPI LONG WINAPI RegCloseKey(HKEY hKey);
  130. WINADVAPI LONG WINAPI RegOverridePredefKey(HKEY hKey,HKEY hNewHKey);
  131. WINADVAPI LONG WINAPI RegOpenUserClassesRoot(HANDLE hToken,DWORD dwOptions,REGSAM samDesired,PHKEY phkResult);
  132. WINADVAPI LONG WINAPI RegOpenCurrentUser(REGSAM samDesired,PHKEY phkResult);
  133. WINADVAPI LONG WINAPI RegDisablePredefinedCache(void);
  134. WINADVAPI LONG WINAPI RegDisablePredefinedCacheEx(void);
  135. WINADVAPI LONG WINAPI RegConnectRegistryA(LPCSTR lpMachineName,HKEY hKey,PHKEY phkResult);
  136. WINADVAPI LONG WINAPI RegConnectRegistryW(LPCWSTR lpMachineName,HKEY hKey,PHKEY phkResult);
  137. WINADVAPI LONG WINAPI RegConnectRegistryExA(LPCSTR lpMachineName,HKEY hKey,ULONG Flags,PHKEY phkResult);
  138. WINADVAPI LONG WINAPI RegConnectRegistryExW(LPCWSTR lpMachineName,HKEY hKey,ULONG Flags,PHKEY phkResult);
  139. WINADVAPI LONG WINAPI RegCreateKeyA(HKEY hKey,LPCSTR lpSubKey,PHKEY phkResult);
  140. WINADVAPI LONG WINAPI RegCreateKeyW(HKEY hKey,LPCWSTR lpSubKey,PHKEY phkResult);
  141. WINADVAPI LONG WINAPI RegCreateKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD Reserved,LPSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
  142. WINADVAPI LONG WINAPI RegCreateKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD Reserved,LPWSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
  143. WINADVAPI LONG WINAPI RegDeleteKeyA(HKEY hKey,LPCSTR lpSubKey);
  144. WINADVAPI LONG WINAPI RegDeleteKeyW(HKEY hKey,LPCWSTR lpSubKey);
  145. WINADVAPI LONG WINAPI RegDeleteKeyExA(HKEY hKey,LPCSTR lpSubKey,REGSAM samDesired,DWORD Reserved);
  146. WINADVAPI LONG WINAPI RegDeleteKeyExW(HKEY hKey,LPCWSTR lpSubKey,REGSAM samDesired,DWORD Reserved);
  147. WINADVAPI LONG WINAPI RegDisableReflectionKey(HKEY hBase);
  148. WINADVAPI LONG WINAPI RegEnableReflectionKey(HKEY hBase);
  149. WINADVAPI LONG WINAPI RegQueryReflectionKey(HKEY hBase,WINBOOL *bIsReflectionDisabled);
  150. WINADVAPI LONG WINAPI RegDeleteValueA(HKEY hKey,LPCSTR lpValueName);
  151. WINADVAPI LONG WINAPI RegDeleteValueW(HKEY hKey,LPCWSTR lpValueName);
  152. WINADVAPI LONG WINAPI RegEnumKeyA(HKEY hKey,DWORD dwIndex,LPSTR lpName,DWORD cchName);
  153. WINADVAPI LONG WINAPI RegEnumKeyW(HKEY hKey,DWORD dwIndex,LPWSTR lpName,DWORD cchName);
  154. WINADVAPI LONG WINAPI RegEnumKeyExA(HKEY hKey,DWORD dwIndex,LPSTR lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPSTR lpClass,LPDWORD lpcchClass,PFILETIME lpftLastWriteTime);
  155. WINADVAPI LONG WINAPI RegEnumKeyExW(HKEY hKey,DWORD dwIndex,LPWSTR lpName,LPDWORD lpcchName,LPDWORD lpReserved,LPWSTR lpClass,LPDWORD lpcchClass,PFILETIME lpftLastWriteTime);
  156. WINADVAPI LONG WINAPI RegEnumValueA(HKEY hKey,DWORD dwIndex,LPSTR lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
  157. WINADVAPI LONG WINAPI RegEnumValueW(HKEY hKey,DWORD dwIndex,LPWSTR lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
  158. WINADVAPI LONG WINAPI RegFlushKey(HKEY hKey);
  159. WINADVAPI LONG WINAPI RegGetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,LPDWORD lpcbSecurityDescriptor);
  160. WINADVAPI LONG WINAPI RegLoadKeyA(HKEY hKey,LPCSTR lpSubKey,LPCSTR lpFile);
  161. WINADVAPI LONG WINAPI RegLoadKeyW(HKEY hKey,LPCWSTR lpSubKey,LPCWSTR lpFile);
  162. WINADVAPI LONG WINAPI RegNotifyChangeKeyValue(HKEY hKey,WINBOOL bWatchSubtree,DWORD dwNotifyFilter,HANDLE hEvent,WINBOOL fAsynchronous);
  163. WINADVAPI LONG WINAPI RegOpenKeyA(HKEY hKey,LPCSTR lpSubKey,PHKEY phkResult);
  164. WINADVAPI LONG WINAPI RegOpenKeyW(HKEY hKey,LPCWSTR lpSubKey,PHKEY phkResult);
  165. WINADVAPI LONG WINAPI RegOpenKeyExA(HKEY hKey,LPCSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult);
  166. WINADVAPI LONG WINAPI RegOpenKeyExW(HKEY hKey,LPCWSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult);
  167. 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);
  168. 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);
  169. WINADVAPI LONG WINAPI RegQueryValueA(HKEY hKey,LPCSTR lpSubKey,LPSTR lpData,PLONG lpcbData);
  170. WINADVAPI LONG WINAPI RegQueryValueW(HKEY hKey,LPCWSTR lpSubKey,LPWSTR lpData,PLONG lpcbData);
  171. WINADVAPI LONG WINAPI RegQueryMultipleValuesA(HKEY hKey,PVALENTA val_list,DWORD num_vals,LPSTR lpValueBuf,LPDWORD ldwTotsize);
  172. WINADVAPI LONG WINAPI RegQueryMultipleValuesW(HKEY hKey,PVALENTW val_list,DWORD num_vals,LPWSTR lpValueBuf,LPDWORD ldwTotsize);
  173. WINADVAPI LONG WINAPI RegQueryValueExA(HKEY hKey,LPCSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
  174. WINADVAPI LONG WINAPI RegQueryValueExW(HKEY hKey,LPCWSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData);
  175. WINADVAPI LONG WINAPI RegReplaceKeyA(HKEY hKey,LPCSTR lpSubKey,LPCSTR lpNewFile,LPCSTR lpOldFile);
  176. WINADVAPI LONG WINAPI RegReplaceKeyW(HKEY hKey,LPCWSTR lpSubKey,LPCWSTR lpNewFile,LPCWSTR lpOldFile);
  177. WINADVAPI LONG WINAPI RegRestoreKeyA(HKEY hKey,LPCSTR lpFile,DWORD dwFlags);
  178. WINADVAPI LONG WINAPI RegRestoreKeyW(HKEY hKey,LPCWSTR lpFile,DWORD dwFlags);
  179. WINADVAPI LONG WINAPI RegSaveKeyA(HKEY hKey,LPCSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
  180. WINADVAPI LONG WINAPI RegSaveKeyW(HKEY hKey,LPCWSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
  181. WINADVAPI LONG WINAPI RegSetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor);
  182. WINADVAPI LONG WINAPI RegSetValueA(HKEY hKey,LPCSTR lpSubKey,DWORD dwType,LPCSTR lpData,DWORD cbData);
  183. WINADVAPI LONG WINAPI RegSetValueW(HKEY hKey,LPCWSTR lpSubKey,DWORD dwType,LPCWSTR lpData,DWORD cbData);
  184. WINADVAPI LONG WINAPI RegSetValueExA(HKEY hKey,LPCSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData);
  185. WINADVAPI LONG WINAPI RegSetValueExW(HKEY hKey,LPCWSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData);
  186. WINADVAPI LONG WINAPI RegUnLoadKeyA(HKEY hKey,LPCSTR lpSubKey);
  187. WINADVAPI LONG WINAPI RegUnLoadKeyW(HKEY hKey,LPCWSTR lpSubKey);
  188. WINADVAPI LONG WINAPI RegGetValueA(HKEY hkey,LPCSTR lpSubKey,LPCSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
  189. WINADVAPI LONG WINAPI RegGetValueW(HKEY hkey,LPCWSTR lpSubKey,LPCWSTR lpValue,DWORD dwFlags,LPDWORD pdwType,PVOID pvData,LPDWORD pcbData);
  190. WINADVAPI WINBOOL WINAPI InitiateSystemShutdownA(LPSTR lpMachineName,LPSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown);
  191. WINADVAPI WINBOOL WINAPI InitiateSystemShutdownW(LPWSTR lpMachineName,LPWSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown);
  192. WINADVAPI WINBOOL WINAPI AbortSystemShutdownA(LPSTR lpMachineName);
  193. WINADVAPI WINBOOL WINAPI AbortSystemShutdownW(LPWSTR lpMachineName);
  194. #include <reason.h>
  195. #define REASON_SWINSTALL SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_INSTALLATION
  196. #define REASON_HWINSTALL SHTDN_REASON_MAJOR_HARDWARE|SHTDN_REASON_MINOR_INSTALLATION
  197. #define REASON_SERVICEHANG SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_HUNG
  198. #define REASON_UNSTABLE SHTDN_REASON_MAJOR_SYSTEM|SHTDN_REASON_MINOR_UNSTABLE
  199. #define REASON_SWHWRECONF SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_RECONFIG
  200. #define REASON_OTHER SHTDN_REASON_MAJOR_OTHER|SHTDN_REASON_MINOR_OTHER
  201. #define REASON_UNKNOWN SHTDN_REASON_UNKNOWN
  202. #define REASON_LEGACY_API SHTDN_REASON_LEGACY_API
  203. #define REASON_PLANNED_FLAG SHTDN_REASON_FLAG_PLANNED
  204. #define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60)
  205. #define InitiateSystemShutdownEx __MINGW_NAME_AW(InitiateSystemShutdownEx)
  206. #define RegSaveKeyEx __MINGW_NAME_AW(RegSaveKeyEx)
  207. WINADVAPI WINBOOL WINAPI InitiateSystemShutdownExA(LPSTR lpMachineName,LPSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown,DWORD dwReason);
  208. WINADVAPI WINBOOL WINAPI InitiateSystemShutdownExW(LPWSTR lpMachineName,LPWSTR lpMessage,DWORD dwTimeout,WINBOOL bForceAppsClosed,WINBOOL bRebootAfterShutdown,DWORD dwReason);
  209. WINADVAPI LONG WINAPI RegSaveKeyExA(HKEY hKey,LPCSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD Flags);
  210. WINADVAPI LONG WINAPI RegSaveKeyExW(HKEY hKey,LPCWSTR lpFile,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD Flags);
  211. WINADVAPI LONG WINAPI Wow64Win32ApiEntry (DWORD dwFuncNumber,DWORD dwFlag,DWORD dwRes);
  212. #if (_WIN32_WINNT >= 0x0600)
  213. #define RegCopyTree __MINGW_NAME_AW(RegCopyTree)
  214. WINADVAPI LONG WINAPI RegCopyTreeA(
  215. HKEY hKeySrc,
  216. LPCSTR lpSubKey,
  217. HKEY hKeyDest
  218. );
  219. WINADVAPI LONG WINAPI RegCopyTreeW(
  220. HKEY hKeySrc,
  221. LPCWSTR lpSubKey,
  222. HKEY hKeyDest
  223. );
  224. #define RegCreateKeyTransacted __MINGW_NAME_AW(RegCreateKeyTransacted)
  225. WINADVAPI LONG WINAPI RegCreateKeyTransactedA(
  226. HKEY hKey,
  227. LPCSTR lpSubKey,
  228. DWORD Reserved,
  229. LPSTR lpClass,
  230. DWORD dwOptions,
  231. REGSAM samDesired,
  232. const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  233. PHKEY phkResult,
  234. LPDWORD lpdwDisposition,
  235. HANDLE hTransaction,
  236. PVOID pExtendedParemeter
  237. );
  238. WINADVAPI LONG WINAPI RegCreateKeyTransactedW(
  239. HKEY hKey,
  240. LPCWSTR lpSubKey,
  241. DWORD Reserved,
  242. LPWSTR lpClass,
  243. DWORD dwOptions,
  244. REGSAM samDesired,
  245. const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  246. PHKEY phkResult,
  247. LPDWORD lpdwDisposition,
  248. HANDLE hTransaction,
  249. PVOID pExtendedParemeter
  250. );
  251. #define RegDeleteKeyTransacted __MINGW_NAME_AW(RegDeleteKeyTransacted)
  252. WINADVAPI LONG WINAPI RegDeleteKeyTransactedA(
  253. HKEY hKey,
  254. LPCSTR lpSubKey,
  255. REGSAM samDesired,
  256. DWORD Reserved,
  257. HANDLE hTransaction,
  258. PVOID pExtendedParameter
  259. );
  260. WINADVAPI LONG WINAPI RegDeleteKeyTransactedW(
  261. HKEY hKey,
  262. LPCWSTR lpSubKey,
  263. REGSAM samDesired,
  264. DWORD Reserved,
  265. HANDLE hTransaction,
  266. PVOID pExtendedParameter
  267. );
  268. #define RegDeleteKeyValue __MINGW_NAME_AW(RegDeleteKeyValue)
  269. WINADVAPI LONG WINAPI RegDeleteKeyValueA(
  270. HKEY hKey,
  271. LPCSTR lpSubKey,
  272. LPCSTR lpValueName
  273. );
  274. WINADVAPI LONG WINAPI RegDeleteKeyValueW(
  275. HKEY hKey,
  276. LPCWSTR lpSubKey,
  277. LPCWSTR lpValueName
  278. );
  279. #define RegDeleteTree __MINGW_NAME_AW(RegDeleteTree)
  280. WINADVAPI LONG WINAPI RegDeleteTreeA(
  281. HKEY hKey,
  282. LPCSTR lpSubKey
  283. );
  284. WINADVAPI LONG WINAPI RegDeleteTreeW(
  285. HKEY hKey,
  286. LPCWSTR lpSubKey
  287. );
  288. WINADVAPI LONG WINAPI RegLoadAppKeyA(
  289. LPCSTR lpFile,
  290. PHKEY phkResult,
  291. REGSAM samDesired,
  292. DWORD dwOptions,
  293. DWORD Reserved
  294. );
  295. WINADVAPI LONG WINAPI RegLoadAppKeyW(
  296. LPCWSTR lpFile,
  297. PHKEY phkResult,
  298. REGSAM samDesired,
  299. DWORD dwOptions,
  300. DWORD Reserved
  301. );
  302. #define RegLoadAppKey __MINGW_NAME_AW(RegLoadAppKey)
  303. WINADVAPI LONG WINAPI RegLoadMUIStringA(HKEY hKey, LPCSTR pszValue, LPSTR pszOutBuf, DWORD cbOutBuf, LPDWORD pcbData, DWORD Flags, LPCSTR pszDirectory);
  304. WINADVAPI LONG WINAPI RegLoadMUIStringW(HKEY hKey, LPCWSTR pszValue, LPWSTR pszOutBuf, DWORD cbOutBuf, LPDWORD pcbData, DWORD Flags, LPCWSTR pszDirectory);
  305. #define RegLoadMUIString __MINGW_NAME_AW(RegLoadMUIString)
  306. WINADVAPI LONG WINAPI RegOpenKeyTransactedA(
  307. HKEY hKey,
  308. LPCSTR lpSubKey,
  309. DWORD ulOptions,
  310. REGSAM samDesired,
  311. PHKEY phkResult,
  312. HANDLE hTransaction,
  313. PVOID pExtendedParameter
  314. );
  315. WINADVAPI LONG WINAPI RegOpenKeyTransactedW(
  316. HKEY hKey,
  317. LPCWSTR lpSubKey,
  318. DWORD ulOptions,
  319. REGSAM samDesired,
  320. PHKEY phkResult,
  321. HANDLE hTransaction,
  322. PVOID pExtendedParameter
  323. );
  324. WINADVAPI LONG WINAPI RegRenameKey(
  325. HKEY hKey,
  326. LPCWSTR lpSubKeyName,
  327. LPCWSTR lpNewKeyName);
  328. #define RegOpenKeyTransacted __MINGW_NAME_AW(RegOpenKeyTransacted)
  329. WINADVAPI LONG WINAPI RegSetKeyValueA(
  330. HKEY hKey,
  331. LPCSTR lpSubKey,
  332. LPCSTR lpValueName,
  333. DWORD dwType,
  334. LPCVOID lpData,
  335. DWORD cbData
  336. );
  337. WINADVAPI LONG WINAPI RegSetKeyValueW(
  338. HKEY hKey,
  339. LPCWSTR lpSubKey,
  340. LPCWSTR lpValueName,
  341. DWORD dwType,
  342. LPCVOID lpData,
  343. DWORD cbData
  344. );
  345. #define RegSetKeyValue __MINGW_NAME_AW(RegSetKeyValue)
  346. #define SHUTDOWN_FORCE_OTHERS 0x00000001
  347. #define SHUTDOWN_FORCE_SELF 0x00000002
  348. #define SHUTDOWN_RESTART 0x00000004
  349. #define SHUTDOWN_POWEROFF 0x00000008
  350. #define SHUTDOWN_NOREBOOT 0x00000010
  351. #define SHUTDOWN_GRACE_OVERRIDE 0x00000020
  352. #define SHUTDOWN_INSTALL_UPDATES 0x00000040
  353. #define SHUTDOWN_RESTARTAPPS 0x00000080
  354. #define SHUTDOWN_SKIP_SVC_PRESHUTDOWN 0x00000100
  355. #define SHUTDOWN_HYBRID 0x00000200
  356. #define SHUTDOWN_RESTART_BOOTOPTIONS 0x00000400
  357. #define SHUTDOWN_SOFT_REBOOT 0x00000800
  358. #define SHUTDOWN_MOBILE_UI 0x00001000
  359. #define SHUTDOWN_ARSO 0x00002000
  360. WINADVAPI DWORD WINAPI InitiateShutdownA(
  361. LPSTR lpMachineName,
  362. LPSTR lpMessage,
  363. DWORD dwGracePeriod,
  364. DWORD dwShutdownFlags,
  365. DWORD dwReason
  366. );
  367. WINADVAPI DWORD WINAPI InitiateShutdownW(
  368. LPWSTR lpMachineName,
  369. LPWSTR lpMessage,
  370. DWORD dwGracePeriod,
  371. DWORD dwShutdownFlags,
  372. DWORD dwReason
  373. );
  374. #define InitiateShutdown __MINGW_NAME_AW(InitiateShutdown)
  375. WINADVAPI DWORD WINAPI CheckForHiberboot(
  376. PBOOLEAN pHiberboot,
  377. BOOLEAN bClearFlag
  378. );
  379. #endif /* (_WIN32_WINNT >= 0x0600) */
  380. #endif /* WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) */
  381. #ifdef __cplusplus
  382. }
  383. #endif
  384. #endif