base.inc 30 KB

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