base.pp 30 KB

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