func 
RegCloseKey : int32
hkey : handle

func 
RegConnectRegistry:int32
    lpMachineName : pchar; 	// address of name of remote computer 
    hKey : handle; 	// predefined registry handle 
    phkResult :Phandle

func
 RegCreateKey:int32
    hKey:handle; 	// handle of an open key 
    lpSubKey:pchar; 	// address of name of subkey to open 
    phkResult 	: phandle

func
 RegCreateKeyEx:int32;
    hKey:handle; 	// handle of an open key 
    lpSubKey:pchar; 	// address of subkey name 
    Reserved:int32 	// reserved 
    lpClass:pchar; 	// address of class string 
    dwOptions:int32; 	// special options flag 
    samDesired:int32 	// desired security access 
    lpSecurityAttributes:pointer; 	// address of key security structure 
    phkResult:Phandle; 	// address of buffer for opened handle  
    lpdwDisposition 	:Pint32

func
RegDeleteKey:int32;
    hKey:handle; 	// handle of open key 
    lpSubKey 	:Pchar

func
RegDeleteValue:int32;
    hKey:handle; 	// handle of key 
    lpValueName 	:Pchar

func
 RegEnumKey:int32;
    hKey:handle; 	// handle of key to query 
    dwIndex:int32; 	// index of subkey to query 
    lpName:pchar; 	// address of buffer for subkey name  
    cbName 	:int32;

func
RegEnumKeyEx:int32
    hKey:handle 	// handle of key to enumerate 
    dwIndex:int32 	// index of subkey to enumerate 
    lpName:pchar 	// address of buffer for subkey name 
    lpcbName:Pint32 	// address for size of subkey buffer 
    lpReserved:Pint32 	// reserved 
    lpClass:pchar 	// address of buffer for class string 
    lpcbClass:pint32 	// address for size of class buffer 
    lpftLastWriteTime 	:pint64;

func
RegEnumValue:int32
    hKey:handle 	// handle of key to query 
    dwIndex:int32 	// index of value to query 
    lpValueName:pchar 	// address of buffer for value string 
    lpcbValueName:pint32 	// address for size of value buffer 
    lpReserved:pint32 	// reserved 
    lpType:Pint32 	// address of buffer for type code 
    lpData:Pointer 	// address of buffer for value data 
    lpcbData 	:pint32

func
RegFlushKey:int32
hkey : handle

func
RegGetKeySecurity:int32
    hKey:handle // open handle of key to set 
     SecurityInformation:int32 	// descriptor contents 
     pSecurityDescriptor:Pointer 	// address of descriptor for key 
    lpcbSecurityDescriptor 	:Pint32

func
RegLoadKey:int32
    hKey:handle 	// handle of open key 
    lpSubKey:pchar 	// address of name of subkey 
    lpFile 	:pchar;// address of filename for registry information 
   
func
RegNotifyChangeKeyValue:int32
    hKey:handle 	// handle of key to watch 
    bWatchSubtree:bool // flag for subkey notification 
    dwNotifyFilter:int32 	// changes to be reported 
    hEvent:handle 	// handle of signaled event 
    fAsynchronous 	:bool 

func
RegOpenKey:int32
    hKey:handle 	// handle of open key 
    lpSubKey:pchar 	// address of name of subkey to open 
    phkResult 	:Phandle

func
RegOpenKeyEx:int32
    hKey:handle 	// handle of open key 
    lpSubKey:pchar 	// address of name of subkey to open 
    ulOptions:handle 	// reserved 
    samDesired:handle 	// security access mask 
    phkResult 	:phandle

func
RegQueryInfoKey :int32
    hKey:handle 	// handle of key to query 
    lpClass:pchar 	// address of buffer for class string 
    lpcbClass:pint32 	// address of size of class string buffer 
    lpReserved:pint32 	// reserved 
    lpcSubKeys:pchar 	// address of buffer for number of subkeys 
    lpcbMaxSubKeyLen:pint32 	// address of buffer for longest subkey name length  
    lpcbMaxClassLen:pint32 	// address of buffer for longest class string length 
    lpcValues:Pint32 	// address of buffer for number of value entries 
    lpcbMaxValueNameLen:pint32 	// address of buffer for longest value name length 
    lpcbMaxValueLen:pint32 	// address of buffer for longest value data length 
    lpcbSecurityDescriptor:pint32 	// address of buffer for security descriptor length 
    lpftLastWriteTime 	:pint64

func
RegQueryMultipleValues:int32
    hKey:handle 	// handle of key to query
    val_list:pointer 	// address of array of value entry structures
    num_vals:int32 	// size of array of value entry structures
    lpValueBuf:pchar 	// address of buffer for value information
    ldwTotsize	:pint32 io

func
RegQueryValue:int32
    hKey:handle 	// handle of key to query 
    lpSubKey:pchar 	// address of name of subkey to query 
    lpValue:pchar 	// address of buffer for returned string 
    lpcbValue 	:pint32 io

func
RegQueryValueEx:int32
    hKey:handle 	// handle of key to query 
    lpValueName:pchar 	// address of name of value to query 
    lpReserved:pint32 	// reserved 
    lpType:pint32 	// address of buffer for value type 
    lpData:Pointer 	// address of data buffer 
    lpcbData 	:pint32 io

func
RegReplaceKey:int32 
hKey:handle 	// handle of open key 
lpSubKey:pchar 	// address of name of subkey 
lpNewFile:Pchar 	// address of filename for file with new data  
lpOldFile 	:pchar

func
RegRestoreKey:int32
    hKey:handle 	// handle of key where restore begins 
    lpFile:pchar 	// address of filename containing saved tree 
    dwFlags 	:int32

func
RegSaveKey:int32 
    hKey:handle 	// handle of key where save begins  
    lpFile:pchar 	// address of filename to save to 
    lpSecurityAttributes 	:pointer

func
RegSetKeySecurity:int32
    hKey:handle 	// open handle of key to set 
    SecurityInformation:int32 	// descriptor contents 
    pSecurityDescriptor 	:pointer;

func
RegSetValue:int32 
    hKey:handle 	// handle of key to set value for 
    lpSubKey:pchar 	// address of subkey name 
    dwType:int32 	// type of value 
    lpData:Pointer 	// address of value data 
    cbData 	:int32

func
RegSetValueEx:int32 
    hKey:handle 	// handle of key to set value for  
    lpValueName:pchar 	// address of value to set 
    Reserved:int32 	// reserved 
    dwType:int32 	// flag for value type 
    lpData:pointer 	// address of value data 
    cbData 	:int32

func
RegUnLoadKey:int32
   hKey:handle 	// handle of open key 
    lpSubKey 	:pchar