base.inc 29 KB

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