base.pp 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997
  1. {
  2. $Id$
  3. This file is part of the Free Pascal run time library.
  4. This unit contains base definition for the Win32 API
  5. Copyright (c) 1993,97 by Florian Klaempfl,
  6. member of the Free Pascal development team.
  7. See the file COPYING.FPC, included in this distribution,
  8. for details about the copyright.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. **********************************************************************}
  13. {$ifndef windows_include_files}
  14. {$define read_interface}
  15. {$define read_implementation}
  16. {$endif not windows_include_files}
  17. {$ifndef windows_include_files}
  18. unit base;
  19. interface
  20. {$endif not windows_include_files}
  21. {$ifdef read_interface}
  22. { C default packing is dword }
  23. {$PACKRECORDS 4}
  24. {
  25. Base.h
  26. Base definitions
  27. Copyright (C) 1996, 1997 Free Software Foundation, Inc.
  28. Author: Scott Christley <[email protected]>
  29. This file is part of the Windows32 API Library.
  30. This library is free software; you can redistribute it and/or
  31. modify it under the terms of the GNU Library General Public
  32. License as published by the Free Software Foundation; either
  33. version 2 of the License, or (at your option) any later version.
  34. This library is distributed in the hope that it will be useful,
  35. but WITHOUT ANY WARRANTY; without even the implied warranty of
  36. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  37. Library General Public License for more details.
  38. If you are interested in a warranty or support for this source code,
  39. contact Scott Christley <[email protected]> for more information.
  40. You should have received a copy of the GNU Library General Public
  41. License along with this library; see the file COPYING.LIB.
  42. If not, write to the Free Software Foundation,
  43. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  44. }
  45. {$ifndef VER0_99_10}
  46. const
  47. NULL = nil;
  48. {$endif}
  49. type
  50. ATOM = word;
  51. WINBOOL = longbool;
  52. BOOL = WINBOOL;
  53. CALTYPE = cardinal;
  54. CALID = cardinal;
  55. CCHAR = char;
  56. COLORREF = cardinal;
  57. SHORT = integer;
  58. INT = longint;
  59. LONG = longint;
  60. DWORD = cardinal;
  61. LONGLONG = double;
  62. PLONGLONG = ^LONGLONG;
  63. DWORDLONG = double; { was unsigned long }
  64. PDWORDLONG = ^DWORDLONG;
  65. FLOAT = real;
  66. HANDLE = longint; { or should it be cardinal ?? PM }
  67. HACCEL = HANDLE;
  68. HBITMAP = HANDLE;
  69. HBRUSH = HANDLE;
  70. HCOLORSPACE = HANDLE;
  71. HCONV = HANDLE;
  72. HCONVLIST = HANDLE;
  73. HCURSOR = HANDLE;
  74. HDBC = HANDLE;
  75. HDC = HANDLE;
  76. HDDEDATA = HANDLE;
  77. HDESK = HANDLE;
  78. HDROP = HANDLE;
  79. HDWP = HANDLE;
  80. HENHMETAFILE = HANDLE;
  81. HENV = HANDLE;
  82. HFILE = HANDLE;
  83. HFONT = HANDLE;
  84. HGDIOBJ = HANDLE;
  85. HGLOBAL = HANDLE;
  86. HGLRC = HANDLE;
  87. HHOOK = HANDLE;
  88. HICON = HANDLE;
  89. HIMAGELIST = HANDLE;
  90. HINST = HANDLE; { Not HINSTANCE, else it has problems with the var HInstance }
  91. HKEY = HANDLE;
  92. HKL = HANDLE;
  93. HLOCAL = HANDLE;
  94. HMENU = HANDLE;
  95. HMETAFILE = HANDLE;
  96. HMODULE = HANDLE;
  97. HPALETTE = HANDLE;
  98. HPEN = HANDLE;
  99. HRASCONN = HANDLE;
  100. HRESULT = HANDLE;
  101. HRGN = HANDLE;
  102. HRSRC = HANDLE;
  103. HSTMT = HANDLE;
  104. HSZ = HANDLE;
  105. HWINSTA = HANDLE;
  106. HWND = HANDLE;
  107. LANGID = word;
  108. LCID = DWORD;
  109. LCTYPE = DWORD;
  110. LPARAM = longint;
  111. LP = ^word;
  112. LPBOOL = ^WINBOOL;
  113. LPBYTE = ^BYTE;
  114. LPCCH = PCHAR;
  115. LPCH = PCHAR;
  116. LPCOLORREF = ^COLORREF;
  117. LPCSTR = Pchar;
  118. {$ifdef UNICODE}
  119. LPCTSTR = ^word;
  120. {$else}
  121. LPCTSTR = Pchar;
  122. {$endif}
  123. LPCWCH = ^word;
  124. LPCWSTR = ^word;
  125. LPDWORD = ^DWORD;
  126. LPHANDLE = ^HANDLE;
  127. LPINT = ^longint;
  128. LPLONG = ^longint;
  129. LPSTR = Pchar;
  130. {$ifdef UNICODE}
  131. LPTCH = ^word;
  132. LPTSTR = ^word;
  133. {$else}
  134. LPTCH = Pchar;
  135. LPTSTR = Pchar;
  136. {$endif}
  137. LRESULT = longint;
  138. LPVOID = pointer;
  139. LPCVOID = pointer;
  140. LPWCH = ^word;
  141. LPWORD = ^word;
  142. LPWSTR = ^word;
  143. NWPSTR = ^word;
  144. PWINBOOL = ^WINBOOL;
  145. PBOOLEAN = ^BYTE;
  146. PBYTE = ^BYTE;
  147. PCCH = PCHAR;
  148. PCH = PCHAR;
  149. PCSTR = Pchar;
  150. PCWCH = ^word;
  151. PCWSTR = ^word;
  152. PDWORD = ^DWORD;
  153. PFLOAT = ^real;
  154. PHANDLE = ^HANDLE;
  155. PHKEY = ^HKEY;
  156. PINT = ^longint;
  157. PLONG = ^longint;
  158. PSHORT = ^integer;
  159. PSTR = Pchar;
  160. PSZ = Pchar;
  161. {$ifdef UNICODE}
  162. PTBYTE = ^word;
  163. PTCH = ^word;
  164. PTCHAR = ^word;
  165. PTSTR = ^word;
  166. {$else}
  167. PTBYTE = ^byte;
  168. PTCH = Pchar;
  169. PTCHAR = Pchar;
  170. PTSTR = Pchar;
  171. {$endif}
  172. PUCHAR = ^byte;
  173. PWCH = ^word;
  174. PWCHAR = ^word;
  175. PWORD = ^word;
  176. PUINT = ^cardinal;
  177. PULONG = ^cardinal;
  178. PUSHORT = ^word;
  179. PVOID = pointer;
  180. RETCODE = integer;
  181. SC_HANDLE = HANDLE;
  182. SC_LOCK = LPVOID;
  183. LPSC_HANDLE = ^SC_HANDLE;
  184. SERVICE_STATUS_HANDLE = DWORD;
  185. {$ifdef UNICODE}
  186. TBYTE = word;
  187. TCHAR = word;
  188. BCHAR = word;
  189. {$else}
  190. TBYTE = byte;
  191. TCHAR = char;
  192. BCHAR = BYTE;
  193. {$endif}
  194. UCHAR = byte;
  195. WCHAR = word;
  196. UINT = cardinal;
  197. WORD = word;
  198. ULONG = cardinal;
  199. USHORT = word;
  200. WPARAM = cardinal;
  201. {
  202. Enumerations
  203. }
  204. ACL_INFORMATION_CLASS = (AclRevisionInformation := 1,AclSizeInformation
  205. );
  206. _ACL_INFORMATION_CLASS = ACL_INFORMATION_CLASS;
  207. MEDIA_TYPE = (Unknown,F5_1Pt2_512,F3_1Pt44_512,F3_2Pt88_512,
  208. F3_20Pt8_512,F3_720_512,F5_360_512,F5_320_512,
  209. F5_320_1024,F5_180_512,F5_160_512,RemovableMedia,
  210. FixedMedia);
  211. _MEDIA_TYPE = MEDIA_TYPE;
  212. const
  213. RASCS_DONE = $2000;
  214. RASCS_PAUSED = $1000;
  215. type
  216. RASCONNSTATE = (RASCS_OpenPort := 0,RASCS_PortOpened,
  217. RASCS_ConnectDevice,RASCS_DeviceConnected,
  218. RASCS_AllDevicesConnected,RASCS_Authenticate,
  219. RASCS_AuthNotify,RASCS_AuthRetry,RASCS_AuthCallback,
  220. RASCS_AuthChangePassword,RASCS_AuthProject,
  221. RASCS_AuthLinkSpeed,RASCS_AuthAck,RASCS_ReAuthenticate,
  222. RASCS_Authenticated,RASCS_PrepareForCallback,
  223. RASCS_WaitForModemReset,RASCS_WaitForCallback,
  224. RASCS_Projected,RASCS_StartAuthentication,
  225. RASCS_CallbackComplete,RASCS_LogonNetwork,
  226. RASCS_Interactive := RASCS_PAUSED,RASCS_RetryAuthentication,
  227. RASCS_CallbackSetByCaller,RASCS_PasswordExpired,
  228. RASCS_Connected := RASCS_DONE,RASCS_Disconnected
  229. );
  230. _RASCONNSTATE = RASCONNSTATE;
  231. RASPROJECTION = (RASP_Amb := $10000,RASP_PppNbf := $803F,RASP_PppIpx := $802B,
  232. RASP_PppIp := $8021);
  233. _RASPROJECTION = RASPROJECTION;
  234. SECURITY_IMPERSONATION_LEVEL = (SecurityAnonymous,SecurityIdentification,
  235. SecurityImpersonation,SecurityDelegation
  236. );
  237. _SECURITY_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL;
  238. SID_NAME_USE = (SidTypeUser := 1,SidTypeGroup,SidTypeDomain,
  239. SidTypeAlias,SidTypeWellKnownGroup,SidTypeDeletedAccount,
  240. SidTypeInvalid,SidTypeUnknown);
  241. PSID_NAME_USE = ^SID_NAME_USE;
  242. _SID_NAME_USE = SID_NAME_USE;
  243. TOKEN_INFORMATION_CLASS = (TokenUser := 1,TokenGroups,TokenPrivileges,
  244. TokenOwner,TokenPrimaryGroup,TokenDefaultDacl,
  245. TokenSource,TokenType,TokenImpersonationLevel,
  246. TokenStatistics);
  247. _TOKEN_INFORMATION_CLASS = TOKEN_INFORMATION_CLASS;
  248. TOKEN_TYPE = (TokenPrimary := 1,TokenImpersonation
  249. );
  250. tagTOKEN_TYPE = TOKEN_TYPE;
  251. {
  252. Macros
  253. }
  254. { was #define dname(params) def_expr }
  255. { argument types are unknown }
  256. function GetBValue(rgb : longint) : BYTE;
  257. { was #define dname(params) def_expr }
  258. { argument types are unknown }
  259. function GetGValue(rgb : longint) : BYTE;
  260. { was #define dname(params) def_expr }
  261. { argument types are unknown }
  262. function GetRValue(rgb : longint) : BYTE;
  263. { was #define dname(params) def_expr }
  264. { argument types are unknown }
  265. function RGB(r,g,b : longint) : DWORD;
  266. { Not convertable by H2PAS
  267. #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
  268. (fn)((hwnd), (int)(wParam), (NMHDR FAR )(lParam))
  269. }
  270. { was #define dname(params) def_expr }
  271. { argument types are unknown }
  272. function HIBYTE(w : longint) : BYTE;
  273. { was #define dname(params) def_expr }
  274. { argument types are unknown }
  275. function HIWORD(l : longint) : WORD;
  276. { was #define dname(params) def_expr }
  277. { argument types are unknown }
  278. function LOBYTE(w : longint) : BYTE;
  279. { was #define dname(params) def_expr }
  280. { argument types are unknown }
  281. function LOWORD(l : longint) : WORD;
  282. { was #define dname(params) def_expr }
  283. { argument types are unknown }
  284. function MAKELONG(a,b : longint) : LONG;
  285. { was #define dname(params) def_expr }
  286. { argument types are unknown }
  287. function MAKEWORD(a,b : longint) : WORD;
  288. { original Cygnus headers also had the following defined: }
  289. { was #define dname(params) def_expr }
  290. { argument types are unknown }
  291. { return type might be wrong }
  292. function SEXT_HIWORD(l : longint) : longint;
  293. { return type might be wrong }
  294. { was #define dname(params) def_expr }
  295. { argument types are unknown }
  296. { return type might be wrong }
  297. function ZEXT_HIWORD(l : longint) : longint;
  298. { return type might be wrong }
  299. { was #define dname(params) def_expr }
  300. { argument types are unknown }
  301. function SEXT_LOWORD(l : longint) : longint;
  302. { was #define dname(params) def_expr }
  303. { argument types are unknown }
  304. { return type might be wrong }
  305. function INDEXTOOVERLAYMASK(i : longint) : longint;
  306. { return type might be wrong }
  307. { was #define dname(params) def_expr }
  308. { argument types are unknown }
  309. { return type might be wrong }
  310. function INDEXTOSTATEIMAGEMASK(i : longint) : longint;
  311. { return type might be wrong }
  312. { was #define dname(params) def_expr }
  313. { argument types are unknown }
  314. function MAKEINTATOM(i : longint) : LPTSTR;
  315. { was #define dname(params) def_expr }
  316. { argument types are unknown }
  317. function MAKEINTRESOURCE(i : longint) : LPTSTR;
  318. { was #define dname(params) def_expr }
  319. { argument types are unknown }
  320. { return type might be wrong }
  321. function MAKELANGID(p,s : longint) : longint;
  322. { return type might be wrong }
  323. { was #define dname(params) def_expr }
  324. { argument types are unknown }
  325. function PRIMARYLANGID(lgid : longint) : WORD;
  326. { was #define dname(params) def_expr }
  327. { argument types are unknown }
  328. { return type might be wrong }
  329. function SUBLANGID(lgid : longint) : longint;
  330. { return type might be wrong }
  331. { was #define dname(params) def_expr }
  332. { argument types are unknown }
  333. function LANGIDFROMLCID(lcid : longint) : WORD;
  334. { was #define dname(params) def_expr }
  335. { argument types are unknown }
  336. function SORTIDFROMLCID(lcid : longint) : WORD;
  337. { was #define dname(params) def_expr }
  338. { argument types are unknown }
  339. function MAKELCID(lgid,srtid : longint) : DWORD;
  340. { was #define dname(params) def_expr }
  341. { argument types are unknown }
  342. function MAKELPARAM(l,h : longint) : LPARAM;
  343. { was #define dname(params) def_expr }
  344. { argument types are unknown }
  345. function MAKELRESULT(l,h : longint) : LRESULT;
  346. { Not convertable by H2PAS
  347. #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l)))
  348. }
  349. { was #define dname(params) def_expr }
  350. { argument types are unknown }
  351. function MAKEROP4(fore,back : longint) : DWORD;
  352. { was #define dname(params) def_expr }
  353. { argument types are unknown }
  354. function MAKEWPARAM(l,h : longint) : WPARAM;
  355. {$ifndef max}
  356. { was #define dname(params) def_expr }
  357. { argument types are unknown }
  358. { return type might be wrong }
  359. function max(a,b : longint) : longint;
  360. { return type might be wrong }
  361. {$endif}
  362. {$ifndef min}
  363. { was #define dname(params) def_expr }
  364. { argument types are unknown }
  365. { return type might be wrong }
  366. function min(a,b : longint) : longint;
  367. { return type might be wrong }
  368. {$endif}
  369. { was #define dname(params) def_expr }
  370. { argument types are unknown }
  371. function PALETTEINDEX(i : longint) : COLORREF;
  372. { was #define dname(params) def_expr }
  373. { argument types are unknown }
  374. { return type might be wrong }
  375. function PALETTERGB(r,g,b : longint) : longint;
  376. { return type might be wrong }
  377. (* Not convertable by H2PAS
  378. #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \
  379. (pt).y = (SHORT) HIWORD(pts);}
  380. #define POINTTOPOINTS(pt) \
  381. (MAKELONG((short) ((pt).x), (short) ((pt).y)))
  382. *)
  383. { already declared before
  384. #define INDEXTOOVERLAYMASK(i) ((i) << 8)
  385. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  386. }
  387. { Not convertable by H2PAS
  388. #ifdef UNICODE
  389. #define TEXT(quote) L##quote
  390. #else
  391. #define TEXT(quote) quote
  392. #endif
  393. }
  394. {
  395. Definitions for callback procedures
  396. }
  397. type
  398. BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;
  399. LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  400. LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  401. PTHREAD_START_ROUTINE = Pointer;
  402. LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
  403. EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD;
  404. LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  405. LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  406. LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  407. LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  408. DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
  409. PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;
  410. LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR);
  411. PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
  412. WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
  413. FARPROC = pointer;
  414. PROC = FARPROC;
  415. ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL;
  416. ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL;
  417. ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL;
  418. DESKTOPENUMPROC = FARPROC;
  419. ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;
  420. ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;
  421. SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT);
  422. TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD);
  423. GRAYSTRINGPROC = FARPROC;
  424. DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;
  425. PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL;
  426. PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;
  427. HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;
  428. ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);
  429. LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);
  430. TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;
  431. LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  432. LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  433. ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;
  434. EDITWORDBREAKPROCEX = function (_para1:pchar; _para2:LONG; _para3:BYTE; _para4:INT):LONG;CDECL;
  435. PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
  436. LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  437. CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  438. DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  439. TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  440. CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  441. PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;
  442. LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;
  443. PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;
  444. PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;
  445. PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;
  446. (* Not convertable by H2PAS
  447. #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
  448. #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
  449. #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
  450. #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
  451. #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
  452. #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
  453. *)
  454. { TEXT("String") replaced by "String" below for H2PAS }
  455. const
  456. SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
  457. SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
  458. SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege';
  459. SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege';
  460. SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege';
  461. SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege';
  462. SE_TCB_NAME = 'SeTcbPrivilege';
  463. SE_SECURITY_NAME = 'SeSecurityPrivilege';
  464. SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege';
  465. SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege';
  466. SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege';
  467. SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';
  468. SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege';
  469. SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege';
  470. SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege';
  471. SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege';
  472. SE_BACKUP_NAME = 'SeBackupPrivilege';
  473. SE_RESTORE_NAME = 'SeRestorePrivilege';
  474. SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
  475. SE_DEBUG_NAME = 'SeDebugPrivilege';
  476. SE_AUDIT_NAME = 'SeAuditPrivilege';
  477. SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege';
  478. SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';
  479. SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
  480. { Not convertable by H2PAS
  481. #define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
  482. #define SERVICES_FAILED_DATABASEW L"ServicesFailed"
  483. }
  484. SERVICES_ACTIVE_DATABASEA = 'ServicesActive';
  485. SERVICES_FAILED_DATABASEA = 'ServicesFailed';
  486. { Not convertable by H2PAS
  487. #define SC_GROUP_IDENTIFIERW L'+'
  488. }
  489. SC_GROUP_IDENTIFIERA = '+';
  490. {$ifdef UNICODE}
  491. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW;
  492. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW;
  493. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW;
  494. {$else}
  495. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA;
  496. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA;
  497. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA;
  498. {$endif}
  499. type
  500. CALLB = procedure ;CDECL;
  501. PFNCALLBACK = CALLB;
  502. SECURITY_CONTEXT_TRACKING_MODE = WINBOOL;
  503. { End of stuff from ddeml.h in old Cygnus headers }
  504. { ----------------------------------------------- }
  505. WNDENUMPROC = FARPROC;
  506. ENHMFENUMPROC = FARPROC;
  507. CCSTYLE = DWORD;
  508. PCCSTYLE = ^CCSTYLE;
  509. LPCCSTYLE = ^CCSTYLE;
  510. CCSTYLEFLAGA = DWORD;
  511. PCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  512. LPCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  513. {$endif read_interface}
  514. {$ifndef windows_include_files}
  515. implementation
  516. {$endif not windows_include_files}
  517. {$ifdef read_implementation}
  518. { was #define dname(params) def_expr }
  519. { argument types are unknown }
  520. function GetBValue(rgb : longint) : BYTE;
  521. begin
  522. GetBValue:=BYTE(rgb shr 16);
  523. end;
  524. { was #define dname(params) def_expr }
  525. { argument types are unknown }
  526. function GetGValue(rgb : longint) : BYTE;
  527. begin
  528. GetGValue:=BYTE((WORD(rgb)) shr 8);
  529. end;
  530. { was #define dname(params) def_expr }
  531. { argument types are unknown }
  532. function GetRValue(rgb : longint) : BYTE;
  533. begin
  534. GetRValue:=BYTE(rgb);
  535. end;
  536. { was #define dname(params) def_expr }
  537. { argument types are unknown }
  538. function RGB(r,g,b : longint) : DWORD;
  539. begin
  540. RGB:=DWORD(((BYTE(r)) or ((WORD(g)) shl 8)) or ((DWORD(BYTE(b))) shl 16));
  541. end;
  542. { was #define dname(params) def_expr }
  543. { argument types are unknown }
  544. function HIBYTE(w : longint) : BYTE;
  545. begin
  546. HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF);
  547. end;
  548. { was #define dname(params) def_expr }
  549. { argument types are unknown }
  550. function HIWORD(l : longint) : WORD;
  551. begin
  552. HIWORD:=WORD(((DWORD(l)) shr 16) and $FFFF);
  553. end;
  554. { was #define dname(params) def_expr }
  555. { argument types are unknown }
  556. function LOBYTE(w : longint) : BYTE;
  557. begin
  558. LOBYTE:=BYTE(w);
  559. end;
  560. { was #define dname(params) def_expr }
  561. { argument types are unknown }
  562. function LOWORD(l : longint) : WORD;
  563. begin
  564. LOWORD:=WORD(l);
  565. end;
  566. { was #define dname(params) def_expr }
  567. { argument types are unknown }
  568. function MAKELONG(a,b : longint) : LONG;
  569. begin
  570. MAKELONG:=LONG((WORD(a)) or ((DWORD(WORD(b))) shl 16));
  571. end;
  572. { was #define dname(params) def_expr }
  573. { argument types are unknown }
  574. function MAKEWORD(a,b : longint) : WORD;
  575. begin
  576. MAKEWORD:=WORD((BYTE(a)) or ((WORD(BYTE(b))) shl 8));
  577. end;
  578. { was #define dname(params) def_expr }
  579. { argument types are unknown }
  580. { return type might be wrong }
  581. function SEXT_HIWORD(l : longint) : longint;
  582. { return type might be wrong }
  583. begin
  584. SEXT_HIWORD:=(longint(l)) shr 16;
  585. end;
  586. { was #define dname(params) def_expr }
  587. { argument types are unknown }
  588. { return type might be wrong }
  589. function ZEXT_HIWORD(l : longint) : longint;
  590. { return type might be wrong }
  591. begin
  592. ZEXT_HIWORD:=(cardinal(l)) shr 16;
  593. end;
  594. { was #define dname(params) def_expr }
  595. { argument types are unknown }
  596. function SEXT_LOWORD(l : longint) : longint;
  597. begin
  598. SEXT_LOWORD:=longint(integer(l));
  599. end;
  600. { was #define dname(params) def_expr }
  601. { argument types are unknown }
  602. { return type might be wrong }
  603. function INDEXTOOVERLAYMASK(i : longint) : longint;
  604. { return type might be wrong }
  605. begin
  606. INDEXTOOVERLAYMASK:=i shl 8;
  607. end;
  608. { was #define dname(params) def_expr }
  609. { argument types are unknown }
  610. { return type might be wrong }
  611. function INDEXTOSTATEIMAGEMASK(i : longint) : longint;
  612. { return type might be wrong }
  613. begin
  614. INDEXTOSTATEIMAGEMASK:=i shl 12;
  615. end;
  616. { was #define dname(params) def_expr }
  617. { argument types are unknown }
  618. function MAKEINTATOM(i : longint) : LPTSTR;
  619. begin
  620. MAKEINTATOM:=LPTSTR(DWORD(WORD(i)));
  621. end;
  622. { was #define dname(params) def_expr }
  623. { argument types are unknown }
  624. function MAKEINTRESOURCE(i : longint) : LPTSTR;
  625. begin
  626. MAKEINTRESOURCE:=LPTSTR(DWORD(WORD(i)));
  627. end;
  628. { was #define dname(params) def_expr }
  629. { argument types are unknown }
  630. { return type might be wrong }
  631. function MAKELANGID(p,s : longint) : longint;
  632. { return type might be wrong }
  633. begin
  634. MAKELANGID:=((WORD(s)) shl 10) or (WORD(p));
  635. end;
  636. { was #define dname(params) def_expr }
  637. { argument types are unknown }
  638. function PRIMARYLANGID(lgid : longint) : WORD;
  639. begin
  640. { PRIMARYLANGID:=WORD(lgid(@($3ff)));
  641. h2pas error here corrected by hand PM }
  642. PRIMARYLANGID:=WORD(lgid) and ($3ff);
  643. end;
  644. { was #define dname(params) def_expr }
  645. { argument types are unknown }
  646. { return type might be wrong }
  647. function SUBLANGID(lgid : longint) : longint;
  648. { return type might be wrong }
  649. begin
  650. SUBLANGID:=(WORD(lgid)) shr 10;
  651. end;
  652. { was #define dname(params) def_expr }
  653. { argument types are unknown }
  654. function LANGIDFROMLCID(lcid : longint) : WORD;
  655. begin
  656. LANGIDFROMLCID:=WORD(lcid);
  657. end;
  658. { was #define dname(params) def_expr }
  659. { argument types are unknown }
  660. function SORTIDFROMLCID(lcid : longint) : WORD;
  661. begin
  662. SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16);
  663. end;
  664. { was #define dname(params) def_expr }
  665. { argument types are unknown }
  666. function MAKELCID(lgid,srtid : longint) : DWORD;
  667. begin
  668. MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid))));
  669. end;
  670. { was #define dname(params) def_expr }
  671. { argument types are unknown }
  672. function MAKELPARAM(l,h : longint) : LPARAM;
  673. begin
  674. MAKELPARAM:=LPARAM(MAKELONG(l,h));
  675. end;
  676. { was #define dname(params) def_expr }
  677. { argument types are unknown }
  678. function MAKELRESULT(l,h : longint) : LRESULT;
  679. begin
  680. MAKELRESULT:=LRESULT(MAKELONG(l,h));
  681. end;
  682. { was #define dname(params) def_expr }
  683. { argument types are unknown }
  684. function MAKEROP4(fore,back : longint) : DWORD;
  685. begin
  686. MAKEROP4:=DWORD(((back shl 8) and $FF000000) or fore);
  687. end;
  688. { was #define dname(params) def_expr }
  689. { argument types are unknown }
  690. function MAKEWPARAM(l,h : longint) : WPARAM;
  691. begin
  692. MAKEWPARAM:=WPARAM(MAKELONG(l,h));
  693. end;
  694. { was #define dname(params) def_expr }
  695. { argument types are unknown }
  696. { return type might be wrong }
  697. function max(a,b : longint) : longint;
  698. { return type might be wrong }
  699. var
  700. if_local1 : longint;
  701. (* result types are not known *)
  702. begin
  703. if a > b then
  704. if_local1:=a
  705. else
  706. if_local1:=b;
  707. max:=if_local1;
  708. end;
  709. { was #define dname(params) def_expr }
  710. { argument types are unknown }
  711. { return type might be wrong }
  712. function min(a,b : longint) : longint;
  713. { return type might be wrong }
  714. var
  715. if_local1 : longint;
  716. (* result types are not known *)
  717. begin
  718. if a < b then
  719. if_local1:=a
  720. else
  721. if_local1:=b;
  722. min:=if_local1;
  723. end;
  724. { was #define dname(params) def_expr }
  725. { argument types are unknown }
  726. function PALETTEINDEX(i : longint) : COLORREF;
  727. begin
  728. PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i))));
  729. end;
  730. { was #define dname(params) def_expr }
  731. { argument types are unknown }
  732. { return type might be wrong }
  733. function PALETTERGB(r,g,b : longint) : longint;
  734. { return type might be wrong }
  735. begin
  736. PALETTERGB:=$02000000 or (RGB(r,g,b));
  737. end;
  738. {$endif read_implementation}
  739. {$ifndef windows_include_files}
  740. end.
  741. {$endif not windows_include_files}
  742. {
  743. $Log$
  744. Revision 1.12 1999-04-20 11:36:10 peter
  745. * compatibility fixes
  746. Revision 1.11 1999/03/30 17:00:22 peter
  747. * fixes for 0.99.10
  748. Revision 1.10 1999/01/09 07:29:47 florian
  749. * some updates to compile API units for win32
  750. Revision 1.9 1998/12/28 23:35:14 peter
  751. * small fixes for better compatibility
  752. Revision 1.8 1998/10/27 11:17:11 peter
  753. * type HINSTANCE -> HINST
  754. Revision 1.7 1998/09/08 14:30:03 pierre
  755. * WINBOOL changed from longint to longbool
  756. Revision 1.6 1998/09/04 17:17:32 pierre
  757. + all unknown function ifdef with
  758. conditionnal unknown_functions
  759. testwin works now, but windowcreate still fails !!
  760. Revision 1.5 1998/08/31 11:53:53 pierre
  761. * compilable windows.pp file
  762. still to do :
  763. - findout problems
  764. - findout the correct DLL for each call !!
  765. Revision 1.4 1998/06/10 10:39:11 peter
  766. * working w32 rtl
  767. }