Option Explicit
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const ERROR_SUCCESS = 0&
Private Const KEY_QUERY_VALUE = &H1
Private Const REG_BINARY = 3
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
Private Sub Command1_Click()
Dim lRc As Long
Dim lhKey1 As Long, lhKey2 As Long
lRc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0&, KEY_QUERY_VALUE, lhKey1)
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey1, "Microsoft", 0&, KEY_QUERY_VALUE, lhKey2)
RegCloseKey lhKey1
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey2, "Windows", 0&, KEY_QUERY_VALUE, lhKey1)
RegCloseKey lhKey2
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey1, "CurrentVersion", 0&, KEY_QUERY_VALUE, lhKey2)
RegCloseKey lhKey1
If lRc <> ERROR_SUCCESS Then Exit Sub
lRc = RegOpenKeyEx(lhKey2, "Controls Folder", 0&, KEY_QUERY_VALUE, lhKey1)
RegCloseKey lhKey2
If lRc <> ERROR_SUCCESS Then Exit Sub
Dim bytData(4096) As Byte, lLen As Long
lRc = RegEnumValue(lhKey1, 1&, "Presentation Cache", 19&, 0&, REG_BINARY, bytData(0), 4096)
RegCloseKey lhKey1
If lRc = ERROR_SUCCESS Then
Dim sChr As String, i1 As Integer
For i1 = 0 To 4095
sChr = sChr & Chr(bytData(i1))
Next i1
Debug.Print sChr
End If
End Sub