Mercurial > projects > ddbg_continued
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/winreg.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,258 @@ +/***********************************************************************\ +* winreg.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.winreg; +pragma(lib, "advapi32.lib"); + +private import win32.w32api, win32.winbase, win32.windef; + +const HKEY + HKEY_CLASSES_ROOT = cast(HKEY) 0x80000000, + HKEY_CURRENT_USER = cast(HKEY) 0x80000001, + HKEY_LOCAL_MACHINE = cast(HKEY) 0x80000002, + HKEY_USERS = cast(HKEY) 0x80000003, + HKEY_PERFORMANCE_DATA = cast(HKEY) 0x80000004, + HKEY_CURRENT_CONFIG = cast(HKEY) 0x80000005, + HKEY_DYN_DATA = cast(HKEY) 0x80000006; + +enum : DWORD { + REG_OPTION_NON_VOLATILE, + REG_OPTION_VOLATILE +} + +enum : DWORD { + REG_CREATED_NEW_KEY = 1, + REG_OPENED_EXISTING_KEY +} + +enum : DWORD { + REG_NONE = 0, + REG_SZ, + REG_EXPAND_SZ, + REG_BINARY, + REG_DWORD_LITTLE_ENDIAN, + REG_DWORD = REG_DWORD_LITTLE_ENDIAN, + REG_DWORD_BIG_ENDIAN, + REG_LINK, + REG_MULTI_SZ, + REG_RESOURCE_LIST, + REG_FULL_RESOURCE_DESCRIPTOR, + REG_RESOURCE_REQUIREMENTS_LIST, + REG_QWORD_LITTLE_ENDIAN, + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +} + +const DWORD + REG_NOTIFY_CHANGE_NAME = 1, + REG_NOTIFY_CHANGE_ATTRIBUTES = 2, + REG_NOTIFY_CHANGE_LAST_SET = 4, + REG_NOTIFY_CHANGE_SECURITY = 8; + +alias ACCESS_MASK REGSAM; + +struct VALENTA { + LPSTR ve_valuename; + DWORD ve_valuelen; + DWORD ve_valueptr; + DWORD ve_type; +} +alias VALENTA* PVALENTA; + +struct VALENTW { + LPWSTR ve_valuename; + DWORD ve_valuelen; + DWORD ve_valueptr; + DWORD ve_type; +} +alias VALENTW* PVALENTW; + +// RRF - Registry Routine Flags (for RegGetValue) +static if (WINVER >= 0x600) { + enum : DWORD { + RRF_RT_REG_NONE = 0x00000001, + RRF_RT_REG_SZ = 0x00000002, + RRF_RT_REG_EXPAND_SZ = 0x00000004, + RRF_RT_REG_BINARY = 0x00000008, + RRF_RT_REG_DWORD = 0x00000010, + RRF_RT_REG_MULTI_SZ = 0x00000020, + RRF_RT_REG_QWORD = 0x00000040, + RRF_RT_DWORD = RRF_RT_REG_BINARY | RRF_RT_REG_DWORD, + RRF_RT_QWORD = RRF_RT_REG_BINARY | RRF_RT_REG_QWORD, + RRF_RT_ANY = 0x0000FFFF, + RRF_NOEXPAND = 0x10000000, + RRF_ZEROONFAILURE = 0x20000000 + } +} + +extern (Windows) { + LONG RegCloseKey(HKEY); + LONG RegConnectRegistryA(LPCSTR, HKEY, PHKEY); + LONG RegConnectRegistryW(LPCWSTR, HKEY, PHKEY); + LONG RegCreateKeyExA(HKEY, LPCSTR, DWORD, LPSTR, DWORD, REGSAM, + LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); + LONG RegCreateKeyExW(HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, + LPSECURITY_ATTRIBUTES, PHKEY, PDWORD); + LONG RegDeleteKeyA(HKEY, LPCSTR); + LONG RegDeleteKeyW(HKEY, LPCWSTR); + LONG RegDeleteValueA(HKEY, LPCSTR); + LONG RegDeleteValueW(HKEY, LPCWSTR); + LONG RegEnumKeyExA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, LPSTR, PDWORD, + PFILETIME); + LONG RegEnumKeyExW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, LPWSTR, PDWORD, + PFILETIME); + LONG RegEnumValueA(HKEY, DWORD, LPSTR, PDWORD, PDWORD, PDWORD, LPBYTE, + PDWORD); + LONG RegEnumValueW(HKEY, DWORD, LPWSTR, PDWORD, PDWORD, PDWORD, LPBYTE, + PDWORD); + LONG RegFlushKey(HKEY); + LONG RegLoadKeyA(HKEY, LPCSTR, LPCSTR); + LONG RegLoadKeyW(HKEY, LPCWSTR, LPCWSTR); + LONG RegOpenKeyExA(HKEY, LPCSTR, DWORD, REGSAM, PHKEY); + LONG RegOpenKeyExW(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY); + LONG RegQueryInfoKeyA(HKEY, LPSTR, PDWORD, PDWORD, PDWORD, PDWORD, + PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); + LONG RegQueryInfoKeyW(HKEY, LPWSTR, PDWORD, PDWORD, PDWORD, PDWORD, + PDWORD, PDWORD, PDWORD, PDWORD, PDWORD, PFILETIME); + LONG RegQueryMultipleValuesA(HKEY, PVALENTA, DWORD, LPSTR, LPDWORD); + LONG RegQueryMultipleValuesW(HKEY, PVALENTW, DWORD, LPWSTR, LPDWORD); + LONG RegQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); + LONG RegQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPBYTE, LPDWORD); + LONG RegReplaceKeyA(HKEY, LPCSTR, LPCSTR, LPCSTR); + LONG RegReplaceKeyW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR); + LONG RegSaveKeyA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES); + LONG RegSaveKeyW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES); + LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); + LONG RegSetValueExA(HKEY, LPCSTR, DWORD, DWORD, BYTE*, DWORD); + LONG RegSetValueExW(HKEY, LPCWSTR, DWORD, DWORD, BYTE*, DWORD); + LONG RegUnLoadKeyA(HKEY, LPCSTR); + LONG RegUnLoadKeyW(HKEY, LPCWSTR); + static if (_WIN32_WINDOWS >= 0x410) { + LONG RegNotifyChangeKeyValue(HKEY, BOOL, DWORD, HANDLE, BOOL); + } + + static if (_WIN32_WINNT_ONLY) { + BOOL AbortSystemShutdownA(LPCSTR); + BOOL AbortSystemShutdownW(LPCWSTR); + BOOL InitiateSystemShutdownA(LPSTR, LPSTR, DWORD, BOOL, BOOL); + BOOL InitiateSystemShutdownW(LPWSTR, LPWSTR, DWORD, BOOL, BOOL); + LONG RegGetKeySecurity(HKEY, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR, PDWORD); + LONG RegRestoreKeyA(HKEY, LPCSTR, DWORD); + LONG RegRestoreKeyW(HKEY, LPCWSTR, DWORD); + LONG RegSetKeySecurity(HKEY, SECURITY_INFORMATION, + PSECURITY_DESCRIPTOR); + + static if (_WIN32_WINNT >= 0x500) { + LONG RegDisablePredefinedCache(); + LONG RegOpenCurrentUser(REGSAM, PHKEY); + LONG RegOpenUserClassesRoot(HANDLE, DWORD, REGSAM, PHKEY); + } + + static if (_WIN32_WINNT >= 0x501) { + LONG RegSaveKeyExA(HKEY, LPCSTR, LPSECURITY_ATTRIBUTES, DWORD); + LONG RegSaveKeyExW(HKEY, LPCWSTR, LPSECURITY_ATTRIBUTES, DWORD); + } + + static if (_WIN32_WINNT >= 0x600) { + LONG RegGetValueA(HKEY hkey, LPCSTR lpSubKey, LPCSTR lpValue, + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); + LONG RegGetValueW(HKEY hkey, LPCWSTR lpSubKey, LPCWSTR lpValue, + DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData); + } + } + + deprecated { + LONG RegCreateKeyA(HKEY, LPCSTR, PHKEY); + LONG RegCreateKeyW(HKEY, LPCWSTR, PHKEY); + LONG RegEnumKeyA(HKEY, DWORD, LPSTR, DWORD); + LONG RegEnumKeyW(HKEY, DWORD, LPWSTR, DWORD); + LONG RegOpenKeyA(HKEY, LPCSTR, PHKEY); + LONG RegOpenKeyW(HKEY, LPCWSTR, PHKEY); + LONG RegQueryValueA(HKEY, LPCSTR, LPSTR, PLONG); + LONG RegQueryValueW(HKEY, LPCWSTR, LPWSTR, PLONG); + LONG RegSetValueA(HKEY, LPCSTR, DWORD, LPCSTR, DWORD); + LONG RegSetValueW(HKEY, LPCWSTR, DWORD, LPCWSTR, DWORD); + } +} + +version (Unicode) { + alias VALENTW VALENT; + alias RegConnectRegistryW RegConnectRegistry; + alias RegCreateKeyExW RegCreateKeyEx; + alias RegDeleteKeyW RegDeleteKey; + alias RegDeleteValueW RegDeleteValue; + alias RegEnumKeyExW RegEnumKeyEx; + alias RegEnumValueW RegEnumValue; + alias RegLoadKeyW RegLoadKey; + alias RegOpenKeyExW RegOpenKeyEx; + alias RegQueryInfoKeyW RegQueryInfoKey; + alias RegQueryMultipleValuesW RegQueryMultipleValues; + alias RegQueryValueExW RegQueryValueEx; + alias RegReplaceKeyW RegReplaceKey; + alias RegSaveKeyW RegSaveKey; + alias RegSetValueExW RegSetValueEx; + alias RegUnLoadKeyW RegUnLoadKey; + + static if (_WIN32_WINNT_ONLY) { + alias AbortSystemShutdownW AbortSystemShutdown; + alias InitiateSystemShutdownW InitiateSystemShutdown; + alias RegRestoreKeyW RegRestoreKey; + static if (_WIN32_WINNT >= 0x501) { + alias RegSaveKeyExA RegSaveKeyEx; + } + static if (_WIN32_WINNT >= 0x600) { + alias RegGetValueW RegGetValue; + } + } + deprecated { + alias RegCreateKeyW RegCreateKey; + alias RegEnumKeyW RegEnumKey; + alias RegOpenKeyW RegOpenKey; + alias RegQueryValueW RegQueryValue; + alias RegSetValueW RegSetValue; + } +} else { + alias VALENTA VALENT; + alias RegConnectRegistryA RegConnectRegistry; + alias RegCreateKeyExA RegCreateKeyEx; + alias RegDeleteKeyA RegDeleteKey; + alias RegDeleteValueA RegDeleteValue; + alias RegEnumKeyExA RegEnumKeyEx; + alias RegEnumValueA RegEnumValue; + alias RegLoadKeyA RegLoadKey; + alias RegOpenKeyExA RegOpenKeyEx; + alias RegQueryInfoKeyA RegQueryInfoKey; + alias RegQueryMultipleValuesA RegQueryMultipleValues; + alias RegQueryValueExA RegQueryValueEx; + alias RegReplaceKeyA RegReplaceKey; + alias RegSaveKeyA RegSaveKey; + alias RegSetValueExA RegSetValueEx; + alias RegUnLoadKeyA RegUnLoadKey; + static if (_WIN32_WINNT_ONLY) { + alias AbortSystemShutdownA AbortSystemShutdown; + alias InitiateSystemShutdownA InitiateSystemShutdown; + alias RegRestoreKeyW RegRestoreKey; + static if (_WIN32_WINNT >= 0x501) { + alias RegSaveKeyExA RegSaveKeyEx; + } + static if (_WIN32_WINNT >= 0x600) { + alias RegGetValueA RegGetValue; + } + } + deprecated { + alias RegCreateKeyA RegCreateKey; + alias RegEnumKeyA RegEnumKey; + alias RegOpenKeyA RegOpenKey; + alias RegQueryValueA RegQueryValue; + alias RegSetValueA RegSetValue; + } +} + +alias VALENT* PVALENT;