You need Clarion prototypes for the registry functions. These are the ones I use
Module(‘WINREG’)
RegOpenKey(Long,Long,Long),Long,Pascal,Name(‘RegOpenKeyA’)
RegOpenKeyEx(Long,Long,Long,Long,Long),Long,Pascal,Name(‘RegOpenKeyExA’)
RegCloseKey(Long),Long,Pascal
RegEnumKey(Long,Long,Long,Long),Long,Pascal,Name(‘RegEnumKeyA’)
RegEnumKeyEx(Long,Long,Long,Long,Long,Long,Long,Long),Long,Pascal,Name(‘RegEnumKeyExA’)
RegEnumValue(Long,Long,Ulong,Ulong,Ulong,Ulong,Ulong,Ulong),Long,Pascal,Name(‘RegEnumValueA’)
RegCreateKey(Long,Long,Long),Long,Pascal,Name(‘RegCreateKeyExA’)
RegCreateKeyEx(Long,Long,Long,Long,Long,Long,Long,Long,Long),Long,Pascal,Name(‘RegCreateKeyExA’)
RegSetValueEx(Long,Long,Long,Long,Long,Long),Long,Pascal,Name(‘RegSetValueExA’)
RegDeleteValue(Long,Long),Long,Pascal,Name(‘RegDeleteValueA’)
RegDeleteKey(Long,Long),Long,Pascal,Name(‘RegDeleteKeyA’)
RegQueryValueEx(Long,Long,Long,Long,Long,ULong),Long,Pascal,Name(‘RegQueryValueExA’)
End
You’ll also need these as well:
HKEY_CLASSES_ROOT Equate(080000000H)
HKEY_CURRENT_USER Equate(080000001H)
HKEY_LOCAL_MACHINE Equate(080000002H)
HKEY_USERS Equate(080000003H)
Also bear in mind that a 32bit app on a 32bit OS reads different registry keys than a 32bit app on a 64bit OS
For example,
! 32-on-32 reads HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
! 32-on-64 reads HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion