Diff

Not logged in

Differences From Artifact [e5d43e62c628c0b0]:

To Artifact [3495de98d7c1ed4e]:


5 * * 5 * * 6 * Translated from MinGW Windows headers * 6 * Translated from MinGW Windows headers * 7 * by Stewart Gordon * 7 * by Stewart Gordon * 8 * * 8 * * 9 * Placed into public domain * 9 * Placed into public domain * 10 \***********************************************************************/ 10 \***********************************************************************/ 11 module win32.winreg; 11 module win32.winreg; 12 pragma(lib, "advapi32.lib"); | 12 pragma(lib, "advapi32"); 13 13 14 private import win32.w32api, win32.winbase, win32.windef; 14 private import win32.w32api, win32.winbase, win32.windef; 15 15 16 const HKEY | 16 enum : HKEY { // for some reason, DMD errors if I don't give all the values expl 17 HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, 17 HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, 18 HKEY_CURRENT_USER = cast(HKEY) 0x80000001, 18 HKEY_CURRENT_USER = cast(HKEY) 0x80000001, 19 HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, 19 HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, 20 HKEY_USERS = cast(HKEY) 0x80000003, 20 HKEY_USERS = cast(HKEY) 0x80000003, 21 HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, 21 HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, 22 HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, 22 HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, 23 HKEY_DYN_DATA = cast(HKEY) 0x80000006; | 23 HKEY_DYN_DATA = cast(HKEY) 0x80000006 > 24 } 24 25 25 enum : DWORD { 26 enum : DWORD { 26 REG_OPTION_NON_VOLATILE, 27 REG_OPTION_NON_VOLATILE, 27 REG_OPTION_VOLATILE 28 REG_OPTION_VOLATILE 28 } 29 } 29 30 30 enum : DWORD { 31 enum : DWORD { ................................................................................................................................................................................ 70 DWORD ve_valuelen; 71 DWORD ve_valuelen; 71 DWORD ve_valueptr; 72 DWORD ve_valueptr; 72 DWORD ve_type; 73 DWORD ve_type; 73 } 74 } 74 alias VALENTW* PVALENTW; 75 alias VALENTW* PVALENTW; 75 76 76 // RRF - Registry Routine Flags (for RegGetValue) 77 // RRF - Registry Routine Flags (for RegGetValue) 77 static if (WINVER >= 0x600) { | 78 static if (_WIN32_WINNT >= 0x600) { 78 enum : DWORD { 79 enum : DWORD { 79 RRF_RT_REG_NONE = 0x00000001, 80 RRF_RT_REG_NONE = 0x00000001, 80 RRF_RT_REG_SZ = 0x00000002, 81 RRF_RT_REG_SZ = 0x00000002, 81 RRF_RT_REG_EXPAND_SZ = 0x00000004, 82 RRF_RT_REG_EXPAND_SZ = 0x00000004, 82 RRF_RT_REG_BINARY = 0x00000008, 83 RRF_RT_REG_BINARY = 0x00000008, 83 RRF_RT_REG_DWORD = 0x00000010, 84 RRF_RT_REG_DWORD = 0x00000010, 84 RRF_RT_REG_MULTI_SZ = 0x00000020, 85 RRF_RT_REG_MULTI_SZ = 0x00000020, ................................................................................................................................................................................ 125 LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 126 LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 126 LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 127 LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); 127 LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); 128 LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); 128 LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); 129 LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); 129 LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); 130 LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); 130 LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); 131 LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); 131 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR) 132 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR) 132 LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); | 133 LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, const(BYTE)*, DWORD); 133 LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, CPtr!(BYTE), DWORD); | 134 LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, const(BYTE)*, DWORD); 134 LONG RegUnLoadKeyA(HKEY, LPCSTR); 135 LONG RegUnLoadKeyA(HKEY, LPCSTR); 135 LONG RegUnLoadKeyW(HKEY, LPCWSTR); 136 LONG RegUnLoadKeyW(HKEY, LPCWSTR); 136 static if (_WIN32_WINDOWS >= 0x410) { < 137 LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); | 137 LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); > 138 > 139 BOOL AbortSystemShutdownA(LPCSTR); > 140 BOOL AbortSystemShutdownW(LPCWSTR); > 141 BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); > 142 BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); > 143 LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, > 144 PSECURITY_DESCRIPTOR, PDWORD); > 145 LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); > 146 LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); > 147 LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, > 148 PSECURITY_DESCRIPTOR); > 149 > 150 static if (_WIN32_WINNT >= 0x500) { > 151 LONG RegDisablePredefinedCache(); > 152 LONG RegOpenCurrentUser(REGSAM, PHKEY); > 153 LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); 138 } 154 } 139 155 140 static if (_WIN32_WINNT_ONLY) { | 156 static if (_WIN32_WINNT >= 0x501) { 141 BOOL AbortSystemShutdownA(LPCSTR); | 157 LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); 142 BOOL AbortSystemShutdownW(LPCWSTR); | 158 LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); 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 | 159 } 152 static if (_WIN32_WINNT >= 0x500) { < 153 LONG RegDisablePredefinedCache(); < 154 LONG RegOpenCurrentUser(REGSAM, PHKEY); < 155 LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY < 156 } < 157 160 158 static if (_WIN32_WINNT >= 0x501) { < 159 LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, < 160 LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, < 161 } < 162 < 163 static if (_WIN32_WINNT >= 0x600) { | 161 static if (_WIN32_WINNT >= 0x600) { 164 LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpV | 162 LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, 165 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD | 163 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData) 166 LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR l | 164 LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, 167 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD | 165 DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData) 168 } < 169 } 166 } 170 167 171 deprecated { 168 deprecated { 172 LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); 169 LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); 173 LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); 170 LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); 174 LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); 171 LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); 175 LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); 172 LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); ................................................................................................................................................................................ 196 alias RegQueryMultipleValuesW RegQueryMultipleValues; 193 alias RegQueryMultipleValuesW RegQueryMultipleValues; 197 alias RegQueryValueExW RegQueryValueEx; 194 alias RegQueryValueExW RegQueryValueEx; 198 alias RegReplaceKeyW RegReplaceKey; 195 alias RegReplaceKeyW RegReplaceKey; 199 alias RegSaveKeyW RegSaveKey; 196 alias RegSaveKeyW RegSaveKey; 200 alias RegSetValueExW RegSetValueEx; 197 alias RegSetValueExW RegSetValueEx; 201 alias RegUnLoadKeyW RegUnLoadKey; 198 alias RegUnLoadKeyW RegUnLoadKey; 202 199 203 static if (_WIN32_WINNT_ONLY) { < 204 alias AbortSystemShutdownW AbortSystemShutdown; | 200 alias AbortSystemShutdownW AbortSystemShutdown; 205 alias InitiateSystemShutdownW InitiateSystemShutdown; | 201 alias InitiateSystemShutdownW InitiateSystemShutdown; 206 alias RegRestoreKeyW RegRestoreKey; | 202 alias RegRestoreKeyW RegRestoreKey; 207 static if (_WIN32_WINNT >= 0x501) { | 203 static if (_WIN32_WINNT >= 0x501) { 208 alias RegSaveKeyExA RegSaveKeyEx; | 204 alias RegSaveKeyExA RegSaveKeyEx; 209 } | 205 } 210 static if (_WIN32_WINNT >= 0x600) { | 206 static if (_WIN32_WINNT >= 0x600) { 211 alias RegGetValueW RegGetValue; | 207 alias RegGetValueW RegGetValue; 212 } < 213 } 208 } 214 deprecated { 209 deprecated { 215 alias RegCreateKeyW RegCreateKey; 210 alias RegCreateKeyW RegCreateKey; 216 alias RegEnumKeyW RegEnumKey; 211 alias RegEnumKeyW RegEnumKey; 217 alias RegOpenKeyW RegOpenKey; 212 alias RegOpenKeyW RegOpenKey; 218 alias RegQueryValueW RegQueryValue; 213 alias RegQueryValueW RegQueryValue; 219 alias RegSetValueW RegSetValue; 214 alias RegSetValueW RegSetValue; ................................................................................................................................................................................ 231 alias RegQueryInfoKeyA RegQueryInfoKey; 226 alias RegQueryInfoKeyA RegQueryInfoKey; 232 alias RegQueryMultipleValuesA RegQueryMultipleValues; 227 alias RegQueryMultipleValuesA RegQueryMultipleValues; 233 alias RegQueryValueExA RegQueryValueEx; 228 alias RegQueryValueExA RegQueryValueEx; 234 alias RegReplaceKeyA RegReplaceKey; 229 alias RegReplaceKeyA RegReplaceKey; 235 alias RegSaveKeyA RegSaveKey; 230 alias RegSaveKeyA RegSaveKey; 236 alias RegSetValueExA RegSetValueEx; 231 alias RegSetValueExA RegSetValueEx; 237 alias RegUnLoadKeyA RegUnLoadKey; 232 alias RegUnLoadKeyA RegUnLoadKey; 238 static if (_WIN32_WINNT_ONLY) { < 239 alias AbortSystemShutdownA AbortSystemShutdown; | 233 alias AbortSystemShutdownA AbortSystemShutdown; 240 alias InitiateSystemShutdownA InitiateSystemShutdown; | 234 alias InitiateSystemShutdownA InitiateSystemShutdown; 241 alias RegRestoreKeyW RegRestoreKey; | 235 alias RegRestoreKeyW RegRestoreKey; 242 static if (_WIN32_WINNT >= 0x501) { | 236 static if (_WIN32_WINNT >= 0x501) { 243 alias RegSaveKeyExA RegSaveKeyEx; | 237 alias RegSaveKeyExA RegSaveKeyEx; 244 } | 238 } 245 static if (_WIN32_WINNT >= 0x600) { | 239 static if (_WIN32_WINNT >= 0x600) { 246 alias RegGetValueA RegGetValue; | 240 alias RegGetValueA RegGetValue; 247 } < 248 } 241 } 249 deprecated { 242 deprecated { 250 alias RegCreateKeyA RegCreateKey; 243 alias RegCreateKeyA RegCreateKey; 251 alias RegEnumKeyA RegEnumKey; 244 alias RegEnumKeyA RegEnumKey; 252 alias RegOpenKeyA RegOpenKey; 245 alias RegOpenKeyA RegOpenKey; 253 alias RegQueryValueA RegQueryValue; 246 alias RegQueryValueA RegQueryValue; 254 alias RegSetValueA RegSetValue; 247 alias RegSetValueA RegSetValue; 255 } 248 } 256 } 249 } 257 250 258 alias VALENT* PVALENT; 251 alias VALENT* PVALENT;