base.inc 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144
  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. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  32. }
  33. {$ifdef read_interface}
  34. {$PACKRECORDS C}
  35. type
  36. ATOM = word;
  37. TAtom = ATOM;
  38. WINBOOL = longbool;
  39. BOOL = WINBOOL;
  40. // newer APIs (e.g. threadpool) have this:
  41. // can't find exact true/false conventions here, so for now keep it byte
  42. WINAPIBOOLEAN = Byte;
  43. CALTYPE = cardinal;
  44. CALID = cardinal;
  45. CCHAR = AnsiChar;
  46. COLORREF = cardinal;
  47. TCOLORREF = cardinal;
  48. SHORT = smallint;
  49. WINT = longint;
  50. LONG = longint;
  51. LONG64= int64;
  52. ULONG64 = qword; // imagehlp header.
  53. ULONG32 = cardinal;
  54. DWORD = cardinal;
  55. PINTEGER = plongint;
  56. PBOOL = ^BOOL;
  57. LONGLONG = int64;
  58. PLONGLONG = pint64;
  59. LPLONGLONG = pint64;
  60. ULONGLONG = qword; // used in AMD64 CONTEXT
  61. PULONGLONG = pqword; //
  62. DWORD64 = qword; //
  63. PDWORD64 = pqword; //
  64. INT_PTR = PtrInt;
  65. PINT_PTR = ^INT_PTR;
  66. UINT_PTR = PtrUInt;
  67. PUINT_PTR = ^UINT_PTR;
  68. LONG_PTR = PtrInt;
  69. ULONG_PTR = PtrUInt;
  70. DWORD_PTR = ULONG_PTR;
  71. PDWORD_PTR = ^DWORD_PTR;
  72. PULONG64 = ^ULONG64;
  73. PULONG32 = ^ULONG32;
  74. PULONG_PTR = ^ULONG_PTR;
  75. PLONG64 = ^LONG64;
  76. PSIZE_T = ^SIZE_T;
  77. DWORDLONG = qword; { was unsigned long }
  78. PDWORDLONG = ^DWORDLONG;
  79. HANDLE = System.THandle;
  80. HRESULT = System.HResult;
  81. PHRESULT= ^HRESULT;
  82. HACCEL = HANDLE;
  83. HBITMAP = HANDLE;
  84. HBRUSH = HANDLE;
  85. HCOLORSPACE = HANDLE;
  86. HCONV = HANDLE;
  87. HCONVLIST = HANDLE;
  88. HCURSOR = HANDLE;
  89. HDBC = HANDLE;
  90. HDC = HANDLE;
  91. HDDEDATA = HANDLE;
  92. HDESK = HANDLE;
  93. HDEVNOTIFY = POINTER;
  94. HDROP = HANDLE;
  95. HDWP = HANDLE;
  96. HENHMETAFILE = HANDLE;
  97. HENV = HANDLE;
  98. HFILE = HANDLE;
  99. HFONT = HANDLE;
  100. HGDIOBJ = HANDLE;
  101. HGLOBAL = HANDLE;
  102. HGLRC = HANDLE;
  103. HHOOK = HANDLE;
  104. HICON = HANDLE;
  105. HIMAGELIST = HANDLE;
  106. HINST = HANDLE; { Not HINSTANCE, else it has problems with the var HInstance }
  107. HKEY = HANDLE;
  108. HKL = HANDLE;
  109. HLOCAL = HANDLE;
  110. HMENU = HANDLE;
  111. HMETAFILE = HANDLE;
  112. HMODULE = HANDLE;
  113. HMONITOR = HANDLE;
  114. HPALETTE = HANDLE;
  115. HPEN = HANDLE;
  116. HRASCONN = HANDLE;
  117. HRGN = HANDLE;
  118. HRSRC = HANDLE;
  119. HSTMT = HANDLE;
  120. HSTR = HANDLE;
  121. HSZ = HANDLE;
  122. HWINSTA = HANDLE;
  123. HWND = HANDLE;
  124. HTASK = HANDLE;
  125. HRAWINPUT = HANDLE;
  126. LANGID = word;
  127. LCID = DWORD;
  128. LCTYPE = DWORD;
  129. LPARAM = LONG_PTR;
  130. LP = ^word;
  131. LPBOOL = ^WINBOOL;
  132. LPBYTE = pbyte;
  133. LPCCH = PAnsiChar;
  134. LPCH = PAnsiChar;
  135. LPCOLORREF = ^COLORREF;
  136. LPCSTR = PAnsiChar;
  137. {$ifdef UNICODE}
  138. LPCTSTR = Pwidechar;
  139. {$else}
  140. LPCTSTR = PAnsiChar;
  141. {$endif}
  142. LPCWCH = Pwidechar;
  143. LPCWSTR = Pwidechar;
  144. LPPCSTR = ^LPCSTR;
  145. LPPCTSTR = ^LPCTSTR;
  146. LPPCWSTR = ^LPCWSTR;
  147. LPDWORD = ^DWORD;
  148. LPHANDLE = ^HANDLE;
  149. LPINT = ^longint;
  150. LPLONG = ^longint;
  151. LPSTR = PAnsiChar;
  152. {$ifdef UNICODE}
  153. LPTCH = Pwidechar;
  154. LPTSTR = Pwidechar;
  155. {$else}
  156. LPTCH = PAnsiChar;
  157. LPTSTR = PAnsiChar;
  158. {$endif}
  159. LRESULT = LONG_PTR;
  160. PLRESULT= ^LRESULT;
  161. LPVOID = pointer;
  162. LPCVOID = pointer;
  163. LPWCH = Pwidechar;
  164. LPWORD = ^word;
  165. LPWSTR = Pwidechar;
  166. NWPSTR = Pwidechar;
  167. LPPSTR = ^LPSTR;
  168. LPPWSTR = ^LPWSTR;
  169. LPPTSTR = ^LPTSTR;
  170. PWINBOOL = ^WINBOOL;
  171. PBYTE = System.PByte;
  172. PCCH = PAnsiChar;
  173. PCH = PAnsiChar;
  174. PCSTR = PAnsiChar;
  175. PCWCH = Pwidechar;
  176. PCWSTR = Pwidechar;
  177. PDWORD = System.PDWORD;
  178. PHANDLE = ^HANDLE;
  179. PHKEY = ^HKEY;
  180. PINT = ^longint;
  181. PLONG = ^longint;
  182. PSHORT = ^SHORT;
  183. PSTR = PAnsiChar;
  184. PWSTR = LPWSTR;
  185. PSZ = PAnsiChar;
  186. {$ifdef UNICODE}
  187. PTBYTE = ^word;
  188. PTCH = Pwidechar;
  189. PTCHAR = Pwidechar;
  190. PTSTR = Pwidechar;
  191. {$else}
  192. PTBYTE = ^byte;
  193. PTCH = PAnsiChar;
  194. PTCHAR = PAnsiChar;
  195. PTSTR = PAnsiChar;
  196. {$endif}
  197. PUCHAR = ^byte;
  198. PWCH = Pwidechar;
  199. PWCHAR = Pwidechar;
  200. PWORD = System.PWord;
  201. PUINT = ^cardinal;
  202. PULONG = ^cardinal;
  203. PUSHORT = ^word;
  204. PVOID = pointer;
  205. RETCODE = SHORT;
  206. SC_HANDLE = HANDLE;
  207. SC_LOCK = LPVOID;
  208. LPSC_HANDLE = ^SC_HANDLE;
  209. SERVICE_STATUS_HANDLE = DWORD;
  210. {$ifdef UNICODE}
  211. TBYTE = word;
  212. TCHAR = widechar;
  213. BCHAR = word;
  214. {$else}
  215. TBYTE = byte;
  216. TCHAR = ansichar;
  217. BCHAR = BYTE;
  218. {$endif}
  219. UCHAR = byte;
  220. WCHAR = WideChar;
  221. UINT = cardinal;
  222. ULONG = cardinal;
  223. USHORT = word;
  224. WPARAM = LONG_PTR;
  225. PLPSTR = ^LPSTR;
  226. PLPWStr= ^LPWStr;
  227. COLOR16 = ushort;
  228. {
  229. Enumerations
  230. }
  231. ACL_INFORMATION_CLASS = (AclRevisionInformation = 1,AclSizeInformation
  232. );
  233. _ACL_INFORMATION_CLASS = ACL_INFORMATION_CLASS;
  234. MEDIA_TYPE = (Unknown,F5_1Pt2_512,F3_1Pt44_512,F3_2Pt88_512,
  235. F3_20Pt8_512,F3_720_512,F5_360_512,F5_320_512,
  236. F5_320_1024,F5_180_512,F5_160_512,RemovableMedia,
  237. FixedMedia);
  238. _MEDIA_TYPE = MEDIA_TYPE;
  239. const
  240. RASCS_DONE = $2000;
  241. RASCS_PAUSED = $1000;
  242. type
  243. RASCONNSTATE = (RASCS_OpenPort = 0,RASCS_PortOpened,
  244. RASCS_ConnectDevice,RASCS_DeviceConnected,
  245. RASCS_AllDevicesConnected,RASCS_Authenticate,
  246. RASCS_AuthNotify,RASCS_AuthRetry,RASCS_AuthCallback,
  247. RASCS_AuthChangePassword,RASCS_AuthProject,
  248. RASCS_AuthLinkSpeed,RASCS_AuthAck,RASCS_ReAuthenticate,
  249. RASCS_Authenticated,RASCS_PrepareForCallback,
  250. RASCS_WaitForModemReset,RASCS_WaitForCallback,
  251. RASCS_Projected,RASCS_StartAuthentication,
  252. RASCS_CallbackComplete,RASCS_LogonNetwork,
  253. RASCS_Interactive = RASCS_PAUSED,RASCS_RetryAuthentication,
  254. RASCS_CallbackSetByCaller,RASCS_PasswordExpired,
  255. RASCS_Connected = RASCS_DONE,RASCS_Disconnected
  256. );
  257. _RASCONNSTATE = RASCONNSTATE;
  258. RASPROJECTION = (RASP_PppIp = $8021, RASP_PppIpx = $802B, RASP_PppNbf = $803F,
  259. RASP_Amb = $10000);
  260. _RASPROJECTION = RASPROJECTION;
  261. SECURITY_IMPERSONATION_LEVEL = (SecurityAnonymous,SecurityIdentification,
  262. SecurityImpersonation,SecurityDelegation
  263. );
  264. _SECURITY_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL;
  265. SID_NAME_USE = (SidTypeUser = 1,SidTypeGroup,SidTypeDomain,
  266. SidTypeAlias,SidTypeWellKnownGroup,SidTypeDeletedAccount,
  267. SidTypeInvalid,SidTypeUnknown);
  268. PSID_NAME_USE = ^SID_NAME_USE;
  269. _SID_NAME_USE = SID_NAME_USE;
  270. TOKEN_TYPE = (
  271. TokenPrimary = 1,
  272. TokenImpersonation
  273. );
  274. _TOKEN_TYPE = TOKEN_TYPE;
  275. TTokenType = TOKEN_TYPE;
  276. TOKEN_ELEVATION_TYPE = (
  277. TokenElevationTypeDefault = 1,
  278. TokenElevationTypeFull,
  279. TokenElevationTypeLimited
  280. );
  281. _TOKEN_ELEVATION_TYPE = TOKEN_ELEVATION_TYPE;
  282. TTokenElevationType = TOKEN_ELEVATION_TYPE;
  283. TOKEN_INFORMATION_CLASS = (
  284. TokenUser = 1,
  285. TokenGroups,
  286. TokenPrivileges,
  287. TokenOwner,
  288. TokenPrimaryGroup,
  289. TokenDefaultDacl,
  290. TokenSource,
  291. TokenType,
  292. TokenImpersonationLevel,
  293. TokenStatistics,
  294. TokenRestrictedSids,
  295. TokenSessionId,
  296. TokenGroupsAndPrivileges,
  297. TokenSessionReference,
  298. TokenSandBoxInert,
  299. TokenAuditPolicy,
  300. TokenOrigin,
  301. TokenElevationType,
  302. TokenLinkedToken,
  303. TokenElevation,
  304. TokenHasRestrictions,
  305. TokenAccessInformation,
  306. TokenVirtualizationAllowed,
  307. TokenVirtualizationEnabled,
  308. TokenIntegrityLevel,
  309. TokenUIAccess,
  310. TokenMandatoryPolicy,
  311. TokenLogonSid,
  312. MaxTokenInfoClass // MaxTokenInfoClass should always be the last enum
  313. );
  314. _TOKEN_INFORMATION_CLASS = TOKEN_INFORMATION_CLASS;
  315. TTokenInformationClass = TOKEN_INFORMATION_CLASS;
  316. _TOKEN_ELEVATION = record
  317. TokenIsElevated: DWORD;
  318. end;
  319. TOKEN_ELEVATION = _TOKEN_ELEVATION;
  320. TTokenElevation = _TOKEN_ELEVATION;
  321. PTokenElevation = ^TTokenElevation;
  322. _FINDEX_INFO_LEVELS = (FindExInfoStandard,FindExInfoBasic,FindExInfoMaxInfoLevel);
  323. _FINDEX_SEARCH_OPS = (FindExSearchNameMatch, FindExSearchLimitToDirectories,
  324. FindExSearchLimitToDevices, FindExSearchMaxSearchOp);
  325. TFINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS;
  326. FINDEX_INFO_LEVELS = _FINDEX_INFO_LEVELS;
  327. PFINDEX_INFO_LEVELS = ^TFINDEX_INFO_LEVELS;
  328. TFINDEX_SEARCH_OPS = _FINDEX_SEARCH_OPS;
  329. FINDEX_SEARCH_OPS = _FINDEX_SEARCH_OPS;
  330. PFINDEX_SEARCH_OPS = ^TFINDEX_SEARCH_OPS;
  331. PARTITION_STYLE = (PARTITION_STYLE_MBR=0,PARTITION_STYLE_GPT,PARTITION_STYLE_RAW);
  332. TPARTITION_STYLE = PARTITION_STYLE;
  333. PPARTITION_STYLE = ^TPARTITION_STYLE;
  334. {
  335. Macros
  336. }
  337. MakeIntResourceA = PAnsiChar;
  338. MakeIntResourceW = PWideChar;
  339. {$ifdef UNICODE}
  340. MakeIntResource = MakeIntResourceW;
  341. {$else}
  342. MakeIntResource = MakeIntResourceA;
  343. {$endif}
  344. { was #define dname(params) def_expr }
  345. { argument types are unknown }
  346. function GetBValue(rgb : longint) : BYTE; inline;
  347. { was #define dname(params) def_expr }
  348. { argument types are unknown }
  349. function GetGValue(rgb : longint) : BYTE; inline;
  350. { was #define dname(params) def_expr }
  351. { argument types are unknown }
  352. function GetRValue(rgb : longint) : BYTE; inline;
  353. { was #define dname(params) def_expr }
  354. { argument types are unknown }
  355. function RGB(r,g,b : longint) : DWORD; inline;
  356. { Not convertable by H2PAS
  357. #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
  358. (fn)((hwnd), (int)(wParam), (NMHDR FAR )(lParam))
  359. }
  360. { was #define dname(params) def_expr }
  361. { argument types are unknown }
  362. function HIBYTE(w : longint) : BYTE; inline;
  363. { was #define dname(params) def_expr }
  364. { argument types are unknown }
  365. function HIWORD(l : longint) : WORD; inline;
  366. { was #define dname(params) def_expr }
  367. { argument types are unknown }
  368. function LOBYTE(w : longint) : BYTE; inline;
  369. { was #define dname(params) def_expr }
  370. { argument types are unknown }
  371. function LOWORD(l : longint) : WORD; inline;
  372. { was #define dname(params) def_expr }
  373. { argument types are unknown }
  374. function MAKELONG(a,b : longint) : LONG; inline;
  375. { was #define dname(params) def_expr }
  376. { argument types are unknown }
  377. function MAKEWORD(a,b : longint) : WORD; inline;
  378. { original Cygnus headers also had the following defined: }
  379. { was #define dname(params) def_expr }
  380. { argument types are unknown }
  381. { return type might be wrong }
  382. function SEXT_HIWORD(l : longint) : longint; inline;
  383. { return type might be wrong }
  384. { was #define dname(params) def_expr }
  385. { argument types are unknown }
  386. { return type might be wrong }
  387. function ZEXT_HIWORD(l : longint) : longint; inline;
  388. { return type might be wrong }
  389. { was #define dname(params) def_expr }
  390. { argument types are unknown }
  391. function SEXT_LOWORD(l : longint) : longint; inline;
  392. { was #define dname(params) def_expr }
  393. { argument types are unknown }
  394. { return type might be wrong }
  395. function INDEXTOOVERLAYMASK(i : longint) : longint; inline;
  396. { return type might be wrong }
  397. { was #define dname(params) def_expr }
  398. { argument types are unknown }
  399. { return type might be wrong }
  400. function INDEXTOSTATEIMAGEMASK(i : longint) : longint; inline;
  401. { return type might be wrong }
  402. { was #define dname(params) def_expr }
  403. { argument types are unknown }
  404. function MAKEINTATOM(i : longint) : LPTSTR; inline;
  405. { was #define dname(params) def_expr }
  406. { argument types are unknown }
  407. { return type might be wrong }
  408. function MAKELANGID(p,s : longint) : longint; inline;
  409. { return type might be wrong }
  410. { was #define dname(params) def_expr }
  411. { argument types are unknown }
  412. function PRIMARYLANGID(lgid : longint) : WORD; inline;
  413. { was #define dname(params) def_expr }
  414. { argument types are unknown }
  415. { return type might be wrong }
  416. function SUBLANGID(lgid : longint) : longint; inline;
  417. { return type might be wrong }
  418. { was #define dname(params) def_expr }
  419. { argument types are unknown }
  420. function LANGIDFROMLCID(lcid : longint) : WORD; inline;
  421. { was #define dname(params) def_expr }
  422. { argument types are unknown }
  423. function SORTIDFROMLCID(lcid : longint) : WORD; inline;
  424. { was #define dname(params) def_expr }
  425. { argument types are unknown }
  426. function MAKELCID(lgid,srtid : longint) : DWORD; inline;
  427. { was #define dname(params) def_expr }
  428. { argument types are unknown }
  429. function MAKELPARAM(l,h : longint) : LPARAM; inline;
  430. { was #define dname(params) def_expr }
  431. { argument types are unknown }
  432. function MAKELRESULT(l,h : longint) : LRESULT; inline;
  433. { Not convertable by H2PAS
  434. #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l)))
  435. }
  436. { was #define dname(params) def_expr }
  437. { argument types are unknown }
  438. function MAKEROP4(fore,back : DWord ) : DWORD; inline;
  439. { was #define dname(params) def_expr }
  440. { argument types are unknown }
  441. function MAKEWPARAM(l,h : longint) : WPARAM; inline;
  442. function GET_X_LPARAM(lp : {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.LParam) : longint; inline;
  443. function GET_Y_LPARAM(lp : {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.LParam) : longint; inline;
  444. {$ifndef max}
  445. { was #define dname(params) def_expr }
  446. { argument types are unknown }
  447. { return type might be wrong }
  448. function max(a,b : longint) : longint; inline;
  449. { return type might be wrong }
  450. {$endif}
  451. {$ifndef min}
  452. { was #define dname(params) def_expr }
  453. { argument types are unknown }
  454. { return type might be wrong }
  455. function min(a,b : longint) : longint; inline;
  456. { return type might be wrong }
  457. {$endif}
  458. { was #define dname(params) def_expr }
  459. { argument types are unknown }
  460. function PALETTEINDEX(i : longint) : COLORREF; inline;
  461. { was #define dname(params) def_expr }
  462. { argument types are unknown }
  463. { return type might be wrong }
  464. function PALETTERGB(r,g,b : longint) : longint; inline;
  465. { return type might be wrong }
  466. (* Not convertable by H2PAS
  467. #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \
  468. (pt).y = (SHORT) HIWORD(pts);}
  469. #define POINTTOPOINTS(pt) \
  470. (MAKELONG((short) ((pt).x), (short) ((pt).y)))
  471. *)
  472. { already declared before
  473. #define INDEXTOOVERLAYMASK(i) ((i) << 8)
  474. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  475. }
  476. { Not convertable by H2PAS
  477. #ifdef UNICODE
  478. #define TEXT(quote) L##quote
  479. #else
  480. #define TEXT(quote) quote
  481. #endif
  482. }
  483. function IMAGE_ORDINAL64(Ordinal : uint64) : uint64; inline;
  484. function IMAGE_ORDINAL32(Ordinal : cardinal) : cardinal;inline;
  485. function IMAGE_SNAP_BY_ORDINAL64(Ordinal : uint64) : boolean; inline;
  486. function IMAGE_SNAP_BY_ORDINAL32(Ordinal : cardinal) : boolean; inline;
  487. {$ifdef WIN64}
  488. function IMAGE_ORDINAL(Ordinal : uint64) : uint64; inline;
  489. function IMAGE_SNAP_BY_ORDINAL(Ordinal : uint64) : boolean; inline;
  490. {$else}
  491. function IMAGE_ORDINAL(Ordinal : cardinal) : cardinal; inline;
  492. function IMAGE_SNAP_BY_ORDINAL(Ordinal : cardinal) : boolean; inline;
  493. {$endif}
  494. {
  495. Definitions for callback procedures
  496. }
  497. type
  498. BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;stdcall;
  499. LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  500. LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  501. PTHREAD_START_ROUTINE = function(p:pointer):integer; stdcall;
  502. LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
  503. TThreadStartRoutine = PTHREAD_START_ROUTINE;
  504. EDITSTREAMCALLBACK = function (_para1:DWORD_PTR; _para2:LPBYTE; _para3:LONG; _para4:PLONG):DWORD;stdcall;
  505. LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  506. LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  507. LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  508. LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  509. DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall;
  510. PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;stdcall;
  511. LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPPTSTR);stdcall;
  512. LPSERVICE_MAIN_FUNCTIONA = procedure (_para1:DWORD; _para2:LPPSTR);stdcall;
  513. LPSERVICE_MAIN_FUNCTIONW = procedure (_para1:DWORD; _para2:LPPWSTR);stdcall;
  514. PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall;
  515. WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall;
  516. FARPROC = pointer;
  517. TFarProc = FARPROC;
  518. TFNWndProc = TFarProc;
  519. PROC = FARPROC;
  520. ENUMRESTYPEPROC = function (hModule:HMODULE; lpszType:LPTSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  521. ENUMRESTYPEPROCA = function (hModule:HMODULE; lpszType:LPSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  522. ENUMRESTYPEPROCW = function (hModule:HMODULE; lpszType:LPWSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  523. ENUMRESNAMEPROC = function (hModule:HMODULE; lpszType:LPCTSTR; lpszName:LPTSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  524. ENUMRESNAMEPROCA= function (hModule:HMODULE; lpszType:LPCSTR; lpszName:LPSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  525. ENUMRESNAMEPROCW= function (hModule:HMODULE; lpszType:LPCWSTR; lpszName:LPWSTR; lParam:LONG_PTR):WINBOOL;stdcall;
  526. ENUMRESLANGPROC = function (hModule:HMODULE; lpszType:LPCTSTR; lpszName:LPCTSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall;
  527. ENUMRESLANGPROCA= function (hModule:HMODULE; lpszType:LPCSTR; lpszName:LPCSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall;
  528. ENUMRESLANGPROCW= function (hModule:HMODULE; lpszType:LPCWSTR; lpszName:LPCWSTR; wIDLanguage:WORD; lParam:LONG_PTR):WINBOOL;stdcall;
  529. DESKTOPENUMPROC = FARPROC;
  530. ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;stdcall;
  531. ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;stdcall;
  532. ENUMWINDOWSTATIONPROCA = function (_para1:LPSTR; _para2:LPARAM):WINBOOL;stdcall;
  533. ENUMWINDOWSTATIONPROCW = function (_para1:LPWSTR; _para2:LPARAM):WINBOOL;stdcall;
  534. SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:ULONG_PTR; _para4:LRESULT);stdcall;
  535. TIMERPROC = procedure (hWnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
  536. GRAYSTRINGPROC = FARPROC;
  537. DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;stdcall;
  538. PROPENUMPROCEXA = function (_para1:HWND; _para2:LPCSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall;
  539. PROPENUMPROCEXW = function (_para1:HWND; _para2:LPCWSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall;
  540. PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:ULONG_PTR):WINBOOL;stdcall;
  541. PROPENUMPROCA = function (_para1:HWND; _para2:LPCSTR; _para3:HANDLE):WINBOOL;stdcall;
  542. PROPENUMPROCW = function (_para1:HWND; _para2:LPCWSTR; _para3:HANDLE):WINBOOL;stdcall;
  543. PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;stdcall;
  544. HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;stdcall;
  545. ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);stdcall;
  546. LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);stdcall;
  547. TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;stdcall;
  548. LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  549. LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT_PTR;stdcall;
  550. ICMENUMPROCA = function (_para1:LPSTR; _para2:LPARAM):longint;stdcall;
  551. ICMENUMPROCW = function (_para1:LPWSTR; _para2:LPARAM):longint;stdcall;
  552. ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;stdcall;
  553. EDITWORDBREAKPROCEX = function (_para1:PAnsiChar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG;stdcall;
  554. PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;stdcall;
  555. LOCALE_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall;
  556. LOCALE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall;
  557. LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
  558. CODEPAGE_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall;
  559. CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall;
  560. CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
  561. DATEFMT_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall;
  562. DATEFMT_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall;
  563. DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
  564. TIMEFMT_ENUMPROCA = function (_para1:LPSTR):WINBOOL;stdcall;
  565. TIMEFMT_ENUMPROCW = function (_para1:LPWSTR):WINBOOL;stdcall;
  566. TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
  567. CALINFO_ENUMPROCA= function (_para1:LPSTR):WINBOOL;stdcall;
  568. CALINFO_ENUMPROCW= function (_para1:LPWSTR):WINBOOL;stdcall;
  569. CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;stdcall;
  570. PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;stdcall;
  571. LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;stdcall;
  572. PFNGETPROFILEPATHA = function (_para1:LPCSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall;
  573. PFNGETPROFILEPATHW = function (_para1:LPCWSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall;
  574. PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;stdcall;
  575. PFNRECONCILEPROFILEA = function (_para1:LPCSTR; _para2:LPCSTR; _para3:DWORD):UINT;stdcall;
  576. PFNRECONCILEPROFILEW = function (_para1:LPCWSTR; _para2:LPCWSTR; _para3:DWORD):UINT;stdcall;
  577. PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;stdcall;
  578. PFNPROCESSPOLICIESA = function (_para1:HWND; _para2:LPCSTR; _para3:LPCSTR; _para4:LPCSTR; _para5:DWORD):WINBOOL;stdcall;
  579. PFNPROCESSPOLICIESW = function (_para1:HWND; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPCWSTR; _para5:DWORD):WINBOOL;stdcall;
  580. PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;stdcall;
  581. TIMEFMT_ENUMPROCEX = function (TimeFormat : LPWSTR; AppData : LPARAM) : BOOL; stdcall;
  582. WAITORTIMERCALLBACK = procedure (arg1:PVoid;arg2:WINAPIBOOLEAN); stdcall;
  583. (* Not convertable by H2PAS
  584. #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
  585. #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
  586. #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
  587. #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
  588. #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
  589. #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
  590. *)
  591. { TEXT("String") replaced by "String" below for H2PAS }
  592. const
  593. SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
  594. SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
  595. SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege';
  596. SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege';
  597. SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege';
  598. SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege';
  599. SE_TCB_NAME = 'SeTcbPrivilege';
  600. SE_SECURITY_NAME = 'SeSecurityPrivilege';
  601. SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege';
  602. SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege';
  603. SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege';
  604. SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';
  605. SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege';
  606. SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege';
  607. SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege';
  608. SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege';
  609. SE_BACKUP_NAME = 'SeBackupPrivilege';
  610. SE_RESTORE_NAME = 'SeRestorePrivilege';
  611. SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
  612. SE_DEBUG_NAME = 'SeDebugPrivilege';
  613. SE_AUDIT_NAME = 'SeAuditPrivilege';
  614. SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege';
  615. SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';
  616. SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
  617. { Not convertable by H2PAS
  618. #define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
  619. #define SERVICES_FAILED_DATABASEW L"ServicesFailed"
  620. }
  621. SERVICES_ACTIVE_DATABASEA = 'ServicesActive';
  622. SERVICES_FAILED_DATABASEA = 'ServicesFailed';
  623. SERVICES_ACTIVE_DATABASEW = 'ServicesActive'#0000;
  624. SERVICES_FAILED_DATABASEW = 'ServicesFailed'#0000;
  625. { Not convertable by H2PAS
  626. #define SC_GROUP_IDENTIFIERW L'+'
  627. }
  628. SC_GROUP_IDENTIFIERA = '+';
  629. SC_GROUP_IDENTIFIERW = '+'#0000;
  630. {$ifdef UNICODE}
  631. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW;
  632. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW;
  633. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW;
  634. {$else}
  635. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA;
  636. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA;
  637. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA;
  638. {$endif}
  639. type
  640. { PFNCALLBACK = CALLB; }
  641. PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;stdcall;
  642. { CALLB = procedure ;CDECL; }
  643. CALLB = PFNCALLBACK;
  644. SECURITY_CONTEXT_TRACKING_MODE = WINBOOL;
  645. { End of stuff from ddeml.h in old Cygnus headers }
  646. { ----------------------------------------------- }
  647. WNDENUMPROC = FARPROC;
  648. ENHMFENUMPROC = FARPROC;
  649. CCSTYLE = DWORD;
  650. PCCSTYLE = ^CCSTYLE;
  651. LPCCSTYLE = ^CCSTYLE;
  652. CCSTYLEFLAGA = DWORD;
  653. PCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  654. LPCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  655. EXECUTION_STATE = DWORD;
  656. PEXECUTION_STATE = ^EXECUTION_STATE;
  657. {$endif read_interface}
  658. {$ifdef read_implementation}
  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(((DWORD(BYTE(r))) or ((DWORD(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(SHORT(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(ULONG_PTR(WORD(i)));
  762. end;
  763. { was #define dname(params) def_expr }
  764. { argument types are unknown }
  765. { return type might be wrong }
  766. function MAKELANGID(p,s : longint) : longint;
  767. { return type might be wrong }
  768. begin
  769. MAKELANGID:=((WORD(s)) shl 10) or (WORD(p));
  770. end;
  771. { was #define dname(params) def_expr }
  772. { argument types are unknown }
  773. function PRIMARYLANGID(lgid : longint) : WORD;
  774. begin
  775. { PRIMARYLANGID:=WORD(lgid(@($3ff)));
  776. h2pas error here corrected by hand PM }
  777. PRIMARYLANGID:=WORD(lgid) and ($3ff);
  778. end;
  779. { was #define dname(params) def_expr }
  780. { argument types are unknown }
  781. { return type might be wrong }
  782. function SUBLANGID(lgid : longint) : longint;
  783. { return type might be wrong }
  784. begin
  785. SUBLANGID:=(WORD(lgid)) shr 10;
  786. end;
  787. { was #define dname(params) def_expr }
  788. { argument types are unknown }
  789. function LANGIDFROMLCID(lcid : longint) : WORD;
  790. begin
  791. LANGIDFROMLCID:=WORD(lcid);
  792. end;
  793. { was #define dname(params) def_expr }
  794. { argument types are unknown }
  795. function SORTIDFROMLCID(lcid : longint) : WORD;
  796. begin
  797. SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16);
  798. end;
  799. { was #define dname(params) def_expr }
  800. { argument types are unknown }
  801. function MAKELCID(lgid,srtid : longint) : DWORD;
  802. begin
  803. MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid))));
  804. end;
  805. { was #define dname(params) def_expr }
  806. { argument types are unknown }
  807. function MAKELPARAM(l,h : longint) : LPARAM;
  808. begin
  809. MAKELPARAM:=LPARAM(MAKELONG(l,h));
  810. end;
  811. { was #define dname(params) def_expr }
  812. { argument types are unknown }
  813. function MAKELRESULT(l,h : longint) : LRESULT;
  814. begin
  815. MAKELRESULT:=LRESULT(MAKELONG(l,h));
  816. end;
  817. { was #define dname(params) def_expr }
  818. { argument types are unknown }
  819. function MAKEROP4(fore,back : DWOrd ) : DWORD;
  820. begin
  821. MAKEROP4:=((back shl 8) and $FF000000) or fore;
  822. end;
  823. { was #define dname(params) def_expr }
  824. { argument types are unknown }
  825. function MAKEWPARAM(l,h : longint) : WPARAM;
  826. begin
  827. MAKEWPARAM:=WPARAM(MAKELONG(l,h));
  828. end;
  829. function GET_X_LPARAM(lp : {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.LParam) : longint;
  830. begin
  831. result:=smallint(LOWORD(lp));
  832. end;
  833. function GET_Y_LPARAM(lp : {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Windows.LParam) : longint;
  834. begin
  835. result:=smallint(HIWORD(lp));
  836. end;
  837. { was #define dname(params) def_expr }
  838. { argument types are unknown }
  839. { return type might be wrong }
  840. function max(a,b : longint) : longint;
  841. begin
  842. if a > b then
  843. max:=a
  844. else
  845. max:=b;
  846. end;
  847. { was #define dname(params) def_expr }
  848. { argument types are unknown }
  849. { return type might be wrong }
  850. function min(a,b : longint) : longint;
  851. begin
  852. if a < b then
  853. min:=a
  854. else
  855. min:=b;
  856. end;
  857. { was #define dname(params) def_expr }
  858. { argument types are unknown }
  859. function PALETTEINDEX(i : longint) : COLORREF;
  860. begin
  861. PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i))));
  862. end;
  863. { was #define dname(params) def_expr }
  864. { argument types are unknown }
  865. { return type might be wrong }
  866. function PALETTERGB(r,g,b : longint) : longint;
  867. { return type might be wrong }
  868. begin
  869. PALETTERGB:=$02000000 or (RGB(r,g,b));
  870. end;
  871. function IMAGE_ORDINAL64(Ordinal : uint64) : uint64;
  872. begin
  873. IMAGE_ORDINAL64:=Ordinal and $ffff;
  874. end;
  875. function IMAGE_ORDINAL32(Ordinal : cardinal) : cardinal;
  876. begin
  877. IMAGE_ORDINAL32:=Ordinal and $ffff;
  878. end;
  879. function IMAGE_SNAP_BY_ORDINAL64(Ordinal : uint64) : boolean;
  880. begin
  881. IMAGE_SNAP_BY_ORDINAL64:=(Ordinal and IMAGE_ORDINAL_FLAG64)<>0;
  882. end;
  883. function IMAGE_SNAP_BY_ORDINAL32(Ordinal : cardinal) : boolean;
  884. begin
  885. IMAGE_SNAP_BY_ORDINAL32:=(Ordinal and IMAGE_ORDINAL_FLAG32)<>0;
  886. end;
  887. {$ifdef win64}
  888. function IMAGE_ORDINAL(Ordinal : uint64) : uint64;
  889. begin
  890. IMAGE_ORDINAL:=IMAGE_ORDINAL64(Ordinal);
  891. end;
  892. function IMAGE_SNAP_BY_ORDINAL(Ordinal : uint64) : boolean;
  893. begin
  894. IMAGE_SNAP_BY_ORDINAL:=IMAGE_SNAP_BY_ORDINAL64(Ordinal);
  895. end;
  896. {$else}
  897. function IMAGE_ORDINAL(Ordinal : cardinal) : cardinal;
  898. begin
  899. IMAGE_ORDINAL:=IMAGE_ORDINAL32(Ordinal);
  900. end;
  901. function IMAGE_SNAP_BY_ORDINAL(Ordinal : cardinal) : boolean;
  902. begin
  903. IMAGE_SNAP_BY_ORDINAL:=IMAGE_SNAP_BY_ORDINAL32(Ordinal);
  904. end;
  905. {$endif}
  906. {$endif read_implementation}