[1] | 1 | ' api_reg.sbp
|
---|
| 2 | ' Registry Operation
|
---|
| 3 |
|
---|
| 4 |
|
---|
| 5 | #ifndef _INC_REG
|
---|
| 6 | #define _INC_REG
|
---|
| 7 |
|
---|
[141] | 8 | #ifdef UNICODE
|
---|
| 9 | Const _FuncName_RegConnectRegistry = "RegConnectRegistryW"
|
---|
[281] | 10 | Const _FuncName_RegConnectRegistryEx = "RegConnectRegistryExW"
|
---|
[141] | 11 | Const _FuncName_RegCreateKeyEx = "RegCreateKeyExW"
|
---|
[281] | 12 | Const _FuncName_RegCreateKeyTransacted = "RegCreateKeyTransactedW"
|
---|
[141] | 13 | Const _FuncName_RegDeleteKey = "RegDeleteKeyW"
|
---|
[281] | 14 | Const _FuncName_RegDeleteKeyEx = "RegDeleteKeyExW"
|
---|
| 15 | Const _FuncName_RegDeleteKeyTransacted = "RegDeleteKeyTransactedW"
|
---|
[141] | 16 | Const _FuncName_RegDeleteValue = "RegDeleteValueW"
|
---|
| 17 | Const _FuncName_RegEnumKeyEx = "RegEnumKeyExW"
|
---|
| 18 | Const _FuncName_RegEnumValue = "RegEnumValueW"
|
---|
| 19 | Const _FuncName_RegLoadKey = "RegLoadKeyW"
|
---|
| 20 | Const _FuncName_RegOpenKeyEx = "RegOpenKeyExW"
|
---|
[281] | 21 | Const _FuncName_RegOpenKeyTransacted = "RegOpenKeyTransactedW"
|
---|
[141] | 22 | Const _FuncName_RegQueryInfoKey = "RegQueryInfoKeyW"
|
---|
| 23 | Const _FuncName_RegQueryMultipleValues = "RegQueryMultipleValuesW"
|
---|
| 24 | Const _FuncName_RegQueryValueEx = "RegQueryValueExW"
|
---|
[172] | 25 | Const _FuncName_RegReplaceKey = "RegReplaceKeyW"
|
---|
[281] | 26 | Const _FuncName_RegRestoreKey = "RegRestoreKeyW"
|
---|
[141] | 27 | Const _FuncName_RegSaveKey = "RegSaveKeyW"
|
---|
| 28 | Const _FuncName_RegSetValueEx = "RegSetValueExW"
|
---|
| 29 | Const _FuncName_RegUnLoadKey = "RegUnLoadKeyW"
|
---|
[281] | 30 | Const _FuncName_RegDeleteKeyValue = "RegDeleteKeyValueW"
|
---|
| 31 | Const _FuncName_RegSetKeyValue = "RegSetKeyValueW"
|
---|
| 32 | Const _FuncName_RegDeleteTree = "RegDeleteTreeW"
|
---|
| 33 | Const _FuncName_RegCopyTree = "RegCopyTreeW"
|
---|
| 34 | Const _FuncName_RegGetValue = "RegGetValueW"
|
---|
| 35 | Const _FuncName_RegLoadMUIString = "RegLoadMUIStringW"
|
---|
| 36 | Const _FuncName_RegLoadAppKey = "RegLoadAppKeyW"
|
---|
| 37 | Const _FuncName_RegSaveKeyEx = "RegSaveKeyExW"
|
---|
[141] | 38 | #else
|
---|
| 39 | Const _FuncName_RegConnectRegistry = "RegConnectRegistryA"
|
---|
[281] | 40 | Const _FuncName_RegConnectRegistryEx = "RegConnectRegistryExA"
|
---|
[141] | 41 | Const _FuncName_RegCreateKeyEx = "RegCreateKeyExA"
|
---|
[281] | 42 | Const _FuncName_RegCreateKeyTransacted = "RegCreateKeyTransactedA"
|
---|
[141] | 43 | Const _FuncName_RegDeleteKey = "RegDeleteKeyA"
|
---|
[281] | 44 | Const _FuncName_RegDeleteKeyEx = "RegDeleteKeyExA"
|
---|
| 45 | Const _FuncName_RegDeleteKeyTransacted = "RegDeleteKeyTransactedA"
|
---|
[141] | 46 | Const _FuncName_RegDeleteValue = "RegDeleteValueA"
|
---|
| 47 | Const _FuncName_RegEnumKeyEx = "RegEnumKeyExA"
|
---|
| 48 | Const _FuncName_RegEnumValue = "RegEnumValueA"
|
---|
| 49 | Const _FuncName_RegLoadKey = "RegLoadKeyA"
|
---|
| 50 | Const _FuncName_RegOpenKeyEx = "RegOpenKeyExA"
|
---|
[281] | 51 | Const _FuncName_RegOpenKeyTransacted = "RegOpenKeyTransactedA"
|
---|
[141] | 52 | Const _FuncName_RegQueryInfoKey = "RegQueryInfoKeyA"
|
---|
| 53 | Const _FuncName_RegQueryMultipleValues = "RegQueryMultipleValuesA"
|
---|
| 54 | Const _FuncName_RegQueryValueEx = "RegQueryValueExA"
|
---|
[172] | 55 | Const _FuncName_RegReplaceKey = "RegReplaceKeyA"
|
---|
[281] | 56 | Const _FuncName_RegRestoreKey = "RegRestoreKeyA"
|
---|
[141] | 57 | Const _FuncName_RegSaveKey = "RegSaveKeyA"
|
---|
| 58 | Const _FuncName_RegSetValueEx = "RegSetValueExA"
|
---|
| 59 | Const _FuncName_RegUnLoadKey = "RegUnLoadKeyA"
|
---|
[281] | 60 | Const _FuncName_RegDeleteKeyValue = "RegDeleteKeyValueA"
|
---|
| 61 | Const _FuncName_RegSetKeyValue = "RegSetKeyValueA"
|
---|
| 62 | Const _FuncName_RegDeleteTree = "RegDeleteTreeA"
|
---|
| 63 | Const _FuncName_RegCopyTree = "RegCopyTreeA"
|
---|
| 64 | Const _FuncName_RegGetValue = "RegGetValueA"
|
---|
| 65 | Const _FuncName_RegLoadMUIString = "RegLoadMUIStringA"
|
---|
| 66 | Const _FuncName_RegLoadAppKey = "RegLoadAppKeyA"
|
---|
| 67 | Const _FuncName_RegSaveKeyEx = "RegSaveKeyExA"
|
---|
[141] | 68 | #endif
|
---|
[1] | 69 |
|
---|
[281] | 70 | TypeDef REGSAM = Long 'ACCESS_MASK
|
---|
| 71 |
|
---|
[1] | 72 | ' Reserved Key Handles
|
---|
[172] | 73 | Const HKEY_CLASSES_ROOT = ((&H80000000 As Long) As ULONG_PTR) As HKEY
|
---|
| 74 | Const HKEY_CURRENT_USER = ((&H80000001 As Long) As ULONG_PTR) As HKEY
|
---|
| 75 | Const HKEY_LOCAL_MACHINE = ((&H80000002 As Long) As ULONG_PTR) As HKEY
|
---|
| 76 | Const HKEY_USERS = ((&H80000003 As Long) As ULONG_PTR) As HKEY
|
---|
| 77 | Const HKEY_PERFORMANCE_DATA = ((&H80000004 As Long) As ULONG_PTR) As HKEY
|
---|
| 78 | Const HKEY_CURRENT_CONFIG = ((&H80000005 As Long) As ULONG_PTR) As HKEY
|
---|
| 79 | Const HKEY_DYN_DATA = ((&H80000006 As Long) As ULONG_PTR) As HKEY
|
---|
[1] | 80 |
|
---|
[281] | 81 | Const REG_SECURE_CONNECTION = 1
|
---|
| 82 |
|
---|
[141] | 83 | Type VALENTW
|
---|
| 84 | ve_valuename As PWSTR
|
---|
| 85 | ve_valuelen As DWord
|
---|
| 86 | ve_valueptr As ULONG_PTR
|
---|
| 87 | ve_type As DWord
|
---|
| 88 | End Type
|
---|
| 89 | Type VALENTA
|
---|
| 90 | ve_valuename As PSTR
|
---|
| 91 | ve_valuelen As DWord
|
---|
| 92 | ve_valueptr As ULONG_PTR
|
---|
| 93 | ve_type As DWord
|
---|
| 94 | End Type
|
---|
[1] | 95 |
|
---|
[141] | 96 | #ifdef UNICODE
|
---|
| 97 | TypeDef VALENT = VALENTW
|
---|
| 98 | #else
|
---|
| 99 | TypeDef VALENT = VALENTA
|
---|
| 100 | #endif
|
---|
[1] | 101 | '------------------------
|
---|
| 102 | ' Registry API Functions
|
---|
| 103 |
|
---|
| 104 | Declare Function RegCloseKey Lib "advapi32" (hKey As HKEY) As Long
|
---|
[281] | 105 | '#if WINVER >= 0x0500 'AB
|
---|
| 106 | Declare Function RegOverridePredefKey Lib "advapi32" (hKey As HKEY, hNewKey As HKEY) As Long
|
---|
| 107 | Declare Function RegOpenUserClassesRoot Lib "advapi32" (hToken As HANDLE, dwOptions As DWord, samDesired As REGSAM, ByRef hkResult As HKEY) As Long
|
---|
| 108 | Declare Function RegOpenCurrentUser Lib "advapi32" (samDesired As REGSAM, ByRef hkResult As HKEY) As Long
|
---|
| 109 | Declare Function RegDisablePredefinedCache Lib "advapi32" () As Long
|
---|
| 110 | Declare Function RegDisablePredefinedCacheEx Lib "advapi32" () As Long
|
---|
| 111 | '#endif
|
---|
[141] | 112 | Declare Function RegConnectRegistry Lib "advapi32" Alias _FuncName_RegConnectRegistry (pMachineName As PCTSTR, hKey As HKEY, ByRef hkResult As HKEY) As Long
|
---|
[281] | 113 | Declare Function RegConnectRegistryEx Lib "advapi32" Alias _FuncName_RegConnectRegistryEx (lpMachineName As LPCTSTR, hKey As HKEY, Flags As DWord, ByRef hkResult As HKEY) As Long
|
---|
| 114 | Declare Function RegCreateKeyEx Lib "advapi32" Alias _FuncName_RegCreateKeyEx (hKey As HKEY, lpSubKey As PCTSTR, Reserved As DWord, lpClass As PTSTR, dwOptions As DWord, samDesired As REGSAM, lpSecurityAttributes As *SECURITY_ATTRIBUTES, ByRef phkResult As HKEY, lpdwDisposition As *DWord) As Long
|
---|
| 115 | '#if WINVER >= 0x0600 'AB
|
---|
| 116 | Declare Function RegCreateKeyTransacted Lib "advapi32" Alias _FuncName_RegCreateKeyTransacted (hKey As HKEY, lpSubKey As LPCTSTR, Reserved As DWord, lpClass As LPTSTR, dwOptions As DWord, samDesired As REGSAM, lpSecurityAttributes As *SECURITY_ATTRIBUTES, ByRef phkResult As HKEY, lpdwDisposition As *DWord, hTransaction As HANDLE, pExtendedParemeter As VoidPtr) As Long
|
---|
| 117 | '#endif
|
---|
[141] | 118 | Declare Function RegDeleteKey Lib "advapi32" Alias _FuncName_RegDeleteKey (hKey As HKEY, lpSubKey As PCTSTR) As Long
|
---|
[281] | 119 | '#if WINVER >= 0x0520 'AB
|
---|
| 120 | Declare Function RegDeleteKeyEx Lib "advapi32" Alias _FuncName_RegDeleteKeyEx (hKey As HKEY, lpSubKey As LPCTSTR, samDesired As REGSAM, Reserved As DWord) As Long
|
---|
| 121 | '#endif
|
---|
| 122 | '#if WINVER >= 0x0600 'AB
|
---|
| 123 | Declare Function RegDeleteKeyTransacted Lib "advapi32" Alias _FuncName_RegDeleteKeyTransacted (hKey As HKEY, lpSubKey As LPCTSTR, samDesired As REGSAM, Reserved As DWord, hTransaction As HANDLE, pExtendedParameter As VoidPtr) As Long
|
---|
| 124 | '#endif
|
---|
| 125 | '#if WINVER >= 0x0520 'AB
|
---|
| 126 | Declare Function RegDisableReflectionKey Lib "advapi32" (hBase As HKEY) As Long
|
---|
| 127 | Declare Function RegEnableReflectionKey Lib "advapi32" (hBase As HKEY) As Long
|
---|
| 128 | Declare Function RegQueryReflectionKey Lib "advapi32" (hBase As HKEY, ByRef bIsReflectionDisabled As BOOL) As Long
|
---|
| 129 | '#endif
|
---|
[141] | 130 | Declare Function RegDeleteValue Lib "advapi32" Alias _FuncName_RegDeleteValue (hKey As HKEY, lpValueName As PCTSTR) As Long
|
---|
| 131 | Declare Function RegEnumKeyEx Lib "advapi32" Alias _FuncName_RegEnumKeyEx (hKey As HKEY, dwIndex As DWord, pName As PTSTR, ByRef cName As DWord, pReserved As *DWord, pClass As PTSTR, ByRef cClass As DWord, pftLastWriteTime As *FILETIME) As Long
|
---|
| 132 | Declare Function RegEnumValue Lib "advapi32" Alias _FuncName_RegEnumValue (hKey As HKEY, dwIndex As DWord, pValueName As PTSTR, ByRef cValueName As DWord, pReserved As *DWord, pType As *DWord, pData As *Byte, pcbData As *DWord) As Long
|
---|
[281] | 133 | Declare Function RegFlushKey Lib "advapi32" (hKey As HKEY) As Long
|
---|
| 134 | '#if _WIN32_WINNT >= &h0310 'AB
|
---|
| 135 | Declare Function RegGetKeySecurity Lib "advapi32"(hKey As HKEY, SecurityInformation As SECURITY_INFORMATION, pSecurityDescriptor As *SECURITY_DESCRIPTOR, ByRef lpcbSecurityDescriptor As DWord) As Long
|
---|
| 136 | '#endif
|
---|
[141] | 137 | Declare Function RegLoadKey Lib "advapi32" Alias _FuncName_RegLoadKey (hKey As HKEY, pSubKey As PCTSTR, pFile As PCTSTR) As Long
|
---|
| 138 | Declare Function RegOpenKeyEx Lib "advapi32" Alias _FuncName_RegOpenKeyEx (hKey As HKEY, lpSubKey As PCTSTR, ulOptions As DWord, samDesired As Long, ByRef phkResult As HKEY) As Long
|
---|
[281] | 139 | '#if WINVER >= 0x0600 'AB
|
---|
| 140 | Declare Function RegOpenKeyTransacted Lib "advapi32" Alias _FuncName_RegOpenKeyTransacted (hKey As HKEY, lpSubKey As LPCTSTR, ulOptions As DWord, samDesired As REGSAM, ByRef phkResult As HKEY, hTransaction As HANDLE, pExtendedParemeter As VoidPtr) As Long
|
---|
| 141 | '#endif
|
---|
[141] | 142 | Declare Function RegQueryInfoKey Lib "advapi32" Alias _FuncName_RegQueryInfoKey (hKey As HKEY, pClass As PTSTR, pcClass As *DWord, pReserved As *DWord, pcSubKeys As *DWord, pcMaxSubKeyLen As *DWord, pcMaxClassLen As *DWord, pcValues As *DWord, pcMaxValueNameLen As *DWord, pcMaxValueLen As *DWord, pcbSecurityDescriptor As *DWord, pftLastWriteTime As *FILETIME) As Long
|
---|
| 143 | Declare Function RegQueryMultipleValues Lib "advapi32" Alias _FuncName_RegQueryMultipleValues (hKey As HKEY, val_list As *VALENT, num_vals As DWord, pValueBuf As PTSTR, ByRef dwTotsize As DWord) As Long
|
---|
| 144 | Declare Function RegQueryValueEx Lib "advapi32" Alias _FuncName_RegQueryValueEx (hKey As HKEY, lpValueName As PCTSTR, lpReserved As DWord, lpType As *DWord, lpData As VoidPtr, lpcbData As *DWord) As Long
|
---|
[172] | 145 | Declare Function RegReplaceKey Lib "advapi32" Alias _FuncName_RegReplaceKey (hKey As HKEY, lpSubKey As LPCTSTR, lpNewFile As LPCTSTR, lpOldFile As LPCTSTR) As Long
|
---|
[281] | 146 | '#if _WIN32_WINNT >= &h0310 'AB
|
---|
| 147 | Declare Function RegRestoreKey Lib "advapi32" Alias _FuncName_RegRestoreKey (hKey As HKEY, lpFile As LPCTSTR, dwFlags As DWord) As Long
|
---|
| 148 | '#endif
|
---|
[141] | 149 | Declare Function RegSaveKey Lib "advapi32" Alias _FuncName_RegSaveKey (hKey As HKEY, pFile As PCTSTR, pSecurityAttributes As *SECURITY_ATTRIBUTES) As Long
|
---|
[281] | 150 | '#if _WIN32_WINNT >= &h0310 'AB
|
---|
| 151 | Declare Function RegSetKeySecurity Lib "advapi32" (hKey As HKEY, SecurityInformation As SECURITY_INFORMATION, pSecurityDescriptor As *SECURITY_DESCRIPTOR) AS Long
|
---|
| 152 | '#endif
|
---|
| 153 | Declare Function RegSetValueEx Lib "advapi32" Alias _FuncName_RegSetValueEx (hKey As HKEY, lpValueName As LPCTSTR, Reserved As DWord, dwType As DWord, lpData As VoidPtr, cbData As DWord) As Long
|
---|
[172] | 154 | Declare Function RegUnLoadKey Lib "advapi32" Alias _FuncName_RegUnLoadKey (hKey As HKEY, lpSubKey As LPCTSTR) As Long
|
---|
[281] | 155 | '#if _WIN32_WINNT >= &h0600
|
---|
| 156 | Declare Function RegDeleteKeyValue Lib "advapi32" Alias _FuncName_RegDeleteKeyValue (hKey As HKEY, lpSubKey As LPCTSTR, lpValueName As LPCTSTR) As Long
|
---|
| 157 | Declare Function RegSetKeyValue Lib "advapi32" Alias _FuncName_RegSetKeyValue (hKey As HKEY, lpSubKey As LPCTSTR, lpValueName As LPCTSTR, dwType As DWord, lpData As VoidPtr, cbData As DWord) As Long
|
---|
| 158 | Declare Function RegDeleteTree Lib "advapi32" Alias _FuncName_RegDeleteTree (hKey As HKEY, lpSubKey As LPCTSTR) As Long
|
---|
| 159 | Declare Function RegCopyTree Lib "advapi32" Alias _FuncName_RegCopyTree (hKeySrc As HKEY, lpSubKey As LPCTSTR, hKeyDest As HKEY) As Long
|
---|
| 160 | Declare Function RegGetValue Lib "advapi32" Alias _FuncName_RegGetValue (hKey As HKEY, lpSubKey As LPCTSTR, lpValue As LPCTSTR, dwFlags As DWord, pdwType As *DWord, pvData As VoidPtr, pcbData As *DWord) As Long
|
---|
| 161 | Declare Function RegLoadMUIString Lib "advapi32" Alias _FuncName_RegLoadMUIString (hKey As HKEY, pszValue As LPCTSTR, pszOutBuf As LPTSTR, cbOutBuf As DWord, pcbData As *DWord, Flags As DWord, pszDirectory As LPCTSTR) As Long
|
---|
| 162 | Declare Function RegLoadAppKey Lib "advapi32" Alias _FuncName_RegLoadAppKey (lpFile As LPCTSTR, ByRef hkResult As HKEY, samDesired As REGSAM, dwOptions As DWord, Reserved As DWord) As Long
|
---|
| 163 | '#endif
|
---|
| 164 | '#if WINVER >= 0x0510 'AB
|
---|
| 165 | Declare Function RegSaveKeyEx Lib "advapi32" Alias _FuncName_RegSaveKeyEx (hKey As HKEY, lpFile As LPCTSTR, lpSecurityAttributes As *SECURITY_ATTRIBUTES, Flags As DWord) As Long
|
---|
| 166 | '#endif
|
---|
[172] | 167 | #endif '_INC_REG
|
---|