fpc/rtl/wince/wininc/cemiss.inc
yury 3b32e96f10 * Use PCharToPWideChar instead of StringToPWideChar in wrapper functions.
* Updated dependencies in makefile.
* Fixed declaration of RegEnumValue and RegEnumValueW.

git-svn-id: trunk@6340 -
2007-02-04 19:09:48 +00:00

129 lines
5.5 KiB
PHP

{
This file is part of the Free Pascal run time library.
Copyright (c) 2006 by the Free Pascal development team.
Contains missing wince functions present in win32 api
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{
*What should contain this file*
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}
{$ifdef read_implementation}
function LoadLibraryA(lpLibFileName:LPCSTR):HINST;
var ws: PWideChar;
begin
ws:=PCharToPWideChar(lpLibFileName);
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:=PCharToPWideChar(lpSubKey);
lpwsClass:=PCharToPWideChar(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:=PCharToPWideChar(lpSubKey);
Result:=RegDeleteKeyW(hKey,lpwsSubKey);
FreeMem(lpwsSubKey);
end;
function RegDeleteValueA(hKey:HKEY; lpValueName:LPCSTR):LONG;
var lpwsValueName: PWideChar;
begin
lpwsValueName:=PCharToPWideChar(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:=PCharToPWideChar(lpName);
lpwsClass:=PCharToPWideChar(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:=PCharToPWideChar(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:=PCharToPWideChar(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:=PCharToPWideChar(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:=PCharToPWideChar(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:=PCharToPWideChar(lpValueName);
Result:=RegSetValueExW(hKey, lpwsValueName, Reserved, dwType, lpData, cbData);
FreeMem(lpwsValueName);
end;
{$endif read_implementation}