Browse Source

+wince : added RegXXX ansi missing funcs

git-svn-id: trunk@6318 -
oro06 18 years ago
parent
commit
61397d3953
2 changed files with 94 additions and 10 deletions
  1. 91 4
      rtl/wince/wininc/cemiss.inc
  2. 3 6
      rtl/wince/wininc/redef.inc

+ 91 - 4
rtl/wince/wininc/cemiss.inc

@@ -15,13 +15,23 @@
 {
   *What should contain this file*
   
-  functions missing on wince in order to be compatible with win32
+  functions missing on wince api
 
 }
 
 {$ifdef read_interface}
 
 function LoadLibraryA(lpLibFileName:LPCSTR):HINST;
+function RegCreateKeyExA(hKey:HKEY; lpSubKey:LPCSTR; Reserved:DWORD; lpClass:LPSTR; dwOptions:DWORD;samDesired:REGSAM; lpSecurityAttributes:LPSECURITY_ATTRIBUTES; var hkResult: HKEY; lpdwDisposition:LPDWORD):LONG;
+function RegDeleteKeyA(hKey:HKEY; lpSubKey:LPCSTR):LONG;
+function RegDeleteValueA(hKey:HKEY; lpValueName:LPCSTR):LONG;
+function RegEnumKeyExA(hKey:HKEY; dwIndex:DWORD; lpName:LPSTR; var cbName:DWORD; lpReserved:LPDWORD;lpClass:LPSTR; lpcbClass:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
+function RegEnumValueA(hKey:HKEY; dwIndex:DWORD; lpValueName:LPSTR; var cbValueName: DWORD; lpReserved:LPDWORD;lpType:LPDWORD; lpData:pointer; lpcbData:LPDWORD):LONG;
+function RegQueryValueExA(hKey:HKEY; lpValueName:LPCSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:pointer;lpcbData:LPDWORD):LONG;
+function RegQueryInfoKeyA(hKey:HKEY; lpClass:LPSTR; lpcbClass:LPDWORD; lpReserved:LPDWORD; lpcSubKeys:LPDWORD;lpcbMaxSubKeyLen:LPDWORD; lpcbMaxClassLen:LPDWORD; lpcValues:LPDWORD; lpcbMaxValueNameLen:LPDWORD;
+  lpcbMaxValueLen:LPDWORD;lpcbSecurityDescriptor:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
+function RegOpenKeyExA(hKey:HKEY; lpSubKey:LPCSTR; ulOptions:DWORD; samDesired:REGSAM; var hkResult: HKEY):LONG;
+function RegSetValueExA(hKey:HKEY; lpValueName:LPCSTR; Reserved:DWORD; dwType:DWORD; lpData:pointer;cbData:DWORD):LONG;
 
 {$endif read_interface}
 
@@ -32,9 +42,86 @@ function LoadLibraryA(lpLibFileName:LPCSTR):HINST;
 var  ws: PWideChar;
 begin
   ws:=StringToPWideChar(lpLibFileName);
-  try
-   Result:=Windows.LoadLibrary(ws);
-  finally FreeMem(ws); end;
+  Result:=Windows.LoadLibrary(ws);
+  FreeMem(ws);
+end;
+
+function RegCreateKeyExA(hKey:HKEY; lpSubKey:LPCSTR; Reserved:DWORD; lpClass:LPSTR; dwOptions:DWORD;samDesired:REGSAM; lpSecurityAttributes:LPSECURITY_ATTRIBUTES; var hkResult: HKEY; lpdwDisposition:LPDWORD):LONG;
+var  lpwsSubKey,
+     lpwsClass: PWideChar;
+begin
+ lpwsSubKey:=StringToPWideChar(lpSubKey);
+ lpwsClass:=StringToPWideChar(lpClass);
+ Result:=RegCreateKeyExW(hKey,lpwsSubKey,Reserved,lpwsClass,dwOptions,samDesired,lpSecurityAttributes, hkResult,lpdwDisposition);
+ FreeMem(lpwsClass); FreeMem(lpwsSubKey);
+end;
+
+function RegDeleteKeyA(hKey:HKEY; lpSubKey:LPCSTR):LONG;
+var  lpwsSubKey: PWideChar;
+begin
+ lpwsSubKey:=StringToPWideChar(lpSubKey);
+ Result:=RegDeleteKeyW(hKey,lpwsSubKey);
+ FreeMem(lpwsSubKey);
+end;
+
+function RegDeleteValueA(hKey:HKEY; lpValueName:LPCSTR):LONG;
+var  lpwsValueName: PWideChar;
+begin
+ lpwsValueName:=StringToPWideChar(lpValueName);
+ Result:=RegDeleteValueW(hKey,lpwsValueName);
+ FreeMem(lpwsValueName);
+end;
+
+function RegEnumKeyExA(hKey:HKEY; dwIndex:DWORD; lpName:LPSTR; var cbName:DWORD; lpReserved:LPDWORD;lpClass:LPSTR; lpcbClass:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
+var  lpwsName,
+     lpwsClass: PWideChar;
+begin
+ lpwsName:=StringToPWideChar(lpName);
+ lpwsClass:=StringToPWideChar(lpClass);
+ Result:=RegEnumKeyExW(hKey, dwIndex, lpwsName, cbName, lpReserved, lpwsClass, lpcbClass, lpftLastWriteTime);
+ FreeMem(lpwsName); FreeMem(lpwsClass);
+end;
+
+function RegEnumValueA(hKey:HKEY; dwIndex:DWORD; lpValueName:LPSTR; var cbValueName: DWORD; lpReserved:LPDWORD;lpType:LPDWORD; lpData:pointer; lpcbData:LPDWORD):LONG;
+var  lpwsValueName: PWideChar;
+begin
+ lpwsValueName:=StringToPWideChar(lpValueName);
+ Result:=RegEnumValueW(hKey, dwIndex, lpwsValueName, @cbValueName, lpReserved, lpType, lpData, lpcbData);
+ FreeMem(lpwsValueName);
+end;
+
+function RegQueryValueExA(hKey:HKEY; lpValueName:LPCSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:pointer;lpcbData:LPDWORD):LONG;
+var  lpwsValueName: PWideChar;
+begin
+ lpwsValueName:=StringToPWideChar(lpValueName);
+ Result:=RegQueryValueExW(hKey, lpwsValueName, lpReserved, lpType, lpData, lpcbData);
+ FreeMem(lpwsValueName);
+end;
+
+function RegQueryInfoKeyA(hKey:HKEY; lpClass:LPSTR; lpcbClass:LPDWORD; lpReserved:LPDWORD; lpcSubKeys:LPDWORD;lpcbMaxSubKeyLen:LPDWORD; lpcbMaxClassLen:LPDWORD; lpcValues:LPDWORD; lpcbMaxValueNameLen:LPDWORD;
+  lpcbMaxValueLen:LPDWORD;lpcbSecurityDescriptor:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
+var  lpwsClass: PWideChar;
+begin
+ lpwsClass:=StringToPWideChar(lpClass);
+ Result:=RegQueryInfoKeyW(hKey, lpwsClass, lpcbClass, lpReserved, lpcSubKeys , lpcbMaxSubKeyLen, lpcbMaxClassLen,
+  lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);
+ FreeMem(lpwsClass);
+end;
+
+function RegOpenKeyExA(hKey:HKEY; lpSubKey:LPCSTR; ulOptions:DWORD; samDesired:REGSAM; var hkResult: HKEY):LONG;
+var  lpwsSubKey: PWideChar;
+begin
+ lpwsSubKey:=StringToPWideChar(lpSubKey);
+ Result:=RegOpenKeyExW(hKey, lpwsSubKey, ulOptions, samDesired, hkResult);
+ FreeMem(lpwsSubKey);
+end;
+
+function RegSetValueExA(hKey:HKEY; lpValueName:LPCSTR; Reserved:DWORD; dwType:DWORD; lpData:pointer;cbData:DWORD):LONG;
+var  lpwsValueName: PWideChar;
+begin
+ lpwsValueName:=StringToPWideChar(lpValueName);
+ Result:=RegSetValueExW(hKey, lpwsValueName, Reserved, dwType, lpData, cbData);
+ FreeMem(lpwsValueName);
 end;
 
 {$endif read_implementation}

+ 3 - 6
rtl/wince/wininc/redef.inc

@@ -13,10 +13,6 @@
 
  **********************************************************************
 
-  Changes :
-
-  22/15/2005 : [email protected],  WCE 4.21 SE, First release
-  02-09-2006 : updated
 }
 
 {$ifdef read_interface}
@@ -199,7 +195,8 @@ function RegCreateKeyExW(hKey: HKEY; lpSubKey: LPWSTR; Reserved: DWORD; lpClass:
 function RegEnumKeyEx(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW';
 function RegEnumKeyExW(hKey: HKEY; dwIndex: DWORD; lpName: LPWSTR; var lpcbName: DWORD; lpReserved: Pointer; lpClass: LPWSTR; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; external KernelDLL name 'RegEnumKeyExW';
 function RegEnumValue(hKey: HKEY; dwIndex: DWORD; lpValueName: PChar; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW';
-function RegEnumValueW(hKey: HKEY; dwIndex: DWORD; lpValueName: PChar; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW';
+//removed use RegEnumValueA instead
+//function RegEnumValueW(hKey: HKEY; dwIndex: DWORD; lpValueName: PChar; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; external KernelDLL name 'RegEnumValueW';
 function RegisterClass(const lpWndClass: TWndClass): ATOM;external KernelDLL name 'RegisterClassW';
 function RegisterClassW(const lpWndClass: TWndClassW): ATOM; external KernelDLL name 'RegisterClassW';
 function RegOpenKeyEx(hKey: HKEY; lpSubKey: LPWSTR; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; external KernelDLL name 'RegOpenKeyExW';
@@ -217,7 +214,7 @@ function WriteFile(hFile: THandle; const Buffer; nNumberOfBytesToWrite: DWORD; v
 
 (*
 !!! The following commented out part is copied from win32 redef.inc
-It is profided as reference. Functions which exists in wince should be corrected
+It is provided as reference. Functions which exists in wince should be corrected
 and moved from here to be available.