cemiss.inc 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2006 by the Free Pascal development team.
  4. Contains missing wince functions present in win32 api
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. **********************************************************************}
  11. {
  12. *What should contain this file*
  13. functions missing on wince api
  14. }
  15. {$ifdef read_interface}
  16. function LoadLibraryA(lpLibFileName:LPCSTR):HINST;
  17. function RegCreateKeyExA(hKey:HKEY; lpSubKey:LPCSTR; Reserved:DWORD; lpClass:LPSTR; dwOptions:DWORD;samDesired:REGSAM; lpSecurityAttributes:LPSECURITY_ATTRIBUTES; var hkResult: HKEY; lpdwDisposition:LPDWORD):LONG;
  18. function RegDeleteKeyA(hKey:HKEY; lpSubKey:LPCSTR):LONG;
  19. function RegDeleteValueA(hKey:HKEY; lpValueName:LPCSTR):LONG;
  20. function RegEnumKeyExA(hKey:HKEY; dwIndex:DWORD; lpName:LPSTR; var cbName:DWORD; lpReserved:LPDWORD;lpClass:LPSTR; lpcbClass:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
  21. function RegEnumValueA(hKey:HKEY; dwIndex:DWORD; lpValueName:LPSTR; var cbValueName: DWORD; lpReserved:LPDWORD;lpType:LPDWORD; lpData:pointer; lpcbData:LPDWORD):LONG;
  22. function RegQueryValueExA(hKey:HKEY; lpValueName:LPCSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:pointer;lpcbData:LPDWORD):LONG;
  23. function RegQueryInfoKeyA(hKey:HKEY; lpClass:LPSTR; lpcbClass:LPDWORD; lpReserved:LPDWORD; lpcSubKeys:LPDWORD;lpcbMaxSubKeyLen:LPDWORD; lpcbMaxClassLen:LPDWORD; lpcValues:LPDWORD; lpcbMaxValueNameLen:LPDWORD;
  24. lpcbMaxValueLen:LPDWORD;lpcbSecurityDescriptor:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
  25. function RegOpenKeyExA(hKey:HKEY; lpSubKey:LPCSTR; ulOptions:DWORD; samDesired:REGSAM; var hkResult: HKEY):LONG;
  26. function RegSetValueExA(hKey:HKEY; lpValueName:LPCSTR; Reserved:DWORD; dwType:DWORD; lpData:pointer;cbData:DWORD):LONG;
  27. {$endif read_interface}
  28. {$ifdef read_implementation}
  29. function LoadLibraryA(lpLibFileName:LPCSTR):HINST;
  30. var ws: PWideChar;
  31. begin
  32. ws:=PCharToPWideChar(lpLibFileName);
  33. Result:=Windows.LoadLibrary(ws);
  34. FreeMem(ws);
  35. end;
  36. function RegCreateKeyExA(hKey:HKEY; lpSubKey:LPCSTR; Reserved:DWORD; lpClass:LPSTR; dwOptions:DWORD;samDesired:REGSAM; lpSecurityAttributes:LPSECURITY_ATTRIBUTES; var hkResult: HKEY; lpdwDisposition:LPDWORD):LONG;
  37. var lpwsSubKey,
  38. lpwsClass: PWideChar;
  39. begin
  40. lpwsSubKey:=PCharToPWideChar(lpSubKey);
  41. lpwsClass:=PCharToPWideChar(lpClass);
  42. Result:=RegCreateKeyExW(hKey,lpwsSubKey,Reserved,lpwsClass,dwOptions,samDesired,lpSecurityAttributes, hkResult,lpdwDisposition);
  43. FreeMem(lpwsClass); FreeMem(lpwsSubKey);
  44. end;
  45. function RegDeleteKeyA(hKey:HKEY; lpSubKey:LPCSTR):LONG;
  46. var lpwsSubKey: PWideChar;
  47. begin
  48. lpwsSubKey:=PCharToPWideChar(lpSubKey);
  49. Result:=RegDeleteKeyW(hKey,lpwsSubKey);
  50. FreeMem(lpwsSubKey);
  51. end;
  52. function RegDeleteValueA(hKey:HKEY; lpValueName:LPCSTR):LONG;
  53. var lpwsValueName: PWideChar;
  54. begin
  55. lpwsValueName:=PCharToPWideChar(lpValueName);
  56. Result:=RegDeleteValueW(hKey,lpwsValueName);
  57. FreeMem(lpwsValueName);
  58. end;
  59. function RegEnumKeyExA(hKey:HKEY; dwIndex:DWORD; lpName:LPSTR; var cbName:DWORD; lpReserved:LPDWORD;lpClass:LPSTR; lpcbClass:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
  60. var lpwsName,
  61. lpwsClass: PWideChar;
  62. begin
  63. lpwsName:=PCharToPWideChar(lpName);
  64. lpwsClass:=PCharToPWideChar(lpClass);
  65. Result:=RegEnumKeyExW(hKey, dwIndex, lpwsName, cbName, lpReserved, lpwsClass, lpcbClass, lpftLastWriteTime);
  66. FreeMem(lpwsName); FreeMem(lpwsClass);
  67. end;
  68. function RegEnumValueA(hKey:HKEY; dwIndex:DWORD; lpValueName:LPSTR; var cbValueName: DWORD; lpReserved:LPDWORD;lpType:LPDWORD; lpData:pointer; lpcbData:LPDWORD):LONG;
  69. var lpwsValueName: PWideChar;
  70. begin
  71. lpwsValueName:=PCharToPWideChar(lpValueName);
  72. Result:=RegEnumValueW(hKey, dwIndex, lpwsValueName, @cbValueName, lpReserved, lpType, lpData, lpcbData);
  73. FreeMem(lpwsValueName);
  74. end;
  75. function RegQueryValueExA(hKey:HKEY; lpValueName:LPCSTR; lpReserved:LPDWORD; lpType:LPDWORD; lpData:pointer;lpcbData:LPDWORD):LONG;
  76. var lpwsValueName: PWideChar;
  77. begin
  78. lpwsValueName:=PCharToPWideChar(lpValueName);
  79. Result:=RegQueryValueExW(hKey, lpwsValueName, lpReserved, lpType, lpData, lpcbData);
  80. FreeMem(lpwsValueName);
  81. end;
  82. function RegQueryInfoKeyA(hKey:HKEY; lpClass:LPSTR; lpcbClass:LPDWORD; lpReserved:LPDWORD; lpcSubKeys:LPDWORD;lpcbMaxSubKeyLen:LPDWORD; lpcbMaxClassLen:LPDWORD; lpcValues:LPDWORD; lpcbMaxValueNameLen:LPDWORD;
  83. lpcbMaxValueLen:LPDWORD;lpcbSecurityDescriptor:LPDWORD; lpftLastWriteTime:PFILETIME):LONG;
  84. var lpwsClass: PWideChar;
  85. begin
  86. lpwsClass:=PCharToPWideChar(lpClass);
  87. Result:=RegQueryInfoKeyW(hKey, lpwsClass, lpcbClass, lpReserved, lpcSubKeys , lpcbMaxSubKeyLen, lpcbMaxClassLen,
  88. lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime);
  89. FreeMem(lpwsClass);
  90. end;
  91. function RegOpenKeyExA(hKey:HKEY; lpSubKey:LPCSTR; ulOptions:DWORD; samDesired:REGSAM; var hkResult: HKEY):LONG;
  92. var lpwsSubKey: PWideChar;
  93. begin
  94. lpwsSubKey:=PCharToPWideChar(lpSubKey);
  95. Result:=RegOpenKeyExW(hKey, lpwsSubKey, ulOptions, samDesired, hkResult);
  96. FreeMem(lpwsSubKey);
  97. end;
  98. function RegSetValueExA(hKey:HKEY; lpValueName:LPCSTR; Reserved:DWORD; dwType:DWORD; lpData:pointer;cbData:DWORD):LONG;
  99. var lpwsValueName: PWideChar;
  100. begin
  101. lpwsValueName:=PCharToPWideChar(lpValueName);
  102. Result:=RegSetValueExW(hKey, lpwsValueName, Reserved, dwType, lpData, cbData);
  103. FreeMem(lpwsValueName);
  104. end;
  105. {$endif read_implementation}