Declare Function RegCloseKey Lib "advapi32.dll" (ByVal HKEY As Integer) As Integer
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA"(ByVal HKEY As Integer, ByVal lpSubKey As String, ByRef phkResult As Integer) As Integer
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA"(ByVal HKEY As Integer, ByVal lpSubKey As String) As Integer
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA"(ByVal HKEY As Integer, ByVal lpValueName As String) As Integer
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA"(ByVal HKEY As Integer, ByVal lpSubKey As String, ByRef phkResult As Integer) As Integer
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal HKEY As Integer, ByVal lpValueName As String, ByVal lpReserved As Integer, ByRef lpType As Integer, ByRef lpData As String, ByRef lpcbData As Integer) As Integer
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal HKEY As Integer, ByVal lpValueName As String, ByVal lpReserved As Integer, ByRef lpType As Integer, ByRef lpData As Integer, ByRef lpcbData As Integer) As Integer
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal HKEY As Integer, ByVal lpValueName As String, ByVal Reserved As Integer, ByVal dwType As Integer, ByRef lpData As String, ByVal cbData As Integer) As Integer
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal HKEY As Integer, ByVal lpValueName As String, ByVal Reserved As Integer, ByVal dwType As Integer, ByRef lpData As Integer, ByVal cbData As Integer) As Integer
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const REG_SZ = 1
Function RegQueryStringValue(ByVal HKEY As Integer, ByVal strValueName As String) As Object
Dim ERROR_SUCCESS As Object
Dim lResult As Integer
Dim lValueType As Integer
Dim strBuf As String
Dim lDataBufSize As Integer
On Error GoTo 0
lResult = RegQueryValueEx(HKEY, strValueName, 0, lValueType, 0, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = REG_SZ Then
strBuf = New String(" ", lDataBufSize)
lResult = RegQueryValueEx(HKEY, strValueName, 0, 0, strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
RegQueryStringValue = StripTerminator(strBuf)
End If
End If
End If
End Function
Public Function GetSettingEx(ByRef HKEY As Integer, ByRef sPath As String, ByRef sValue As String) As Object
Dim KeyHand As Integer
Dim datatype As Integer
Call RegOpenKey(HKEY, sPath, KeyHand)
GetSettingEx = RegQueryStringValue(KeyHand, sValue)
Call RegCloseKey(KeyHand)
End Function
Function StripTerminator(ByVal strString As String) As String
Dim intZeroPos As Short
intZeroPos = InStr(strString, Chr(0))
If intZeroPos > 0 Then
StripTerminator = Left(strString, intZeroPos - 1)
Else
StripTerminator = strString
End If
End Function
Public Sub SaveSettingEx(ByRef HKEY As Integer, ByRef sPath As String, ByRef sValue As String, ByRef sData As String)
Dim KeyHand As Integer
Call RegCreateKey(HKEY, sPath, KeyHand)
Call RegSetValueEx(KeyHand, sValue, 0, REG_SZ, sData, Len(sData))
Call RegCloseKey(KeyHand)
End Sub