+wince : added RegXXX ansi missing funcs

git-svn-id: trunk@6318 -
This commit is contained in:
oro06 2007-02-03 11:41:46 +00:00
parent 2fb33c4664
commit 61397d3953
2 changed files with 94 additions and 10 deletions

View File

@ -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}

View File

@ -13,10 +13,6 @@
**********************************************************************
Changes :
22/15/2005 : orinaudo@gmail.com, 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.