' api_reg.sbp ' Registry Operation #ifndef _INC_REG #define _INC_REG #ifdef UNICODE Const _FuncName_RegConnectRegistry = "RegConnectRegistryW" Const _FuncName_RegCreateKeyEx = "RegCreateKeyExW" Const _FuncName_RegDeleteKey = "RegDeleteKeyW" Const _FuncName_RegDeleteValue = "RegDeleteValueW" Const _FuncName_RegEnumKeyEx = "RegEnumKeyExW" Const _FuncName_RegEnumValue = "RegEnumValueW" Const _FuncName_RegLoadKey = "RegLoadKeyW" Const _FuncName_RegOpenKeyEx = "RegOpenKeyExW" Const _FuncName_RegQueryInfoKey = "RegQueryInfoKeyW" Const _FuncName_RegQueryMultipleValues = "RegQueryMultipleValuesW" Const _FuncName_RegQueryValueEx = "RegQueryValueExW" Const _FuncName_RegReplaceKey = "RegReplaceKeyW" Const _FuncName_RegSaveKey = "RegSaveKeyW" Const _FuncName_RegSetValueEx = "RegSetValueExW" Const _FuncName_RegUnLoadKey = "RegUnLoadKeyW" #else Const _FuncName_RegConnectRegistry = "RegConnectRegistryA" Const _FuncName_RegCreateKeyEx = "RegCreateKeyExA" Const _FuncName_RegDeleteKey = "RegDeleteKeyA" Const _FuncName_RegDeleteValue = "RegDeleteValueA" Const _FuncName_RegEnumKeyEx = "RegEnumKeyExA" Const _FuncName_RegEnumValue = "RegEnumValueA" Const _FuncName_RegLoadKey = "RegLoadKeyA" Const _FuncName_RegOpenKeyEx = "RegOpenKeyExA" Const _FuncName_RegQueryInfoKey = "RegQueryInfoKeyA" Const _FuncName_RegQueryMultipleValues = "RegQueryMultipleValuesA" Const _FuncName_RegQueryValueEx = "RegQueryValueExA" Const _FuncName_RegReplaceKey = "RegReplaceKeyA" Const _FuncName_RegSaveKey = "RegSaveKeyA" Const _FuncName_RegSetValueEx = "RegSetValueExA" Const _FuncName_RegUnLoadKey = "RegUnLoadKeyA" #endif ' Reserved Key Handles Const HKEY_CLASSES_ROOT = ((&H80000000 As Long) As ULONG_PTR) As HKEY Const HKEY_CURRENT_USER = ((&H80000001 As Long) As ULONG_PTR) As HKEY Const HKEY_LOCAL_MACHINE = ((&H80000002 As Long) As ULONG_PTR) As HKEY Const HKEY_USERS = ((&H80000003 As Long) As ULONG_PTR) As HKEY Const HKEY_PERFORMANCE_DATA = ((&H80000004 As Long) As ULONG_PTR) As HKEY Const HKEY_CURRENT_CONFIG = ((&H80000005 As Long) As ULONG_PTR) As HKEY Const HKEY_DYN_DATA = ((&H80000006 As Long) As ULONG_PTR) As HKEY Type VALENTW ve_valuename As PWSTR ve_valuelen As DWord ve_valueptr As ULONG_PTR ve_type As DWord End Type Type VALENTA ve_valuename As PSTR ve_valuelen As DWord ve_valueptr As ULONG_PTR ve_type As DWord End Type #ifdef UNICODE TypeDef VALENT = VALENTW #else TypeDef VALENT = VALENTA #endif '------------------------ ' Registry API Functions Declare Function RegCloseKey Lib "advapi32" (hKey As HKEY) As Long Declare Function RegConnectRegistry Lib "advapi32" Alias _FuncName_RegConnectRegistry (pMachineName As PCTSTR, hKey As HKEY, ByRef hkResult As HKEY) As Long 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 Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As HKEY, lpdwDisposition As *DWord) As Long Declare Function RegDeleteKey Lib "advapi32" Alias _FuncName_RegDeleteKey (hKey As HKEY, lpSubKey As PCTSTR) As Long Declare Function RegDeleteValue Lib "advapi32" Alias _FuncName_RegDeleteValue (hKey As HKEY, lpValueName As PCTSTR) As Long 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 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 Declare Function RegFlushKey Lib "advapi32"(hKey As HKEY) As Long Declare Function RegLoadKey Lib "advapi32" Alias _FuncName_RegLoadKey (hKey As HKEY, pSubKey As PCTSTR, pFile As PCTSTR) As Long 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 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 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 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 Declare Function RegReplaceKey Lib "advapi32" Alias _FuncName_RegReplaceKey (hKey As HKEY, lpSubKey As LPCTSTR, lpNewFile As LPCTSTR, lpOldFile As LPCTSTR) As Long Declare Function RegSaveKey Lib "advapi32" Alias _FuncName_RegSaveKey (hKey As HKEY, pFile As PCTSTR, pSecurityAttributes As *SECURITY_ATTRIBUTES) As Long Declare Function RegSetValueEx Lib "advapi32" Alias _FuncName_RegSetValueEx (hKey As HKEY, lpValueName As PCTSTR, Reserved As DWord, dwType As DWord, lpData As VoidPtr, cbData As DWord) As Long Declare Function RegUnLoadKey Lib "advapi32" Alias _FuncName_RegUnLoadKey (hKey As HKEY, lpSubKey As LPCTSTR) As Long #endif '_INC_REG