base.inc 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052
  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. 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 = AnsiChar; //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 = System.pbyte; //windef
  131. LPCCH = PAnsiChar; //winnt
  132. LPCH = PAnsiChar; //winnt
  133. LPCOLORREF = ^COLORREF; //windef
  134. LPCSTR = PAnsiChar; //winnt
  135. {$ifdef UNICODE}
  136. LPCTSTR = Pwidechar; //winnt
  137. {$else}
  138. LPCTSTR = PAnsiChar; //winnt
  139. {$endif}
  140. LPCWCH = Pwidechar; //winnt
  141. LPCWSTR = Pwidechar; //winnt
  142. LPDWORD = system.pdword; //windef
  143. LPHANDLE = ^HANDLE; //windef
  144. LPINT = ^longint; //windef
  145. LPLONG = ^longint; //windef
  146. LPSTR = PAnsiChar; //winnt
  147. {$ifdef UNICODE}
  148. LPTCH = Pwidechar;
  149. LPTSTR = Pwidechar;
  150. {$else}
  151. LPTCH = PAnsiChar;
  152. LPTSTR = PAnsiChar;
  153. {$endif}
  154. LRESULT = longint; //windef LONG_PTR
  155. LPVOID = pointer; //windef
  156. LPCVOID = pointer; //windef
  157. LPWCH = Pwidechar;
  158. LPWORD = system.pword; //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 = PAnsiChar; //winnt
  175. PCH = PAnsiChar; //winnt
  176. PCSTR = PAnsiChar;
  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 = PAnsiChar;
  187. PSZ = PAnsiChar; //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 = PAnsiChar;
  196. PTCHAR = PAnsiChar;
  197. PTSTR = PAnsiChar;
  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 = AnsiChar;
  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. type
  375. LOBYTE = byte;
  376. (*
  377. { was #define dname(params) def_expr }
  378. { argument types are unknown }
  379. function LOBYTE(w : longint) : BYTE; //windef
  380. *)
  381. { was #define dname(params) def_expr }
  382. { argument types are unknown }
  383. function LOWORD(l : longint) : WORD; //windef
  384. { was #define dname(params) def_expr }
  385. { argument types are unknown }
  386. function MAKELONG(a,b : longint) : LONG; //windef
  387. { was #define dname(params) def_expr }
  388. { argument types are unknown }
  389. function MAKEWORD(a,b : longint) : WORD; //windef
  390. { original Cygnus headers also had the following defined: }
  391. { was #define dname(params) def_expr }
  392. { argument types are unknown }
  393. { return type might be wrong }
  394. function SEXT_HIWORD(l : longint) : longint;
  395. { return type might be wrong }
  396. { was #define dname(params) def_expr }
  397. { argument types are unknown }
  398. { return type might be wrong }
  399. function ZEXT_HIWORD(l : longint) : longint;
  400. { return type might be wrong }
  401. { was #define dname(params) def_expr }
  402. { argument types are unknown }
  403. function SEXT_LOWORD(l : longint) : longint;
  404. { was #define dname(params) def_expr }
  405. { argument types are unknown }
  406. { return type might be wrong }
  407. function INDEXTOOVERLAYMASK(i : longint) : longint;
  408. { return type might be wrong }
  409. { was #define dname(params) def_expr }
  410. { argument types are unknown }
  411. { return type might be wrong }
  412. function INDEXTOSTATEIMAGEMASK(i : longint) : longint;
  413. { return type might be wrong }
  414. { was #define dname(params) def_expr }
  415. { argument types are unknown }
  416. function MAKEINTATOM(i : longint) : LPTSTR;
  417. { was #define dname(params) def_expr }
  418. { argument types are unknown }
  419. { return type might be wrong }
  420. function MAKELANGID(p,s : longint) : longint; //winnt
  421. { return type might be wrong }
  422. { was #define dname(params) def_expr }
  423. { argument types are unknown }
  424. function PRIMARYLANGID(lgid : longint) : WORD; //winnt
  425. { was #define dname(params) def_expr }
  426. { argument types are unknown }
  427. { return type might be wrong }
  428. function SUBLANGID(lgid : longint) : longint; //winnt
  429. { return type might be wrong }
  430. { was #define dname(params) def_expr }
  431. { argument types are unknown }
  432. function LANGIDFROMLCID(lcid : longint) : WORD;
  433. { was #define dname(params) def_expr }
  434. { argument types are unknown }
  435. function SORTIDFROMLCID(lcid : longint) : WORD;
  436. { was #define dname(params) def_expr }
  437. { argument types are unknown }
  438. function MAKELCID(lgid,srtid : longint) : DWORD;
  439. { was #define dname(params) def_expr }
  440. { argument types are unknown }
  441. function MAKELPARAM(l,h : longint) : LPARAM;
  442. { was #define dname(params) def_expr }
  443. { argument types are unknown }
  444. function MAKELRESULT(l,h : longint) : LRESULT;
  445. { Not convertable by H2PAS
  446. #define MAKEPOINTS(l) ( ((POINTS FAR ) & (l)))
  447. }
  448. { was #define dname(params) def_expr }
  449. { argument types are unknown }
  450. function MAKEROP4(fore,back : longint) : DWORD;
  451. { was #define dname(params) def_expr }
  452. { argument types are unknown }
  453. function MAKEWPARAM(l,h : longint) : WPARAM;
  454. {$ifndef max}
  455. { was #define dname(params) def_expr }
  456. { argument types are unknown }
  457. { return type might be wrong }
  458. function max(a,b : longint) : longint; //windef
  459. { return type might be wrong }
  460. {$endif}
  461. {$ifndef min}
  462. { was #define dname(params) def_expr }
  463. { argument types are unknown }
  464. { return type might be wrong }
  465. function min(a,b : longint) : longint; //windef
  466. { return type might be wrong }
  467. {$endif}
  468. { was #define dname(params) def_expr }
  469. { argument types are unknown }
  470. function PALETTEINDEX(i : longint) : COLORREF;
  471. { was #define dname(params) def_expr }
  472. { argument types are unknown }
  473. { return type might be wrong }
  474. function PALETTERGB(r,g,b : longint) : longint;
  475. { return type might be wrong }
  476. (* Not convertable by H2PAS
  477. #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \
  478. (pt).y = (SHORT) HIWORD(pts);}
  479. #define POINTTOPOINTS(pt) \
  480. (MAKELONG((short) ((pt).x), (short) ((pt).y)))
  481. *)
  482. { already declared before
  483. #define INDEXTOOVERLAYMASK(i) ((i) << 8)
  484. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  485. }
  486. { Not convertable by H2PAS
  487. #ifdef UNICODE
  488. #define TEXT(quote) L##quote
  489. #else
  490. #define TEXT(quote) quote
  491. #endif
  492. }
  493. {
  494. Definitions for callback procedures
  495. }
  496. type
  497. BFFCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM; _para4:LPARAM):longint;
  498. LPCCHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  499. LPCFHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  500. PTHREAD_START_ROUTINE = Pointer;
  501. LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
  502. EDITSTREAMCALLBACK = function (_para1:DWORD; _para2:LPBYTE; _para3:LONG; _para4:LONG):DWORD;
  503. LPFRHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  504. LPOFNHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  505. LPPRINTHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  506. LPSETUPHOOKPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  507. DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
  508. PFNPROPSHEETCALLBACK = function (_para1:HWND; _para2:UINT; _para3:LPARAM):longint;
  509. LPSERVICE_MAIN_FUNCTION = procedure (_para1:DWORD; _para2:LPTSTR);
  510. PFNTVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
  511. WNDPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;
  512. FARPROC = pointer; //windef
  513. NEARPROC= FARPROC; //+windef
  514. PROC = FARPROC; //~windef
  515. ENUMRESTYPEPROC = function (_para1:HANDLE; _para2:LPTSTR; _para3:LONG):WINBOOL;
  516. ENUMRESNAMEPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LONG):WINBOOL;
  517. ENUMRESLANGPROC = function (_para1:HANDLE; _para2:LPCTSTR; _para3:LPCTSTR; _para4:WORD; _para5:LONG):WINBOOL;
  518. DESKTOPENUMPROC = FARPROC;
  519. ENUMWINDOWSPROC = function (_para1:HWND; _para2:LPARAM):WINBOOL;
  520. ENUMWINDOWSTATIONPROC = function (_para1:LPTSTR; _para2:LPARAM):WINBOOL;
  521. SENDASYNCPROC = procedure (_para1:HWND; _para2:UINT; _para3:DWORD; _para4:LRESULT);
  522. TIMERPROC = procedure (_para1:HWND; _para2:UINT; _para3:UINT; _para4:DWORD);
  523. GRAYSTRINGPROC = FARPROC;
  524. DRAWSTATEPROC = function (_para1:HDC; _para2:LPARAM; _para3:WPARAM; _para4:longint; _para5:longint):WINBOOL;
  525. PROPENUMPROCEX = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE; _para4:DWORD):WINBOOL;
  526. PROPENUMPROC = function (_para1:HWND; _para2:LPCTSTR; _para3:HANDLE):WINBOOL;
  527. HOOKPROC = function (_para1:longint; _para2:WPARAM; _para3:LPARAM):LRESULT;
  528. ENUMOBJECTSPROC = procedure (_para1:LPVOID; _para2:LPARAM);
  529. LINEDDAPROC = procedure (_para1:longint; _para2:longint; _para3:LPARAM);
  530. TABORTPROC = function (_para1:HDC; _para2:longint):WINBOOL;
  531. LPPAGEPAINTHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  532. LPPAGESETUPHOOK = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):UINT;
  533. ICMENUMPROC = function (_para1:LPTSTR; _para2:LPARAM):longint;
  534. EDITWORDBREAKPROCEX = function (_para1:PAnsiChar; _para2:LONG; _para3:BYTE; _para4:WINT):LONG;
  535. PFNLVCOMPARE = function (_para1:LPARAM; _para2:LPARAM; _para3:LPARAM):longint;
  536. LOCALE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  537. CODEPAGE_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  538. CODEPAGE_ENUMPROCW = function (_para1:LPWSTR):WINBOOL; //+winnls
  539. DATEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  540. TIMEFMT_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  541. CALINFO_ENUMPROC = function (_para1:LPTSTR):WINBOOL;
  542. PHANDLER_ROUTINE = function (_para1:DWORD):WINBOOL;
  543. LPHANDLER_FUNCTION = function (_para1:DWORD):WINBOOL;
  544. PFNGETPROFILEPATH = function (_para1:LPCTSTR; _para2:LPSTR; _para3:UINT):UINT;
  545. PFNRECONCILEPROFILE = function (_para1:LPCTSTR; _para2:LPCTSTR; _para3:DWORD):UINT;
  546. PFNPROCESSPOLICIES = function (_para1:HWND; _para2:LPCTSTR; _para3:LPCTSTR; _para4:LPCTSTR; _para5:DWORD):WINBOOL;
  547. const
  548. SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
  549. SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
  550. SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege';
  551. SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege';
  552. SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege';
  553. SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege';
  554. SE_TCB_NAME = 'SeTcbPrivilege';
  555. SE_SECURITY_NAME = 'SeSecurityPrivilege';
  556. SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege';
  557. SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege';
  558. SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege';
  559. SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';
  560. SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege';
  561. SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege';
  562. SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege';
  563. SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege';
  564. SE_BACKUP_NAME = 'SeBackupPrivilege';
  565. SE_RESTORE_NAME = 'SeRestorePrivilege';
  566. SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
  567. SE_DEBUG_NAME = 'SeDebugPrivilege';
  568. SE_AUDIT_NAME = 'SeAuditPrivilege';
  569. SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege';
  570. SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';
  571. SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
  572. //SERVICES_ACTIVE_DATABASEW L"ServicesActive"
  573. //#define SERVICES_FAILED_DATABASEW L"ServicesFailed"
  574. SERVICES_ACTIVE_DATABASEA = 'ServicesActive';
  575. SERVICES_FAILED_DATABASEA = 'ServicesFailed';
  576. { Not convertable by H2PAS
  577. #define SC_GROUP_IDENTIFIERW L'+'
  578. }
  579. SC_GROUP_IDENTIFIERA = '+';
  580. {$ifdef UNICODE}
  581. //temporary removed to compile in unicode, ORO06 08/2005
  582. //SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEW;
  583. //SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEW;
  584. //SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERW;
  585. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA;
  586. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA;
  587. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA;
  588. {$else}
  589. SERVICES_ACTIVE_DATABASE = SERVICES_ACTIVE_DATABASEA;
  590. SERVICES_FAILED_DATABASE = SERVICES_FAILED_DATABASEA;
  591. SC_GROUP_IDENTIFIER = SC_GROUP_IDENTIFIERA;
  592. {$endif}
  593. type
  594. { PFNCALLBACK = CALLB; }
  595. PFNCALLBACK = function(_para1, _para2: UINT;_para3: HCONV;_para4, _para5: HSZ; _para6: HDDEDATA;_para7 ,_para8 :DWORD): HDDEData;
  596. { CALLB = procedure ;CDECL; }
  597. CALLB = PFNCALLBACK;
  598. SECURITY_CONTEXT_TRACKING_MODE = WINBOOL;
  599. { End of stuff from ddeml.h in old Cygnus headers }
  600. { ----------------------------------------------- }
  601. WNDENUMPROC = FARPROC;
  602. ENHMFENUMPROC = FARPROC;
  603. CCSTYLE = DWORD;
  604. PCCSTYLE = ^CCSTYLE;
  605. LPCCSTYLE = ^CCSTYLE;
  606. CCSTYLEFLAGA = DWORD;
  607. PCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  608. LPCCSTYLEFLAGA = ^CCSTYLEFLAGA;
  609. {$endif read_interface}
  610. {$ifdef read_implementation}
  611. { was #define dname(params) def_expr }
  612. { argument types are unknown }
  613. function GetBValue(rgb : longint) : BYTE;
  614. begin
  615. GetBValue:=BYTE(rgb shr 16);
  616. end;
  617. { was #define dname(params) def_expr }
  618. { argument types are unknown }
  619. function GetGValue(rgb : longint) : BYTE;
  620. begin
  621. GetGValue:=BYTE((WORD(rgb)) shr 8);
  622. end;
  623. { was #define dname(params) def_expr }
  624. { argument types are unknown }
  625. function GetRValue(rgb : longint) : BYTE;
  626. begin
  627. GetRValue:=BYTE(rgb);
  628. end;
  629. { was #define dname(params) def_expr }
  630. { argument types are unknown }
  631. function RGB(r,g,b : longint) : DWORD;
  632. begin
  633. RGB:=DWORD(((DWORD(BYTE(r))) or ((DWORD(WORD(g))) shl 8)) or ((DWORD(BYTE(b))) shl 16));
  634. end;
  635. { was #define dname(params) def_expr }
  636. { argument types are unknown }
  637. function HIBYTE(w : longint) : BYTE;
  638. begin
  639. HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF);
  640. end;
  641. { was #define dname(params) def_expr }
  642. { argument types are unknown }
  643. function HIWORD(l : longint) : WORD;
  644. begin
  645. HIWORD:=WORD(((DWORD(l)) shr 16) and $FFFF);
  646. end;
  647. (*
  648. { was #define dname(params) def_expr }
  649. { argument types are unknown }
  650. function LOBYTE(w : longint) : BYTE;
  651. begin
  652. LOBYTE:=BYTE(w);
  653. end;
  654. *)
  655. { was #define dname(params) def_expr }
  656. { argument types are unknown }
  657. function LOWORD(l : longint) : WORD; inline;
  658. begin
  659. LOWORD:=WORD(l);
  660. end;
  661. { was #define dname(params) def_expr }
  662. { argument types are unknown }
  663. function MAKELONG(a,b : longint) : LONG;
  664. begin
  665. MAKELONG:=LONG((WORD(a)) or ((DWORD(WORD(b))) shl 16));
  666. end;
  667. { was #define dname(params) def_expr }
  668. { argument types are unknown }
  669. function MAKEWORD(a,b : longint) : WORD;
  670. begin
  671. MAKEWORD:=WORD((BYTE(a)) or ((WORD(BYTE(b))) shl 8));
  672. end;
  673. { was #define dname(params) def_expr }
  674. { argument types are unknown }
  675. { return type might be wrong }
  676. function SEXT_HIWORD(l : longint) : longint;
  677. { return type might be wrong }
  678. begin
  679. SEXT_HIWORD:=(longint(l)) shr 16;
  680. end;
  681. { was #define dname(params) def_expr }
  682. { argument types are unknown }
  683. { return type might be wrong }
  684. function ZEXT_HIWORD(l : longint) : longint;
  685. { return type might be wrong }
  686. begin
  687. ZEXT_HIWORD:=(Cardinal(l)) shr 16;
  688. end;
  689. { was #define dname(params) def_expr }
  690. { argument types are unknown }
  691. function SEXT_LOWORD(l : longint) : longint;
  692. begin
  693. SEXT_LOWORD:=longint(SHORT(l));
  694. end;
  695. { was #define dname(params) def_expr }
  696. { argument types are unknown }
  697. { return type might be wrong }
  698. function INDEXTOOVERLAYMASK(i : longint) : longint;
  699. { return type might be wrong }
  700. begin
  701. INDEXTOOVERLAYMASK:=i shl 8;
  702. end;
  703. { was #define dname(params) def_expr }
  704. { argument types are unknown }
  705. { return type might be wrong }
  706. function INDEXTOSTATEIMAGEMASK(i : longint) : longint;
  707. { return type might be wrong }
  708. begin
  709. INDEXTOSTATEIMAGEMASK:=i shl 12;
  710. end;
  711. { was #define dname(params) def_expr }
  712. { argument types are unknown }
  713. function MAKEINTATOM(i : longint) : LPTSTR; inline;
  714. begin
  715. MAKEINTATOM:=LPTSTR(DWORD(WORD(i)));
  716. end;
  717. { was #define dname(params) def_expr }
  718. { argument types are unknown }
  719. { return type might be wrong }
  720. function MAKELANGID(p,s : longint) : longint;
  721. { return type might be wrong }
  722. begin
  723. MAKELANGID:=((WORD(s)) shl 10) or (WORD(p));
  724. end;
  725. { was #define dname(params) def_expr }
  726. { argument types are unknown }
  727. function PRIMARYLANGID(lgid : longint) : WORD;
  728. begin
  729. { PRIMARYLANGID:=WORD(lgid(@($3ff)));
  730. h2pas error here corrected by hand PM }
  731. PRIMARYLANGID:=WORD(lgid) and ($3ff);
  732. end;
  733. { was #define dname(params) def_expr }
  734. { argument types are unknown }
  735. { return type might be wrong }
  736. function SUBLANGID(lgid : longint) : longint;
  737. { return type might be wrong }
  738. begin
  739. SUBLANGID:=(WORD(lgid)) shr 10;
  740. end;
  741. { was #define dname(params) def_expr }
  742. { argument types are unknown }
  743. function LANGIDFROMLCID(lcid : longint) : WORD;
  744. begin
  745. LANGIDFROMLCID:=WORD(lcid);
  746. end;
  747. { was #define dname(params) def_expr }
  748. { argument types are unknown }
  749. function SORTIDFROMLCID(lcid : longint) : WORD;
  750. begin
  751. SORTIDFROMLCID:=WORD(((DWORD(lcid)) and $000FFFFF) shr 16);
  752. end;
  753. { was #define dname(params) def_expr }
  754. { argument types are unknown }
  755. function MAKELCID(lgid,srtid : longint) : DWORD;
  756. begin
  757. MAKELCID:=DWORD(((DWORD(WORD(srtid))) shl 16) or (DWORD(WORD(lgid))));
  758. end;
  759. { was #define dname(params) def_expr }
  760. { argument types are unknown }
  761. function MAKELPARAM(l,h : longint) : LPARAM;
  762. begin
  763. MAKELPARAM:=LPARAM(MAKELONG(l,h));
  764. end;
  765. { was #define dname(params) def_expr }
  766. { argument types are unknown }
  767. function MAKELRESULT(l,h : longint) : LRESULT;
  768. begin
  769. MAKELRESULT:=LRESULT(MAKELONG(l,h));
  770. end;
  771. { was #define dname(params) def_expr }
  772. { argument types are unknown }
  773. function MAKEROP4(fore,back : longint) : DWORD;
  774. begin
  775. MAKEROP4:=DWORD((DWORD(back shl 8) and $FF000000) or DWORD(fore));
  776. end;
  777. { was #define dname(params) def_expr }
  778. { argument types are unknown }
  779. function MAKEWPARAM(l,h : longint) : WPARAM;
  780. begin
  781. MAKEWPARAM:=WPARAM(MAKELONG(l,h));
  782. end;
  783. { was #define dname(params) def_expr }
  784. { argument types are unknown }
  785. { return type might be wrong }
  786. function max(a,b : longint) : longint;
  787. { return type might be wrong }
  788. var
  789. if_local1 : longint;
  790. (* result types are not known *)
  791. begin
  792. if a > b then
  793. if_local1:=a
  794. else
  795. if_local1:=b;
  796. max:=if_local1;
  797. end;
  798. { was #define dname(params) def_expr }
  799. { argument types are unknown }
  800. { return type might be wrong }
  801. function min(a,b : longint) : longint;
  802. { return type might be wrong }
  803. var
  804. if_local1 : longint;
  805. (* result types are not known *)
  806. begin
  807. if a < b then
  808. if_local1:=a
  809. else
  810. if_local1:=b;
  811. min:=if_local1;
  812. end;
  813. { was #define dname(params) def_expr }
  814. { argument types are unknown }
  815. function PALETTEINDEX(i : longint) : COLORREF;
  816. begin
  817. PALETTEINDEX:=COLORREF($01000000 or (DWORD(WORD(i))));
  818. end;
  819. { was #define dname(params) def_expr }
  820. { argument types are unknown }
  821. { return type might be wrong }
  822. function PALETTERGB(r,g,b : longint) : longint;
  823. { return type might be wrong }
  824. begin
  825. PALETTERGB:=$02000000 or (RGB(r,g,b));
  826. end;
  827. {$endif read_implementation}