base.inc 29 KB

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