PageRenderTime 61ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 3ms

/packages/winunits-jedi/src/jwawinuser.pas

http://github.com/graemeg/freepascal
Pascal | 19851 lines | 12152 code | 2677 blank | 5022 comment | 0 complexity | f213bdf3378ede1a93660d436ac95f3b MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, LGPL-2.1, LGPL-3.0, BSD-3-Clause
  1. {******************************************************************************}
  2. { }
  3. { Windows User API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: winuser.h, released June 2000. The original Pascal }
  9. { code is: WinUser.pas, released December 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  16. { }
  17. { You may retrieve the latest version of this file at the Project JEDI }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. // $Id: JwaWinUser.pas,v 1.19 2007/09/14 06:48:48 marquardt Exp $
  43. {$IFNDEF JWA_OMIT_SECTIONS}
  44. unit JwaWinUser;
  45. {$WEAKPACKAGEUNIT}
  46. {$ENDIF JWA_OMIT_SECTIONS}
  47. {$HPPEMIT ''}
  48. {$HPPEMIT '#include "WinUser.h"'}
  49. {$HPPEMIT ''}
  50. {$IFNDEF JWA_OMIT_SECTIONS}
  51. {$I jediapilib.inc}
  52. interface
  53. uses
  54. JwaWinBase, JwaWinGDI, JwaWinNT, JwaWinType;
  55. {$ENDIF JWA_OMIT_SECTIONS}
  56. {$IFNDEF JWA_IMPLEMENTATIONSECTION}
  57. const
  58. UINT_MAX = UINT($FFFFFFFF); // from limits.h TODO
  59. {$EXTERNALSYM UINT_MAX}
  60. type
  61. HDWP = HANDLE;
  62. {$EXTERNALSYM HDWP}
  63. MENUTEMPLATEA = Pointer;
  64. {$EXTERNALSYM MENUTEMPLATEA}
  65. MENUTEMPLATEW = Pointer;
  66. {$EXTERNALSYM MENUTEMPLATEW}
  67. {$IFDEF UNICODE}
  68. MENUTEMPLATE = MENUTEMPLATEW;
  69. {$EXTERNALSYM MENUTEMPLATE}
  70. {$ELSE}
  71. MENUTEMPLATE = MENUTEMPLATEA;
  72. {$EXTERNALSYM MENUTEMPLATE}
  73. {$ENDIF UNICODE}
  74. LPMENUTEMPLATEA = PVOID;
  75. {$EXTERNALSYM LPMENUTEMPLATEA}
  76. LPMENUTEMPLATEW = PVOID;
  77. {$EXTERNALSYM LPMENUTEMPLATEW}
  78. {$IFDEF UNICODE}
  79. LPMENUTEMPLATE = LPMENUTEMPLATEW;
  80. {$EXTERNALSYM LPMENUTEMPLATE}
  81. {$ELSE}
  82. LPMENUTEMPLATE = LPMENUTEMPLATEA;
  83. {$EXTERNALSYM LPMENUTEMPLATE}
  84. {$ENDIF UNICODE}
  85. WNDPROC = function(hWnd: HWND; uMsg: UINT; lParam: WPARAM; wParam: LPARAM): LRESULT; stdcall;
  86. {$EXTERNALSYM WNDPROC}
  87. DLGPROC = function(hwndDlg: HWND; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): INT_PTR; stdcall;
  88. {$EXTERNALSYM DLGPROC}
  89. TIMERPROC = procedure(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
  90. {$EXTERNALSYM TIMERPROC}
  91. GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cchData: Integer): BOOL; stdcall;
  92. {$EXTERNALSYM GRAYSTRINGPROC}
  93. WNDENUMPROC = function(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
  94. {$EXTERNALSYM WNDENUMPROC}
  95. HOOKPROC = function(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  96. {$EXTERNALSYM HOOKPROC}
  97. SENDASYNCPROC = procedure(hwnd: HWND; uMsg: UINT; dwData: ULONG_PTR; lResult: LRESULT); stdcall;
  98. {$EXTERNALSYM SENDASYNCPROC}
  99. PROPENUMPROCA = function(hwnd: HWND; lpszString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  100. {$EXTERNALSYM PROPENUMPROCA}
  101. PROPENUMPROCW = function(hwnd: HWND; lpszString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  102. {$EXTERNALSYM PROPENUMPROCW}
  103. PROPENUMPROCEXA = function(hwnd: HWND; lpszString: LPSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  104. {$EXTERNALSYM PROPENUMPROCEXA}
  105. PROPENUMPROCEXW = function(hwnd: HWND; lpszString: LPWSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
  106. {$EXTERNALSYM PROPENUMPROCEXW}
  107. EDITWORDBREAKPROCA = function(lpch: LPSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  108. {$EXTERNALSYM EDITWORDBREAKPROCA}
  109. EDITWORDBREAKPROCW = function(lpch: LPWSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
  110. {$EXTERNALSYM EDITWORDBREAKPROCW}
  111. DRAWSTATEPROC = function(hdc: HDC; lData: LPARAM; wData: WPARAM; cx, cy: Integer): BOOL; stdcall;
  112. {$EXTERNALSYM DRAWSTATEPROC}
  113. {$IFDEF UNICODE}
  114. PROPENUMPROC = PROPENUMPROCW;
  115. {$EXTERNALSYM PROPENUMPROC}
  116. PROPENUMPROCEX = PROPENUMPROCEXW;
  117. {$EXTERNALSYM PROPENUMPROCEX}
  118. EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
  119. {$EXTERNALSYM EDITWORDBREAKPROC}
  120. {$ELSE}
  121. PROPENUMPROC = PROPENUMPROCA;
  122. {$EXTERNALSYM PROPENUMPROC}
  123. PROPENUMPROCEX = PROPENUMPROCEXA;
  124. {$EXTERNALSYM PROPENUMPROCEX}
  125. EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
  126. {$EXTERNALSYM EDITWORDBREAKPROC}
  127. {$ENDIF UNICODE}
  128. NAMEENUMPROCA = function(lpstr: LPSTR; lParam: LPARAM): BOOL; stdcall;
  129. {$EXTERNALSYM NAMEENUMPROCA}
  130. NAMEENUMPROCW = function(lpstr: LPWSTR; lParam: LPARAM): BOOL; stdcall;
  131. {$EXTERNALSYM NAMEENUMPROCW}
  132. WINSTAENUMPROCA = NAMEENUMPROCA;
  133. {$EXTERNALSYM WINSTAENUMPROCA}
  134. DESKTOPENUMPROCA = NAMEENUMPROCA;
  135. {$EXTERNALSYM DESKTOPENUMPROCA}
  136. WINSTAENUMPROCW = NAMEENUMPROCW;
  137. {$EXTERNALSYM WINSTAENUMPROCW}
  138. DESKTOPENUMPROCW = NAMEENUMPROCW;
  139. {$EXTERNALSYM DESKTOPENUMPROCW}
  140. {$IFDEF UNICODE}
  141. WINSTAENUMPROC = WINSTAENUMPROCW;
  142. {$EXTERNALSYM WINSTAENUMPROC}
  143. DESKTOPENUMPROC = DESKTOPENUMPROCW;
  144. {$EXTERNALSYM DESKTOPENUMPROC}
  145. {$ELSE}
  146. WINSTAENUMPROC = WINSTAENUMPROCA;
  147. {$EXTERNALSYM WINSTAENUMPROC}
  148. DESKTOPENUMPROC = DESKTOPENUMPROCA;
  149. {$EXTERNALSYM DESKTOPENUMPROC}
  150. {$ENDIF UNICODE}
  151. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  152. {$EXTERNALSYM IS_INTRESOURCE}
  153. type
  154. MAKEINTRESOURCEA = LPSTR;
  155. {$EXTERNALSYM MAKEINTRESOURCEA}
  156. MAKEINTRESOURCEW = LPWSTR;
  157. {$EXTERNALSYM MAKEINTRESOURCEW}
  158. {$IFDEF UNICODE}
  159. MAKEINTRESOURCE = MAKEINTRESOURCEW;
  160. {$EXTERNALSYM MAKEINTRESOURCE}
  161. {$ELSE}
  162. MAKEINTRESOURCE = MAKEINTRESOURCEA;
  163. {$EXTERNALSYM MAKEINTRESOURCE}
  164. {$ENDIF UNICODE}
  165. //
  166. // Predefined Resource Types
  167. //
  168. const
  169. RT_CURSOR = MAKEINTRESOURCE(1);
  170. {$EXTERNALSYM RT_CURSOR}
  171. RT_BITMAP = MAKEINTRESOURCE(2);
  172. {$EXTERNALSYM RT_BITMAP}
  173. RT_ICON = MAKEINTRESOURCE(3);
  174. {$EXTERNALSYM RT_ICON}
  175. RT_MENU = MAKEINTRESOURCE(4);
  176. {$EXTERNALSYM RT_MENU}
  177. RT_DIALOG = MAKEINTRESOURCE(5);
  178. {$EXTERNALSYM RT_DIALOG}
  179. RT_STRING = MAKEINTRESOURCE(6);
  180. {$EXTERNALSYM RT_STRING}
  181. RT_FONTDIR = MAKEINTRESOURCE(7);
  182. {$EXTERNALSYM RT_FONTDIR}
  183. RT_FONT = MAKEINTRESOURCE(8);
  184. {$EXTERNALSYM RT_FONT}
  185. RT_ACCELERATOR = MAKEINTRESOURCE(9);
  186. {$EXTERNALSYM RT_ACCELERATOR}
  187. RT_RCDATA = MAKEINTRESOURCE(10);
  188. {$EXTERNALSYM RT_RCDATA}
  189. RT_MESSAGETABLE = MAKEINTRESOURCE(11);
  190. {$EXTERNALSYM RT_MESSAGETABLE}
  191. DIFFERENCE = 11;
  192. {$EXTERNALSYM DIFFERENCE}
  193. RT_GROUP_CURSOR = MAKEINTRESOURCE(ULONG_PTR(RT_CURSOR) + DIFFERENCE);
  194. {$EXTERNALSYM RT_GROUP_CURSOR}
  195. RT_GROUP_ICON = MAKEINTRESOURCE(ULONG_PTR(RT_ICON) + DIFFERENCE);
  196. {$EXTERNALSYM RT_GROUP_ICON}
  197. RT_VERSION = MAKEINTRESOURCE(16);
  198. {$EXTERNALSYM RT_VERSION}
  199. RT_DLGINCLUDE = MAKEINTRESOURCE(17);
  200. {$EXTERNALSYM RT_DLGINCLUDE}
  201. RT_PLUGPLAY = MAKEINTRESOURCE(19);
  202. {$EXTERNALSYM RT_PLUGPLAY}
  203. RT_VXD = MAKEINTRESOURCE(20);
  204. {$EXTERNALSYM RT_VXD}
  205. RT_ANICURSOR = MAKEINTRESOURCE(21);
  206. {$EXTERNALSYM RT_ANICURSOR}
  207. RT_ANIICON = MAKEINTRESOURCE(22);
  208. {$EXTERNALSYM RT_ANIICON}
  209. RT_HTML = MAKEINTRESOURCE(23);
  210. {$EXTERNALSYM RT_HTML}
  211. RT_MANIFEST = MAKEINTRESOURCE(24);
  212. CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1);
  213. {$EXTERNALSYM CREATEPROCESS_MANIFEST_RESOURCE_ID}
  214. ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(2);
  215. {$EXTERNALSYM ISOLATIONAWARE_MANIFEST_RESOURCE_ID}
  216. ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(3);
  217. {$EXTERNALSYM ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID}
  218. MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1{inclusive});
  219. {$EXTERNALSYM MINIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  220. MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(16{inclusive});
  221. {$EXTERNALSYM MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID}
  222. type
  223. va_list = PChar;
  224. {$EXTERNALSYM va_list}
  225. function wvsprintfA(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
  226. {$EXTERNALSYM wvsprintfA}
  227. function wvsprintfW(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
  228. {$EXTERNALSYM wvsprintfW}
  229. function wvsprintf(Output: LPTSTR; Format: LPCTSTR; arglist: va_list): Integer; stdcall;
  230. {$EXTERNALSYM wvsprintf}
  231. function wsprintfA(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
  232. {$EXTERNALSYM wsprintfA}
  233. function wsprintfW(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
  234. {$EXTERNALSYM wsprintfW}
  235. function wsprintf(Output: LPTSTR; Format: LPCTSTR): Integer; stdcall;
  236. {$EXTERNALSYM wsprintf}
  237. //
  238. // SPI_SETDESKWALLPAPER defined constants
  239. //
  240. const
  241. SETWALLPAPER_DEFAULT = LPWSTR(-1);
  242. {$EXTERNALSYM SETWALLPAPER_DEFAULT}
  243. //
  244. // Scroll Bar Constants
  245. //
  246. SB_HORZ = 0;
  247. {$EXTERNALSYM SB_HORZ}
  248. SB_VERT = 1;
  249. {$EXTERNALSYM SB_VERT}
  250. SB_CTL = 2;
  251. {$EXTERNALSYM SB_CTL}
  252. SB_BOTH = 3;
  253. {$EXTERNALSYM SB_BOTH}
  254. //
  255. // Scroll Bar Commands
  256. //
  257. SB_LINEUP = 0;
  258. {$EXTERNALSYM SB_LINEUP}
  259. SB_LINELEFT = 0;
  260. {$EXTERNALSYM SB_LINELEFT}
  261. SB_LINEDOWN = 1;
  262. {$EXTERNALSYM SB_LINEDOWN}
  263. SB_LINERIGHT = 1;
  264. {$EXTERNALSYM SB_LINERIGHT}
  265. SB_PAGEUP = 2;
  266. {$EXTERNALSYM SB_PAGEUP}
  267. SB_PAGELEFT = 2;
  268. {$EXTERNALSYM SB_PAGELEFT}
  269. SB_PAGEDOWN = 3;
  270. {$EXTERNALSYM SB_PAGEDOWN}
  271. SB_PAGERIGHT = 3;
  272. {$EXTERNALSYM SB_PAGERIGHT}
  273. SB_THUMBPOSITION = 4;
  274. {$EXTERNALSYM SB_THUMBPOSITION}
  275. SB_THUMBTRACK = 5;
  276. {$EXTERNALSYM SB_THUMBTRACK}
  277. SB_TOP = 6;
  278. {$EXTERNALSYM SB_TOP}
  279. SB_LEFT = 6;
  280. {$EXTERNALSYM SB_LEFT}
  281. SB_BOTTOM = 7;
  282. {$EXTERNALSYM SB_BOTTOM}
  283. SB_RIGHT = 7;
  284. {$EXTERNALSYM SB_RIGHT}
  285. SB_ENDSCROLL = 8;
  286. {$EXTERNALSYM SB_ENDSCROLL}
  287. //
  288. // ShowWindow() Commands
  289. //
  290. SW_HIDE = 0;
  291. {$EXTERNALSYM SW_HIDE}
  292. SW_SHOWNORMAL = 1;
  293. {$EXTERNALSYM SW_SHOWNORMAL}
  294. SW_NORMAL = 1;
  295. {$EXTERNALSYM SW_NORMAL}
  296. SW_SHOWMINIMIZED = 2;
  297. {$EXTERNALSYM SW_SHOWMINIMIZED}
  298. SW_SHOWMAXIMIZED = 3;
  299. {$EXTERNALSYM SW_SHOWMAXIMIZED}
  300. SW_MAXIMIZE = 3;
  301. {$EXTERNALSYM SW_MAXIMIZE}
  302. SW_SHOWNOACTIVATE = 4;
  303. {$EXTERNALSYM SW_SHOWNOACTIVATE}
  304. SW_SHOW = 5;
  305. {$EXTERNALSYM SW_SHOW}
  306. SW_MINIMIZE = 6;
  307. {$EXTERNALSYM SW_MINIMIZE}
  308. SW_SHOWMINNOACTIVE = 7;
  309. {$EXTERNALSYM SW_SHOWMINNOACTIVE}
  310. SW_SHOWNA = 8;
  311. {$EXTERNALSYM SW_SHOWNA}
  312. SW_RESTORE = 9;
  313. {$EXTERNALSYM SW_RESTORE}
  314. SW_SHOWDEFAULT = 10;
  315. {$EXTERNALSYM SW_SHOWDEFAULT}
  316. SW_FORCEMINIMIZE = 11;
  317. {$EXTERNALSYM SW_FORCEMINIMIZE}
  318. SW_MAX = 11;
  319. {$EXTERNALSYM SW_MAX}
  320. //
  321. // Old ShowWindow() Commands
  322. //
  323. HIDE_WINDOW = 0;
  324. {$EXTERNALSYM HIDE_WINDOW}
  325. SHOW_OPENWINDOW = 1;
  326. {$EXTERNALSYM SHOW_OPENWINDOW}
  327. SHOW_ICONWINDOW = 2;
  328. {$EXTERNALSYM SHOW_ICONWINDOW}
  329. SHOW_FULLSCREEN = 3;
  330. {$EXTERNALSYM SHOW_FULLSCREEN}
  331. SHOW_OPENNOACTIVATE = 4;
  332. {$EXTERNALSYM SHOW_OPENNOACTIVATE}
  333. //
  334. // Identifiers for the WM_SHOWWINDOW message
  335. //
  336. SW_PARENTCLOSING = 1;
  337. {$EXTERNALSYM SW_PARENTCLOSING}
  338. SW_OTHERZOOM = 2;
  339. {$EXTERNALSYM SW_OTHERZOOM}
  340. SW_PARENTOPENING = 3;
  341. {$EXTERNALSYM SW_PARENTOPENING}
  342. SW_OTHERUNZOOM = 4;
  343. {$EXTERNALSYM SW_OTHERUNZOOM}
  344. //
  345. // AnimateWindow() Commands
  346. //
  347. AW_HOR_POSITIVE = $00000001;
  348. {$EXTERNALSYM AW_HOR_POSITIVE}
  349. AW_HOR_NEGATIVE = $00000002;
  350. {$EXTERNALSYM AW_HOR_NEGATIVE}
  351. AW_VER_POSITIVE = $00000004;
  352. {$EXTERNALSYM AW_VER_POSITIVE}
  353. AW_VER_NEGATIVE = $00000008;
  354. {$EXTERNALSYM AW_VER_NEGATIVE}
  355. AW_CENTER = $00000010;
  356. {$EXTERNALSYM AW_CENTER}
  357. AW_HIDE = $00010000;
  358. {$EXTERNALSYM AW_HIDE}
  359. AW_ACTIVATE = $00020000;
  360. {$EXTERNALSYM AW_ACTIVATE}
  361. AW_SLIDE = $00040000;
  362. {$EXTERNALSYM AW_SLIDE}
  363. AW_BLEND = $00080000;
  364. {$EXTERNALSYM AW_BLEND}
  365. //
  366. // WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
  367. //
  368. KF_EXTENDED = $0100;
  369. {$EXTERNALSYM KF_EXTENDED}
  370. KF_DLGMODE = $0800;
  371. {$EXTERNALSYM KF_DLGMODE}
  372. KF_MENUMODE = $1000;
  373. {$EXTERNALSYM KF_MENUMODE}
  374. KF_ALTDOWN = $2000;
  375. {$EXTERNALSYM KF_ALTDOWN}
  376. KF_REPEAT = $4000;
  377. {$EXTERNALSYM KF_REPEAT}
  378. KF_UP = $8000;
  379. {$EXTERNALSYM KF_UP}
  380. //
  381. // Virtual Keys, Standard Set
  382. //
  383. VK_LBUTTON = $01;
  384. {$EXTERNALSYM VK_LBUTTON}
  385. VK_RBUTTON = $02;
  386. {$EXTERNALSYM VK_RBUTTON}
  387. VK_CANCEL = $03;
  388. {$EXTERNALSYM VK_CANCEL}
  389. VK_MBUTTON = $04; // NOT contiguous with L & RBUTTON
  390. {$EXTERNALSYM VK_MBUTTON}
  391. {$IFDEF WIN98ME_UP}
  392. VK_XBUTTON1 = $05; // NOT contiguous with L & RBUTTON
  393. {$EXTERNALSYM VK_XBUTTON1}
  394. VK_XBUTTON2 = $06; // NOT contiguous with L & RBUTTON
  395. {$EXTERNALSYM VK_XBUTTON2}
  396. {$ENDIF WIN98ME_UP}
  397. //
  398. // 0x07 : unassigned
  399. //
  400. VK_BACK = $08;
  401. {$EXTERNALSYM VK_BACK}
  402. VK_TAB = $09;
  403. {$EXTERNALSYM VK_TAB}
  404. //
  405. // 0x0A - 0x0B : reserved
  406. //
  407. VK_CLEAR = $0C;
  408. {$EXTERNALSYM VK_CLEAR}
  409. VK_RETURN = $0D;
  410. {$EXTERNALSYM VK_RETURN}
  411. VK_SHIFT = $10;
  412. {$EXTERNALSYM VK_SHIFT}
  413. VK_CONTROL = $11;
  414. {$EXTERNALSYM VK_CONTROL}
  415. VK_MENU = $12;
  416. {$EXTERNALSYM VK_MENU}
  417. VK_PAUSE = $13;
  418. {$EXTERNALSYM VK_PAUSE}
  419. VK_CAPITAL = $14;
  420. {$EXTERNALSYM VK_CAPITAL}
  421. VK_KANA = $15;
  422. {$EXTERNALSYM VK_KANA}
  423. VK_HANGEUL = $15; // old name - should be here for compatibility
  424. {$EXTERNALSYM VK_HANGEUL}
  425. VK_HANGUL = $15;
  426. {$EXTERNALSYM VK_HANGUL}
  427. VK_JUNJA = $17;
  428. {$EXTERNALSYM VK_JUNJA}
  429. VK_FINAL = $18;
  430. {$EXTERNALSYM VK_FINAL}
  431. VK_HANJA = $19;
  432. {$EXTERNALSYM VK_HANJA}
  433. VK_KANJI = $19;
  434. {$EXTERNALSYM VK_KANJI}
  435. VK_ESCAPE = $1B;
  436. {$EXTERNALSYM VK_ESCAPE}
  437. VK_CONVERT = $1C;
  438. {$EXTERNALSYM VK_CONVERT}
  439. VK_NONCONVERT = $1D;
  440. {$EXTERNALSYM VK_NONCONVERT}
  441. VK_ACCEPT = $1E;
  442. {$EXTERNALSYM VK_ACCEPT}
  443. VK_MODECHANGE = $1F;
  444. {$EXTERNALSYM VK_MODECHANGE}
  445. VK_SPACE = $20;
  446. {$EXTERNALSYM VK_SPACE}
  447. VK_PRIOR = $21;
  448. {$EXTERNALSYM VK_PRIOR}
  449. VK_NEXT = $22;
  450. {$EXTERNALSYM VK_NEXT}
  451. VK_END = $23;
  452. {$EXTERNALSYM VK_END}
  453. VK_HOME = $24;
  454. {$EXTERNALSYM VK_HOME}
  455. VK_LEFT = $25;
  456. {$EXTERNALSYM VK_LEFT}
  457. VK_UP = $26;
  458. {$EXTERNALSYM VK_UP}
  459. VK_RIGHT = $27;
  460. {$EXTERNALSYM VK_RIGHT}
  461. VK_DOWN = $28;
  462. {$EXTERNALSYM VK_DOWN}
  463. VK_SELECT = $29;
  464. {$EXTERNALSYM VK_SELECT}
  465. VK_PRINT = $2A;
  466. {$EXTERNALSYM VK_PRINT}
  467. VK_EXECUTE = $2B;
  468. {$EXTERNALSYM VK_EXECUTE}
  469. VK_SNAPSHOT = $2C;
  470. {$EXTERNALSYM VK_SNAPSHOT}
  471. VK_INSERT = $2D;
  472. {$EXTERNALSYM VK_INSERT}
  473. VK_DELETE = $2E;
  474. {$EXTERNALSYM VK_DELETE}
  475. VK_HELP = $2F;
  476. {$EXTERNALSYM VK_HELP}
  477. //
  478. // VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
  479. // 0x40 : unassigned
  480. // VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
  481. //
  482. VK_LWIN = $5B;
  483. {$EXTERNALSYM VK_LWIN}
  484. VK_RWIN = $5C;
  485. {$EXTERNALSYM VK_RWIN}
  486. VK_APPS = $5D;
  487. {$EXTERNALSYM VK_APPS}
  488. //
  489. // 0x5E : reserved
  490. //
  491. VK_SLEEP = $5F;
  492. {$EXTERNALSYM VK_SLEEP}
  493. VK_NUMPAD0 = $60;
  494. {$EXTERNALSYM VK_NUMPAD0}
  495. VK_NUMPAD1 = $61;
  496. {$EXTERNALSYM VK_NUMPAD1}
  497. VK_NUMPAD2 = $62;
  498. {$EXTERNALSYM VK_NUMPAD2}
  499. VK_NUMPAD3 = $63;
  500. {$EXTERNALSYM VK_NUMPAD3}
  501. VK_NUMPAD4 = $64;
  502. {$EXTERNALSYM VK_NUMPAD4}
  503. VK_NUMPAD5 = $65;
  504. {$EXTERNALSYM VK_NUMPAD5}
  505. VK_NUMPAD6 = $66;
  506. {$EXTERNALSYM VK_NUMPAD6}
  507. VK_NUMPAD7 = $67;
  508. {$EXTERNALSYM VK_NUMPAD7}
  509. VK_NUMPAD8 = $68;
  510. {$EXTERNALSYM VK_NUMPAD8}
  511. VK_NUMPAD9 = $69;
  512. {$EXTERNALSYM VK_NUMPAD9}
  513. VK_MULTIPLY = $6A;
  514. {$EXTERNALSYM VK_MULTIPLY}
  515. VK_ADD = $6B;
  516. {$EXTERNALSYM VK_ADD}
  517. VK_SEPARATOR = $6C;
  518. {$EXTERNALSYM VK_SEPARATOR}
  519. VK_SUBTRACT = $6D;
  520. {$EXTERNALSYM VK_SUBTRACT}
  521. VK_DECIMAL = $6E;
  522. {$EXTERNALSYM VK_DECIMAL}
  523. VK_DIVIDE = $6F;
  524. {$EXTERNALSYM VK_DIVIDE}
  525. VK_F1 = $70;
  526. {$EXTERNALSYM VK_F1}
  527. VK_F2 = $71;
  528. {$EXTERNALSYM VK_F2}
  529. VK_F3 = $72;
  530. {$EXTERNALSYM VK_F3}
  531. VK_F4 = $73;
  532. {$EXTERNALSYM VK_F4}
  533. VK_F5 = $74;
  534. {$EXTERNALSYM VK_F5}
  535. VK_F6 = $75;
  536. {$EXTERNALSYM VK_F6}
  537. VK_F7 = $76;
  538. {$EXTERNALSYM VK_F7}
  539. VK_F8 = $77;
  540. {$EXTERNALSYM VK_F8}
  541. VK_F9 = $78;
  542. {$EXTERNALSYM VK_F9}
  543. VK_F10 = $79;
  544. {$EXTERNALSYM VK_F10}
  545. VK_F11 = $7A;
  546. {$EXTERNALSYM VK_F11}
  547. VK_F12 = $7B;
  548. {$EXTERNALSYM VK_F12}
  549. VK_F13 = $7C;
  550. {$EXTERNALSYM VK_F13}
  551. VK_F14 = $7D;
  552. {$EXTERNALSYM VK_F14}
  553. VK_F15 = $7E;
  554. {$EXTERNALSYM VK_F15}
  555. VK_F16 = $7F;
  556. {$EXTERNALSYM VK_F16}
  557. VK_F17 = $80;
  558. {$EXTERNALSYM VK_F17}
  559. VK_F18 = $81;
  560. {$EXTERNALSYM VK_F18}
  561. VK_F19 = $82;
  562. {$EXTERNALSYM VK_F19}
  563. VK_F20 = $83;
  564. {$EXTERNALSYM VK_F20}
  565. VK_F21 = $84;
  566. {$EXTERNALSYM VK_F21}
  567. VK_F22 = $85;
  568. {$EXTERNALSYM VK_F22}
  569. VK_F23 = $86;
  570. {$EXTERNALSYM VK_F23}
  571. VK_F24 = $87;
  572. {$EXTERNALSYM VK_F24}
  573. //
  574. // 0x88 - 0x8F : unassigned
  575. //
  576. VK_NUMLOCK = $90;
  577. {$EXTERNALSYM VK_NUMLOCK}
  578. VK_SCROLL = $91;
  579. {$EXTERNALSYM VK_SCROLL}
  580. //
  581. // NEC PC-9800 kbd definitions
  582. //
  583. VK_OEM_NEC_EQUAL = $92; // '=' key on numpad
  584. {$EXTERNALSYM VK_OEM_NEC_EQUAL}
  585. //
  586. // Fujitsu/OASYS kbd definitions
  587. //
  588. VK_OEM_FJ_JISHO = $92; // 'Dictionary' key
  589. {$EXTERNALSYM VK_OEM_FJ_JISHO}
  590. VK_OEM_FJ_MASSHOU = $93; // 'Unregister word' key
  591. {$EXTERNALSYM VK_OEM_FJ_MASSHOU}
  592. VK_OEM_FJ_TOUROKU = $94; // 'Register word' key
  593. {$EXTERNALSYM VK_OEM_FJ_TOUROKU}
  594. VK_OEM_FJ_LOYA = $95; // 'Left OYAYUBI' key
  595. {$EXTERNALSYM VK_OEM_FJ_LOYA}
  596. VK_OEM_FJ_ROYA = $96; // 'Right OYAYUBI' key
  597. {$EXTERNALSYM VK_OEM_FJ_ROYA}
  598. //
  599. // 0x97 - 0x9F : unassigned
  600. //
  601. //
  602. // VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
  603. // Used only as parameters to GetAsyncKeyState() and GetKeyState().
  604. // No other API or message will distinguish left and right keys in this way.
  605. //
  606. VK_LSHIFT = $A0;
  607. {$EXTERNALSYM VK_LSHIFT}
  608. VK_RSHIFT = $A1;
  609. {$EXTERNALSYM VK_RSHIFT}
  610. VK_LCONTROL = $A2;
  611. {$EXTERNALSYM VK_LCONTROL}
  612. VK_RCONTROL = $A3;
  613. {$EXTERNALSYM VK_RCONTROL}
  614. VK_LMENU = $A4;
  615. {$EXTERNALSYM VK_LMENU}
  616. VK_RMENU = $A5;
  617. {$EXTERNALSYM VK_RMENU}
  618. {$IFDEF WIN98ME_UP}
  619. VK_BROWSER_BACK = $A6;
  620. {$EXTERNALSYM VK_BROWSER_BACK}
  621. VK_BROWSER_FORWARD = $A7;
  622. {$EXTERNALSYM VK_BROWSER_FORWARD}
  623. VK_BROWSER_REFRESH = $A8;
  624. {$EXTERNALSYM VK_BROWSER_REFRESH}
  625. VK_BROWSER_STOP = $A9;
  626. {$EXTERNALSYM VK_BROWSER_STOP}
  627. VK_BROWSER_SEARCH = $AA;
  628. {$EXTERNALSYM VK_BROWSER_SEARCH}
  629. VK_BROWSER_FAVORITES = $AB;
  630. {$EXTERNALSYM VK_BROWSER_FAVORITES}
  631. VK_BROWSER_HOME = $AC;
  632. {$EXTERNALSYM VK_BROWSER_HOME}
  633. VK_VOLUME_MUTE = $AD;
  634. {$EXTERNALSYM VK_VOLUME_MUTE}
  635. VK_VOLUME_DOWN = $AE;
  636. {$EXTERNALSYM VK_VOLUME_DOWN}
  637. VK_VOLUME_UP = $AF;
  638. {$EXTERNALSYM VK_VOLUME_UP}
  639. VK_MEDIA_NEXT_TRACK = $B0;
  640. {$EXTERNALSYM VK_MEDIA_NEXT_TRACK}
  641. VK_MEDIA_PREV_TRACK = $B1;
  642. {$EXTERNALSYM VK_MEDIA_PREV_TRACK}
  643. VK_MEDIA_STOP = $B2;
  644. {$EXTERNALSYM VK_MEDIA_STOP}
  645. VK_MEDIA_PLAY_PAUSE = $B3;
  646. {$EXTERNALSYM VK_MEDIA_PLAY_PAUSE}
  647. VK_LAUNCH_MAIL = $B4;
  648. {$EXTERNALSYM VK_LAUNCH_MAIL}
  649. VK_LAUNCH_MEDIA_SELECT = $B5;
  650. {$EXTERNALSYM VK_LAUNCH_MEDIA_SELECT}
  651. VK_LAUNCH_APP1 = $B6;
  652. {$EXTERNALSYM VK_LAUNCH_APP1}
  653. VK_LAUNCH_APP2 = $B7;
  654. {$EXTERNALSYM VK_LAUNCH_APP2}
  655. {$ENDIF WIN98ME_UP}
  656. //
  657. // 0xB8 - 0xB9 : reserved
  658. //
  659. VK_OEM_1 = $BA; // ';:' for US
  660. {$EXTERNALSYM VK_OEM_1}
  661. VK_OEM_PLUS = $BB; // '+' any country
  662. {$EXTERNALSYM VK_OEM_PLUS}
  663. VK_OEM_COMMA = $BC; // ',' any country
  664. {$EXTERNALSYM VK_OEM_COMMA}
  665. VK_OEM_MINUS = $BD; // '-' any country
  666. {$EXTERNALSYM VK_OEM_MINUS}
  667. VK_OEM_PERIOD = $BE; // '.' any country
  668. {$EXTERNALSYM VK_OEM_PERIOD}
  669. VK_OEM_2 = $BF; // '/?' for US
  670. {$EXTERNALSYM VK_OEM_2}
  671. VK_OEM_3 = $C0; // '`~' for US
  672. {$EXTERNALSYM VK_OEM_3}
  673. //
  674. // 0xC1 - 0xD7 : reserved
  675. //
  676. //
  677. // 0xD8 - 0xDA : unassigned
  678. //
  679. VK_OEM_4 = $DB; // '[{' for US
  680. {$EXTERNALSYM VK_OEM_4}
  681. VK_OEM_5 = $DC; // '\|' for US
  682. {$EXTERNALSYM VK_OEM_5}
  683. VK_OEM_6 = $DD; // ']}' for US
  684. {$EXTERNALSYM VK_OEM_6}
  685. VK_OEM_7 = $DE; // ''"' for US
  686. {$EXTERNALSYM VK_OEM_7}
  687. VK_OEM_8 = $DF;
  688. {$EXTERNALSYM VK_OEM_8}
  689. //
  690. // 0xE0 : reserved
  691. //
  692. //
  693. // Various extended or enhanced keyboards
  694. //
  695. VK_OEM_AX = $E1; // 'AX' key on Japanese AX kbd
  696. {$EXTERNALSYM VK_OEM_AX}
  697. VK_OEM_102 = $E2; // "<>" or "\|" on RT 102-key kbd.
  698. {$EXTERNALSYM VK_OEM_102}
  699. VK_ICO_HELP = $E3; // Help key on ICO
  700. {$EXTERNALSYM VK_ICO_HELP}
  701. VK_ICO_00 = $E4; // 00 key on ICO
  702. {$EXTERNALSYM VK_ICO_00}
  703. VK_PROCESSKEY = $E5;
  704. {$EXTERNALSYM VK_PROCESSKEY}
  705. VK_ICO_CLEAR = $E6;
  706. {$EXTERNALSYM VK_ICO_CLEAR}
  707. {$IFDEF WIN98ME_UP}
  708. VK_PACKET = $E7;
  709. {$EXTERNALSYM VK_PACKET}
  710. {$ENDIF WIN98ME_UP}
  711. //
  712. // 0xE8 : unassigned
  713. //
  714. //
  715. // Nokia/Ericsson definitions
  716. //
  717. VK_OEM_RESET = $E9;
  718. {$EXTERNALSYM VK_OEM_RESET}
  719. VK_OEM_JUMP = $EA;
  720. {$EXTERNALSYM VK_OEM_JUMP}
  721. VK_OEM_PA1 = $EB;
  722. {$EXTERNALSYM VK_OEM_PA1}
  723. VK_OEM_PA2 = $EC;
  724. {$EXTERNALSYM VK_OEM_PA2}
  725. VK_OEM_PA3 = $ED;
  726. {$EXTERNALSYM VK_OEM_PA3}
  727. VK_OEM_WSCTRL = $EE;
  728. {$EXTERNALSYM VK_OEM_WSCTRL}
  729. VK_OEM_CUSEL = $EF;
  730. {$EXTERNALSYM VK_OEM_CUSEL}
  731. VK_OEM_ATTN = $F0;
  732. {$EXTERNALSYM VK_OEM_ATTN}
  733. VK_OEM_FINISH = $F1;
  734. {$EXTERNALSYM VK_OEM_FINISH}
  735. VK_OEM_COPY = $F2;
  736. {$EXTERNALSYM VK_OEM_COPY}
  737. VK_OEM_AUTO = $F3;
  738. {$EXTERNALSYM VK_OEM_AUTO}
  739. VK_OEM_ENLW = $F4;
  740. {$EXTERNALSYM VK_OEM_ENLW}
  741. VK_OEM_BACKTAB = $F5;
  742. {$EXTERNALSYM VK_OEM_BACKTAB}
  743. VK_ATTN = $F6;
  744. {$EXTERNALSYM VK_ATTN}
  745. VK_CRSEL = $F7;
  746. {$EXTERNALSYM VK_CRSEL}
  747. VK_EXSEL = $F8;
  748. {$EXTERNALSYM VK_EXSEL}
  749. VK_EREOF = $F9;
  750. {$EXTERNALSYM VK_EREOF}
  751. VK_PLAY = $FA;
  752. {$EXTERNALSYM VK_PLAY}
  753. VK_ZOOM = $FB;
  754. {$EXTERNALSYM VK_ZOOM}
  755. VK_NONAME = $FC;
  756. {$EXTERNALSYM VK_NONAME}
  757. VK_PA1 = $FD;
  758. {$EXTERNALSYM VK_PA1}
  759. VK_OEM_CLEAR = $FE;
  760. {$EXTERNALSYM VK_OEM_CLEAR}
  761. //
  762. // 0xFF : reserved
  763. //
  764. //
  765. // SetWindowsHook() codes
  766. //
  767. WH_MIN = DWORD(-1);
  768. {$EXTERNALSYM WH_MIN}
  769. WH_MSGFILTER = DWORD(-1);
  770. {$EXTERNALSYM WH_MSGFILTER}
  771. WH_JOURNALRECORD = 0;
  772. {$EXTERNALSYM WH_JOURNALRECORD}
  773. WH_JOURNALPLAYBACK = 1;
  774. {$EXTERNALSYM WH_JOURNALPLAYBACK}
  775. WH_KEYBOARD = 2;
  776. {$EXTERNALSYM WH_KEYBOARD}
  777. WH_GETMESSAGE = 3;
  778. {$EXTERNALSYM WH_GETMESSAGE}
  779. WH_CALLWNDPROC = 4;
  780. {$EXTERNALSYM WH_CALLWNDPROC}
  781. WH_CBT = 5;
  782. {$EXTERNALSYM WH_CBT}
  783. WH_SYSMSGFILTER = 6;
  784. {$EXTERNALSYM WH_SYSMSGFILTER}
  785. WH_MOUSE = 7;
  786. {$EXTERNALSYM WH_MOUSE}
  787. WH_HARDWARE = 8;
  788. {$EXTERNALSYM WH_HARDWARE}
  789. WH_DEBUG = 9;
  790. {$EXTERNALSYM WH_DEBUG}
  791. WH_SHELL = 10;
  792. {$EXTERNALSYM WH_SHELL}
  793. WH_FOREGROUNDIDLE = 11;
  794. {$EXTERNALSYM WH_FOREGROUNDIDLE}
  795. WH_CALLWNDPROCRET = 12;
  796. {$EXTERNALSYM WH_CALLWNDPROCRET}
  797. {$IFDEF WINNT4_UP}
  798. WH_KEYBOARD_LL = 13;
  799. {$EXTERNALSYM WH_KEYBOARD_LL}
  800. WH_MOUSE_LL = 14;
  801. {$EXTERNALSYM WH_MOUSE_LL}
  802. {$ENDIF WINNT4_UP}
  803. {$IFDEF WINNT4_UP}
  804. WH_MAX = 14;
  805. {$EXTERNALSYM WH_MAX}
  806. {$ELSE}
  807. WH_MAX = 12;
  808. {$EXTERNALSYM WH_MAX}
  809. {$ENDIF WINNT4_UP}
  810. WH_MINHOOK = WH_MIN;
  811. {$EXTERNALSYM WH_MINHOOK}
  812. WH_MAXHOOK = WH_MAX;
  813. {$EXTERNALSYM WH_MAXHOOK}
  814. //
  815. // Hook Codes
  816. //
  817. HC_ACTION = 0;
  818. {$EXTERNALSYM HC_ACTION}
  819. HC_GETNEXT = 1;
  820. {$EXTERNALSYM HC_GETNEXT}
  821. HC_SKIP = 2;
  822. {$EXTERNALSYM HC_SKIP}
  823. HC_NOREMOVE = 3;
  824. {$EXTERNALSYM HC_NOREMOVE}
  825. HC_NOREM = HC_NOREMOVE;
  826. {$EXTERNALSYM HC_NOREM}
  827. HC_SYSMODALON = 4;
  828. {$EXTERNALSYM HC_SYSMODALON}
  829. HC_SYSMODALOFF = 5;
  830. {$EXTERNALSYM HC_SYSMODALOFF}
  831. //
  832. // CBT Hook Codes
  833. //
  834. HCBT_MOVESIZE = 0;
  835. {$EXTERNALSYM HCBT_MOVESIZE}
  836. HCBT_MINMAX = 1;
  837. {$EXTERNALSYM HCBT_MINMAX}
  838. HCBT_QS = 2;
  839. {$EXTERNALSYM HCBT_QS}
  840. HCBT_CREATEWND = 3;
  841. {$EXTERNALSYM HCBT_CREATEWND}
  842. HCBT_DESTROYWND = 4;
  843. {$EXTERNALSYM HCBT_DESTROYWND}
  844. HCBT_ACTIVATE = 5;
  845. {$EXTERNALSYM HCBT_ACTIVATE}
  846. HCBT_CLICKSKIPPED = 6;
  847. {$EXTERNALSYM HCBT_CLICKSKIPPED}
  848. HCBT_KEYSKIPPED = 7;
  849. {$EXTERNALSYM HCBT_KEYSKIPPED}
  850. HCBT_SYSCOMMAND = 8;
  851. {$EXTERNALSYM HCBT_SYSCOMMAND}
  852. HCBT_SETFOCUS = 9;
  853. {$EXTERNALSYM HCBT_SETFOCUS}
  854. //
  855. // HCBT_ACTIVATE structure pointed to by lParam
  856. //
  857. type
  858. LPCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;
  859. {$EXTERNALSYM LPCBTACTIVATESTRUCT}
  860. tagCBTACTIVATESTRUCT = record
  861. fMouse: BOOL;
  862. hWndActive: HWND;
  863. end;
  864. {$EXTERNALSYM tagCBTACTIVATESTRUCT}
  865. CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT;
  866. {$EXTERNALSYM CBTACTIVATESTRUCT}
  867. TCbtActivateStruct = CBTACTIVATESTRUCT;
  868. PCbtActivateStruct = LPCBTACTIVATESTRUCT;
  869. {$IFDEF WINXP_UP}
  870. //
  871. // WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
  872. //
  873. tagWTSSESSION_NOTIFICATION = record
  874. cbSize: DWORD;
  875. dwSessionId: DWORD;
  876. end;
  877. {$EXTERNALSYM tagWTSSESSION_NOTIFICATION}
  878. WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION;
  879. {$EXTERNALSYM WTSSESSION_NOTIFICATION}
  880. PWTSSESSION_NOTIFICATION = ^WTSSESSION_NOTIFICATION;
  881. {$EXTERNALSYM PWTSSESSION_NOTIFICATION}
  882. TWtsSessionNotification = WTSSESSION_NOTIFICATION;
  883. PWtsSessionNotification = PWTSSESSION_NOTIFICATION;
  884. //
  885. // codes passed in WPARAM for WM_WTSSESSION_CHANGE
  886. //
  887. const
  888. WTS_CONSOLE_CONNECT = $1;
  889. {$EXTERNALSYM WTS_CONSOLE_CONNECT}
  890. WTS_CONSOLE_DISCONNECT = $2;
  891. {$EXTERNALSYM WTS_CONSOLE_DISCONNECT}
  892. WTS_REMOTE_CONNECT = $3;
  893. {$EXTERNALSYM WTS_REMOTE_CONNECT}
  894. WTS_REMOTE_DISCONNECT = $4;
  895. {$EXTERNALSYM WTS_REMOTE_DISCONNECT}
  896. WTS_SESSION_LOGON = $5;
  897. {$EXTERNALSYM WTS_SESSION_LOGON}
  898. WTS_SESSION_LOGOFF = $6;
  899. {$EXTERNALSYM WTS_SESSION_LOGOFF}
  900. WTS_SESSION_LOCK = $7;
  901. {$EXTERNALSYM WTS_SESSION_LOCK}
  902. WTS_SESSION_UNLOCK = $8;
  903. {$EXTERNALSYM WTS_SESSION_UNLOCK}
  904. WTS_SESSION_REMOTE_CONTROL = $9;
  905. {$EXTERNALSYM WTS_SESSION_REMOTE_CONTROL}
  906. {$ENDIF WINXP_UP}
  907. //
  908. // WH_MSGFILTER Filter Proc Codes
  909. //
  910. const
  911. MSGF_DIALOGBOX = 0;
  912. {$EXTERNALSYM MSGF_DIALOGBOX}
  913. MSGF_MESSAGEBOX = 1;
  914. {$EXTERNALSYM MSGF_MESSAGEBOX}
  915. MSGF_MENU = 2;
  916. {$EXTERNALSYM MSGF_MENU}
  917. MSGF_SCROLLBAR = 5;
  918. {$EXTERNALSYM MSGF_SCROLLBAR}
  919. MSGF_NEXTWINDOW = 6;
  920. {$EXTERNALSYM MSGF_NEXTWINDOW}
  921. MSGF_MAX = 8; // unused
  922. {$EXTERNALSYM MSGF_MAX}
  923. MSGF_USER = 4096;
  924. {$EXTERNALSYM MSGF_USER}
  925. //
  926. // Shell support
  927. //
  928. HSHELL_WINDOWCREATED = 1;
  929. {$EXTERNALSYM HSHELL_WINDOWCREATED}
  930. HSHELL_WINDOWDESTROYED = 2;
  931. {$EXTERNALSYM HSHELL_WINDOWDESTROYED}
  932. HSHELL_ACTIVATESHELLWINDOW = 3;
  933. {$EXTERNALSYM HSHELL_ACTIVATESHELLWINDOW}
  934. HSHELL_WINDOWACTIVATED = 4;
  935. {$EXTERNALSYM HSHELL_WINDOWACTIVATED}
  936. HSHELL_GETMINRECT = 5;
  937. {$EXTERNALSYM HSHELL_GETMINRECT}
  938. HSHELL_REDRAW = 6;
  939. {$EXTERNALSYM HSHELL_REDRAW}
  940. HSHELL_TASKMAN = 7;
  941. {$EXTERNALSYM HSHELL_TASKMAN}
  942. HSHELL_LANGUAGE = 8;
  943. {$EXTERNALSYM HSHELL_LANGUAGE}
  944. HSHELL_SYSMENU = 9;
  945. {$EXTERNALSYM HSHELL_SYSMENU}
  946. HSHELL_ENDTASK = 10;
  947. {$EXTERNALSYM HSHELL_ENDTASK}
  948. {$IFDEF WIN2000_UP}
  949. HSHELL_ACCESSIBILITYSTATE = 11;
  950. {$EXTERNALSYM HSHELL_ACCESSIBILITYSTATE}
  951. HSHELL_APPCOMMAND = 12;
  952. {$EXTERNALSYM HSHELL_APPCOMMAND}
  953. {$ENDIF WIN2000_UP}
  954. {$IFDEF WINXP_UP}
  955. HSHELL_WINDOWREPLACED = 13;
  956. {$EXTERNALSYM HSHELL_WINDOWREPLACED}
  957. {$ENDIF WINXP_UP}
  958. HSHELL_WINDOWREPLACING = 14;
  959. {$EXTERNALSYM HSHELL_WINDOWREPLACING}
  960. HSHELL_HIGHBIT = $8000;
  961. {$EXTERNALSYM HSHELL_HIGHBIT}
  962. HSHELL_FLASH = HSHELL_REDRAW or HSHELL_HIGHBIT;
  963. {$EXTERNALSYM HSHELL_FLASH}
  964. HSHELL_RUDEAPPACTIVATED = HSHELL_WINDOWACTIVATED or HSHELL_HIGHBIT;
  965. {$EXTERNALSYM HSHELL_RUDEAPPACTIVATED}
  966. {$IFDEF WIN2000_UP}
  967. // wparam for HSHELL_ACCESSIBILITYSTATE//
  968. ACCESS_STICKYKEYS = $0001;
  969. {$EXTERNALSYM ACCESS_STICKYKEYS}
  970. ACCESS_FILTERKEYS = $0002;
  971. {$EXTERNALSYM ACCESS_FILTERKEYS}
  972. ACCESS_MOUSEKEYS = $0003;
  973. {$EXTERNALSYM ACCESS_MOUSEKEYS}
  974. // cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND//
  975. APPCOMMAND_BROWSER_BACKWARD = 1;
  976. {$EXTERNALSYM APPCOMMAND_BROWSER_BACKWARD}
  977. APPCOMMAND_BROWSER_FORWARD = 2;
  978. {$EXTERNALSYM APPCOMMAND_BROWSER_FORWARD}
  979. APPCOMMAND_BROWSER_REFRESH = 3;
  980. {$EXTERNALSYM APPCOMMAND_BROWSER_REFRESH}
  981. APPCOMMAND_BROWSER_STOP = 4;
  982. {$EXTERNALSYM APPCOMMAND_BROWSER_STOP}
  983. APPCOMMAND_BROWSER_SEARCH = 5;
  984. {$EXTERNALSYM APPCOMMAND_BROWSER_SEARCH}
  985. APPCOMMAND_BROWSER_FAVORITES = 6;
  986. {$EXTERNALSYM APPCOMMAND_BROWSER_FAVORITES}
  987. APPCOMMAND_BROWSER_HOME = 7;
  988. {$EXTERNALSYM APPCOMMAND_BROWSER_HOME}
  989. APPCOMMAND_VOLUME_MUTE = 8;
  990. {$EXTERNALSYM APPCOMMAND_VOLUME_MUTE}
  991. APPCOMMAND_VOLUME_DOWN = 9;
  992. {$EXTERNALSYM APPCOMMAND_VOLUME_DOWN}
  993. APPCOMMAND_VOLUME_UP = 10;
  994. {$EXTERNALSYM APPCOMMAND_VOLUME_UP}
  995. APPCOMMAND_MEDIA_NEXTTRACK = 11;
  996. {$EXTERNALSYM APPCOMMAND_MEDIA_NEXTTRACK}
  997. APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
  998. {$EXTERNALSYM APPCOMMAND_MEDIA_PREVIOUSTRACK}
  999. APPCOMMAND_MEDIA_STOP = 13;
  1000. {$EXTERNALSYM APPCOMMAND_MEDIA_STOP}
  1001. APPCOMMAND_MEDIA_PLAY_PAUSE = 14;
  1002. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY_PAUSE}
  1003. APPCOMMAND_LAUNCH_MAIL = 15;
  1004. {$EXTERNALSYM APPCOMMAND_LAUNCH_MAIL}
  1005. APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
  1006. {$EXTERNALSYM APPCOMMAND_LAUNCH_MEDIA_SELECT}
  1007. APPCOMMAND_LAUNCH_APP1 = 17;
  1008. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP1}
  1009. APPCOMMAND_LAUNCH_APP2 = 18;
  1010. {$EXTERNALSYM APPCOMMAND_LAUNCH_APP2}
  1011. APPCOMMAND_BASS_DOWN = 19;
  1012. {$EXTERNALSYM APPCOMMAND_BASS_DOWN}
  1013. APPCOMMAND_BASS_BOOST = 20;
  1014. {$EXTERNALSYM APPCOMMAND_BASS_BOOST}
  1015. APPCOMMAND_BASS_UP = 21;
  1016. {$EXTERNALSYM APPCOMMAND_BASS_UP}
  1017. APPCOMMAND_TREBLE_DOWN = 22;
  1018. {$EXTERNALSYM APPCOMMAND_TREBLE_DOWN}
  1019. APPCOMMAND_TREBLE_UP = 23;
  1020. {$EXTERNALSYM APPCOMMAND_TREBLE_UP}
  1021. {$IFDEF WINXP_UP}
  1022. APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
  1023. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_MUTE}
  1024. APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
  1025. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_DOWN}
  1026. APPCOMMAND_MICROPHONE_VOLUME_UP = 26;
  1027. {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_UP}
  1028. APPCOMMAND_HELP = 27;
  1029. {$EXTERNALSYM APPCOMMAND_HELP}
  1030. APPCOMMAND_FIND = 28;
  1031. {$EXTERNALSYM APPCOMMAND_FIND}
  1032. APPCOMMAND_NEW = 29;
  1033. {$EXTERNALSYM APPCOMMAND_NEW}
  1034. APPCOMMAND_OPEN = 30;
  1035. {$EXTERNALSYM APPCOMMAND_OPEN}
  1036. APPCOMMAND_CLOSE = 31;
  1037. {$EXTERNALSYM APPCOMMAND_CLOSE}
  1038. APPCOMMAND_SAVE = 32;
  1039. {$EXTERNALSYM APPCOMMAND_SAVE}
  1040. APPCOMMAND_PRINT = 33;
  1041. {$EXTERNALSYM APPCOMMAND_PRINT}
  1042. APPCOMMAND_UNDO = 34;
  1043. {$EXTERNALSYM APPCOMMAND_UNDO}
  1044. APPCOMMAND_REDO = 35;
  1045. {$EXTERNALSYM APPCOMMAND_REDO}
  1046. APPCOMMAND_COPY = 36;
  1047. {$EXTERNALSYM APPCOMMAND_COPY}
  1048. APPCOMMAND_CUT = 37;
  1049. {$EXTERNALSYM APPCOMMAND_CUT}
  1050. APPCOMMAND_PASTE = 38;
  1051. {$EXTERNALSYM APPCOMMAND_PASTE}
  1052. APPCOMMAND_REPLY_TO_MAIL = 39;
  1053. {$EXTERNALSYM APPCOMMAND_REPLY_TO_MAIL}
  1054. APPCOMMAND_FORWARD_MAIL = 40;
  1055. {$EXTERNALSYM APPCOMMAND_FORWARD_MAIL}
  1056. APPCOMMAND_SEND_MAIL = 41;
  1057. {$EXTERNALSYM APPCOMMAND_SEND_MAIL}
  1058. APPCOMMAND_SPELL_CHECK = 42;
  1059. {$EXTERNALSYM APPCOMMAND_SPELL_CHECK}
  1060. APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
  1061. {$EXTERNALSYM APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE}
  1062. APPCOMMAND_MIC_ON_OFF_TOGGLE = 44;
  1063. {$EXTERNALSYM APPCOMMAND_MIC_ON_OFF_TOGGLE}
  1064. APPCOMMAND_CORRECTION_LIST = 45;
  1065. {$EXTERNALSYM APPCOMMAND_CORRECTION_LIST}
  1066. {$ENDIF WINXP_UP}
  1067. APPCOMMAND_MEDIA_PLAY = 46;
  1068. {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY}
  1069. APPCOMMAND_MEDIA_PAUSE = 47;
  1070. {$EXTERNALSYM APPCOMMAND_MEDIA_PAUSE}
  1071. APPCOMMAND_MEDIA_RECORD = 48;
  1072. {$EXTERNALSYM APPCOMMAND_MEDIA_RECORD}
  1073. APPCOMMAND_MEDIA_FAST_FORWARD = 49;
  1074. {$EXTERNALSYM APPCOMMAND_MEDIA_FAST_FORWARD}
  1075. APPCOMMAND_MEDIA_REWIND = 50;
  1076. {$EXTERNALSYM APPCOMMAND_MEDIA_REWIND}
  1077. APPCOMMAND_MEDIA_CHANNEL_UP = 51;
  1078. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_UP}
  1079. APPCOMMAND_MEDIA_CHANNEL_DOWN = 52;
  1080. {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_DOWN}
  1081. FAPPCOMMAND_MOUSE = $8000;
  1082. {$EXTERNALSYM FAPPCOMMAND_MOUSE}
  1083. FAPPCOMMAND_KEY = 0;
  1084. {$EXTERNALSYM FAPPCOMMAND_KEY}
  1085. FAPPCOMMAND_OEM = $1000;
  1086. {$EXTERNALSYM FAPPCOMMAND_OEM}
  1087. FAPPCOMMAND_MASK = $F000;
  1088. {$EXTERNALSYM FAPPCOMMAND_MASK}
  1089. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
  1090. {$EXTERNALSYM GET_APPCOMMAND_LPARAM}
  1091. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  1092. {$EXTERNALSYM GET_DEVICE_LPARAM}
  1093. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  1094. {$EXTERNALSYM GET_MOUSEORKEY_LPARAM}
  1095. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  1096. {$EXTERNALSYM GET_FLAGS_LPARAM}
  1097. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  1098. {$EXTERNALSYM GET_KEYSTATE_LPARAM}
  1099. {$ENDIF WIN2000_UP}
  1100. type
  1101. SHELLHOOKINFO = record
  1102. hwnd: HWND;
  1103. rc: RECT;
  1104. end;
  1105. {$EXTERNALSYM SHELLHOOKINFO}
  1106. LPSHELLHOOKINFO = ^SHELLHOOKINFO;
  1107. {$EXTERNALSYM LPSHELLHOOKINFO}
  1108. TShellHookInfo = SHELLHOOKINFO;
  1109. PShellHookInfo = LPSHELLHOOKINFO;
  1110. //
  1111. // Message Structure used in Journaling
  1112. //
  1113. type
  1114. LPEVENTMSG = ^EVENTMSG;
  1115. {$EXTERNALSYM LPEVENTMSG}
  1116. tagEVENTMSG = record
  1117. message_: UINT;
  1118. paramL: UINT;
  1119. paramH: UINT;
  1120. time: DWORD;
  1121. hwnd: HWND;
  1122. end;
  1123. {$EXTERNALSYM tagEVENTMSG}
  1124. EVENTMSG = tagEVENTMSG;
  1125. {$EXTERNALSYM EVENTMSG}
  1126. LPEVENTMSGMSG = ^EVENTMSG;
  1127. {$EXTERNALSYM LPEVENTMSGMSG}
  1128. PEVENTMSGMSG = ^EVENTMSG;
  1129. {$EXTERNALSYM PEVENTMSGMSG}
  1130. NPEVENTMSG = ^EVENTMSG;
  1131. {$EXTERNALSYM NPEVENTMSG}
  1132. NPEVENTMSGMSG = ^EVENTMSG;
  1133. {$EXTERNALSYM NPEVENTMSGMSG}
  1134. TEventMsg = EVENTMSG;
  1135. PEventMsg = LPEVENTMSG;
  1136. //
  1137. // Message structure used by WH_CALLWNDPROC
  1138. //
  1139. LPCWPSTRUCT = ^CWPSTRUCT;
  1140. {$EXTERNALSYM LPCWPSTRUCT}
  1141. tagCWPSTRUCT = record
  1142. lParam: LPARAM;
  1143. wParam: WPARAM;
  1144. message: UINT;
  1145. hwnd: HWND;
  1146. end;
  1147. {$EXTERNALSYM tagCWPSTRUCT}
  1148. CWPSTRUCT = tagCWPSTRUCT;
  1149. {$EXTERNALSYM CWPSTRUCT}
  1150. NPCWPSTRUCT = ^CWPSTRUCT;
  1151. {$EXTERNALSYM NPCWPSTRUCT}
  1152. TCwpStruct = CWPSTRUCT;
  1153. PCwpStruct = LPCWPSTRUCT;
  1154. //
  1155. // Message structure used by WH_CALLWNDPROCRET
  1156. //
  1157. LPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1158. {$EXTERNALSYM LPCWPRETSTRUCT}
  1159. tagCWPRETSTRUCT = record
  1160. lResult: LRESULT;
  1161. lParam: LPARAM;
  1162. wParam: WPARAM;
  1163. message: UINT;
  1164. hwnd: HWND;
  1165. end;
  1166. {$EXTERNALSYM tagCWPRETSTRUCT}
  1167. CWPRETSTRUCT = tagCWPRETSTRUCT;
  1168. {$EXTERNALSYM CWPRETSTRUCT}
  1169. NPCWPRETSTRUCT = ^CWPRETSTRUCT;
  1170. {$EXTERNALSYM NPCWPRETSTRUCT}
  1171. TCwpRetStruct = CWPRETSTRUCT;
  1172. PCwpRetStruct = LPCWPRETSTRUCT;
  1173. //
  1174. // Low level hook flags
  1175. //
  1176. const
  1177. LLKHF_EXTENDED = KF_EXTENDED shr 8;
  1178. {$EXTERNALSYM LLKHF_EXTENDED}
  1179. LLKHF_INJECTED = $00000010;
  1180. {$EXTERNALSYM LLKHF_INJECTED}
  1181. LLKHF_ALTDOWN = KF_ALTDOWN shr 8;
  1182. {$EXTERNALSYM LLKHF_ALTDOWN}
  1183. LLKHF_UP = KF_UP shr 8;
  1184. {$EXTERNALSYM LLKHF_UP}
  1185. LLMHF_INJECTED = $00000001;
  1186. {$EXTERNALSYM LLMHF_INJECTED}
  1187. //
  1188. // Structure used by WH_KEYBOARD_LL
  1189. //
  1190. type
  1191. LPKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
  1192. {$EXTERNALSYM LPKBDLLHOOKSTRUCT}
  1193. tagKBDLLHOOKSTRUCT = record
  1194. vkCode: DWORD;
  1195. scanCode: DWORD;
  1196. flags: DWORD;
  1197. time: DWORD;
  1198. dwExtraInfo: ULONG_PTR;
  1199. end;
  1200. {$EXTERNALSYM tagKBDLLHOOKSTRUCT}
  1201. KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
  1202. {$EXTERNALSYM KBDLLHOOKSTRUCT}
  1203. TKbDllHookStruct = KBDLLHOOKSTRUCT;
  1204. PKbDllHookStruct = LPKBDLLHOOKSTRUCT;
  1205. //
  1206. // Structure used by WH_MOUSE_LL
  1207. //
  1208. LPMSLLHOOKSTRUCT = ^MSLLHOOKSTRUCT;
  1209. {$EXTERNALSYM LPMSLLHOOKSTRUCT}
  1210. tagMSLLHOOKSTRUCT = record
  1211. pt: POINT;
  1212. mouseData: DWORD;
  1213. flags: DWORD;
  1214. time: DWORD;
  1215. dwExtraInfo: ULONG_PTR;
  1216. end;
  1217. {$EXTERNALSYM tagMSLLHOOKSTRUCT}
  1218. MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT;
  1219. {$EXTERNALSYM MSLLHOOKSTRUCT}
  1220. TMsllHookStruct = MSLLHOOKSTRUCT;
  1221. PMsllHookStruct = LPMSLLHOOKSTRUCT;
  1222. //
  1223. // Structure used by WH_DEBUG
  1224. //
  1225. LPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1226. {$EXTERNALSYM LPDEBUGHOOKINFO}
  1227. tagDEBUGHOOKINFO = record
  1228. idThread: DWORD;
  1229. idThreadInstaller: DWORD;
  1230. lParam: LPARAM;
  1231. wParam: WPARAM;
  1232. code: Integer;
  1233. end;
  1234. {$EXTERNALSYM tagDEBUGHOOKINFO}
  1235. DEBUGHOOKINFO = tagDEBUGHOOKINFO;
  1236. {$EXTERNALSYM DEBUGHOOKINFO}
  1237. NPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
  1238. {$EXTERNALSYM NPDEBUGHOOKINFO}
  1239. TDebugHookInfo = DEBUGHOOKINFO;
  1240. PDebugHookInfo = LPDEBUGHOOKINFO;
  1241. //
  1242. // Structure used by WH_MOUSE
  1243. //
  1244. LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
  1245. {$EXTERNALSYM LPMOUSEHOOKSTRUCT}
  1246. tagMOUSEHOOKSTRUCT = record
  1247. pt: POINT;
  1248. hwnd: HWND;
  1249. wHitTestCode: UINT;
  1250. dwExtraInfo: ULONG_PTR;
  1251. end;
  1252. {$EXTERNALSYM tagMOUSEHOOKSTRUCT}
  1253. MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
  1254. {$EXTERNALSYM MOUSEHOOKSTRUCT}
  1255. TMouseHookStruct = MOUSEHOOKSTRUCT;
  1256. PMouseHookStruct = LPMOUSEHOOKSTRUCT;
  1257. LPMOUSEHOOKSTRUCTEX = ^MOUSEHOOKSTRUCTEX;
  1258. {$EXTERNALSYM LPMOUSEHOOKSTRUCTEX}
  1259. tagMOUSEHOOKSTRUCTEX = record
  1260. mhs: MOUSEHOOKSTRUCT;
  1261. mouseData: DWORD;
  1262. end;
  1263. {$EXTERNALSYM tagMOUSEHOOKSTRUCTEX}
  1264. MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
  1265. {$EXTERNALSYM MOUSEHOOKSTRUCTEX}
  1266. TMouseHookStructEx = MOUSEHOOKSTRUCTEX;
  1267. PMouseHookStructEx = LPMOUSEHOOKSTRUCTEX;
  1268. //
  1269. // Structure used by WH_HARDWARE
  1270. //
  1271. LPHARDWAREHOOKSTRUCT = ^HARDWAREHOOKSTRUCT;
  1272. {$EXTERNALSYM LPHARDWAREHOOKSTRUCT}
  1273. tagHARDWAREHOOKSTRUCT = record
  1274. hwnd: HWND;
  1275. message: UINT;
  1276. wParam: WPARAM;
  1277. lParam: LPARAM;
  1278. end;
  1279. {$EXTERNALSYM tagHARDWAREHOOKSTRUCT}
  1280. HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
  1281. {$EXTERNALSYM HARDWAREHOOKSTRUCT}
  1282. THardwareHookStruct = HARDWAREHOOKSTRUCT;
  1283. PHardwareHookStruct = LPHARDWAREHOOKSTRUCT;
  1284. //
  1285. // Keyboard Layout API
  1286. //
  1287. const
  1288. HKL_PREV = 0;
  1289. {$EXTERNALSYM HKL_PREV}
  1290. HKL_NEXT = 1;
  1291. {$EXTERNALSYM HKL_NEXT}
  1292. KLF_ACTIVATE = $00000001;
  1293. {$EXTERNALSYM KLF_ACTIVATE}
  1294. KLF_SUBSTITUTE_OK = $00000002;
  1295. {$EXTERNALSYM KLF_SUBSTITUTE_OK}
  1296. KLF_REORDER = $00000008;
  1297. {$EXTERNALSYM KLF_REORDER}
  1298. KLF_REPLACELANG = $00000010;
  1299. {$EXTERNALSYM KLF_REPLACELANG}
  1300. KLF_NOTELLSHELL = $00000080;
  1301. {$EXTERNALSYM KLF_NOTELLSHELL}
  1302. KLF_SETFORPROCESS = $00000100;
  1303. {$EXTERNALSYM KLF_SETFORPROCESS}
  1304. KLF_SHIFTLOCK = $00010000;
  1305. {$EXTERNALSYM KLF_SHIFTLOCK}
  1306. KLF_RESET = $40000000;
  1307. {$EXTERNALSYM KLF_RESET}
  1308. //
  1309. // Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
  1310. //
  1311. INPUTLANGCHANGE_SYSCHARSET = $0001;
  1312. {$EXTERNALSYM INPUTLANGCHANGE_SYSCHARSET}
  1313. INPUTLANGCHANGE_FORWARD = $0002;
  1314. {$EXTERNALSYM INPUTLANGCHANGE_FORWARD}
  1315. INPUTLANGCHANGE_BACKWARD = $0004;
  1316. {$EXTERNALSYM INPUTLANGCHANGE_BACKWARD}
  1317. //
  1318. // Size of KeyboardLayoutName (number of characters), including nul terminator
  1319. //
  1320. KL_NAMELENGTH = 9;
  1321. {$EXTERNALSYM KL_NAMELENGTH}
  1322. function LoadKeyboardLayoutA(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
  1323. {$EXTERNALSYM LoadKeyboardLayoutA}
  1324. function LoadKeyboardLayoutW(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
  1325. {$EXTERNALSYM LoadKeyboardLayoutW}
  1326. function LoadKeyboardLayout(pwszKLID: LPCTSTR; Flags: UINT): HKL; stdcall;
  1327. {$EXTERNALSYM LoadKeyboardLayout}
  1328. function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): HKL; stdcall;
  1329. {$EXTERNALSYM ActivateKeyboardLayout}
  1330. function ToUnicodeEx(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE;
  1331. pwszBuff: LPWSTR; cchBuff: Integer; wFlags: UINT; dwhkl: HKL): Integer; stdcall;
  1332. {$EXTERNALSYM ToUnicodeEx}
  1333. function UnloadKeyboardLayout(hkl: HKL): BOOL; stdcall;
  1334. {$EXTERNALSYM UnloadKeyboardLayout}
  1335. function GetKeyboardLayoutNameA(pwszKLID: LPSTR): BOOL; stdcall;
  1336. {$EXTERNALSYM GetKeyboardLayoutNameA}
  1337. function GetKeyboardLayoutNameW(pwszKLID: LPWSTR): BOOL; stdcall;
  1338. {$EXTERNALSYM GetKeyboardLayoutNameW}
  1339. function GetKeyboardLayoutName(pwszKLID: LPTSTR): BOOL; stdcall;
  1340. {$EXTERNALSYM GetKeyboardLayoutName}
  1341. function GetKeyboardLayoutList(nBuff: Integer; lpList: PHKL): Integer; stdcall;
  1342. {$EXTERNALSYM GetKeyboardLayoutList}
  1343. function GetKeyboardLayout(idThread: DWORD): HKL; stdcall;
  1344. {$EXTERNALSYM GetKeyboardLayout}
  1345. type
  1346. LPMOUSEMOVEPOINT = ^MOUSEMOVEPOINT;
  1347. {$EXTERNALSYM LPMOUSEMOVEPOINT}
  1348. tagMOUSEMOVEPOINT = record
  1349. x: Integer;
  1350. y: Integer;
  1351. time: DWORD;
  1352. dwExtraInfo: ULONG_PTR;
  1353. end;
  1354. {$EXTERNALSYM tagMOUSEMOVEPOINT}
  1355. MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
  1356. {$EXTERNALSYM MOUSEMOVEPOINT}
  1357. TMouseMovePoint = MOUSEMOVEPOINT;
  1358. PMouseMovePoint = LPMOUSEMOVEPOINT;
  1359. //
  1360. // Values for resolution parameter of GetMouseMovePointsEx
  1361. //
  1362. const
  1363. GMMP_USE_DISPLAY_POINTS = 1;
  1364. {$EXTERNALSYM GMMP_USE_DISPLAY_POINTS}
  1365. GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
  1366. {$EXTERNALSYM GMMP_USE_HIGH_RESOLUTION_POINTS}
  1367. function GetMouseMovePointsEx(cbSize: UINT; lppt, lpptBuf: LPMOUSEMOVEPOINT;
  1368. nBufPoints: Integer; resolution: DWORD): Integer; stdcall;
  1369. {$EXTERNALSYM GetMouseMovePointsEx}
  1370. //
  1371. // Desktop-specific access flags
  1372. //
  1373. const
  1374. DESKTOP_READOBJECTS = $0001;
  1375. {$EXTERNALSYM DESKTOP_READOBJECTS}
  1376. DESKTOP_CREATEWINDOW = $0002;
  1377. {$EXTERNALSYM DESKTOP_CREATEWINDOW}
  1378. DESKTOP_CREATEMENU = $0004;
  1379. {$EXTERNALSYM DESKTOP_CREATEMENU}
  1380. DESKTOP_HOOKCONTROL = $0008;
  1381. {$EXTERNALSYM DESKTOP_HOOKCONTROL}
  1382. DESKTOP_JOURNALRECORD = $0010;
  1383. {$EXTERNALSYM DESKTOP_JOURNALRECORD}
  1384. DESKTOP_JOURNALPLAYBACK = $0020;
  1385. {$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
  1386. DESKTOP_ENUMERATE = $0040;
  1387. {$EXTERNALSYM DESKTOP_ENUMERATE}
  1388. DESKTOP_WRITEOBJECTS = $0080;
  1389. {$EXTERNALSYM DESKTOP_WRITEOBJECTS}
  1390. DESKTOP_SWITCHDESKTOP = $0100;
  1391. {$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
  1392. //
  1393. // Desktop-specific control flags
  1394. //
  1395. DF_ALLOWOTHERACCOUNTHOOK = $0001;
  1396. {$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
  1397. function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
  1398. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1399. {$EXTERNALSYM CreateDesktopA}
  1400. function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
  1401. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1402. {$EXTERNALSYM CreateDesktopW}
  1403. function CreateDesktop(lpszDesktop, lpszDevice: LPCTSTR; pDevmode: LPDEVMODE;
  1404. dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
  1405. {$EXTERNALSYM CreateDesktop}
  1406. function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
  1407. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1408. {$EXTERNALSYM OpenDesktopA}
  1409. function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
  1410. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1411. {$EXTERNALSYM OpenDesktopW}
  1412. function OpenDesktop(lpszDesktop: LPCTSTR; dwFlags: DWORD; fInherit: BOOL;
  1413. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1414. {$EXTERNALSYM OpenDesktop}
  1415. function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
  1416. dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
  1417. {$EXTERNALSYM OpenInputDesktop}
  1418. function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
  1419. lParam: LPARAM): BOOL; stdcall;
  1420. {$EXTERNALSYM EnumDesktopsA}
  1421. function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
  1422. lParam: LPARAM): BOOL; stdcall;
  1423. {$EXTERNALSYM EnumDesktopsW}
  1424. function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROC;
  1425. lParam: LPARAM): BOOL; stdcall;
  1426. {$EXTERNALSYM EnumDesktops}
  1427. function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1428. {$EXTERNALSYM EnumDesktopWindows}
  1429. function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
  1430. {$EXTERNALSYM SwitchDesktop}
  1431. function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
  1432. {$EXTERNALSYM SetThreadDesktop}
  1433. function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
  1434. {$EXTERNALSYM CloseDesktop}
  1435. function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
  1436. {$EXTERNALSYM GetThreadDesktop}
  1437. //
  1438. // Windowstation-specific access flags
  1439. //
  1440. const
  1441. WINSTA_ENUMDESKTOPS = $0001;
  1442. {$EXTERNALSYM WINSTA_ENUMDESKTOPS}
  1443. WINSTA_READATTRIBUTES = $0002;
  1444. {$EXTERNALSYM WINSTA_READATTRIBUTES}
  1445. WINSTA_ACCESSCLIPBOARD = $0004;
  1446. {$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
  1447. WINSTA_CREATEDESKTOP = $0008;
  1448. {$EXTERNALSYM WINSTA_CREATEDESKTOP}
  1449. WINSTA_WRITEATTRIBUTES = $0010;
  1450. {$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
  1451. WINSTA_ACCESSGLOBALATOMS = $0020;
  1452. {$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
  1453. WINSTA_EXITWINDOWS = $0040;
  1454. {$EXTERNALSYM WINSTA_EXITWINDOWS}
  1455. WINSTA_ENUMERATE = $0100;
  1456. {$EXTERNALSYM WINSTA_ENUMERATE}
  1457. WINSTA_READSCREEN = $0200;
  1458. {$EXTERNALSYM WINSTA_READSCREEN}
  1459. WINSTA_ALL_ACCESS = (WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or
  1460. WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or
  1461. WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN);
  1462. {$EXTERNALSYM WINSTA_ALL_ACCESS}
  1463. //
  1464. // Windowstation creation flags.
  1465. //
  1466. CWF_CREATE_ONLY = $0001;
  1467. {$EXTERNALSYM CWF_CREATE_ONLY}
  1468. //
  1469. // Windowstation-specific attribute flags
  1470. //
  1471. WSF_VISIBLE = $0001;
  1472. {$EXTERNALSYM WSF_VISIBLE}
  1473. function CreateWindowStationA(lpwinsta: LPCSTR; dwFlags: DWORD;
  1474. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1475. {$EXTERNALSYM CreateWindowStationA}
  1476. function CreateWindowStationW(lpwinsta: LPCWSTR; dwFlags: DWORD;
  1477. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1478. {$EXTERNALSYM CreateWindowStationW}
  1479. function CreateWindowStation(lpwinsta: LPCTSTR; dwFlags: DWORD;
  1480. dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
  1481. {$EXTERNALSYM CreateWindowStation}
  1482. function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
  1483. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1484. {$EXTERNALSYM OpenWindowStationA}
  1485. function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
  1486. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1487. {$EXTERNALSYM OpenWindowStationW}
  1488. function OpenWindowStation(lpszWinSta: LPCTSTR; fInherit: BOOL;
  1489. dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
  1490. {$EXTERNALSYM OpenWindowStation}
  1491. function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
  1492. {$EXTERNALSYM EnumWindowStationsA}
  1493. function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
  1494. {$EXTERNALSYM EnumWindowStationsW}
  1495. function EnumWindowStations(lpEnumFunc: WINSTAENUMPROC; lParam: LPARAM): BOOL; stdcall;
  1496. {$EXTERNALSYM EnumWindowStations}
  1497. function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1498. {$EXTERNALSYM CloseWindowStation}
  1499. function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
  1500. {$EXTERNALSYM SetProcessWindowStation}
  1501. function GetProcessWindowStation: HWINSTA; stdcall;
  1502. {$EXTERNALSYM GetProcessWindowStation}
  1503. function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1504. pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
  1505. {$EXTERNALSYM SetUserObjectSecurity}
  1506. function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
  1507. pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1508. {$EXTERNALSYM GetUserObjectSecurity}
  1509. const
  1510. UOI_FLAGS = 1;
  1511. {$EXTERNALSYM UOI_FLAGS}
  1512. UOI_NAME = 2;
  1513. {$EXTERNALSYM UOI_NAME}
  1514. UOI_TYPE = 3;
  1515. {$EXTERNALSYM UOI_TYPE}
  1516. UOI_USER_SID = 4;
  1517. {$EXTERNALSYM UOI_USER_SID}
  1518. type
  1519. PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
  1520. tagUSEROBJECTFLAGS = record
  1521. fInherit: BOOL;
  1522. fReserved: BOOL;
  1523. dwFlags: DWORD;
  1524. end;
  1525. {$EXTERNALSYM tagUSEROBJECTFLAGS}
  1526. USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
  1527. {$EXTERNALSYM USEROBJECTFLAGS}
  1528. TUserObjectFlags = USEROBJECTFLAGS;
  1529. function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1530. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1531. {$EXTERNALSYM GetUserObjectInformationA}
  1532. function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1533. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1534. {$EXTERNALSYM GetUserObjectInformationW}
  1535. function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1536. nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
  1537. {$EXTERNALSYM GetUserObjectInformation}
  1538. function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1539. nLength: DWORD): BOOL; stdcall;
  1540. {$EXTERNALSYM SetUserObjectInformationA}
  1541. function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1542. nLength: DWORD): BOOL; stdcall;
  1543. {$EXTERNALSYM SetUserObjectInformationW}
  1544. function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
  1545. nLength: DWORD): BOOL; stdcall;
  1546. {$EXTERNALSYM SetUserObjectInformation}
  1547. type
  1548. LPWNDCLASSEXA = ^WNDCLASSEXA;
  1549. {$EXTERNALSYM LPWNDCLASSEXA}
  1550. tagWNDCLASSEXA = record
  1551. cbSize: UINT;
  1552. // Win 3.x
  1553. style: UINT;
  1554. lpfnWndProc: WNDPROC;
  1555. cbClsExtra: Integer;
  1556. cbWndExtra: Integer;
  1557. hInstance: HINST;
  1558. hIcon: HICON;
  1559. hCursor: HCURSOR;
  1560. hbrBackground: HBRUSH;
  1561. lpszMenuName: LPCSTR;
  1562. lpszClassName: LPCSTR;
  1563. // Win 4.0
  1564. hIconSm: HICON;
  1565. end;
  1566. {$EXTERNALSYM tagWNDCLASSEXA}
  1567. WNDCLASSEXA = tagWNDCLASSEXA;
  1568. {$EXTERNALSYM WNDCLASSEXA}
  1569. NPWNDCLASSEXA = ^WNDCLASSEXA;
  1570. {$EXTERNALSYM NPWNDCLASSEXA}
  1571. TWndClassExA = WNDCLASSEXA;
  1572. PWndClassExA = LPWNDCLASSEXA;
  1573. LPWNDCLASSEXW = ^WNDCLASSEXW;
  1574. {$EXTERNALSYM LPWNDCLASSEXW}
  1575. tagWNDCLASSEXW = record
  1576. cbSize: UINT;
  1577. // Win 3.x
  1578. style: UINT;
  1579. lpfnWndProc: WNDPROC;
  1580. cbClsExtra: Integer;
  1581. cbWndExtra: Integer;
  1582. hInstance: HINST;
  1583. hIcon: HICON;
  1584. hCursor: HCURSOR;
  1585. hbrBackground: HBRUSH;
  1586. lpszMenuName: LPCWSTR;
  1587. lpszClassName: LPCWSTR;
  1588. // Win 4.0
  1589. hIconSm: HICON;
  1590. end;
  1591. {$EXTERNALSYM tagWNDCLASSEXW}
  1592. WNDCLASSEXW = tagWNDCLASSEXW;
  1593. {$EXTERNALSYM WNDCLASSEXW}
  1594. NPWNDCLASSEXW = ^WNDCLASSEXW;
  1595. {$EXTERNALSYM NPWNDCLASSEXW}
  1596. TWndClassExW = WNDCLASSEXW;
  1597. PWndClassExW = LPWNDCLASSEXW;
  1598. {$IFDEF UNICODE}
  1599. WNDCLASSEX = WNDCLASSEXW;
  1600. {$EXTERNALSYM WNDCLASSEX}
  1601. NPWNDCLASSEX = NPWNDCLASSEXW;
  1602. {$EXTERNALSYM NPWNDCLASSEX}
  1603. LPWNDCLASSEX = LPWNDCLASSEXW;
  1604. {$EXTERNALSYM LPWNDCLASSEX}
  1605. TWndClassEx = TWndClassExW;
  1606. PWndClassEx = PWndClassExW;
  1607. {$ELSE}
  1608. WNDCLASSEX = WNDCLASSEXA;
  1609. {$EXTERNALSYM WNDCLASSEX}
  1610. NPWNDCLASSEX = NPWNDCLASSEXA;
  1611. {$EXTERNALSYM NPWNDCLASSEX}
  1612. LPWNDCLASSEX = LPWNDCLASSEXA;
  1613. {$EXTERNALSYM LPWNDCLASSEX}
  1614. TWndClassEx = TWndClassExA;
  1615. PWndClassEx = PWndClassExA;
  1616. {$ENDIF UNICODE}
  1617. LPWNDCLASSA = ^WNDCLASSA;
  1618. {$EXTERNALSYM LPWNDCLASSA}
  1619. tagWNDCLASSA = record
  1620. style: UINT;
  1621. lpfnWndProc: WNDPROC;
  1622. cbClsExtra: Integer;
  1623. cbWndExtra: Integer;
  1624. hInstance: HINST;
  1625. hIcon: HICON;
  1626. hCursor: HCURSOR;
  1627. hbrBackground: HBRUSH;
  1628. lpszMenuName: LPCSTR;
  1629. lpszClassName: LPCSTR;
  1630. end;
  1631. {$EXTERNALSYM tagWNDCLASSA}
  1632. WNDCLASSA = tagWNDCLASSA;
  1633. {$EXTERNALSYM WNDCLASSA}
  1634. NPWNDCLASSA = ^WNDCLASSA;
  1635. {$EXTERNALSYM NPWNDCLASSA}
  1636. TWndClassA = WNDCLASSA;
  1637. PWndClassA = LPWNDCLASSA;
  1638. LPWNDCLASSW = ^WNDCLASSW;
  1639. {$EXTERNALSYM LPWNDCLASSW}
  1640. tagWNDCLASSW = record
  1641. style: UINT;
  1642. lpfnWndProc: WNDPROC;
  1643. cbClsExtra: Integer;
  1644. cbWndExtra: Integer;
  1645. hInstance: HINST;
  1646. hIcon: HICON;
  1647. hCursor: HCURSOR;
  1648. hbrBackground: HBRUSH;
  1649. lpszMenuName: LPCWSTR;
  1650. lpszClassName: LPCWSTR;
  1651. end;
  1652. {$EXTERNALSYM tagWNDCLASSW}
  1653. WNDCLASSW = tagWNDCLASSW;
  1654. {$EXTERNALSYM WNDCLASSW}
  1655. NPWNDCLASSW = ^WNDCLASSW;
  1656. {$EXTERNALSYM NPWNDCLASSW}
  1657. TWndClassW = WNDCLASSW;
  1658. PWndClassW = LPWNDCLASSW;
  1659. {$IFDEF UNICODE}
  1660. WNDCLASS = WNDCLASSW;
  1661. {$EXTERNALSYM WNDCLASS}
  1662. NPWNDCLASS = NPWNDCLASSW;
  1663. {$EXTERNALSYM NPWNDCLASS}
  1664. LPWNDCLASS = LPWNDCLASSW;
  1665. {$EXTERNALSYM LPWNDCLASS}
  1666. TWndClass = TWndClassW;
  1667. PWndClass = PWndClassW;
  1668. {$ELSE}
  1669. WNDCLASS = WNDCLASSA;
  1670. {$EXTERNALSYM WNDCLASS}
  1671. NPWNDCLASS = NPWNDCLASSA;
  1672. {$EXTERNALSYM NPWNDCLASS}
  1673. LPWNDCLASS = LPWNDCLASSA;
  1674. {$EXTERNALSYM LPWNDCLASS}
  1675. TWndClass = TWndClassA;
  1676. PWndClass = PWndClassA;
  1677. {$ENDIF UNICODE}
  1678. function IsHungAppWindow(hwnd: HWND): BOOL; stdcall;
  1679. {$EXTERNALSYM IsHungAppWindow}
  1680. procedure DisableProcessWindowsGhosting; stdcall;
  1681. {$EXTERNALSYM DisableProcessWindowsGhosting}
  1682. //
  1683. // Message structure
  1684. //
  1685. type
  1686. LPMSG = ^MSG;
  1687. {$EXTERNALSYM LPMSG}
  1688. tagMSG = record
  1689. hwnd: HWND;
  1690. message: UINT;
  1691. wParam: WPARAM;
  1692. lParam: LPARAM;
  1693. time: DWORD;
  1694. pt: POINT;
  1695. end;
  1696. {$EXTERNALSYM tagMSG}
  1697. MSG = tagMSG;
  1698. {$EXTERNALSYM MSG}
  1699. NPMSG = ^MSG;
  1700. {$EXTERNALSYM NPMSG}
  1701. TMsg = MSG;
  1702. PMsg = LPMSG;
  1703. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  1704. {$EXTERNALSYM MAKEWPARAM}
  1705. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  1706. {$EXTERNALSYM MAKELPARAM}
  1707. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  1708. {$EXTERNALSYM MAKELRESULT}
  1709. //
  1710. // Window field offsets for GetWindowLong()
  1711. //
  1712. const
  1713. GWL_WNDPROC = -4;
  1714. {$EXTERNALSYM GWL_WNDPROC}
  1715. GWL_HINSTANCE = -6;
  1716. {$EXTERNALSYM GWL_HINSTANCE}
  1717. GWL_HWNDPARENT = -8;
  1718. {$EXTERNALSYM GWL_HWNDPARENT}
  1719. GWL_STYLE = -16;
  1720. {$EXTERNALSYM GWL_STYLE}
  1721. GWL_EXSTYLE = -20;
  1722. {$EXTERNALSYM GWL_EXSTYLE}
  1723. GWL_USERDATA = -21;
  1724. {$EXTERNALSYM GWL_USERDATA}
  1725. GWL_ID = -12;
  1726. {$EXTERNALSYM GWL_ID}
  1727. GWLP_WNDPROC = -4;
  1728. {$EXTERNALSYM GWLP_WNDPROC}
  1729. GWLP_HINSTANCE = -6;
  1730. {$EXTERNALSYM GWLP_HINSTANCE}
  1731. GWLP_HWNDPARENT = -8;
  1732. {$EXTERNALSYM GWLP_HWNDPARENT}
  1733. GWLP_USERDATA = -21;
  1734. {$EXTERNALSYM GWLP_USERDATA}
  1735. GWLP_ID = -12;
  1736. {$EXTERNALSYM GWLP_ID}
  1737. //
  1738. // Class field offsets for GetClassLong()
  1739. //
  1740. GCL_MENUNAME = DWORD(-8);
  1741. {$EXTERNALSYM GCL_MENUNAME}
  1742. GCL_HBRBACKGROUND = DWORD(-10);
  1743. {$EXTERNALSYM GCL_HBRBACKGROUND}
  1744. GCL_HCURSOR = DWORD(-12);
  1745. {$EXTERNALSYM GCL_HCURSOR}
  1746. GCL_HICON = DWORD(-14);
  1747. {$EXTERNALSYM GCL_HICON}
  1748. GCL_HMODULE = DWORD(-16);
  1749. {$EXTERNALSYM GCL_HMODULE}
  1750. GCL_CBWNDEXTRA = DWORD(-18);
  1751. {$EXTERNALSYM GCL_CBWNDEXTRA}
  1752. GCL_CBCLSEXTRA = DWORD(-20);
  1753. {$EXTERNALSYM GCL_CBCLSEXTRA}
  1754. GCL_WNDPROC = DWORD(-24);
  1755. {$EXTERNALSYM GCL_WNDPROC}
  1756. GCL_STYLE = DWORD(-26);
  1757. {$EXTERNALSYM GCL_STYLE}
  1758. GCW_ATOM = DWORD(-32);
  1759. {$EXTERNALSYM GCW_ATOM}
  1760. GCL_HICONSM = DWORD(-34);
  1761. {$EXTERNALSYM GCL_HICONSM}
  1762. GCLP_MENUNAME = DWORD(-8);
  1763. {$EXTERNALSYM GCLP_MENUNAME}
  1764. GCLP_HBRBACKGROUND = DWORD(-10);
  1765. {$EXTERNALSYM GCLP_HBRBACKGROUND}
  1766. GCLP_HCURSOR = DWORD(-12);
  1767. {$EXTERNALSYM GCLP_HCURSOR}
  1768. GCLP_HICON = DWORD(-14);
  1769. {$EXTERNALSYM GCLP_HICON}
  1770. GCLP_HMODULE = DWORD(-16);
  1771. {$EXTERNALSYM GCLP_HMODULE}
  1772. GCLP_WNDPROC = DWORD(-24);
  1773. {$EXTERNALSYM GCLP_WNDPROC}
  1774. GCLP_HICONSM = DWORD(-34);
  1775. {$EXTERNALSYM GCLP_HICONSM}
  1776. //
  1777. // Window Messages
  1778. //
  1779. WM_NULL = $0000;
  1780. {$EXTERNALSYM WM_NULL}
  1781. WM_CREATE = $0001;
  1782. {$EXTERNALSYM WM_CREATE}
  1783. WM_DESTROY = $0002;
  1784. {$EXTERNALSYM WM_DESTROY}
  1785. WM_MOVE = $0003;
  1786. {$EXTERNALSYM WM_MOVE}
  1787. WM_SIZE = $0005;
  1788. {$EXTERNALSYM WM_SIZE}
  1789. WM_ACTIVATE = $0006;
  1790. {$EXTERNALSYM WM_ACTIVATE}
  1791. //
  1792. // WM_ACTIVATE state values
  1793. //
  1794. WA_INACTIVE = 0;
  1795. {$EXTERNALSYM WA_INACTIVE}
  1796. WA_ACTIVE = 1;
  1797. {$EXTERNALSYM WA_ACTIVE}
  1798. WA_CLICKACTIVE = 2;
  1799. {$EXTERNALSYM WA_CLICKACTIVE}
  1800. WM_SETFOCUS = $0007;
  1801. {$EXTERNALSYM WM_SETFOCUS}
  1802. WM_KILLFOCUS = $0008;
  1803. {$EXTERNALSYM WM_KILLFOCUS}
  1804. WM_ENABLE = $000A;
  1805. {$EXTERNALSYM WM_ENABLE}
  1806. WM_SETREDRAW = $000B;
  1807. {$EXTERNALSYM WM_SETREDRAW}
  1808. WM_SETTEXT = $000C;
  1809. {$EXTERNALSYM WM_SETTEXT}
  1810. WM_GETTEXT = $000D;
  1811. {$EXTERNALSYM WM_GETTEXT}
  1812. WM_GETTEXTLENGTH = $000E;
  1813. {$EXTERNALSYM WM_GETTEXTLENGTH}
  1814. WM_PAINT = $000F;
  1815. {$EXTERNALSYM WM_PAINT}
  1816. WM_CLOSE = $0010;
  1817. {$EXTERNALSYM WM_CLOSE}
  1818. WM_QUERYENDSESSION = $0011;
  1819. {$EXTERNALSYM WM_QUERYENDSESSION}
  1820. WM_QUERYOPEN = $0013;
  1821. {$EXTERNALSYM WM_QUERYOPEN}
  1822. WM_ENDSESSION = $0016;
  1823. {$EXTERNALSYM WM_ENDSESSION}
  1824. WM_QUIT = $0012;
  1825. {$EXTERNALSYM WM_QUIT}
  1826. WM_ERASEBKGND = $0014;
  1827. {$EXTERNALSYM WM_ERASEBKGND}
  1828. WM_SYSCOLORCHANGE = $0015;
  1829. {$EXTERNALSYM WM_SYSCOLORCHANGE}
  1830. WM_SHOWWINDOW = $0018;
  1831. {$EXTERNALSYM WM_SHOWWINDOW}
  1832. WM_WININICHANGE = $001A;
  1833. {$EXTERNALSYM WM_WININICHANGE}
  1834. WM_SETTINGCHANGE = WM_WININICHANGE;
  1835. {$EXTERNALSYM WM_SETTINGCHANGE}
  1836. WM_DEVMODECHANGE = $001B;
  1837. {$EXTERNALSYM WM_DEVMODECHANGE}
  1838. WM_ACTIVATEAPP = $001C;
  1839. {$EXTERNALSYM WM_ACTIVATEAPP}
  1840. WM_FONTCHANGE = $001D;
  1841. {$EXTERNALSYM WM_FONTCHANGE}
  1842. WM_TIMECHANGE = $001E;
  1843. {$EXTERNALSYM WM_TIMECHANGE}
  1844. WM_CANCELMODE = $001F;
  1845. {$EXTERNALSYM WM_CANCELMODE}
  1846. WM_SETCURSOR = $0020;
  1847. {$EXTERNALSYM WM_SETCURSOR}
  1848. WM_MOUSEACTIVATE = $0021;
  1849. {$EXTERNALSYM WM_MOUSEACTIVATE}
  1850. WM_CHILDACTIVATE = $0022;
  1851. {$EXTERNALSYM WM_CHILDACTIVATE}
  1852. WM_QUEUESYNC = $0023;
  1853. {$EXTERNALSYM WM_QUEUESYNC}
  1854. WM_GETMINMAXINFO = $0024;
  1855. {$EXTERNALSYM WM_GETMINMAXINFO}
  1856. //
  1857. // Struct pointed to by WM_GETMINMAXINFO lParam
  1858. //
  1859. type
  1860. LPMINMAXINFO = ^MINMAXINFO;
  1861. {$EXTERNALSYM LPMINMAXINFO}
  1862. tagMINMAXINFO = record
  1863. ptReserved: POINT;
  1864. ptMaxSize: POINT;
  1865. ptMaxPosition: POINT;
  1866. ptMinTrackSize: POINT;
  1867. ptMaxTrackSize: POINT;
  1868. end;
  1869. {$EXTERNALSYM tagMINMAXINFO}
  1870. MINMAXINFO = tagMINMAXINFO;
  1871. {$EXTERNALSYM MINMAXINFO}
  1872. TMinMaxInfo = MINMAXINFO;
  1873. PMinMaxInfo = LPMINMAXINFO;
  1874. const
  1875. WM_PAINTICON = $0026;
  1876. {$EXTERNALSYM WM_PAINTICON}
  1877. WM_ICONERASEBKGND = $0027;
  1878. {$EXTERNALSYM WM_ICONERASEBKGND}
  1879. WM_NEXTDLGCTL = $0028;
  1880. {$EXTERNALSYM WM_NEXTDLGCTL}
  1881. WM_SPOOLERSTATUS = $002A;
  1882. {$EXTERNALSYM WM_SPOOLERSTATUS}
  1883. WM_DRAWITEM = $002B;
  1884. {$EXTERNALSYM WM_DRAWITEM}
  1885. WM_MEASUREITEM = $002C;
  1886. {$EXTERNALSYM WM_MEASUREITEM}
  1887. WM_DELETEITEM = $002D;
  1888. {$EXTERNALSYM WM_DELETEITEM}
  1889. WM_VKEYTOITEM = $002E;
  1890. {$EXTERNALSYM WM_VKEYTOITEM}
  1891. WM_CHARTOITEM = $002F;
  1892. {$EXTERNALSYM WM_CHARTOITEM}
  1893. WM_SETFONT = $0030;
  1894. {$EXTERNALSYM WM_SETFONT}
  1895. WM_GETFONT = $0031;
  1896. {$EXTERNALSYM WM_GETFONT}
  1897. WM_SETHOTKEY = $0032;
  1898. {$EXTERNALSYM WM_SETHOTKEY}
  1899. WM_GETHOTKEY = $0033;
  1900. {$EXTERNALSYM WM_GETHOTKEY}
  1901. WM_QUERYDRAGICON = $0037;
  1902. {$EXTERNALSYM WM_QUERYDRAGICON}
  1903. WM_COMPAREITEM = $0039;
  1904. {$EXTERNALSYM WM_COMPAREITEM}
  1905. WM_GETOBJECT = $003D;
  1906. {$EXTERNALSYM WM_GETOBJECT}
  1907. WM_COMPACTING = $0041;
  1908. {$EXTERNALSYM WM_COMPACTING}
  1909. WM_COMMNOTIFY = $0044; // no longer suported
  1910. {$EXTERNALSYM WM_COMMNOTIFY}
  1911. WM_WINDOWPOSCHANGING = $0046;
  1912. {$EXTERNALSYM WM_WINDOWPOSCHANGING}
  1913. WM_WINDOWPOSCHANGED = $0047;
  1914. {$EXTERNALSYM WM_WINDOWPOSCHANGED}
  1915. WM_POWER = $0048;
  1916. {$EXTERNALSYM WM_POWER}
  1917. //
  1918. // wParam for WM_POWER window message and DRV_POWER driver notification
  1919. //
  1920. PWR_OK = 1;
  1921. {$EXTERNALSYM PWR_OK}
  1922. PWR_FAIL = DWORD(-1);
  1923. {$EXTERNALSYM PWR_FAIL}
  1924. PWR_SUSPENDREQUEST = 1;
  1925. {$EXTERNALSYM PWR_SUSPENDREQUEST}
  1926. PWR_SUSPENDRESUME = 2;
  1927. {$EXTERNALSYM PWR_SUSPENDRESUME}
  1928. PWR_CRITICALRESUME = 3;
  1929. {$EXTERNALSYM PWR_CRITICALRESUME}
  1930. WM_COPYDATA = $004A;
  1931. {$EXTERNALSYM WM_COPYDATA}
  1932. WM_CANCELJOURNAL = $004B;
  1933. {$EXTERNALSYM WM_CANCELJOURNAL}
  1934. //
  1935. // lParam of WM_COPYDATA message points to...
  1936. //
  1937. type
  1938. PCOPYDATASTRUCT = ^COPYDATASTRUCT;
  1939. tagCOPYDATASTRUCT = record
  1940. dwData: ULONG_PTR;
  1941. cbData: DWORD;
  1942. lpData: PVOID;
  1943. end;
  1944. {$EXTERNALSYM tagCOPYDATASTRUCT}
  1945. COPYDATASTRUCT = tagCOPYDATASTRUCT;
  1946. {$EXTERNALSYM COPYDATASTRUCT}
  1947. TCopyDataStruct = COPYDATASTRUCT;
  1948. LPMDINEXTMENU = ^MDINEXTMENU;
  1949. {$EXTERNALSYM LPMDINEXTMENU}
  1950. tagMDINEXTMENU = record
  1951. hmenuIn: HMENU;
  1952. hmenuNext: HMENU;
  1953. hwndNext: HWND;
  1954. end;
  1955. {$EXTERNALSYM tagMDINEXTMENU}
  1956. MDINEXTMENU = tagMDINEXTMENU;
  1957. {$EXTERNALSYM MDINEXTMENU}
  1958. TMdiNextMenu = MDINEXTMENU;
  1959. PMdiNextMenu = LPMDINEXTMENU;
  1960. const
  1961. WM_NOTIFY = $004E;
  1962. {$EXTERNALSYM WM_NOTIFY}
  1963. WM_INPUTLANGCHANGEREQUEST = $0050;
  1964. {$EXTERNALSYM WM_INPUTLANGCHANGEREQUEST}
  1965. WM_INPUTLANGCHANGE = $0051;
  1966. {$EXTERNALSYM WM_INPUTLANGCHANGE}
  1967. WM_TCARD = $0052;
  1968. {$EXTERNALSYM WM_TCARD}
  1969. WM_HELP = $0053;
  1970. {$EXTERNALSYM WM_HELP}
  1971. WM_USERCHANGED = $0054;
  1972. {$EXTERNALSYM WM_USERCHANGED}
  1973. WM_NOTIFYFORMAT = $0055;
  1974. {$EXTERNALSYM WM_NOTIFYFORMAT}
  1975. NFR_ANSI = 1;
  1976. {$EXTERNALSYM NFR_ANSI}
  1977. NFR_UNICODE = 2;
  1978. {$EXTERNALSYM NFR_UNICODE}
  1979. NF_QUERY = 3;
  1980. {$EXTERNALSYM NF_QUERY}
  1981. NF_REQUERY = 4;
  1982. {$EXTERNALSYM NF_REQUERY}
  1983. WM_CONTEXTMENU = $007B;
  1984. {$EXTERNALSYM WM_CONTEXTMENU}
  1985. WM_STYLECHANGING = $007C;
  1986. {$EXTERNALSYM WM_STYLECHANGING}
  1987. WM_STYLECHANGED = $007D;
  1988. {$EXTERNALSYM WM_STYLECHANGED}
  1989. WM_DISPLAYCHANGE = $007E;
  1990. {$EXTERNALSYM WM_DISPLAYCHANGE}
  1991. WM_GETICON = $007F;
  1992. {$EXTERNALSYM WM_GETICON}
  1993. WM_SETICON = $0080;
  1994. {$EXTERNALSYM WM_SETICON}
  1995. WM_NCCREATE = $0081;
  1996. {$EXTERNALSYM WM_NCCREATE}
  1997. WM_NCDESTROY = $0082;
  1998. {$EXTERNALSYM WM_NCDESTROY}
  1999. WM_NCCALCSIZE = $0083;
  2000. {$EXTERNALSYM WM_NCCALCSIZE}
  2001. WM_NCHITTEST = $0084;
  2002. {$EXTERNALSYM WM_NCHITTEST}
  2003. WM_NCPAINT = $0085;
  2004. {$EXTERNALSYM WM_NCPAINT}
  2005. WM_NCACTIVATE = $0086;
  2006. {$EXTERNALSYM WM_NCACTIVATE}
  2007. WM_GETDLGCODE = $0087;
  2008. {$EXTERNALSYM WM_GETDLGCODE}
  2009. WM_SYNCPAINT = $0088;
  2010. {$EXTERNALSYM WM_SYNCPAINT}
  2011. WM_NCMOUSEMOVE = $00A0;
  2012. {$EXTERNALSYM WM_NCMOUSEMOVE}
  2013. WM_NCLBUTTONDOWN = $00A1;
  2014. {$EXTERNALSYM WM_NCLBUTTONDOWN}
  2015. WM_NCLBUTTONUP = $00A2;
  2016. {$EXTERNALSYM WM_NCLBUTTONUP}
  2017. WM_NCLBUTTONDBLCLK = $00A3;
  2018. {$EXTERNALSYM WM_NCLBUTTONDBLCLK}
  2019. WM_NCRBUTTONDOWN = $00A4;
  2020. {$EXTERNALSYM WM_NCRBUTTONDOWN}
  2021. WM_NCRBUTTONUP = $00A5;
  2022. {$EXTERNALSYM WM_NCRBUTTONUP}
  2023. WM_NCRBUTTONDBLCLK = $00A6;
  2024. {$EXTERNALSYM WM_NCRBUTTONDBLCLK}
  2025. WM_NCMBUTTONDOWN = $00A7;
  2026. {$EXTERNALSYM WM_NCMBUTTONDOWN}
  2027. WM_NCMBUTTONUP = $00A8;
  2028. {$EXTERNALSYM WM_NCMBUTTONUP}
  2029. WM_NCMBUTTONDBLCLK = $00A9;
  2030. {$EXTERNALSYM WM_NCMBUTTONDBLCLK}
  2031. WM_NCXBUTTONDOWN = $00AB;
  2032. {$EXTERNALSYM WM_NCXBUTTONDOWN}
  2033. WM_NCXBUTTONUP = $00AC;
  2034. {$EXTERNALSYM WM_NCXBUTTONUP}
  2035. WM_NCXBUTTONDBLCLK = $00AD;
  2036. {$EXTERNALSYM WM_NCXBUTTONDBLCLK}
  2037. WM_INPUT = $00FF;
  2038. {$EXTERNALSYM WM_INPUT}
  2039. WM_KEYFIRST = $0100;
  2040. {$EXTERNALSYM WM_KEYFIRST}
  2041. WM_KEYDOWN = $0100;
  2042. {$EXTERNALSYM WM_KEYDOWN}
  2043. WM_KEYUP = $0101;
  2044. {$EXTERNALSYM WM_KEYUP}
  2045. WM_CHAR = $0102;
  2046. {$EXTERNALSYM WM_CHAR}
  2047. WM_DEADCHAR = $0103;
  2048. {$EXTERNALSYM WM_DEADCHAR}
  2049. WM_SYSKEYDOWN = $0104;
  2050. {$EXTERNALSYM WM_SYSKEYDOWN}
  2051. WM_SYSKEYUP = $0105;
  2052. {$EXTERNALSYM WM_SYSKEYUP}
  2053. WM_SYSCHAR = $0106;
  2054. {$EXTERNALSYM WM_SYSCHAR}
  2055. WM_SYSDEADCHAR = $0107;
  2056. {$EXTERNALSYM WM_SYSDEADCHAR}
  2057. {$IFDEF WINXP_UP}
  2058. WM_UNICHAR = $0109;
  2059. {$EXTERNALSYM WM_UNICHAR}
  2060. WM_KEYLAST = $0109;
  2061. {$EXTERNALSYM WM_KEYLAST}
  2062. UNICODE_NOCHAR = $FFFF;
  2063. {$EXTERNALSYM UNICODE_NOCHAR}
  2064. {$ELSE}
  2065. WM_KEYLAST = $0108;
  2066. {$EXTERNALSYM WM_KEYLAST}
  2067. {$ENDIF WINXP_UP}
  2068. WM_IME_STARTCOMPOSITION = $010D;
  2069. {$EXTERNALSYM WM_IME_STARTCOMPOSITION}
  2070. WM_IME_ENDCOMPOSITION = $010E;
  2071. {$EXTERNALSYM WM_IME_ENDCOMPOSITION}
  2072. WM_IME_COMPOSITION = $010F;
  2073. {$EXTERNALSYM WM_IME_COMPOSITION}
  2074. WM_IME_KEYLAST = $010F;
  2075. {$EXTERNALSYM WM_IME_KEYLAST}
  2076. WM_INITDIALOG = $0110;
  2077. {$EXTERNALSYM WM_INITDIALOG}
  2078. WM_COMMAND = $0111;
  2079. {$EXTERNALSYM WM_COMMAND}
  2080. WM_SYSCOMMAND = $0112;
  2081. {$EXTERNALSYM WM_SYSCOMMAND}
  2082. WM_TIMER = $0113;
  2083. {$EXTERNALSYM WM_TIMER}
  2084. WM_HSCROLL = $0114;
  2085. {$EXTERNALSYM WM_HSCROLL}
  2086. WM_VSCROLL = $0115;
  2087. {$EXTERNALSYM WM_VSCROLL}
  2088. WM_INITMENU = $0116;
  2089. {$EXTERNALSYM WM_INITMENU}
  2090. WM_INITMENUPOPUP = $0117;
  2091. {$EXTERNALSYM WM_INITMENUPOPUP}
  2092. WM_MENUSELECT = $011F;
  2093. {$EXTERNALSYM WM_MENUSELECT}
  2094. WM_MENUCHAR = $0120;
  2095. {$EXTERNALSYM WM_MENUCHAR}
  2096. WM_ENTERIDLE = $0121;
  2097. {$EXTERNALSYM WM_ENTERIDLE}
  2098. WM_MENURBUTTONUP = $0122;
  2099. {$EXTERNALSYM WM_MENURBUTTONUP}
  2100. WM_MENUDRAG = $0123;
  2101. {$EXTERNALSYM WM_MENUDRAG}
  2102. WM_MENUGETOBJECT = $0124;
  2103. {$EXTERNALSYM WM_MENUGETOBJECT}
  2104. WM_UNINITMENUPOPUP = $0125;
  2105. {$EXTERNALSYM WM_UNINITMENUPOPUP}
  2106. WM_MENUCOMMAND = $0126;
  2107. {$EXTERNALSYM WM_MENUCOMMAND}
  2108. WM_CHANGEUISTATE = $0127;
  2109. {$EXTERNALSYM WM_CHANGEUISTATE}
  2110. WM_UPDATEUISTATE = $0128;
  2111. {$EXTERNALSYM WM_UPDATEUISTATE}
  2112. WM_QUERYUISTATE = $0129;
  2113. {$EXTERNALSYM WM_QUERYUISTATE}
  2114. //
  2115. // LOWORD(wParam) values in WM_*UISTATE*
  2116. //
  2117. UIS_SET = 1;
  2118. {$EXTERNALSYM UIS_SET}
  2119. UIS_CLEAR = 2;
  2120. {$EXTERNALSYM UIS_CLEAR}
  2121. UIS_INITIALIZE = 3;
  2122. {$EXTERNALSYM UIS_INITIALIZE}
  2123. //
  2124. // HIWORD(wParam) values in WM_*UISTATE*
  2125. //
  2126. UISF_HIDEFOCUS = $1;
  2127. {$EXTERNALSYM UISF_HIDEFOCUS}
  2128. UISF_HIDEACCEL = $2;
  2129. {$EXTERNALSYM UISF_HIDEACCEL}
  2130. UISF_ACTIVE = $4;
  2131. {$EXTERNALSYM UISF_ACTIVE}
  2132. WM_CTLCOLORMSGBOX = $0132;
  2133. {$EXTERNALSYM WM_CTLCOLORMSGBOX}
  2134. WM_CTLCOLOREDIT = $0133;
  2135. {$EXTERNALSYM WM_CTLCOLOREDIT}
  2136. WM_CTLCOLORLISTBOX = $0134;
  2137. {$EXTERNALSYM WM_CTLCOLORLISTBOX}
  2138. WM_CTLCOLORBTN = $0135;
  2139. {$EXTERNALSYM WM_CTLCOLORBTN}
  2140. WM_CTLCOLORDLG = $0136;
  2141. {$EXTERNALSYM WM_CTLCOLORDLG}
  2142. WM_CTLCOLORSCROLLBAR = $0137;
  2143. {$EXTERNALSYM WM_CTLCOLORSCROLLBAR}
  2144. WM_CTLCOLORSTATIC = $0138;
  2145. {$EXTERNALSYM WM_CTLCOLORSTATIC}
  2146. MN_GETHMENU = $01E1;
  2147. {$EXTERNALSYM MN_GETHMENU}
  2148. WM_MOUSEFIRST = $0200;
  2149. {$EXTERNALSYM WM_MOUSEFIRST}
  2150. WM_MOUSEMOVE = $0200;
  2151. {$EXTERNALSYM WM_MOUSEMOVE}
  2152. WM_LBUTTONDOWN = $0201;
  2153. {$EXTERNALSYM WM_LBUTTONDOWN}
  2154. WM_LBUTTONUP = $0202;
  2155. {$EXTERNALSYM WM_LBUTTONUP}
  2156. WM_LBUTTONDBLCLK = $0203;
  2157. {$EXTERNALSYM WM_LBUTTONDBLCLK}
  2158. WM_RBUTTONDOWN = $0204;
  2159. {$EXTERNALSYM WM_RBUTTONDOWN}
  2160. WM_RBUTTONUP = $0205;
  2161. {$EXTERNALSYM WM_RBUTTONUP}
  2162. WM_RBUTTONDBLCLK = $0206;
  2163. {$EXTERNALSYM WM_RBUTTONDBLCLK}
  2164. WM_MBUTTONDOWN = $0207;
  2165. {$EXTERNALSYM WM_MBUTTONDOWN}
  2166. WM_MBUTTONUP = $0208;
  2167. {$EXTERNALSYM WM_MBUTTONUP}
  2168. WM_MBUTTONDBLCLK = $0209;
  2169. {$EXTERNALSYM WM_MBUTTONDBLCLK}
  2170. WM_MOUSEWHEEL = $020A;
  2171. {$EXTERNALSYM WM_MOUSEWHEEL}
  2172. WM_XBUTTONDOWN = $020B;
  2173. {$EXTERNALSYM WM_XBUTTONDOWN}
  2174. WM_XBUTTONUP = $020C;
  2175. {$EXTERNALSYM WM_XBUTTONUP}
  2176. WM_XBUTTONDBLCLK = $020D;
  2177. {$EXTERNALSYM WM_XBUTTONDBLCLK}
  2178. {$IFDEF WIN2000_UP}
  2179. WM_MOUSELAST = $020D;
  2180. {$EXTERNALSYM WM_MOUSELAST}
  2181. {$ELSE}
  2182. {$IFDEF WINNT4}
  2183. WM_MOUSELAST = $020A;
  2184. {$EXTERNALSYM WM_MOUSELAST}
  2185. {$ELSE}
  2186. {$IFDEF WIN95_UP}
  2187. WM_MOUSELAST = $020A;
  2188. {$EXTERNALSYM WM_MOUSELAST}
  2189. {$ELSE}
  2190. WM_MOUSELAST = $0209;
  2191. {$EXTERNALSYM WM_MOUSELAST}
  2192. {$ENDIF WIN95_UP}
  2193. {$ENDIF WINNT4}
  2194. {$ENDIF WIN2000_UP}
  2195. // Value for rolling one detent//
  2196. WHEEL_DELTA = 120;
  2197. {$EXTERNALSYM WHEEL_DELTA}
  2198. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  2199. {$EXTERNALSYM GET_WHEEL_DELTA_WPARAM(wParam)}
  2200. // Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES//
  2201. const
  2202. WHEEL_PAGESCROLL = UINT_MAX;
  2203. {$EXTERNALSYM WHEEL_PAGESCROLL}
  2204. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  2205. {$EXTERNALSYM GET_KEYSTATE_WPARAM}
  2206. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  2207. {$EXTERNALSYM GET_NCHITTEST_WPARAM}
  2208. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  2209. {$EXTERNALSYM GET_XBUTTON_WPARAM}
  2210. // XButton values are WORD flags//
  2211. const
  2212. XBUTTON1 = $0001;
  2213. {$EXTERNALSYM XBUTTON1}
  2214. XBUTTON2 = $0002;
  2215. {$EXTERNALSYM XBUTTON2}
  2216. // Were there to be an XBUTTON3, it's value would be 0x0004//
  2217. WM_PARENTNOTIFY = $0210;
  2218. {$EXTERNALSYM WM_PARENTNOTIFY}
  2219. WM_ENTERMENULOOP = $0211;
  2220. {$EXTERNALSYM WM_ENTERMENULOOP}
  2221. WM_EXITMENULOOP = $0212;
  2222. {$EXTERNALSYM WM_EXITMENULOOP}
  2223. WM_NEXTMENU = $0213;
  2224. {$EXTERNALSYM WM_NEXTMENU}
  2225. WM_SIZING = $0214;
  2226. {$EXTERNALSYM WM_SIZING}
  2227. WM_CAPTURECHANGED = $0215;
  2228. {$EXTERNALSYM WM_CAPTURECHANGED}
  2229. WM_MOVING = $0216;
  2230. {$EXTERNALSYM WM_MOVING}
  2231. WM_POWERBROADCAST = $0218;
  2232. {$EXTERNALSYM WM_POWERBROADCAST}
  2233. PBT_APMQUERYSUSPEND = $0000;
  2234. {$EXTERNALSYM PBT_APMQUERYSUSPEND}
  2235. PBT_APMQUERYSTANDBY = $0001;
  2236. {$EXTERNALSYM PBT_APMQUERYSTANDBY}
  2237. PBT_APMQUERYSUSPENDFAILED = $0002;
  2238. {$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED}
  2239. PBT_APMQUERYSTANDBYFAILED = $0003;
  2240. {$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED}
  2241. PBT_APMSUSPEND = $0004;
  2242. {$EXTERNALSYM PBT_APMSUSPEND}
  2243. PBT_APMSTANDBY = $0005;
  2244. {$EXTERNALSYM PBT_APMSTANDBY}
  2245. PBT_APMRESUMECRITICAL = $0006;
  2246. {$EXTERNALSYM PBT_APMRESUMECRITICAL}
  2247. PBT_APMRESUMESUSPEND = $0007;
  2248. {$EXTERNALSYM PBT_APMRESUMESUSPEND}
  2249. PBT_APMRESUMESTANDBY = $0008;
  2250. {$EXTERNALSYM PBT_APMRESUMESTANDBY}
  2251. PBTF_APMRESUMEFROMFAILURE = $00000001;
  2252. {$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE}
  2253. PBT_APMBATTERYLOW = $0009;
  2254. {$EXTERNALSYM PBT_APMBATTERYLOW}
  2255. PBT_APMPOWERSTATUSCHANGE = $000A;
  2256. {$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE}
  2257. PBT_APMOEMEVENT = $000B;
  2258. {$EXTERNALSYM PBT_APMOEMEVENT}
  2259. PBT_APMRESUMEAUTOMATIC = $0012;
  2260. {$EXTERNALSYM PBT_APMRESUMEAUTOMATIC}
  2261. WM_DEVICECHANGE = $0219;
  2262. {$EXTERNALSYM WM_DEVICECHANGE}
  2263. WM_MDICREATE = $0220;
  2264. {$EXTERNALSYM WM_MDICREATE}
  2265. WM_MDIDESTROY = $0221;
  2266. {$EXTERNALSYM WM_MDIDESTROY}
  2267. WM_MDIACTIVATE = $0222;
  2268. {$EXTERNALSYM WM_MDIACTIVATE}
  2269. WM_MDIRESTORE = $0223;
  2270. {$EXTERNALSYM WM_MDIRESTORE}
  2271. WM_MDINEXT = $0224;
  2272. {$EXTERNALSYM WM_MDINEXT}
  2273. WM_MDIMAXIMIZE = $0225;
  2274. {$EXTERNALSYM WM_MDIMAXIMIZE}
  2275. WM_MDITILE = $0226;
  2276. {$EXTERNALSYM WM_MDITILE}
  2277. WM_MDICASCADE = $0227;
  2278. {$EXTERNALSYM WM_MDICASCADE}
  2279. WM_MDIICONARRANGE = $0228;
  2280. {$EXTERNALSYM WM_MDIICONARRANGE}
  2281. WM_MDIGETACTIVE = $0229;
  2282. {$EXTERNALSYM WM_MDIGETACTIVE}
  2283. WM_MDISETMENU = $0230;
  2284. {$EXTERNALSYM WM_MDISETMENU}
  2285. WM_ENTERSIZEMOVE = $0231;
  2286. {$EXTERNALSYM WM_ENTERSIZEMOVE}
  2287. WM_EXITSIZEMOVE = $0232;
  2288. {$EXTERNALSYM WM_EXITSIZEMOVE}
  2289. WM_DROPFILES = $0233;
  2290. {$EXTERNALSYM WM_DROPFILES}
  2291. WM_MDIREFRESHMENU = $0234;
  2292. {$EXTERNALSYM WM_MDIREFRESHMENU}
  2293. WM_IME_SETCONTEXT = $0281;
  2294. {$EXTERNALSYM WM_IME_SETCONTEXT}
  2295. WM_IME_NOTIFY = $0282;
  2296. {$EXTERNALSYM WM_IME_NOTIFY}
  2297. WM_IME_CONTROL = $0283;
  2298. {$EXTERNALSYM WM_IME_CONTROL}
  2299. WM_IME_COMPOSITIONFULL = $0284;
  2300. {$EXTERNALSYM WM_IME_COMPOSITIONFULL}
  2301. WM_IME_SELECT = $0285;
  2302. {$EXTERNALSYM WM_IME_SELECT}
  2303. WM_IME_CHAR = $0286;
  2304. {$EXTERNALSYM WM_IME_CHAR}
  2305. WM_IME_REQUEST = $0288;
  2306. {$EXTERNALSYM WM_IME_REQUEST}
  2307. WM_IME_KEYDOWN = $0290;
  2308. {$EXTERNALSYM WM_IME_KEYDOWN}
  2309. WM_IME_KEYUP = $0291;
  2310. {$EXTERNALSYM WM_IME_KEYUP}
  2311. WM_MOUSEHOVER = $02A1;
  2312. {$EXTERNALSYM WM_MOUSEHOVER}
  2313. WM_MOUSELEAVE = $02A3;
  2314. {$EXTERNALSYM WM_MOUSELEAVE}
  2315. WM_NCMOUSEHOVER = $02A0;
  2316. {$EXTERNALSYM WM_NCMOUSEHOVER}
  2317. WM_NCMOUSELEAVE = $02A2;
  2318. {$EXTERNALSYM WM_NCMOUSELEAVE}
  2319. WM_WTSSESSION_CHANGE = $02B1;
  2320. {$EXTERNALSYM WM_WTSSESSION_CHANGE}
  2321. WM_TABLET_FIRST = $02c0;
  2322. {$EXTERNALSYM WM_TABLET_FIRST}
  2323. WM_TABLET_LAST = $02df;
  2324. {$EXTERNALSYM WM_TABLET_LAST}
  2325. WM_CUT = $0300;
  2326. {$EXTERNALSYM WM_CUT}
  2327. WM_COPY = $0301;
  2328. {$EXTERNALSYM WM_COPY}
  2329. WM_PASTE = $0302;
  2330. {$EXTERNALSYM WM_PASTE}
  2331. WM_CLEAR = $0303;
  2332. {$EXTERNALSYM WM_CLEAR}
  2333. WM_UNDO = $0304;
  2334. {$EXTERNALSYM WM_UNDO}
  2335. WM_RENDERFORMAT = $0305;
  2336. {$EXTERNALSYM WM_RENDERFORMAT}
  2337. WM_RENDERALLFORMATS = $0306;
  2338. {$EXTERNALSYM WM_RENDERALLFORMATS}
  2339. WM_DESTROYCLIPBOARD = $0307;
  2340. {$EXTERNALSYM WM_DESTROYCLIPBOARD}
  2341. WM_DRAWCLIPBOARD = $0308;
  2342. {$EXTERNALSYM WM_DRAWCLIPBOARD}
  2343. WM_PAINTCLIPBOARD = $0309;
  2344. {$EXTERNALSYM WM_PAINTCLIPBOARD}
  2345. WM_VSCROLLCLIPBOARD = $030A;
  2346. {$EXTERNALSYM WM_VSCROLLCLIPBOARD}
  2347. WM_SIZECLIPBOARD = $030B;
  2348. {$EXTERNALSYM WM_SIZECLIPBOARD}
  2349. WM_ASKCBFORMATNAME = $030C;
  2350. {$EXTERNALSYM WM_ASKCBFORMATNAME}
  2351. WM_CHANGECBCHAIN = $030D;
  2352. {$EXTERNALSYM WM_CHANGECBCHAIN}
  2353. WM_HSCROLLCLIPBOARD = $030E;
  2354. {$EXTERNALSYM WM_HSCROLLCLIPBOARD}
  2355. WM_QUERYNEWPALETTE = $030F;
  2356. {$EXTERNALSYM WM_QUERYNEWPALETTE}
  2357. WM_PALETTEISCHANGING = $0310;
  2358. {$EXTERNALSYM WM_PALETTEISCHANGING}
  2359. WM_PALETTECHANGED = $0311;
  2360. {$EXTERNALSYM WM_PALETTECHANGED}
  2361. WM_HOTKEY = $0312;
  2362. {$EXTERNALSYM WM_HOTKEY}
  2363. WM_PRINT = $0317;
  2364. {$EXTERNALSYM WM_PRINT}
  2365. WM_PRINTCLIENT = $0318;
  2366. {$EXTERNALSYM WM_PRINTCLIENT}
  2367. WM_APPCOMMAND = $0319;
  2368. {$EXTERNALSYM WM_APPCOMMAND}
  2369. WM_THEMECHANGED = $031A;
  2370. {$EXTERNALSYM WM_THEMECHANGED}
  2371. WM_HANDHELDFIRST = $0358;
  2372. {$EXTERNALSYM WM_HANDHELDFIRST}
  2373. WM_HANDHELDLAST = $035F;
  2374. {$EXTERNALSYM WM_HANDHELDLAST}
  2375. WM_AFXFIRST = $0360;
  2376. {$EXTERNALSYM WM_AFXFIRST}
  2377. WM_AFXLAST = $037F;
  2378. {$EXTERNALSYM WM_AFXLAST}
  2379. WM_PENWINFIRST = $0380;
  2380. {$EXTERNALSYM WM_PENWINFIRST}
  2381. WM_PENWINLAST = $038F;
  2382. {$EXTERNALSYM WM_PENWINLAST}
  2383. WM_APP = $8000;
  2384. {$EXTERNALSYM WM_APP}
  2385. //
  2386. // NOTE: All Message Numbers below 0x0400 are RESERVED.
  2387. //
  2388. // Private Window Messages Start Here:
  2389. //
  2390. WM_USER = $0400;
  2391. {$EXTERNALSYM WM_USER}
  2392. // wParam for WM_SIZING message
  2393. WMSZ_LEFT = 1;
  2394. {$EXTERNALSYM WMSZ_LEFT}
  2395. WMSZ_RIGHT = 2;
  2396. {$EXTERNALSYM WMSZ_RIGHT}
  2397. WMSZ_TOP = 3;
  2398. {$EXTERNALSYM WMSZ_TOP}
  2399. WMSZ_TOPLEFT = 4;
  2400. {$EXTERNALSYM WMSZ_TOPLEFT}
  2401. WMSZ_TOPRIGHT = 5;
  2402. {$EXTERNALSYM WMSZ_TOPRIGHT}
  2403. WMSZ_BOTTOM = 6;
  2404. {$EXTERNALSYM WMSZ_BOTTOM}
  2405. WMSZ_BOTTOMLEFT = 7;
  2406. {$EXTERNALSYM WMSZ_BOTTOMLEFT}
  2407. WMSZ_BOTTOMRIGHT = 8;
  2408. {$EXTERNALSYM WMSZ_BOTTOMRIGHT}
  2409. //
  2410. // WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
  2411. //
  2412. HTERROR = DWORD(-2);
  2413. {$EXTERNALSYM HTERROR}
  2414. HTTRANSPARENT = DWORD(-1);
  2415. {$EXTERNALSYM HTTRANSPARENT}
  2416. HTNOWHERE = 0;
  2417. {$EXTERNALSYM HTNOWHERE}
  2418. HTCLIENT = 1;
  2419. {$EXTERNALSYM HTCLIENT}
  2420. HTCAPTION = 2;
  2421. {$EXTERNALSYM HTCAPTION}
  2422. HTSYSMENU = 3;
  2423. {$EXTERNALSYM HTSYSMENU}
  2424. HTGROWBOX = 4;
  2425. {$EXTERNALSYM HTGROWBOX}
  2426. HTSIZE = HTGROWBOX;
  2427. {$EXTERNALSYM HTSIZE}
  2428. HTMENU = 5;
  2429. {$EXTERNALSYM HTMENU}
  2430. HTHSCROLL = 6;
  2431. {$EXTERNALSYM HTHSCROLL}
  2432. HTVSCROLL = 7;
  2433. {$EXTERNALSYM HTVSCROLL}
  2434. HTMINBUTTON = 8;
  2435. {$EXTERNALSYM HTMINBUTTON}
  2436. HTMAXBUTTON = 9;
  2437. {$EXTERNALSYM HTMAXBUTTON}
  2438. HTLEFT = 10;
  2439. {$EXTERNALSYM HTLEFT}
  2440. HTRIGHT = 11;
  2441. {$EXTERNALSYM HTRIGHT}
  2442. HTTOP = 12;
  2443. {$EXTERNALSYM HTTOP}
  2444. HTTOPLEFT = 13;
  2445. {$EXTERNALSYM HTTOPLEFT}
  2446. HTTOPRIGHT = 14;
  2447. {$EXTERNALSYM HTTOPRIGHT}
  2448. HTBOTTOM = 15;
  2449. {$EXTERNALSYM HTBOTTOM}
  2450. HTBOTTOMLEFT = 16;
  2451. {$EXTERNALSYM HTBOTTOMLEFT}
  2452. HTBOTTOMRIGHT = 17;
  2453. {$EXTERNALSYM HTBOTTOMRIGHT}
  2454. HTBORDER = 18;
  2455. {$EXTERNALSYM HTBORDER}
  2456. HTREDUCE = HTMINBUTTON;
  2457. {$EXTERNALSYM HTREDUCE}
  2458. HTZOOM = HTMAXBUTTON;
  2459. {$EXTERNALSYM HTZOOM}
  2460. HTSIZEFIRST = HTLEFT;
  2461. {$EXTERNALSYM HTSIZEFIRST}
  2462. HTSIZELAST = HTBOTTOMRIGHT;
  2463. {$EXTERNALSYM HTSIZELAST}
  2464. HTOBJECT = 19;
  2465. {$EXTERNALSYM HTOBJECT}
  2466. HTCLOSE = 20;
  2467. {$EXTERNALSYM HTCLOSE}
  2468. HTHELP = 21;
  2469. {$EXTERNALSYM HTHELP}
  2470. //
  2471. // SendMessageTimeout values
  2472. //
  2473. SMTO_NORMAL = $0000;
  2474. {$EXTERNALSYM SMTO_NORMAL}
  2475. SMTO_BLOCK = $0001;
  2476. {$EXTERNALSYM SMTO_BLOCK}
  2477. SMTO_ABORTIFHUNG = $0002;
  2478. {$EXTERNALSYM SMTO_ABORTIFHUNG}
  2479. SMTO_NOTIMEOUTIFNOTHUNG = $0008;
  2480. {$EXTERNALSYM SMTO_NOTIMEOUTIFNOTHUNG}
  2481. //
  2482. // WM_MOUSEACTIVATE Return Codes
  2483. //
  2484. MA_ACTIVATE = 1;
  2485. {$EXTERNALSYM MA_ACTIVATE}
  2486. MA_ACTIVATEANDEAT = 2;
  2487. {$EXTERNALSYM MA_ACTIVATEANDEAT}
  2488. MA_NOACTIVATE = 3;
  2489. {$EXTERNALSYM MA_NOACTIVATE}
  2490. MA_NOACTIVATEANDEAT = 4;
  2491. {$EXTERNALSYM MA_NOACTIVATEANDEAT}
  2492. //
  2493. // WM_SETICON / WM_GETICON Type Codes
  2494. //
  2495. ICON_SMALL = 0;
  2496. {$EXTERNALSYM ICON_SMALL}
  2497. ICON_BIG = 1;
  2498. {$EXTERNALSYM ICON_BIG}
  2499. ICON_SMALL2 = 2;
  2500. {$EXTERNALSYM ICON_SMALL2}
  2501. function RegisterWindowMessageA(lpString: LPCSTR): UINT; stdcall;
  2502. {$EXTERNALSYM RegisterWindowMessageA}
  2503. function RegisterWindowMessageW(lpString: LPCWSTR): UINT; stdcall;
  2504. {$EXTERNALSYM RegisterWindowMessageW}
  2505. function RegisterWindowMessage(lpString: LPCTSTR): UINT; stdcall;
  2506. {$EXTERNALSYM RegisterWindowMessage}
  2507. //
  2508. // WM_SIZE message wParam values
  2509. //
  2510. const
  2511. SIZE_RESTORED = 0;
  2512. {$EXTERNALSYM SIZE_RESTORED}
  2513. SIZE_MINIMIZED = 1;
  2514. {$EXTERNALSYM SIZE_MINIMIZED}
  2515. SIZE_MAXIMIZED = 2;
  2516. {$EXTERNALSYM SIZE_MAXIMIZED}
  2517. SIZE_MAXSHOW = 3;
  2518. {$EXTERNALSYM SIZE_MAXSHOW}
  2519. SIZE_MAXHIDE = 4;
  2520. {$EXTERNALSYM SIZE_MAXHIDE}
  2521. //
  2522. // Obsolete constant names
  2523. //
  2524. SIZENORMAL = SIZE_RESTORED;
  2525. {$EXTERNALSYM SIZENORMAL}
  2526. SIZEICONIC = SIZE_MINIMIZED;
  2527. {$EXTERNALSYM SIZEICONIC}
  2528. SIZEFULLSCREEN = SIZE_MAXIMIZED;
  2529. {$EXTERNALSYM SIZEFULLSCREEN}
  2530. SIZEZOOMSHOW = SIZE_MAXSHOW;
  2531. {$EXTERNALSYM SIZEZOOMSHOW}
  2532. SIZEZOOMHIDE = SIZE_MAXHIDE;
  2533. {$EXTERNALSYM SIZEZOOMHIDE}
  2534. //
  2535. // WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
  2536. //
  2537. type
  2538. LPWINDOWPOS = ^WINDOWPOS;
  2539. {$EXTERNALSYM LPWINDOWPOS}
  2540. tagWINDOWPOS = record
  2541. hwnd: HWND;
  2542. hwndInsertAfter: HWND;
  2543. x: Integer;
  2544. y: Integer;
  2545. cx: Integer;
  2546. cy: Integer;
  2547. flags: UINT;
  2548. end;
  2549. {$EXTERNALSYM tagWINDOWPOS}
  2550. WINDOWPOS = tagWINDOWPOS;
  2551. {$EXTERNALSYM WINDOWPOS}
  2552. TWindowPos = WINDOWPOS;
  2553. PWindowPos = LPWINDOWPOS;
  2554. //
  2555. // WM_NCCALCSIZE parameter structure
  2556. //
  2557. LPNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS;
  2558. {$EXTERNALSYM LPNCCALCSIZE_PARAMS}
  2559. NCCALCSIZE_PARAMS = record
  2560. rgrc: array [0..2] of RECT;
  2561. lppos: PWINDOWPOS;
  2562. end;
  2563. {$EXTERNALSYM NCCALCSIZE_PARAMS}
  2564. TNcCalcSizeParams = NCCALCSIZE_PARAMS;
  2565. PNcCalcSizeParams = LPNCCALCSIZE_PARAMS;
  2566. //
  2567. // WM_NCCALCSIZE "window valid rect" return values
  2568. //
  2569. const
  2570. WVR_ALIGNTOP = $0010;
  2571. {$EXTERNALSYM WVR_ALIGNTOP}
  2572. WVR_ALIGNLEFT = $0020;
  2573. {$EXTERNALSYM WVR_ALIGNLEFT}
  2574. WVR_ALIGNBOTTOM = $0040;
  2575. {$EXTERNALSYM WVR_ALIGNBOTTOM}
  2576. WVR_ALIGNRIGHT = $0080;
  2577. {$EXTERNALSYM WVR_ALIGNRIGHT}
  2578. WVR_HREDRAW = $0100;
  2579. {$EXTERNALSYM WVR_HREDRAW}
  2580. WVR_VREDRAW = $0200;
  2581. {$EXTERNALSYM WVR_VREDRAW}
  2582. WVR_REDRAW = WVR_HREDRAW or WVR_VREDRAW;
  2583. {$EXTERNALSYM WVR_REDRAW}
  2584. WVR_VALIDRECTS = $0400;
  2585. {$EXTERNALSYM WVR_VALIDRECTS}
  2586. //
  2587. // Key State Masks for Mouse Messages
  2588. //
  2589. MK_LBUTTON = $0001;
  2590. {$EXTERNALSYM MK_LBUTTON}
  2591. MK_RBUTTON = $0002;
  2592. {$EXTERNALSYM MK_RBUTTON}
  2593. MK_SHIFT = $0004;
  2594. {$EXTERNALSYM MK_SHIFT}
  2595. MK_CONTROL = $0008;
  2596. {$EXTERNALSYM MK_CONTROL}
  2597. MK_MBUTTON = $0010;
  2598. {$EXTERNALSYM MK_MBUTTON}
  2599. MK_XBUTTON1 = $0020;
  2600. {$EXTERNALSYM MK_XBUTTON1}
  2601. MK_XBUTTON2 = $0040;
  2602. {$EXTERNALSYM MK_XBUTTON2}
  2603. TME_HOVER = $00000001;
  2604. {$EXTERNALSYM TME_HOVER}
  2605. TME_LEAVE = $00000002;
  2606. {$EXTERNALSYM TME_LEAVE}
  2607. TME_NONCLIENT = $00000010;
  2608. {$EXTERNALSYM TME_NONCLIENT}
  2609. TME_QUERY = $40000000;
  2610. {$EXTERNALSYM TME_QUERY}
  2611. TME_CANCEL = $80000000;
  2612. {$EXTERNALSYM TME_CANCEL}
  2613. HOVER_DEFAULT = $FFFFFFFF;
  2614. {$EXTERNALSYM HOVER_DEFAULT}
  2615. type
  2616. LPTRACKMOUSEEVENT = ^_TRACKMOUSEEVENT;
  2617. {$EXTERNALSYM LPTRACKMOUSEEVENT}
  2618. _TRACKMOUSEEVENT = record
  2619. cbSize: DWORD;
  2620. dwFlags: DWORD;
  2621. hwndTrack: HWND;
  2622. dwHoverTime: DWORD;
  2623. end;
  2624. //TRACKMOUSEEVENT = _TRACKMOUSEEVENT;
  2625. //{$EXTERNALSYM TRACKMOUSEEVENT}
  2626. TTrackMouseEvent = _TRACKMOUSEEVENT;
  2627. PTrackMouseEvent = LPTRACKMOUSEEVENT;
  2628. function TrackMouseEvent(var lpEventTrack: TTrackMouseEvent): BOOL; stdcall;
  2629. {$EXTERNALSYM TrackMouseEvent}
  2630. //
  2631. // Window Styles
  2632. //
  2633. const
  2634. WS_OVERLAPPED = $00000000;
  2635. {$EXTERNALSYM WS_OVERLAPPED}
  2636. WS_POPUP = $80000000;
  2637. {$EXTERNALSYM WS_POPUP}
  2638. WS_CHILD = $40000000;
  2639. {$EXTERNALSYM WS_CHILD}
  2640. WS_MINIMIZE = $20000000;
  2641. {$EXTERNALSYM WS_MINIMIZE}
  2642. WS_VISIBLE = $10000000;
  2643. {$EXTERNALSYM WS_VISIBLE}
  2644. WS_DISABLED = $08000000;
  2645. {$EXTERNALSYM WS_DISABLED}
  2646. WS_CLIPSIBLINGS = $04000000;
  2647. {$EXTERNALSYM WS_CLIPSIBLINGS}
  2648. WS_CLIPCHILDREN = $02000000;
  2649. {$EXTERNALSYM WS_CLIPCHILDREN}
  2650. WS_MAXIMIZE = $01000000;
  2651. {$EXTERNALSYM WS_MAXIMIZE}
  2652. WS_CAPTION = $00C00000; // WS_BORDER | WS_DLGFRAME
  2653. {$EXTERNALSYM WS_CAPTION}
  2654. WS_BORDER = $00800000;
  2655. {$EXTERNALSYM WS_BORDER}
  2656. WS_DLGFRAME = $00400000;
  2657. {$EXTERNALSYM WS_DLGFRAME}
  2658. WS_VSCROLL = $00200000;
  2659. {$EXTERNALSYM WS_VSCROLL}
  2660. WS_HSCROLL = $00100000;
  2661. {$EXTERNALSYM WS_HSCROLL}
  2662. WS_SYSMENU = $00080000;
  2663. {$EXTERNALSYM WS_SYSMENU}
  2664. WS_THICKFRAME = $00040000;
  2665. {$EXTERNALSYM WS_THICKFRAME}
  2666. WS_GROUP = $00020000;
  2667. {$EXTERNALSYM WS_GROUP}
  2668. WS_TABSTOP = $00010000;
  2669. {$EXTERNALSYM WS_TABSTOP}
  2670. WS_MINIMIZEBOX = $00020000;
  2671. {$EXTERNALSYM WS_MINIMIZEBOX}
  2672. WS_MAXIMIZEBOX = $00010000;
  2673. {$EXTERNALSYM WS_MAXIMIZEBOX}
  2674. WS_TILED = WS_OVERLAPPED;
  2675. {$EXTERNALSYM WS_TILED}
  2676. WS_ICONIC = WS_MINIMIZE;
  2677. {$EXTERNALSYM WS_ICONIC}
  2678. WS_SIZEBOX = WS_THICKFRAME;
  2679. {$EXTERNALSYM WS_SIZEBOX}
  2680. //
  2681. // Common Window Styles
  2682. //
  2683. WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
  2684. WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
  2685. {$EXTERNALSYM WS_OVERLAPPEDWINDOW}
  2686. WS_POPUPWINDOW = WS_POPUP or WS_BORDER or WS_SYSMENU;
  2687. {$EXTERNALSYM WS_POPUPWINDOW}
  2688. WS_CHILDWINDOW = WS_CHILD;
  2689. {$EXTERNALSYM WS_CHILDWINDOW}
  2690. WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
  2691. {$EXTERNALSYM WS_TILEDWINDOW}
  2692. //
  2693. // Extended Window Styles
  2694. //
  2695. WS_EX_DLGMODALFRAME = $00000001;
  2696. {$EXTERNALSYM WS_EX_DLGMODALFRAME}
  2697. WS_EX_NOPARENTNOTIFY = $00000004;
  2698. {$EXTERNALSYM WS_EX_NOPARENTNOTIFY}
  2699. WS_EX_TOPMOST = $00000008;
  2700. {$EXTERNALSYM WS_EX_TOPMOST}
  2701. WS_EX_ACCEPTFILES = $00000010;
  2702. {$EXTERNALSYM WS_EX_ACCEPTFILES}
  2703. WS_EX_TRANSPARENT = $00000020;
  2704. {$EXTERNALSYM WS_EX_TRANSPARENT}
  2705. WS_EX_MDICHILD = $00000040;
  2706. {$EXTERNALSYM WS_EX_MDICHILD}
  2707. WS_EX_TOOLWINDOW = $00000080;
  2708. {$EXTERNALSYM WS_EX_TOOLWINDOW}
  2709. WS_EX_WINDOWEDGE = $00000100;
  2710. {$EXTERNALSYM WS_EX_WINDOWEDGE}
  2711. WS_EX_CLIENTEDGE = $00000200;
  2712. {$EXTERNALSYM WS_EX_CLIENTEDGE}
  2713. WS_EX_CONTEXTHELP = $00000400;
  2714. {$EXTERNALSYM WS_EX_CONTEXTHELP}
  2715. WS_EX_RIGHT = $00001000;
  2716. {$EXTERNALSYM WS_EX_RIGHT}
  2717. WS_EX_LEFT = $00000000;
  2718. {$EXTERNALSYM WS_EX_LEFT}
  2719. WS_EX_RTLREADING = $00002000;
  2720. {$EXTERNALSYM WS_EX_RTLREADING}
  2721. WS_EX_LTRREADING = $00000000;
  2722. {$EXTERNALSYM WS_EX_LTRREADING}
  2723. WS_EX_LEFTSCROLLBAR = $00004000;
  2724. {$EXTERNALSYM WS_EX_LEFTSCROLLBAR}
  2725. WS_EX_RIGHTSCROLLBAR = $00000000;
  2726. {$EXTERNALSYM WS_EX_RIGHTSCROLLBAR}
  2727. WS_EX_CONTROLPARENT = $00010000;
  2728. {$EXTERNALSYM WS_EX_CONTROLPARENT}
  2729. WS_EX_STATICEDGE = $00020000;
  2730. {$EXTERNALSYM WS_EX_STATICEDGE}
  2731. WS_EX_APPWINDOW = $00040000;
  2732. {$EXTERNALSYM WS_EX_APPWINDOW}
  2733. WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE;
  2734. {$EXTERNALSYM WS_EX_OVERLAPPEDWINDOW}
  2735. WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
  2736. {$EXTERNALSYM WS_EX_PALETTEWINDOW}
  2737. WS_EX_LAYERED = $00080000;
  2738. {$EXTERNALSYM WS_EX_LAYERED}
  2739. WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
  2740. {$EXTERNALSYM WS_EX_NOINHERITLAYOUT}
  2741. WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
  2742. {$EXTERNALSYM WS_EX_LAYOUTRTL}
  2743. WS_EX_COMPOSITED = $02000000;
  2744. {$EXTERNALSYM WS_EX_COMPOSITED}
  2745. WS_EX_NOACTIVATE = $08000000;
  2746. {$EXTERNALSYM WS_EX_NOACTIVATE}
  2747. //
  2748. // Class styles
  2749. //
  2750. CS_VREDRAW = $0001;
  2751. {$EXTERNALSYM CS_VREDRAW}
  2752. CS_HREDRAW = $0002;
  2753. {$EXTERNALSYM CS_HREDRAW}
  2754. CS_DBLCLKS = $0008;
  2755. {$EXTERNALSYM CS_DBLCLKS}
  2756. CS_OWNDC = $0020;
  2757. {$EXTERNALSYM CS_OWNDC}
  2758. CS_CLASSDC = $0040;
  2759. {$EXTERNALSYM CS_CLASSDC}
  2760. CS_PARENTDC = $0080;
  2761. {$EXTERNALSYM CS_PARENTDC}
  2762. CS_NOCLOSE = $0200;
  2763. {$EXTERNALSYM CS_NOCLOSE}
  2764. CS_SAVEBITS = $0800;
  2765. {$EXTERNALSYM CS_SAVEBITS}
  2766. CS_BYTEALIGNCLIENT = $1000;
  2767. {$EXTERNALSYM CS_BYTEALIGNCLIENT}
  2768. CS_BYTEALIGNWINDOW = $2000;
  2769. {$EXTERNALSYM CS_BYTEALIGNWINDOW}
  2770. CS_GLOBALCLASS = $4000;
  2771. {$EXTERNALSYM CS_GLOBALCLASS}
  2772. CS_IME = $00010000;
  2773. {$EXTERNALSYM CS_IME}
  2774. CS_DROPSHADOW = $00020000;
  2775. {$EXTERNALSYM CS_DROPSHADOW}
  2776. // WM_PRINT flags//
  2777. PRF_CHECKVISIBLE = $00000001;
  2778. {$EXTERNALSYM PRF_CHECKVISIBLE}
  2779. PRF_NONCLIENT = $00000002;
  2780. {$EXTERNALSYM PRF_NONCLIENT}
  2781. PRF_CLIENT = $00000004;
  2782. {$EXTERNALSYM PRF_CLIENT}
  2783. PRF_ERASEBKGND = $00000008;
  2784. {$EXTERNALSYM PRF_ERASEBKGND}
  2785. PRF_CHILDREN = $00000010;
  2786. {$EXTERNALSYM PRF_CHILDREN}
  2787. PRF_OWNED = $00000020;
  2788. {$EXTERNALSYM PRF_OWNED}
  2789. // 3D border styles//
  2790. BDR_RAISEDOUTER = $0001;
  2791. {$EXTERNALSYM BDR_RAISEDOUTER}
  2792. BDR_SUNKENOUTER = $0002;
  2793. {$EXTERNALSYM BDR_SUNKENOUTER}
  2794. BDR_RAISEDINNER = $0004;
  2795. {$EXTERNALSYM BDR_RAISEDINNER}
  2796. BDR_SUNKENINNER = $0008;
  2797. {$EXTERNALSYM BDR_SUNKENINNER}
  2798. BDR_OUTER = BDR_RAISEDOUTER or BDR_SUNKENOUTER;
  2799. {$EXTERNALSYM BDR_OUTER}
  2800. BDR_INNER = BDR_RAISEDINNER or BDR_SUNKENINNER;
  2801. {$EXTERNALSYM BDR_INNER}
  2802. BDR_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2803. {$EXTERNALSYM BDR_RAISED}
  2804. BDR_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2805. {$EXTERNALSYM BDR_SUNKEN}
  2806. EDGE_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
  2807. {$EXTERNALSYM EDGE_RAISED}
  2808. EDGE_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
  2809. {$EXTERNALSYM EDGE_SUNKEN}
  2810. EDGE_ETCHED = BDR_SUNKENOUTER or BDR_RAISEDINNER;
  2811. {$EXTERNALSYM EDGE_ETCHED}
  2812. EDGE_BUMP = BDR_RAISEDOUTER or BDR_SUNKENINNER;
  2813. {$EXTERNALSYM EDGE_BUMP}
  2814. // Border flags//
  2815. BF_LEFT = $0001;
  2816. {$EXTERNALSYM BF_LEFT}
  2817. BF_TOP = $0002;
  2818. {$EXTERNALSYM BF_TOP}
  2819. BF_RIGHT = $0004;
  2820. {$EXTERNALSYM BF_RIGHT}
  2821. BF_BOTTOM = $0008;
  2822. {$EXTERNALSYM BF_BOTTOM}
  2823. BF_TOPLEFT = BF_TOP or BF_LEFT;
  2824. {$EXTERNALSYM BF_TOPLEFT}
  2825. BF_TOPRIGHT = BF_TOP or BF_RIGHT;
  2826. {$EXTERNALSYM BF_TOPRIGHT}
  2827. BF_BOTTOMLEFT = BF_BOTTOM or BF_LEFT;
  2828. {$EXTERNALSYM BF_BOTTOMLEFT}
  2829. BF_BOTTOMRIGHT = BF_BOTTOM or BF_RIGHT;
  2830. {$EXTERNALSYM BF_BOTTOMRIGHT}
  2831. BF_RECT = BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM;
  2832. {$EXTERNALSYM BF_RECT}
  2833. BF_DIAGONAL = $0010;
  2834. {$EXTERNALSYM BF_DIAGONAL}
  2835. // For diagonal lines, the BF_RECT flags specify the end point of the
  2836. // vector bounded by the rectangle parameter.
  2837. BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL or BF_TOP or BF_RIGHT;
  2838. {$EXTERNALSYM BF_DIAGONAL_ENDTOPRIGHT}
  2839. BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL or BF_TOP or BF_LEFT;
  2840. {$EXTERNALSYM BF_DIAGONAL_ENDTOPLEFT}
  2841. BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL or BF_BOTTOM or BF_LEFT;
  2842. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMLEFT}
  2843. BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL or BF_BOTTOM or BF_RIGHT;
  2844. {$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMRIGHT}
  2845. BF_MIDDLE = $0800; // Fill in the middle
  2846. {$EXTERNALSYM BF_MIDDLE}
  2847. BF_SOFT = $1000; // For softer buttons
  2848. {$EXTERNALSYM BF_SOFT}
  2849. BF_ADJUST = $2000; // Calculate the space left over
  2850. {$EXTERNALSYM BF_ADJUST}
  2851. BF_FLAT = $4000; // For flat rather than 3D borders
  2852. {$EXTERNALSYM BF_FLAT}
  2853. BF_MONO = $8000; // For monochrome borders
  2854. {$EXTERNALSYM BF_MONO}
  2855. function DrawEdge(hdc: HDC; var qrc: RECT; edge, grfFlags: UINT): BOOL; stdcall;
  2856. {$EXTERNALSYM DrawEdge}
  2857. // flags for DrawFrameControl//
  2858. const
  2859. DFC_CAPTION = 1;
  2860. {$EXTERNALSYM DFC_CAPTION}
  2861. DFC_MENU = 2;
  2862. {$EXTERNALSYM DFC_MENU}
  2863. DFC_SCROLL = 3;
  2864. {$EXTERNALSYM DFC_SCROLL}
  2865. DFC_BUTTON = 4;
  2866. {$EXTERNALSYM DFC_BUTTON}
  2867. DFC_POPUPMENU = 5;
  2868. {$EXTERNALSYM DFC_POPUPMENU}
  2869. DFCS_CAPTIONCLOSE = $0000;
  2870. {$EXTERNALSYM DFCS_CAPTIONCLOSE}
  2871. DFCS_CAPTIONMIN = $0001;
  2872. {$EXTERNALSYM DFCS_CAPTIONMIN}
  2873. DFCS_CAPTIONMAX = $0002;
  2874. {$EXTERNALSYM DFCS_CAPTIONMAX}
  2875. DFCS_CAPTIONRESTORE = $0003;
  2876. {$EXTERNALSYM DFCS_CAPTIONRESTORE}
  2877. DFCS_CAPTIONHELP = $0004;
  2878. {$EXTERNALSYM DFCS_CAPTIONHELP}
  2879. DFCS_MENUARROW = $0000;
  2880. {$EXTERNALSYM DFCS_MENUARROW}
  2881. DFCS_MENUCHECK = $0001;
  2882. {$EXTERNALSYM DFCS_MENUCHECK}
  2883. DFCS_MENUBULLET = $0002;
  2884. {$EXTERNALSYM DFCS_MENUBULLET}
  2885. DFCS_MENUARROWRIGHT = $0004;
  2886. {$EXTERNALSYM DFCS_MENUARROWRIGHT}
  2887. DFCS_SCROLLUP = $0000;
  2888. {$EXTERNALSYM DFCS_SCROLLUP}
  2889. DFCS_SCROLLDOWN = $0001;
  2890. {$EXTERNALSYM DFCS_SCROLLDOWN}
  2891. DFCS_SCROLLLEFT = $0002;
  2892. {$EXTERNALSYM DFCS_SCROLLLEFT}
  2893. DFCS_SCROLLRIGHT = $0003;
  2894. {$EXTERNALSYM DFCS_SCROLLRIGHT}
  2895. DFCS_SCROLLCOMBOBOX = $0005;
  2896. {$EXTERNALSYM DFCS_SCROLLCOMBOBOX}
  2897. DFCS_SCROLLSIZEGRIP = $0008;
  2898. {$EXTERNALSYM DFCS_SCROLLSIZEGRIP}
  2899. DFCS_SCROLLSIZEGRIPRIGHT = $0010;
  2900. {$EXTERNALSYM DFCS_SCROLLSIZEGRIPRIGHT}
  2901. DFCS_BUTTONCHECK = $0000;
  2902. {$EXTERNALSYM DFCS_BUTTONCHECK}
  2903. DFCS_BUTTONRADIOIMAGE = $0001;
  2904. {$EXTERNALSYM DFCS_BUTTONRADIOIMAGE}
  2905. DFCS_BUTTONRADIOMASK = $0002;
  2906. {$EXTERNALSYM DFCS_BUTTONRADIOMASK}
  2907. DFCS_BUTTONRADIO = $0004;
  2908. {$EXTERNALSYM DFCS_BUTTONRADIO}
  2909. DFCS_BUTTON3STATE = $0008;
  2910. {$EXTERNALSYM DFCS_BUTTON3STATE}
  2911. DFCS_BUTTONPUSH = $0010;
  2912. {$EXTERNALSYM DFCS_BUTTONPUSH}
  2913. DFCS_INACTIVE = $0100;
  2914. {$EXTERNALSYM DFCS_INACTIVE}
  2915. DFCS_PUSHED = $0200;
  2916. {$EXTERNALSYM DFCS_PUSHED}
  2917. DFCS_CHECKED = $0400;
  2918. {$EXTERNALSYM DFCS_CHECKED}
  2919. DFCS_TRANSPARENT = $0800;
  2920. {$EXTERNALSYM DFCS_TRANSPARENT}
  2921. DFCS_HOT = $1000;
  2922. {$EXTERNALSYM DFCS_HOT}
  2923. DFCS_ADJUSTRECT = $2000;
  2924. {$EXTERNALSYM DFCS_ADJUSTRECT}
  2925. DFCS_FLAT = $4000;
  2926. {$EXTERNALSYM DFCS_FLAT}
  2927. DFCS_MONO = $8000;
  2928. {$EXTERNALSYM DFCS_MONO}
  2929. function DrawFrameControl(hdc: HDC; const lprc: RECT; uType, uState: UINT): BOOL; stdcall;
  2930. {$EXTERNALSYM DrawFrameControl}
  2931. // flags for DrawCaption//
  2932. const
  2933. DC_ACTIVE = $0001;
  2934. {$EXTERNALSYM DC_ACTIVE}
  2935. DC_SMALLCAP = $0002;
  2936. {$EXTERNALSYM DC_SMALLCAP}
  2937. DC_ICON = $0004;
  2938. {$EXTERNALSYM DC_ICON}
  2939. DC_TEXT = $0008;
  2940. {$EXTERNALSYM DC_TEXT}
  2941. DC_INBUTTON = $0010;
  2942. {$EXTERNALSYM DC_INBUTTON}
  2943. DC_GRADIENT = $0020;
  2944. {$EXTERNALSYM DC_GRADIENT}
  2945. DC_BUTTONS = $1000;
  2946. {$EXTERNALSYM DC_BUTTONS}
  2947. function DrawCaption(hwnd: HWND; hdc: HDC; const lprc: RECT; uFlags: UINT): BOOL; stdcall;
  2948. {$EXTERNALSYM DrawCaption}
  2949. const
  2950. IDANI_OPEN = 1;
  2951. {$EXTERNALSYM IDANI_OPEN}
  2952. IDANI_CAPTION = 3;
  2953. {$EXTERNALSYM IDANI_CAPTION}
  2954. function DrawAnimatedRects(hwnd: HWND; idAni: Integer; const lprcFrom, lprcTo: RECT): BOOL; stdcall;
  2955. {$EXTERNALSYM DrawAnimatedRects}
  2956. //
  2957. // Predefined Clipboard Formats
  2958. //
  2959. const
  2960. CF_TEXT = 1;
  2961. {$EXTERNALSYM CF_TEXT}
  2962. CF_BITMAP = 2;
  2963. {$EXTERNALSYM CF_BITMAP}
  2964. CF_METAFILEPICT = 3;
  2965. {$EXTERNALSYM CF_METAFILEPICT}
  2966. CF_SYLK = 4;
  2967. {$EXTERNALSYM CF_SYLK}
  2968. CF_DIF = 5;
  2969. {$EXTERNALSYM CF_DIF}
  2970. CF_TIFF = 6;
  2971. {$EXTERNALSYM CF_TIFF}
  2972. CF_OEMTEXT = 7;
  2973. {$EXTERNALSYM CF_OEMTEXT}
  2974. CF_DIB = 8;
  2975. {$EXTERNALSYM CF_DIB}
  2976. CF_PALETTE = 9;
  2977. {$EXTERNALSYM CF_PALETTE}
  2978. CF_PENDATA = 10;
  2979. {$EXTERNALSYM CF_PENDATA}
  2980. CF_RIFF = 11;
  2981. {$EXTERNALSYM CF_RIFF}
  2982. CF_WAVE = 12;
  2983. {$EXTERNALSYM CF_WAVE}
  2984. CF_UNICODETEXT = 13;
  2985. {$EXTERNALSYM CF_UNICODETEXT}
  2986. CF_ENHMETAFILE = 14;
  2987. {$EXTERNALSYM CF_ENHMETAFILE}
  2988. CF_HDROP = 15;
  2989. {$EXTERNALSYM CF_HDROP}
  2990. CF_LOCALE = 16;
  2991. {$EXTERNALSYM CF_LOCALE}
  2992. CF_DIBV5 = 17;
  2993. {$EXTERNALSYM CF_DIBV5}
  2994. {$IFDEF WIN98ME_UP}
  2995. CF_MAX = 18;
  2996. {$EXTERNALSYM CF_MAX}
  2997. {$ELSE}
  2998. CF_MAX = 17;
  2999. {$EXTERNALSYM CF_MAX}
  3000. {$ENDIF WIN98ME_UP}
  3001. CF_OWNERDISPLAY = $0080;
  3002. {$EXTERNALSYM CF_OWNERDISPLAY}
  3003. CF_DSPTEXT = $0081;
  3004. {$EXTERNALSYM CF_DSPTEXT}
  3005. CF_DSPBITMAP = $0082;
  3006. {$EXTERNALSYM CF_DSPBITMAP}
  3007. CF_DSPMETAFILEPICT = $0083;
  3008. {$EXTERNALSYM CF_DSPMETAFILEPICT}
  3009. CF_DSPENHMETAFILE = $008E;
  3010. {$EXTERNALSYM CF_DSPENHMETAFILE}
  3011. //
  3012. // "Private" formats don't get GlobalFree()'d
  3013. //
  3014. CF_PRIVATEFIRST = $0200;
  3015. {$EXTERNALSYM CF_PRIVATEFIRST}
  3016. CF_PRIVATELAST = $02FF;
  3017. {$EXTERNALSYM CF_PRIVATELAST}
  3018. //
  3019. // "GDIOBJ" formats do get DeleteObject()'d
  3020. //
  3021. CF_GDIOBJFIRST = $0300;
  3022. {$EXTERNALSYM CF_GDIOBJFIRST}
  3023. CF_GDIOBJLAST = $03FF;
  3024. {$EXTERNALSYM CF_GDIOBJLAST}
  3025. //
  3026. // Defines for the fVirt field of the Accelerator table structure.
  3027. //
  3028. FVIRTKEY = TRUE; // Assumed to be == TRUE
  3029. {$EXTERNALSYM FVIRTKEY}
  3030. FNOINVERT = $02;
  3031. {$EXTERNALSYM FNOINVERT}
  3032. FSHIFT = $04;
  3033. {$EXTERNALSYM FSHIFT}
  3034. FCONTROL = $08;
  3035. {$EXTERNALSYM FCONTROL}
  3036. FALT = $10;
  3037. {$EXTERNALSYM FALT}
  3038. type
  3039. LPACCEL = ^ACCEL;
  3040. {$EXTERNALSYM LPACCEL}
  3041. tagACCEL = record
  3042. fVirt: BYTE; // Also called the flags field//
  3043. key: WORD;
  3044. cmd: WORD;
  3045. end;
  3046. {$EXTERNALSYM tagACCEL}
  3047. ACCEL = tagACCEL;
  3048. {$EXTERNALSYM ACCEL}
  3049. TAccel = ACCEL;
  3050. PAccel = LPACCEL;
  3051. LPPAINTSTRUCT = ^PAINTSTRUCT;
  3052. {$EXTERNALSYM LPPAINTSTRUCT}
  3053. tagPAINTSTRUCT = record
  3054. hdc: HDC;
  3055. fErase: BOOL;
  3056. rcPaint: RECT;
  3057. fRestore: BOOL;
  3058. fIncUpdate: BOOL;
  3059. rgbReserved: array [0..31] of BYTE;
  3060. end;
  3061. {$EXTERNALSYM tagPAINTSTRUCT}
  3062. PAINTSTRUCT = tagPAINTSTRUCT;
  3063. {$EXTERNALSYM PAINTSTRUCT}
  3064. NPPAINTSTRUCT = ^PAINTSTRUCT;
  3065. {$EXTERNALSYM NPPAINTSTRUCT}
  3066. TPaintStruct = PAINTSTRUCT;
  3067. PPaintStruct = LPPAINTSTRUCT;
  3068. LPCREATESTRUCTA = ^CREATESTRUCTA;
  3069. {$EXTERNALSYM LPCREATESTRUCTA}
  3070. tagCREATESTRUCTA = record
  3071. lpCreateParams: LPVOID;
  3072. hInstance: HINST;
  3073. hMenu: HMENU;
  3074. hwndParent: HWND;
  3075. cy: Integer;
  3076. cx: Integer;
  3077. y: Integer;
  3078. x: Integer;
  3079. style: LONG;
  3080. lpszName: LPCSTR;
  3081. lpszClass: LPCSTR;
  3082. dwExStyle: DWORD;
  3083. end;
  3084. {$EXTERNALSYM tagCREATESTRUCTA}
  3085. CREATESTRUCTA = tagCREATESTRUCTA;
  3086. {$EXTERNALSYM CREATESTRUCTA}
  3087. TCreateStructA = CREATESTRUCTA;
  3088. PCreateStructA = LPCREATESTRUCTA;
  3089. LPCREATESTRUCTW = ^CREATESTRUCTW;
  3090. {$EXTERNALSYM LPCREATESTRUCTW}
  3091. tagCREATESTRUCTW = record
  3092. lpCreateParams: LPVOID;
  3093. hInstance: HINST;
  3094. hMenu: HMENU;
  3095. hwndParent: HWND;
  3096. cy: Integer;
  3097. cx: Integer;
  3098. y: Integer;
  3099. x: Integer;
  3100. style: LONG;
  3101. lpszName: LPCWSTR;
  3102. lpszClass: LPCWSTR;
  3103. dwExStyle: DWORD;
  3104. end;
  3105. {$EXTERNALSYM tagCREATESTRUCTW}
  3106. CREATESTRUCTW = tagCREATESTRUCTW;
  3107. {$EXTERNALSYM CREATESTRUCTW}
  3108. TCreateStructW = CREATESTRUCTW;
  3109. PCreateStructW = LPCREATESTRUCTW;
  3110. {$IFDEF UNICODE}
  3111. CREATESTRUCT = CREATESTRUCTW;
  3112. {$EXTERNALSYM CREATESTRUCT}
  3113. LPCREATESTRUCT = LPCREATESTRUCTW;
  3114. {$EXTERNALSYM LPCREATESTRUCT}
  3115. TCreateStruct = TCreateStructW;
  3116. PCreateStruct = PCreateStructW;
  3117. {$ELSE}
  3118. CREATESTRUCT = CREATESTRUCTA;
  3119. {$EXTERNALSYM CREATESTRUCT}
  3120. LPCREATESTRUCT = LPCREATESTRUCTA;
  3121. {$EXTERNALSYM LPCREATESTRUCT}
  3122. TCreateStruct = TCreateStructA;
  3123. PCreateStruct = PCreateStructA;
  3124. {$ENDIF UNICODE}
  3125. //
  3126. // HCBT_CREATEWND parameters pointed to by lParam
  3127. //
  3128. type
  3129. LPCBT_CREATEWNDA = ^CBT_CREATEWNDA;
  3130. {$EXTERNALSYM LPCBT_CREATEWNDA}
  3131. tagCBT_CREATEWNDA = record
  3132. lpcs: LPCREATESTRUCTA;
  3133. hwndInsertAfter: HWND;
  3134. end;
  3135. {$EXTERNALSYM tagCBT_CREATEWNDA}
  3136. CBT_CREATEWNDA = tagCBT_CREATEWNDA;
  3137. {$EXTERNALSYM CBT_CREATEWNDA}
  3138. TCbtCreateWndA = CBT_CREATEWNDA;
  3139. PCbtCreateWndA = LPCBT_CREATEWNDA;
  3140. //
  3141. // HCBT_CREATEWND parameters pointed to by lParam
  3142. //
  3143. LPCBT_CREATEWNDW = ^CBT_CREATEWNDW;
  3144. {$EXTERNALSYM LPCBT_CREATEWNDW}
  3145. tagCBT_CREATEWNDW = record
  3146. lpcs: LPCREATESTRUCTW;
  3147. hwndInsertAfter: HWND;
  3148. end;
  3149. {$EXTERNALSYM tagCBT_CREATEWNDW}
  3150. CBT_CREATEWNDW = tagCBT_CREATEWNDW;
  3151. {$EXTERNALSYM CBT_CREATEWNDW}
  3152. TCbtCreateWndW = CBT_CREATEWNDW;
  3153. PCbtCreateWndW = LPCBT_CREATEWNDW;
  3154. {$IFDEF UNICODE}
  3155. CBT_CREATEWND = CBT_CREATEWNDW;
  3156. {$EXTERNALSYM CBT_CREATEWND}
  3157. LPCBT_CREATEWND = LPCBT_CREATEWNDW;
  3158. {$EXTERNALSYM LPCBT_CREATEWND}
  3159. {$ELSE}
  3160. CBT_CREATEWND = CBT_CREATEWNDA;
  3161. {$EXTERNALSYM CBT_CREATEWND}
  3162. LPCBT_CREATEWND = LPCBT_CREATEWNDA;
  3163. {$EXTERNALSYM LPCBT_CREATEWND}
  3164. {$ENDIF UNICODE}
  3165. LPWINDOWPLACEMENT = ^WINDOWPLACEMENT;
  3166. {$EXTERNALSYM LPWINDOWPLACEMENT}
  3167. tagWINDOWPLACEMENT = record
  3168. length: UINT;
  3169. flags: UINT;
  3170. showCmd: UINT;
  3171. ptMinPosition: POINT;
  3172. ptMaxPosition: POINT;
  3173. rcNormalPosition: RECT;
  3174. end;
  3175. {$EXTERNALSYM tagWINDOWPLACEMENT}
  3176. WINDOWPLACEMENT = tagWINDOWPLACEMENT;
  3177. {$EXTERNALSYM WINDOWPLACEMENT}
  3178. TWindowPlacement = WINDOWPLACEMENT;
  3179. PWindowPlacement = LPWINDOWPLACEMENT;
  3180. const
  3181. WPF_SETMINPOSITION = $0001;
  3182. {$EXTERNALSYM WPF_SETMINPOSITION}
  3183. WPF_RESTORETOMAXIMIZED = $0002;
  3184. {$EXTERNALSYM WPF_RESTORETOMAXIMIZED}
  3185. WPF_ASYNCWINDOWPLACEMENT = $0004;
  3186. {$EXTERNALSYM WPF_ASYNCWINDOWPLACEMENT}
  3187. type
  3188. LPNMHDR = ^NMHDR;
  3189. {$EXTERNALSYM LPNMHDR}
  3190. tagNMHDR = record
  3191. hwndFrom: HWND;
  3192. idFrom: UINT_PTR;
  3193. code: UINT; // NM_ code
  3194. end;
  3195. {$EXTERNALSYM tagNMHDR}
  3196. NMHDR = tagNMHDR;
  3197. {$EXTERNALSYM NMHDR}
  3198. TNmHdr = NMHDR;
  3199. PNmHdr = LPNMHDR;
  3200. LPSTYLESTRUCT = ^STYLESTRUCT;
  3201. {$EXTERNALSYM LPSTYLESTRUCT}
  3202. tagSTYLESTRUCT = record
  3203. styleOld: DWORD;
  3204. styleNew: DWORD;
  3205. end;
  3206. {$EXTERNALSYM tagSTYLESTRUCT}
  3207. STYLESTRUCT = tagSTYLESTRUCT;
  3208. {$EXTERNALSYM STYLESTRUCT}
  3209. TStyleStruct = STYLESTRUCT;
  3210. PStyleStruct = LPSTYLESTRUCT;
  3211. //
  3212. // Owner draw control types
  3213. //
  3214. const
  3215. ODT_MENU = 1;
  3216. {$EXTERNALSYM ODT_MENU}
  3217. ODT_LISTBOX = 2;
  3218. {$EXTERNALSYM ODT_LISTBOX}
  3219. ODT_COMBOBOX = 3;
  3220. {$EXTERNALSYM ODT_COMBOBOX}
  3221. ODT_BUTTON = 4;
  3222. {$EXTERNALSYM ODT_BUTTON}
  3223. ODT_STATIC = 5;
  3224. {$EXTERNALSYM ODT_STATIC}
  3225. //
  3226. // Owner draw actions
  3227. //
  3228. ODA_DRAWENTIRE = $0001;
  3229. {$EXTERNALSYM ODA_DRAWENTIRE}
  3230. ODA_SELECT = $0002;
  3231. {$EXTERNALSYM ODA_SELECT}
  3232. ODA_FOCUS = $0004;
  3233. {$EXTERNALSYM ODA_FOCUS}
  3234. //
  3235. // Owner draw state
  3236. //
  3237. ODS_SELECTED = $0001;
  3238. {$EXTERNALSYM ODS_SELECTED}
  3239. ODS_GRAYED = $0002;
  3240. {$EXTERNALSYM ODS_GRAYED}
  3241. ODS_DISABLED = $0004;
  3242. {$EXTERNALSYM ODS_DISABLED}
  3243. ODS_CHECKED = $0008;
  3244. {$EXTERNALSYM ODS_CHECKED}
  3245. ODS_FOCUS = $0010;
  3246. {$EXTERNALSYM ODS_FOCUS}
  3247. ODS_DEFAULT = $0020;
  3248. {$EXTERNALSYM ODS_DEFAULT}
  3249. ODS_COMBOBOXEDIT = $1000;
  3250. {$EXTERNALSYM ODS_COMBOBOXEDIT}
  3251. ODS_HOTLIGHT = $0040;
  3252. {$EXTERNALSYM ODS_HOTLIGHT}
  3253. ODS_INACTIVE = $0080;
  3254. {$EXTERNALSYM ODS_INACTIVE}
  3255. ODS_NOACCEL = $0100;
  3256. {$EXTERNALSYM ODS_NOACCEL}
  3257. ODS_NOFOCUSRECT = $0200;
  3258. {$EXTERNALSYM ODS_NOFOCUSRECT}
  3259. //
  3260. // MEASUREITEMSTRUCT for ownerdraw
  3261. //
  3262. type
  3263. LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
  3264. {$EXTERNALSYM LPMEASUREITEMSTRUCT}
  3265. tagMEASUREITEMSTRUCT = record
  3266. CtlType: UINT;
  3267. CtlID: UINT;
  3268. itemID: UINT;
  3269. itemWidth: UINT;
  3270. itemHeight: UINT;
  3271. itemData: ULONG_PTR;
  3272. end;
  3273. {$EXTERNALSYM tagMEASUREITEMSTRUCT}
  3274. MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT;
  3275. {$EXTERNALSYM MEASUREITEMSTRUCT}
  3276. TMeasureItemStruct = MEASUREITEMSTRUCT;
  3277. PMeasureItemStruct = LPMEASUREITEMSTRUCT;
  3278. //
  3279. // DRAWITEMSTRUCT for ownerdraw
  3280. //
  3281. LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
  3282. {$EXTERNALSYM LPDRAWITEMSTRUCT}
  3283. tagDRAWITEMSTRUCT = record
  3284. CtlType: UINT;
  3285. CtlID: UINT;
  3286. itemID: UINT;
  3287. itemAction: UINT;
  3288. itemState: UINT;
  3289. hwndItem: HWND;
  3290. hDC: HDC;
  3291. rcItem: RECT;
  3292. itemData: ULONG_PTR;
  3293. end;
  3294. {$EXTERNALSYM tagDRAWITEMSTRUCT}
  3295. DRAWITEMSTRUCT = tagDRAWITEMSTRUCT;
  3296. {$EXTERNALSYM DRAWITEMSTRUCT}
  3297. TDrawItemStruct = DRAWITEMSTRUCT;
  3298. PDrawItemStruct = LPDRAWITEMSTRUCT;
  3299. //
  3300. // DELETEITEMSTRUCT for ownerdraw
  3301. //
  3302. LPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
  3303. {$EXTERNALSYM LPDELETEITEMSTRUCT}
  3304. tagDELETEITEMSTRUCT = record
  3305. CtlType: UINT;
  3306. CtlID: UINT;
  3307. itemID: UINT;
  3308. hwndItem: HWND;
  3309. itemData: ULONG_PTR;
  3310. end;
  3311. {$EXTERNALSYM tagDELETEITEMSTRUCT}
  3312. DELETEITEMSTRUCT = tagDELETEITEMSTRUCT;
  3313. {$EXTERNALSYM DELETEITEMSTRUCT}
  3314. TDeleteItemStruct = DELETEITEMSTRUCT;
  3315. PDeleteItemStruct = LPDELETEITEMSTRUCT;
  3316. //
  3317. // COMPAREITEMSTUCT for ownerdraw sorting
  3318. //
  3319. LPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
  3320. {$EXTERNALSYM LPCOMPAREITEMSTRUCT}
  3321. tagCOMPAREITEMSTRUCT = record
  3322. CtlType: UINT;
  3323. CtlID: UINT;
  3324. hwndItem: HWND;
  3325. itemID1: UINT;
  3326. itemData1: ULONG_PTR;
  3327. itemID2: UINT;
  3328. itemData2: ULONG_PTR;
  3329. dwLocaleId: DWORD;
  3330. end;
  3331. {$EXTERNALSYM tagCOMPAREITEMSTRUCT}
  3332. COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT;
  3333. {$EXTERNALSYM COMPAREITEMSTRUCT}
  3334. TCompareItemStruct = COMPAREITEMSTRUCT;
  3335. PCompareItemStruct = LPCOMPAREITEMSTRUCT;
  3336. //
  3337. // Message Function Templates
  3338. //
  3339. function GetMessageA(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3340. {$EXTERNALSYM GetMessageA}
  3341. function GetMessageW(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3342. {$EXTERNALSYM GetMessageW}
  3343. function GetMessage(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
  3344. {$EXTERNALSYM GetMessage}
  3345. function TranslateMessage(lpMsg: LPMSG): BOOL; stdcall;
  3346. {$EXTERNALSYM TranslateMessage}
  3347. function DispatchMessageA(lpMsg: LPMSG): LRESULT; stdcall;
  3348. {$EXTERNALSYM DispatchMessageA}
  3349. function DispatchMessageW(lpMsg: LPMSG): LRESULT; stdcall;
  3350. {$EXTERNALSYM DispatchMessageW}
  3351. function DispatchMessage(lpMsg: LPMSG): LRESULT; stdcall;
  3352. {$EXTERNALSYM DispatchMessage}
  3353. function SetMessageQueue(cMessagesMax: Integer): BOOL; stdcall;
  3354. {$EXTERNALSYM SetMessageQueue}
  3355. function PeekMessageA(var lpMsg: MSG; hWnd: HWND;
  3356. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3357. {$EXTERNALSYM PeekMessageA}
  3358. function PeekMessageW(var lpMsg: MSG; hWnd: HWND;
  3359. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3360. {$EXTERNALSYM PeekMessageW}
  3361. function PeekMessage(var lpMsg: MSG; hWnd: HWND;
  3362. wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
  3363. {$EXTERNALSYM PeekMessage}
  3364. //
  3365. // Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
  3366. //
  3367. const
  3368. QS_KEY = $0001;
  3369. {$EXTERNALSYM QS_KEY}
  3370. QS_MOUSEMOVE = $0002;
  3371. {$EXTERNALSYM QS_MOUSEMOVE}
  3372. QS_MOUSEBUTTON = $0004;
  3373. {$EXTERNALSYM QS_MOUSEBUTTON}
  3374. QS_POSTMESSAGE = $0008;
  3375. {$EXTERNALSYM QS_POSTMESSAGE}
  3376. QS_TIMER = $0010;
  3377. {$EXTERNALSYM QS_TIMER}
  3378. QS_PAINT = $0020;
  3379. {$EXTERNALSYM QS_PAINT}
  3380. QS_SENDMESSAGE = $0040;
  3381. {$EXTERNALSYM QS_SENDMESSAGE}
  3382. QS_HOTKEY = $0080;
  3383. {$EXTERNALSYM QS_HOTKEY}
  3384. QS_ALLPOSTMESSAGE = $0100;
  3385. {$EXTERNALSYM QS_ALLPOSTMESSAGE}
  3386. QS_RAWINPUT = $0400;
  3387. {$EXTERNALSYM QS_RAWINPUT}
  3388. QS_MOUSE = QS_MOUSEMOVE or QS_MOUSEBUTTON;
  3389. {$EXTERNALSYM QS_MOUSE}
  3390. QS_INPUT = QS_MOUSE or QS_KEY {$IFDEF WINXP_UP} or QS_RAWINPUT {$ENDIF};
  3391. {$EXTERNALSYM QS_INPUT}
  3392. QS_ALLEVENTS = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY;
  3393. {$EXTERNALSYM QS_ALLEVENTS}
  3394. QS_ALLINPUT = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or
  3395. QS_HOTKEY or QS_SENDMESSAGE);
  3396. {$EXTERNALSYM QS_ALLINPUT}
  3397. //
  3398. // PeekMessage() Options
  3399. //
  3400. const
  3401. PM_NOREMOVE = $0000;
  3402. {$EXTERNALSYM PM_NOREMOVE}
  3403. PM_REMOVE = $0001;
  3404. {$EXTERNALSYM PM_REMOVE}
  3405. PM_NOYIELD = $0002;
  3406. {$EXTERNALSYM PM_NOYIELD}
  3407. PM_QS_INPUT = QS_INPUT shl 16;
  3408. {$EXTERNALSYM PM_QS_INPUT}
  3409. PM_QS_POSTMESSAGE = (QS_POSTMESSAGE or QS_HOTKEY or QS_TIMER) shl 16;
  3410. {$EXTERNALSYM PM_QS_POSTMESSAGE}
  3411. PM_QS_PAINT = QS_PAINT shl 16;
  3412. {$EXTERNALSYM PM_QS_PAINT}
  3413. PM_QS_SENDMESSAGE = QS_SENDMESSAGE shl 16;
  3414. {$EXTERNALSYM PM_QS_SENDMESSAGE}
  3415. function RegisterHotKey(hWnd: HWND; id: Integer; fsModifiers, vk: UINT): BOOL; stdcall;
  3416. {$EXTERNALSYM RegisterHotKey}
  3417. function UnregisterHotKey(hWnd: HWND; id: Integer): BOOL; stdcall;
  3418. {$EXTERNALSYM UnregisterHotKey}
  3419. const
  3420. MOD_ALT = $0001;
  3421. {$EXTERNALSYM MOD_ALT}
  3422. MOD_CONTROL = $0002;
  3423. {$EXTERNALSYM MOD_CONTROL}
  3424. MOD_SHIFT = $0004;
  3425. {$EXTERNALSYM MOD_SHIFT}
  3426. MOD_WIN = $0008;
  3427. {$EXTERNALSYM MOD_WIN}
  3428. IDHOT_SNAPWINDOW = DWORD(-1); // SHIFT-PRINTSCRN
  3429. {$EXTERNALSYM IDHOT_SNAPWINDOW}
  3430. IDHOT_SNAPDESKTOP = DWORD(-2); // PRINTSCRN
  3431. {$EXTERNALSYM IDHOT_SNAPDESKTOP}
  3432. const
  3433. ENDSESSION_LOGOFF = DWORD($80000000);
  3434. {$EXTERNALSYM ENDSESSION_LOGOFF}
  3435. EWX_LOGOFF = 0;
  3436. {$EXTERNALSYM EWX_LOGOFF}
  3437. EWX_SHUTDOWN = $00000001;
  3438. {$EXTERNALSYM EWX_SHUTDOWN}
  3439. EWX_REBOOT = $00000002;
  3440. {$EXTERNALSYM EWX_REBOOT}
  3441. EWX_FORCE = $00000004;
  3442. {$EXTERNALSYM EWX_FORCE}
  3443. EWX_POWEROFF = $00000008;
  3444. {$EXTERNALSYM EWX_POWEROFF}
  3445. EWX_FORCEIFHUNG = $00000010;
  3446. {$EXTERNALSYM EWX_FORCEIFHUNG}
  3447. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  3448. {$EXTERNALSYM ExitWindows}
  3449. function ExitWindowsEx(uFlags: UINT; dwReserved: DWORD): BOOL; stdcall;
  3450. {$EXTERNALSYM ExitWindowsEx}
  3451. function SwapMouseButton(fSwap: BOOL): BOOL; stdcall;
  3452. {$EXTERNALSYM SwapMouseButton}
  3453. function GetMessagePos: DWORD; stdcall;
  3454. {$EXTERNALSYM GetMessagePos}
  3455. function GetMessageTime: LONG; stdcall;
  3456. {$EXTERNALSYM GetMessageTime}
  3457. function GetMessageExtraInfo: LPARAM; stdcall;
  3458. {$EXTERNALSYM GetMessageExtraInfo}
  3459. function SetMessageExtraInfo(lParam: LPARAM): LPARAM; stdcall;
  3460. {$EXTERNALSYM SetMessageExtraInfo}
  3461. function SendMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3462. {$EXTERNALSYM SendMessageA}
  3463. function SendMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3464. {$EXTERNALSYM SendMessageW}
  3465. function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3466. {$EXTERNALSYM SendMessage}
  3467. function SendMessageTimeoutA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3468. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3469. {$EXTERNALSYM SendMessageTimeoutA}
  3470. function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3471. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3472. {$EXTERNALSYM SendMessageTimeoutW}
  3473. function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3474. fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
  3475. {$EXTERNALSYM SendMessageTimeout}
  3476. function SendNotifyMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3477. {$EXTERNALSYM SendNotifyMessageA}
  3478. function SendNotifyMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3479. {$EXTERNALSYM SendNotifyMessageW}
  3480. function SendNotifyMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3481. {$EXTERNALSYM SendNotifyMessage}
  3482. function SendMessageCallbackA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3483. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3484. {$EXTERNALSYM SendMessageCallbackA}
  3485. function SendMessageCallbackW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3486. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3487. {$EXTERNALSYM SendMessageCallbackW}
  3488. function SendMessageCallback(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
  3489. lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
  3490. {$EXTERNALSYM SendMessageCallback}
  3491. type
  3492. BSMINFO = record
  3493. cbSize: UINT;
  3494. hdesk: HDESK;
  3495. hwnd: HWND;
  3496. luid: LUID;
  3497. end;
  3498. {$EXTERNALSYM BSMINFO}
  3499. PBSMINFO = ^BSMINFO;
  3500. TBsmInfo = BSMINFO;
  3501. function BroadcastSystemMessageExA(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3502. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3503. {$EXTERNALSYM BroadcastSystemMessageExA}
  3504. function BroadcastSystemMessageExW(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3505. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3506. {$EXTERNALSYM BroadcastSystemMessageExW}
  3507. function BroadcastSystemMessageEx(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
  3508. wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
  3509. {$EXTERNALSYM BroadcastSystemMessageEx}
  3510. function BroadcastSystemMessageA(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3511. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3512. {$EXTERNALSYM BroadcastSystemMessageA}
  3513. function BroadcastSystemMessageW(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3514. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3515. {$EXTERNALSYM BroadcastSystemMessageW}
  3516. function BroadcastSystemMessage(dwFlags: DWORD; lpdwRecipients: LPDWORD;
  3517. uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
  3518. {$EXTERNALSYM BroadcastSystemMessage}
  3519. //Broadcast Special Message Recipient list
  3520. const
  3521. BSM_ALLCOMPONENTS = $00000000;
  3522. {$EXTERNALSYM BSM_ALLCOMPONENTS}
  3523. BSM_VXDS = $00000001;
  3524. {$EXTERNALSYM BSM_VXDS}
  3525. BSM_NETDRIVER = $00000002;
  3526. {$EXTERNALSYM BSM_NETDRIVER}
  3527. BSM_INSTALLABLEDRIVERS = $00000004;
  3528. {$EXTERNALSYM BSM_INSTALLABLEDRIVERS}
  3529. BSM_APPLICATIONS = $00000008;
  3530. {$EXTERNALSYM BSM_APPLICATIONS}
  3531. BSM_ALLDESKTOPS = $00000010;
  3532. {$EXTERNALSYM BSM_ALLDESKTOPS}
  3533. //Broadcast Special Message Flags
  3534. BSF_QUERY = $00000001;
  3535. {$EXTERNALSYM BSF_QUERY}
  3536. BSF_IGNORECURRENTTASK = $00000002;
  3537. {$EXTERNALSYM BSF_IGNORECURRENTTASK}
  3538. BSF_FLUSHDISK = $00000004;
  3539. {$EXTERNALSYM BSF_FLUSHDISK}
  3540. BSF_NOHANG = $00000008;
  3541. {$EXTERNALSYM BSF_NOHANG}
  3542. BSF_POSTMESSAGE = $00000010;
  3543. {$EXTERNALSYM BSF_POSTMESSAGE}
  3544. BSF_FORCEIFHUNG = $00000020;
  3545. {$EXTERNALSYM BSF_FORCEIFHUNG}
  3546. BSF_NOTIMEOUTIFNOTHUNG = $00000040;
  3547. {$EXTERNALSYM BSF_NOTIMEOUTIFNOTHUNG}
  3548. BSF_ALLOWSFW = $00000080;
  3549. {$EXTERNALSYM BSF_ALLOWSFW}
  3550. BSF_SENDNOTIFYMESSAGE = $00000100;
  3551. {$EXTERNALSYM BSF_SENDNOTIFYMESSAGE}
  3552. BSF_RETURNHDESK = $00000200;
  3553. {$EXTERNALSYM BSF_RETURNHDESK}
  3554. BSF_LUID = $00000400;
  3555. {$EXTERNALSYM BSF_LUID}
  3556. BROADCAST_QUERY_DENY = $424D5144; // Return this value to deny a query.
  3557. {$EXTERNALSYM BROADCAST_QUERY_DENY}
  3558. // RegisterDeviceNotification
  3559. type
  3560. HDEVNOTIFY = PVOID;
  3561. {$EXTERNALSYM HDEVNOTIFY}
  3562. PHDEVNOTIFY = ^HDEVNOTIFY;
  3563. {$EXTERNALSYM PHDEVNOTIFY}
  3564. const
  3565. DEVICE_NOTIFY_WINDOW_HANDLE = $00000000;
  3566. {$EXTERNALSYM DEVICE_NOTIFY_WINDOW_HANDLE}
  3567. DEVICE_NOTIFY_SERVICE_HANDLE = $00000001;
  3568. {$EXTERNALSYM DEVICE_NOTIFY_SERVICE_HANDLE}
  3569. DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = $00000004;
  3570. {$EXTERNALSYM DEVICE_NOTIFY_ALL_INTERFACE_CLASSES}
  3571. function RegisterDeviceNotificationA(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3572. Flags: DWORD): HDEVNOTIFY; stdcall;
  3573. {$EXTERNALSYM RegisterDeviceNotificationA}
  3574. function RegisterDeviceNotificationW(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3575. Flags: DWORD): HDEVNOTIFY; stdcall;
  3576. {$EXTERNALSYM RegisterDeviceNotificationW}
  3577. function RegisterDeviceNotification(hRecipient: HANDLE; NotificationFilter: LPVOID;
  3578. Flags: DWORD): HDEVNOTIFY; stdcall;
  3579. {$EXTERNALSYM RegisterDeviceNotification}
  3580. function UnregisterDeviceNotification(Handle: HDEVNOTIFY): BOOL; stdcall;
  3581. {$EXTERNALSYM UnregisterDeviceNotification}
  3582. function PostMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3583. {$EXTERNALSYM PostMessageA}
  3584. function PostMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3585. {$EXTERNALSYM PostMessageW}
  3586. function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3587. {$EXTERNALSYM PostMessage}
  3588. function PostThreadMessageA(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3589. {$EXTERNALSYM PostThreadMessageA}
  3590. function PostThreadMessageW(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3591. {$EXTERNALSYM PostThreadMessageW}
  3592. function PostThreadMessage(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
  3593. {$EXTERNALSYM PostThreadMessage}
  3594. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3595. {$EXTERNALSYM PostAppMessageA}
  3596. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3597. {$EXTERNALSYM PostAppMessageW}
  3598. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  3599. {$EXTERNALSYM PostAppMessage}
  3600. //
  3601. // Special HWND value for use with PostMessage() and SendMessage()
  3602. //
  3603. const
  3604. HWND_BROADCAST = HWND($ffff);
  3605. {$EXTERNALSYM HWND_BROADCAST}
  3606. HWND_MESSAGE = HWND(-3);
  3607. {$EXTERNALSYM HWND_MESSAGE}
  3608. function AttachThreadInput(idAttach, idAttachTo: DWORD; fAttach: BOOL): BOOL; stdcall;
  3609. {$EXTERNALSYM AttachThreadInput}
  3610. function ReplyMessage(lResult: LRESULT): BOOL; stdcall;
  3611. {$EXTERNALSYM ReplyMessage}
  3612. function WaitMessage: BOOL; stdcall;
  3613. {$EXTERNALSYM WaitMessage}
  3614. function WaitForInputIdle(hProcess: HANDLE; dwMilliseconds: DWORD): DWORD; stdcall;
  3615. {$EXTERNALSYM WaitForInputIdle}
  3616. function DefWindowProcA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3617. {$EXTERNALSYM DefWindowProcA}
  3618. function DefWindowProcW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3619. {$EXTERNALSYM DefWindowProcW}
  3620. function DefWindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3621. {$EXTERNALSYM DefWindowProc}
  3622. procedure PostQuitMessage(nExitCode: Integer); stdcall;
  3623. {$EXTERNALSYM PostQuitMessage}
  3624. function CallWindowProcA(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3625. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3626. {$EXTERNALSYM CallWindowProcA}
  3627. function CallWindowProcW(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3628. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3629. {$EXTERNALSYM CallWindowProcW}
  3630. function CallWindowProc(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
  3631. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  3632. {$EXTERNALSYM CallWindowProc}
  3633. function InSendMessage: BOOL; stdcall;
  3634. {$EXTERNALSYM InSendMessage}
  3635. function InSendMessageEx(lpReserved: LPVOID): DWORD; stdcall;
  3636. {$EXTERNALSYM InSendMessageEx}
  3637. //
  3638. // InSendMessageEx return value
  3639. //
  3640. const
  3641. ISMEX_NOSEND = $00000000;
  3642. {$EXTERNALSYM ISMEX_NOSEND}
  3643. ISMEX_SEND = $00000001;
  3644. {$EXTERNALSYM ISMEX_SEND}
  3645. ISMEX_NOTIFY = $00000002;
  3646. {$EXTERNALSYM ISMEX_NOTIFY}
  3647. ISMEX_CALLBACK = $00000004;
  3648. {$EXTERNALSYM ISMEX_CALLBACK}
  3649. ISMEX_REPLIED = $00000008;
  3650. {$EXTERNALSYM ISMEX_REPLIED}
  3651. function GetDoubleClickTime: UINT; stdcall;
  3652. {$EXTERNALSYM GetDoubleClickTime}
  3653. function SetDoubleClickTime(uInterval: UINT): BOOL; stdcall;
  3654. {$EXTERNALSYM SetDoubleClickTime}
  3655. function RegisterClassA(const lpWndClass: WNDCLASSA): ATOM; stdcall;
  3656. {$EXTERNALSYM RegisterClassA}
  3657. function RegisterClassW(const lpWndClass: WNDCLASSW): ATOM; stdcall;
  3658. {$EXTERNALSYM RegisterClassW}
  3659. function RegisterClass(const lpWndClass: WNDCLASS): ATOM; stdcall;
  3660. {$EXTERNALSYM RegisterClass}
  3661. function UnregisterClassA(lpClassName: LPCSTR; hInstance: HINST): BOOL; stdcall;
  3662. {$EXTERNALSYM UnregisterClassA}
  3663. function UnregisterClassW(lpClassName: LPCWSTR; hInstance: HINST): BOOL; stdcall;
  3664. {$EXTERNALSYM UnregisterClassW}
  3665. function UnregisterClass(lpClassName: LPCTSTR; hInstance: HINST): BOOL; stdcall;
  3666. {$EXTERNALSYM UnregisterClass}
  3667. function GetClassInfoA(hInstance: HINST; lpClassName: LPCSTR;
  3668. var lpWndClass: WNDCLASSA): BOOL; stdcall;
  3669. {$EXTERNALSYM GetClassInfoA}
  3670. function GetClassInfoW(hInstance: HINST; lpClassName: LPCWSTR;
  3671. var lpWndClass: WNDCLASSW): BOOL; stdcall;
  3672. {$EXTERNALSYM GetClassInfoW}
  3673. function GetClassInfo(hInstance: HINST; lpClassName: LPCTSTR;
  3674. var lpWndClass: WNDCLASS): BOOL; stdcall;
  3675. {$EXTERNALSYM GetClassInfo}
  3676. function RegisterClassExA(const lpwcx: WNDCLASSEXA): ATOM; stdcall;
  3677. {$EXTERNALSYM RegisterClassExA}
  3678. function RegisterClassExW(const lpwcx: WNDCLASSEXW): ATOM; stdcall;
  3679. {$EXTERNALSYM RegisterClassExW}
  3680. function RegisterClassEx(const lpwcx: WNDCLASSEX): ATOM; stdcall;
  3681. {$EXTERNALSYM RegisterClassEx}
  3682. function GetClassInfoExA(hinst: HINST; lpszClass: LPCSTR; var lpwcx: WNDCLASSEXA): BOOL; stdcall;
  3683. {$EXTERNALSYM GetClassInfoExA}
  3684. function GetClassInfoExW(hinst: HINST; lpszClass: LPCWSTR; var lpwcx: WNDCLASSEXW): BOOL; stdcall;
  3685. {$EXTERNALSYM GetClassInfoExW}
  3686. function GetClassInfoEx(hinst: HINST; lpszClass: LPCTSTR; var lpwcx: WNDCLASSEX): BOOL; stdcall;
  3687. {$EXTERNALSYM GetClassInfoEx}
  3688. const
  3689. CW_USEDEFAULT = Integer($80000000);
  3690. {$EXTERNALSYM CW_USEDEFAULT}
  3691. //
  3692. // Special value for CreateWindow, et al.
  3693. //
  3694. const
  3695. HWND_DESKTOP = HWND(0);
  3696. {$EXTERNALSYM HWND_DESKTOP}
  3697. type
  3698. PREGISTERCLASSNAMEW = function(p: LPCWSTR): LongBool; stdcall;
  3699. {$EXTERNALSYM PREGISTERCLASSNAMEW}
  3700. function CreateWindowExA(dwExStyle: DWORD; lpClassName, lpWindowName: LPCSTR;
  3701. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3702. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3703. {$EXTERNALSYM CreateWindowExA}
  3704. function CreateWindowExW(dwExStyle: DWORD; lpClassName, lpWindowName: LPCWSTR;
  3705. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3706. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3707. {$EXTERNALSYM CreateWindowExW}
  3708. function CreateWindowEx(dwExStyle: DWORD; lpClassName, lpWindowName: LPCTSTR;
  3709. dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
  3710. hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
  3711. {$EXTERNALSYM CreateWindowEx}
  3712. function CreateWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  3713. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3714. hInstance: HINST; lpParam: LPVOID): HWND;
  3715. {$EXTERNALSYM CreateWindowA}
  3716. function CreateWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  3717. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3718. hInstance: HINST; lpParam: LPVOID): HWND;
  3719. {$EXTERNALSYM CreateWindowW}
  3720. function CreateWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  3721. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  3722. hInstance: HINST; lpParam: LPVOID): HWND;
  3723. {$EXTERNALSYM CreateWindow}
  3724. function IsWindow(hWnd: HWND): BOOL; stdcall;
  3725. {$EXTERNALSYM IsWindow}
  3726. function IsMenu(hMenu: HMENU): BOOL; stdcall;
  3727. {$EXTERNALSYM IsMenu}
  3728. function IsChild(hWndParent, hWnd: HWND): BOOL; stdcall;
  3729. {$EXTERNALSYM IsChild}
  3730. function DestroyWindow(hWnd: HWND): BOOL; stdcall;
  3731. {$EXTERNALSYM DestroyWindow}
  3732. function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3733. {$EXTERNALSYM ShowWindow}
  3734. function AnimateWindow(hWnd: HWND; dwTime, dwFlags: DWORD): BOOL; stdcall;
  3735. {$EXTERNALSYM AnimateWindow}
  3736. function UpdateLayeredWindow(hWnd: HWND; hdcDst: HDC; pptDst: LPPOINT;
  3737. psize: LPSIZE; hdcSrc: HDC; pptSrc: LPPOINT; crKey: COLORREF;
  3738. pblend: LPBLENDFUNCTION; dwFlags: DWORD): BOOL; stdcall;
  3739. {$EXTERNALSYM UpdateLayeredWindow}
  3740. function GetLayeredWindowAttributes(hwnd: HWND; pcrKey: LPCOLORREF; pbAlpha: LPBYTE;
  3741. pdwFlags: LPWORD): BOOL; stdcall;
  3742. {$EXTERNALSYM GetLayeredWindowAttributes}
  3743. const
  3744. PW_CLIENTONLY = $00000001;
  3745. {$EXTERNALSYM PW_CLIENTONLY}
  3746. function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
  3747. {$EXTERNALSYM PrintWindow}
  3748. function SetLayeredWindowAttributes(hwnd: HWND; crKey: COLORREF; bAlpha: BYTE;
  3749. dwFlags: DWORD): BOOL; stdcall;
  3750. {$EXTERNALSYM SetLayeredWindowAttributes}
  3751. const
  3752. LWA_COLORKEY = $00000001;
  3753. {$EXTERNALSYM LWA_COLORKEY}
  3754. LWA_ALPHA = $00000002;
  3755. {$EXTERNALSYM LWA_ALPHA}
  3756. ULW_COLORKEY = $00000001;
  3757. {$EXTERNALSYM ULW_COLORKEY}
  3758. ULW_ALPHA = $00000002;
  3759. {$EXTERNALSYM ULW_ALPHA}
  3760. ULW_OPAQUE = $00000004;
  3761. {$EXTERNALSYM ULW_OPAQUE}
  3762. function ShowWindowAsync(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
  3763. {$EXTERNALSYM ShowWindowAsync}
  3764. function FlashWindow(hWnd: HWND; bInvert: BOOL): BOOL; stdcall;
  3765. {$EXTERNALSYM FlashWindow}
  3766. type
  3767. PFLASH_INFO = ^FLASH_INFO;
  3768. {$EXTERNALSYM PFLASH_INFO}
  3769. FLASH_INFO = record
  3770. cbSize: UINT;
  3771. hwnd: HWND;
  3772. dwFlags: DWORD;
  3773. uCount: UINT;
  3774. dwTimeout: DWORD;
  3775. end;
  3776. {$EXTERNALSYM FLASH_INFO}
  3777. TFlashInfo = FLASH_INFO;
  3778. PFlashInfo = PFLASH_INFO;
  3779. function FlashWindowEx(var pfwi: FLASH_INFO): BOOL; stdcall;
  3780. {$EXTERNALSYM FlashWindowEx}
  3781. const
  3782. FLASHW_STOP = 0;
  3783. {$EXTERNALSYM FLASHW_STOP}
  3784. FLASHW_CAPTION = $00000001;
  3785. {$EXTERNALSYM FLASHW_CAPTION}
  3786. FLASHW_TRAY = $00000002;
  3787. {$EXTERNALSYM FLASHW_TRAY}
  3788. FLASHW_ALL = FLASHW_CAPTION or FLASHW_TRAY;
  3789. {$EXTERNALSYM FLASHW_ALL}
  3790. FLASHW_TIMER = $00000004;
  3791. {$EXTERNALSYM FLASHW_TIMER}
  3792. FLASHW_TIMERNOFG = $0000000C;
  3793. {$EXTERNALSYM FLASHW_TIMERNOFG}
  3794. function ShowOwnedPopups(hWnd: HWND; fShow: BOOL): BOOL; stdcall;
  3795. {$EXTERNALSYM ShowOwnedPopups}
  3796. function OpenIcon(hWnd: HWND): BOOL; stdcall;
  3797. {$EXTERNALSYM OpenIcon}
  3798. function CloseWindow(hWnd: HWND): BOOL; stdcall;
  3799. {$EXTERNALSYM CloseWindow}
  3800. function MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; stdcall;
  3801. {$EXTERNALSYM MoveWindow}
  3802. function SetWindowPos(hWnd, hWndInsertAfter: HWND; X, Y, cx, cy: Integer;
  3803. uFlags: UINT): BOOL; stdcall;
  3804. {$EXTERNALSYM SetWindowPos}
  3805. function GetWindowPlacement(hWnd: HWND; var lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3806. {$EXTERNALSYM GetWindowPlacement}
  3807. function SetWindowPlacement(hWnd: HWND; const lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
  3808. {$EXTERNALSYM SetWindowPlacement}
  3809. function BeginDeferWindowPos(nNumWindows: Integer): HDWP; stdcall;
  3810. {$EXTERNALSYM BeginDeferWindowPos}
  3811. function DeferWindowPos(hWinPosInfo: HDWP; hWnd, hWndInsertAfter: HWND;
  3812. x, y, cx, cy: Integer; uFlags: UINT): HDWP; stdcall;
  3813. {$EXTERNALSYM DeferWindowPos}
  3814. function EndDeferWindowPos(hWinPosInfo: HDWP): BOOL; stdcall;
  3815. {$EXTERNALSYM EndDeferWindowPos}
  3816. function IsWindowVisible(hWnd: HWND): BOOL; stdcall;
  3817. {$EXTERNALSYM IsWindowVisible}
  3818. function IsIconic(hWnd: HWND): BOOL; stdcall;
  3819. {$EXTERNALSYM IsIconic}
  3820. function AnyPopup: BOOL; stdcall;
  3821. {$EXTERNALSYM AnyPopup}
  3822. function BringWindowToTop(hWnd: HWND): BOOL; stdcall;
  3823. {$EXTERNALSYM BringWindowToTop}
  3824. function IsZoomed(hWnd: HWND): BOOL; stdcall;
  3825. {$EXTERNALSYM IsZoomed}
  3826. //
  3827. // SetWindowPos Flags
  3828. //
  3829. const
  3830. SWP_NOSIZE = $0001;
  3831. {$EXTERNALSYM SWP_NOSIZE}
  3832. SWP_NOMOVE = $0002;
  3833. {$EXTERNALSYM SWP_NOMOVE}
  3834. SWP_NOZORDER = $0004;
  3835. {$EXTERNALSYM SWP_NOZORDER}
  3836. SWP_NOREDRAW = $0008;
  3837. {$EXTERNALSYM SWP_NOREDRAW}
  3838. SWP_NOACTIVATE = $0010;
  3839. {$EXTERNALSYM SWP_NOACTIVATE}
  3840. SWP_FRAMECHANGED = $0020; // The frame changed: send WM_NCCALCSIZE
  3841. {$EXTERNALSYM SWP_FRAMECHANGED}
  3842. SWP_SHOWWINDOW = $0040;
  3843. {$EXTERNALSYM SWP_SHOWWINDOW}
  3844. SWP_HIDEWINDOW = $0080;
  3845. {$EXTERNALSYM SWP_HIDEWINDOW}
  3846. SWP_NOCOPYBITS = $0100;
  3847. {$EXTERNALSYM SWP_NOCOPYBITS}
  3848. SWP_NOOWNERZORDER = $0200; // Don't do owner Z ordering
  3849. {$EXTERNALSYM SWP_NOOWNERZORDER}
  3850. SWP_NOSENDCHANGING = $0400; // Don't send WM_WINDOWPOSCHANGING
  3851. {$EXTERNALSYM SWP_NOSENDCHANGING}
  3852. SWP_DRAWFRAME = SWP_FRAMECHANGED;
  3853. {$EXTERNALSYM SWP_DRAWFRAME}
  3854. SWP_NOREPOSITION = SWP_NOOWNERZORDER;
  3855. {$EXTERNALSYM SWP_NOREPOSITION}
  3856. SWP_DEFERERASE = $2000;
  3857. {$EXTERNALSYM SWP_DEFERERASE}
  3858. SWP_ASYNCWINDOWPOS = $4000;
  3859. {$EXTERNALSYM SWP_ASYNCWINDOWPOS}
  3860. HWND_TOP = HWND(0);
  3861. {$EXTERNALSYM HWND_TOP}
  3862. HWND_BOTTOM = HWND(1);
  3863. {$EXTERNALSYM HWND_BOTTOM}
  3864. HWND_TOPMOST = HWND(-1);
  3865. {$EXTERNALSYM HWND_TOPMOST}
  3866. HWND_NOTOPMOST = HWND(-2);
  3867. {$EXTERNALSYM HWND_NOTOPMOST}
  3868. //
  3869. // WARNING:
  3870. // The following structures must NOT be DWORD padded because they are
  3871. // followed by strings, etc that do not have to be DWORD aligned.
  3872. //
  3873. // #include <pshpack2.h>
  3874. //
  3875. // original NT 32 bit dialog template:
  3876. //
  3877. type
  3878. DLGTEMPLATE = packed record
  3879. style: DWORD;
  3880. dwExtendedStyle: DWORD;
  3881. cdit: WORD;
  3882. x: short;
  3883. y: short;
  3884. cx: short;
  3885. cy: short;
  3886. end;
  3887. {$EXTERNALSYM DLGTEMPLATE}
  3888. TDlgTemplate = DLGTEMPLATE;
  3889. LPDLGTEMPLATEA = ^DLGTEMPLATE;
  3890. {$EXTERNALSYM LPDLGTEMPLATEA}
  3891. LPDLGTEMPLATEW = ^DLGTEMPLATE;
  3892. {$EXTERNALSYM LPDLGTEMPLATEW}
  3893. LPCDLGTEMPLATEA = ^DLGTEMPLATE;
  3894. {$EXTERNALSYM LPCDLGTEMPLATEA}
  3895. LPCDLGTEMPLATEW = ^DLGTEMPLATE;
  3896. {$EXTERNALSYM LPCDLGTEMPLATEW}
  3897. {$IFDEF UNICODE}
  3898. LPDLGTEMPLATE = LPDLGTEMPLATEW;
  3899. {$EXTERNALSYM LPDLGTEMPLATE}
  3900. LPCDLGTEMPLATE = LPCDLGTEMPLATEW;
  3901. {$EXTERNALSYM LPCDLGTEMPLATE}
  3902. {$ELSE}
  3903. LPDLGTEMPLATE = LPDLGTEMPLATEA;
  3904. {$EXTERNALSYM LPDLGTEMPLATE}
  3905. LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
  3906. {$EXTERNALSYM LPCDLGTEMPLATE}
  3907. {$ENDIF UNICODE}
  3908. //
  3909. // 32 bit Dialog item template.
  3910. //
  3911. DLGITEMTEMPLATE = packed record
  3912. style: DWORD;
  3913. dwExtendedStyle: DWORD;
  3914. x: short;
  3915. y: short;
  3916. cx: short;
  3917. cy: short;
  3918. id: WORD;
  3919. end;
  3920. {$EXTERNALSYM DLGITEMTEMPLATE}
  3921. TDlgItemTemplate = DLGITEMTEMPLATE;
  3922. PDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3923. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3924. PDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3925. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3926. LPDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
  3927. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3928. LPDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
  3929. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3930. {$IFDEF UNICODE}
  3931. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3932. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3933. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
  3934. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3935. {$ELSE}
  3936. PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3937. {$EXTERNALSYM PDLGITEMTEMPLATE}
  3938. LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
  3939. {$EXTERNALSYM LPDLGITEMTEMPLATE}
  3940. {$ENDIF UNICODE}
  3941. // #include <poppack.h> // Resume normal packing//
  3942. function CreateDialogParamA(hInstance: HINST; lpTemplateName: LPCSTR;
  3943. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3944. {$EXTERNALSYM CreateDialogParamA}
  3945. function CreateDialogParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
  3946. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3947. {$EXTERNALSYM CreateDialogParamW}
  3948. function CreateDialogParam(hInstance: HINST; lpTemplateName: LPCTSTR;
  3949. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3950. {$EXTERNALSYM CreateDialogParam}
  3951. function CreateDialogIndirectParamA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3952. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3953. {$EXTERNALSYM CreateDialogIndirectParamA}
  3954. function CreateDialogIndirectParamW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3955. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3956. {$EXTERNALSYM CreateDialogIndirectParamW}
  3957. function CreateDialogIndirectParam(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3958. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
  3959. {$EXTERNALSYM CreateDialogIndirectParam}
  3960. function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND;
  3961. lpDialogFunc: DLGPROC): HWND;
  3962. {$EXTERNALSYM CreateDialogA}
  3963. function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND;
  3964. lpDialogFunc: DLGPROC): HWND;
  3965. {$EXTERNALSYM CreateDialogW}
  3966. function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND;
  3967. lpDialogFunc: DLGPROC): HWND;
  3968. {$EXTERNALSYM CreateDialog}
  3969. function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3970. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3971. {$EXTERNALSYM CreateDialogIndirectA}
  3972. function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3973. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3974. {$EXTERNALSYM CreateDialogIndirectW}
  3975. function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  3976. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  3977. {$EXTERNALSYM CreateDialogIndirect}
  3978. function DialogBoxParamA(hInstance: HINST; lpTemplateName: LPCSTR;
  3979. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3980. {$EXTERNALSYM DialogBoxParamA}
  3981. function DialogBoxParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
  3982. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3983. {$EXTERNALSYM DialogBoxParamW}
  3984. function DialogBoxParam(hInstance: HINST; lpTemplateName: LPCTSTR;
  3985. hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
  3986. {$EXTERNALSYM DialogBoxParam}
  3987. function DialogBoxIndirectParamA(hInstance: HINST;
  3988. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3989. dwInitParam: LPARAM): INT_PTR; stdcall;
  3990. {$EXTERNALSYM DialogBoxIndirectParamA}
  3991. function DialogBoxIndirectParamW(hInstance: HINST;
  3992. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3993. dwInitParam: LPARAM): INT_PTR; stdcall;
  3994. {$EXTERNALSYM DialogBoxIndirectParamW}
  3995. function DialogBoxIndirectParam(hInstance: HINST;
  3996. const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
  3997. dwInitParam: LPARAM): INT_PTR; stdcall;
  3998. {$EXTERNALSYM DialogBoxIndirectParam}
  3999. function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND;
  4000. lpDialogFunc: DLGPROC): INT_PTR;
  4001. {$EXTERNALSYM DialogBoxA}
  4002. function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND;
  4003. lpDialogFunc: DLGPROC): INT_PTR;
  4004. {$EXTERNALSYM DialogBoxW}
  4005. function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND;
  4006. lpDialogFunc: DLGPROC): INT_PTR;
  4007. {$EXTERNALSYM DialogBox}
  4008. function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4009. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4010. {$EXTERNALSYM DialogBoxIndirectA}
  4011. function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4012. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4013. {$EXTERNALSYM DialogBoxIndirectW}
  4014. function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  4015. hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  4016. {$EXTERNALSYM DialogBoxIndirect}
  4017. function EndDialog(hDlg: HWND; nResult: INT_PTR): BOOL; stdcall;
  4018. {$EXTERNALSYM EndDialog}
  4019. function GetDlgItem(hDlg: HWND; nIDDlgItem: Integer): HWND; stdcall;
  4020. {$EXTERNALSYM GetDlgItem}
  4021. function SetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; uValue: UINT; bSigned: BOOL): BOOL; stdcall;
  4022. {$EXTERNALSYM SetDlgItemInt}
  4023. function GetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; lpTranslated: LPBOOL;
  4024. bSigned: BOOL): UINT; stdcall;
  4025. {$EXTERNALSYM GetDlgItemInt}
  4026. function SetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCSTR): BOOL; stdcall;
  4027. {$EXTERNALSYM SetDlgItemTextA}
  4028. function SetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCWSTR): BOOL; stdcall;
  4029. {$EXTERNALSYM SetDlgItemTextW}
  4030. function SetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCTSTR): BOOL; stdcall;
  4031. {$EXTERNALSYM SetDlgItemText}
  4032. function GetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPSTR;
  4033. nMaxCount: Integer): UINT; stdcall;
  4034. {$EXTERNALSYM GetDlgItemTextA}
  4035. function GetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPWSTR;
  4036. nMaxCount: Integer): UINT; stdcall;
  4037. {$EXTERNALSYM GetDlgItemTextW}
  4038. function GetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPTSTR;
  4039. nMaxCount: Integer): UINT; stdcall;
  4040. {$EXTERNALSYM GetDlgItemText}
  4041. function CheckDlgButton(hDlg: HWND; nIDButton: Integer; uCheck: UINT): BOOL; stdcall;
  4042. {$EXTERNALSYM CheckDlgButton}
  4043. function CheckRadioButton(hDlg: HWND; nIDFirstButton, nIDLastButton: Integer;
  4044. nIDCheckButton: Integer): BOOL; stdcall;
  4045. {$EXTERNALSYM CheckRadioButton}
  4046. function IsDlgButtonChecked(hDlg: HWND; nIDButton: Integer): UINT; stdcall;
  4047. {$EXTERNALSYM IsDlgButtonChecked}
  4048. function SendDlgItemMessageA(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4049. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4050. {$EXTERNALSYM SendDlgItemMessageA}
  4051. function SendDlgItemMessageW(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4052. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4053. {$EXTERNALSYM SendDlgItemMessageW}
  4054. function SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
  4055. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4056. {$EXTERNALSYM SendDlgItemMessage}
  4057. function GetNextDlgGroupItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4058. {$EXTERNALSYM GetNextDlgGroupItem}
  4059. function GetNextDlgTabItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
  4060. {$EXTERNALSYM GetNextDlgTabItem}
  4061. function GetDlgCtrlID(hWnd: HWND): Integer; stdcall;
  4062. {$EXTERNALSYM GetDlgCtrlID}
  4063. function GetDialogBaseUnits: Longint; stdcall;
  4064. {$EXTERNALSYM GetDialogBaseUnits(VOID v)}
  4065. function DefDlgProcA(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4066. {$EXTERNALSYM DefDlgProcA}
  4067. function DefDlgProcW(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4068. {$EXTERNALSYM DefDlgProcW}
  4069. function DefDlgProc(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  4070. {$EXTERNALSYM DefDlgProc}
  4071. //
  4072. // Window extra byted needed for private dialog classes.
  4073. //
  4074. const
  4075. DLGWINDOWEXTRA = 30;
  4076. {$EXTERNALSYM DLGWINDOWEXTRA}
  4077. function CallMsgFilterA(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4078. {$EXTERNALSYM CallMsgFilterA}
  4079. function CallMsgFilterW(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4080. {$EXTERNALSYM CallMsgFilterW}
  4081. function CallMsgFilter(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
  4082. {$EXTERNALSYM CallMsgFilter}
  4083. //
  4084. // Clipboard Manager Functions
  4085. //
  4086. function OpenClipboard(hWndNewOwner: HWND): BOOL; stdcall;
  4087. {$EXTERNALSYM OpenClipboard}
  4088. function CloseClipboard: BOOL; stdcall;
  4089. {$EXTERNALSYM CloseClipboard}
  4090. function GetClipboardSequenceNumber: DWORD; stdcall;
  4091. {$EXTERNALSYM GetClipboardSequenceNumber}
  4092. function GetClipboardOwner: HWND; stdcall;
  4093. {$EXTERNALSYM GetClipboardOwner}
  4094. function SetClipboardViewer(hWndNewViewer: HWND): HWND; stdcall;
  4095. {$EXTERNALSYM SetClipboardViewer}
  4096. function GetClipboardViewer: HWND; stdcall;
  4097. {$EXTERNALSYM GetClipboardViewer}
  4098. function ChangeClipboardChain(hWndRemove, hWndNewNext: HWND): BOOL; stdcall;
  4099. {$EXTERNALSYM ChangeClipboardChain}
  4100. function SetClipboardData(uFormat: UINT; hMem: HANDLE): HANDLE; stdcall;
  4101. {$EXTERNALSYM SetClipboardData}
  4102. function GetClipboardData(uFormat: UINT): HANDLE; stdcall;
  4103. {$EXTERNALSYM GetClipboardData}
  4104. function RegisterClipboardFormatA(lpszFormat: LPCSTR): UINT; stdcall;
  4105. {$EXTERNALSYM RegisterClipboardFormatA}
  4106. function RegisterClipboardFormatW(lpszFormat: LPCWSTR): UINT; stdcall;
  4107. {$EXTERNALSYM RegisterClipboardFormatW}
  4108. function RegisterClipboardFormat(lpszFormat: LPCTSTR): UINT; stdcall;
  4109. {$EXTERNALSYM RegisterClipboardFormat}
  4110. function CountClipboardFormats: Integer; stdcall;
  4111. {$EXTERNALSYM CountClipboardFormats}
  4112. function EnumClipboardFormats(format: UINT): UINT; stdcall;
  4113. {$EXTERNALSYM EnumClipboardFormats}
  4114. function GetClipboardFormatNameA(format: UINT; lpszFormatName: LPSTR;
  4115. cchMaxCount: Integer): Integer; stdcall;
  4116. {$EXTERNALSYM GetClipboardFormatNameA}
  4117. function GetClipboardFormatNameW(format: UINT; lpszFormatName: LPWSTR;
  4118. cchMaxCount: Integer): Integer; stdcall;
  4119. {$EXTERNALSYM GetClipboardFormatNameW}
  4120. function GetClipboardFormatName(format: UINT; lpszFormatName: LPTSTR;
  4121. cchMaxCount: Integer): Integer; stdcall;
  4122. {$EXTERNALSYM GetClipboardFormatName}
  4123. function EmptyClipboard: BOOL; stdcall;
  4124. {$EXTERNALSYM EmptyClipboard}
  4125. function IsClipboardFormatAvailable(format: UINT): BOOL; stdcall;
  4126. {$EXTERNALSYM IsClipboardFormatAvailable}
  4127. function GetPriorityClipboardFormat(paFormatPriorityList: PUINT; cFormats: Integer): Integer; stdcall;
  4128. {$EXTERNALSYM GetPriorityClipboardFormat}
  4129. function GetOpenClipboardWindow: HWND; stdcall;
  4130. {$EXTERNALSYM GetOpenClipboardWindow}
  4131. //
  4132. // Character Translation Routines
  4133. //
  4134. function CharToOemA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4135. {$EXTERNALSYM CharToOemA}
  4136. function CharToOemW(lpszSrc: LPCWSTR; lpszDst: LPSTR): BOOL; stdcall;
  4137. {$EXTERNALSYM CharToOemW}
  4138. function CharToOem(lpszSrc: LPCTSTR; lpszDst: LPSTR): BOOL; stdcall;
  4139. {$EXTERNALSYM CharToOem}
  4140. function OemToCharA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
  4141. {$EXTERNALSYM OemToCharA}
  4142. function OemToCharW(lpszSrc: LPCSTR; lpszDst: LPWSTR): BOOL; stdcall;
  4143. {$EXTERNALSYM OemToCharW}
  4144. function OemToChar(lpszSrc: LPCSTR; lpszDst: LPTSTR): BOOL; stdcall;
  4145. {$EXTERNALSYM OemToChar}
  4146. function CharToOemBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4147. {$EXTERNALSYM CharToOemBuffA}
  4148. function CharToOemBuffW(lpszSrc: LPCWSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4149. {$EXTERNALSYM CharToOemBuffW}
  4150. function CharToOemBuff(lpszSrc: LPCTSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4151. {$EXTERNALSYM CharToOemBuff}
  4152. function OemToCharBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
  4153. {$EXTERNALSYM OemToCharBuffA}
  4154. function OemToCharBuffW(lpszSrc: LPCSTR; lpszDst: LPWSTR; cchDstLength: DWORD): BOOL; stdcall;
  4155. {$EXTERNALSYM OemToCharBuffW}
  4156. function OemToCharBuff(lpszSrc: LPCSTR; lpszDst: LPTSTR; cchDstLength: DWORD): BOOL; stdcall;
  4157. {$EXTERNALSYM OemToCharBuff}
  4158. function CharUpperA(lpsz: LPSTR): LPSTR; stdcall;
  4159. {$EXTERNALSYM CharUpperA}
  4160. function CharUpperW(lpsz: LPWSTR): LPWSTR; stdcall;
  4161. {$EXTERNALSYM CharUpperW}
  4162. function CharUpper(lpsz: LPTSTR): LPTSTR; stdcall;
  4163. {$EXTERNALSYM CharUpper}
  4164. function CharUpperBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4165. {$EXTERNALSYM CharUpperBuffA}
  4166. function CharUpperBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4167. {$EXTERNALSYM CharUpperBuffW}
  4168. function CharUpperBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4169. {$EXTERNALSYM CharUpperBuff}
  4170. function CharLowerA(lpsz: LPSTR): LPSTR; stdcall;
  4171. {$EXTERNALSYM CharLowerA}
  4172. function CharLowerW(lpsz: LPWSTR): LPWSTR; stdcall;
  4173. {$EXTERNALSYM CharLowerW}
  4174. function CharLower(lpsz: LPTSTR): LPTSTR; stdcall;
  4175. {$EXTERNALSYM CharLower}
  4176. function CharLowerBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
  4177. {$EXTERNALSYM CharLowerBuffA}
  4178. function CharLowerBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
  4179. {$EXTERNALSYM CharLowerBuffW}
  4180. function CharLowerBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
  4181. {$EXTERNALSYM CharLowerBuff}
  4182. function CharNextA(lpsz: LPCSTR): LPSTR; stdcall;
  4183. {$EXTERNALSYM CharNextA}
  4184. function CharNextW(lpsz: LPCWSTR): LPWSTR; stdcall;
  4185. {$EXTERNALSYM CharNextW}
  4186. function CharNext(lpsz: LPCTSTR): LPTSTR; stdcall;
  4187. {$EXTERNALSYM CharNext}
  4188. function CharPrevA(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR; stdcall;
  4189. {$EXTERNALSYM CharPrevA}
  4190. function CharPrevW(lpszStart: LPCWSTR; lpszCurrent: LPCWSTR): LPWSTR; stdcall;
  4191. {$EXTERNALSYM CharPrevW}
  4192. function CharPrev(lpszStart: LPCTSTR; lpszCurrent: LPCTSTR): LPTSTR; stdcall;
  4193. {$EXTERNALSYM CharPrev}
  4194. function CharNextExA(CodePage: WORD; lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4195. {$EXTERNALSYM CharNextExA}
  4196. function CharPrevExA(CodePage: WORD; lpStart, lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
  4197. {$EXTERNALSYM CharPrevExA}
  4198. //
  4199. // Compatibility defines for character translation routines
  4200. //
  4201. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4202. {$EXTERNALSYM AnsiToOem}
  4203. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  4204. {$EXTERNALSYM OemToAnsi}
  4205. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4206. {$EXTERNALSYM AnsiToOemBuff}
  4207. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  4208. {$EXTERNALSYM OemToAnsiBuff}
  4209. function AnsiUpper(lpsz: LPSTR): LPSTR;
  4210. {$EXTERNALSYM AnsiUpper}
  4211. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4212. {$EXTERNALSYM AnsiUpperBuff}
  4213. function AnsiLower(lpsz: LPSTR): LPSTR;
  4214. {$EXTERNALSYM AnsiLower}
  4215. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  4216. {$EXTERNALSYM AnsiLowerBuff}
  4217. function AnsiNext(lpsz: LPCSTR): LPSTR;
  4218. {$EXTERNALSYM AnsiNext}
  4219. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  4220. {$EXTERNALSYM AnsiPrev}
  4221. //
  4222. // Language dependent Routines
  4223. //
  4224. function IsCharAlphaA(ch: CHAR): BOOL; stdcall;
  4225. {$EXTERNALSYM IsCharAlphaA}
  4226. function IsCharAlphaW(ch: WCHAR): BOOL; stdcall;
  4227. {$EXTERNALSYM IsCharAlphaW}
  4228. function IsCharAlpha(ch: TCHAR): BOOL; stdcall;
  4229. {$EXTERNALSYM IsCharAlpha}
  4230. function IsCharAlphaNumericA(ch: CHAR): BOOL; stdcall;
  4231. {$EXTERNALSYM IsCharAlphaNumericA}
  4232. function IsCharAlphaNumericW(ch: WCHAR): BOOL; stdcall;
  4233. {$EXTERNALSYM IsCharAlphaNumericW}
  4234. function IsCharAlphaNumeric(ch: TCHAR): BOOL; stdcall;
  4235. {$EXTERNALSYM IsCharAlphaNumeric}
  4236. function IsCharUpperA(ch: CHAR): BOOL; stdcall;
  4237. {$EXTERNALSYM IsCharUpperA}
  4238. function IsCharUpperW(ch: WCHAR): BOOL; stdcall;
  4239. {$EXTERNALSYM IsCharUpperW}
  4240. function IsCharUpper(ch: TCHAR): BOOL; stdcall;
  4241. {$EXTERNALSYM IsCharUpper}
  4242. function IsCharLowerA(ch: CHAR): BOOL; stdcall;
  4243. {$EXTERNALSYM IsCharLowerA}
  4244. function IsCharLowerW(ch: WCHAR): BOOL; stdcall;
  4245. {$EXTERNALSYM IsCharLowerW}
  4246. function IsCharLower(ch: TCHAR): BOOL; stdcall;
  4247. {$EXTERNALSYM IsCharLower}
  4248. function SetFocus(hWnd: HWND): HWND; stdcall;
  4249. {$EXTERNALSYM SetFocus}
  4250. function GetActiveWindow: HWND; stdcall;
  4251. {$EXTERNALSYM GetActiveWindow}
  4252. function GetFocus: HWND; stdcall;
  4253. {$EXTERNALSYM GetFocus}
  4254. function GetKBCodePage: UINT; stdcall;
  4255. {$EXTERNALSYM GetKBCodePage}
  4256. function GetKeyState(nVirtKey: Integer): SHORT; stdcall;
  4257. {$EXTERNALSYM GetKeyState}
  4258. function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
  4259. {$EXTERNALSYM GetAsyncKeyState}
  4260. function GetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4261. {$EXTERNALSYM GetKeyboardState}
  4262. function SetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
  4263. {$EXTERNALSYM SetKeyboardState}
  4264. function GetKeyNameTextA(lParam: LONG; lpString: LPSTR; nSize: Integer): Integer; stdcall;
  4265. {$EXTERNALSYM GetKeyNameTextA}
  4266. function GetKeyNameTextW(lParam: LONG; lpString: LPWSTR; nSize: Integer): Integer; stdcall;
  4267. {$EXTERNALSYM GetKeyNameTextW}
  4268. function GetKeyNameText(lParam: LONG; lpString: LPTSTR; nSize: Integer): Integer; stdcall;
  4269. {$EXTERNALSYM GetKeyNameText}
  4270. function GetKeyboardType(nTypeFlag: Integer): Integer; stdcall;
  4271. {$EXTERNALSYM GetKeyboardType}
  4272. function ToAscii(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4273. uFlags: UINT): Integer; stdcall;
  4274. {$EXTERNALSYM ToAscii}
  4275. function ToAsciiEx(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
  4276. uFlags: UINT; dwhkl: HKL): Integer; stdcall;
  4277. {$EXTERNALSYM ToAsciiEx}
  4278. function ToUnicode(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE; pwszBuff: LPWSTR;
  4279. cchBuff: Integer; wFlags: UINT): Integer; stdcall;
  4280. {$EXTERNALSYM ToUnicode}
  4281. function OemKeyScan(wOemChar: WORD): DWORD; stdcall;
  4282. {$EXTERNALSYM OemKeyScan}
  4283. function VkKeyScanA(ch: CHAR): SHORT; stdcall;
  4284. {$EXTERNALSYM VkKeyScanA}
  4285. function VkKeyScanW(ch: WCHAR): SHORT; stdcall;
  4286. {$EXTERNALSYM VkKeyScanW}
  4287. function VkKeyScan(ch: TCHAR): SHORT; stdcall;
  4288. {$EXTERNALSYM VkKeyScan}
  4289. function VkKeyScanExA(ch: CHAR; dwhkl: HKL): SHORT; stdcall;
  4290. {$EXTERNALSYM VkKeyScanExA}
  4291. function VkKeyScanExW(ch: WCHAR; dwhkl: HKL): SHORT; stdcall;
  4292. {$EXTERNALSYM VkKeyScanExW}
  4293. function VkKeyScanEx(ch: TCHAR; dwhkl: HKL): SHORT; stdcall;
  4294. {$EXTERNALSYM VkKeyScanEx}
  4295. const
  4296. KEYEVENTF_EXTENDEDKEY = $0001;
  4297. {$EXTERNALSYM KEYEVENTF_EXTENDEDKEY}
  4298. KEYEVENTF_KEYUP = $0002;
  4299. {$EXTERNALSYM KEYEVENTF_KEYUP}
  4300. KEYEVENTF_UNICODE = $0004;
  4301. {$EXTERNALSYM KEYEVENTF_UNICODE}
  4302. KEYEVENTF_SCANCODE = $0008;
  4303. {$EXTERNALSYM KEYEVENTF_SCANCODE}
  4304. procedure keybd_event(bVk, bScan: BYTE; dwFlags: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4305. {$EXTERNALSYM keybd_event}
  4306. const
  4307. MOUSEEVENTF_MOVE = $0001; // mouse move
  4308. {$EXTERNALSYM MOUSEEVENTF_MOVE}
  4309. MOUSEEVENTF_LEFTDOWN = $0002; // left button down
  4310. {$EXTERNALSYM MOUSEEVENTF_LEFTDOWN}
  4311. MOUSEEVENTF_LEFTUP = $0004; // left button up
  4312. {$EXTERNALSYM MOUSEEVENTF_LEFTUP}
  4313. MOUSEEVENTF_RIGHTDOWN = $0008; // right button down
  4314. {$EXTERNALSYM MOUSEEVENTF_RIGHTDOWN}
  4315. MOUSEEVENTF_RIGHTUP = $0010; // right button up
  4316. {$EXTERNALSYM MOUSEEVENTF_RIGHTUP}
  4317. MOUSEEVENTF_MIDDLEDOWN = $0020; // middle button down
  4318. {$EXTERNALSYM MOUSEEVENTF_MIDDLEDOWN}
  4319. MOUSEEVENTF_MIDDLEUP = $0040; // middle button up
  4320. {$EXTERNALSYM MOUSEEVENTF_MIDDLEUP}
  4321. MOUSEEVENTF_XDOWN = $0080; // x button down
  4322. {$EXTERNALSYM MOUSEEVENTF_XDOWN}
  4323. MOUSEEVENTF_XUP = $0100; // x button down
  4324. {$EXTERNALSYM MOUSEEVENTF_XUP}
  4325. MOUSEEVENTF_WHEEL = $0800; // wheel button rolled
  4326. {$EXTERNALSYM MOUSEEVENTF_WHEEL}
  4327. MOUSEEVENTF_VIRTUALDESK = $4000; // map to entire virtual desktop
  4328. {$EXTERNALSYM MOUSEEVENTF_VIRTUALDESK}
  4329. MOUSEEVENTF_ABSOLUTE = $8000; // absolute move
  4330. {$EXTERNALSYM MOUSEEVENTF_ABSOLUTE}
  4331. procedure mouse_event(dwFlags, dx, dy, dwData: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
  4332. {$EXTERNALSYM mouse_event}
  4333. type
  4334. LPMOUSEINPUT = ^MOUSEINPUT;
  4335. {$EXTERNALSYM LPMOUSEINPUT}
  4336. tagMOUSEINPUT = record
  4337. dx: LONG;
  4338. dy: LONG;
  4339. mouseData: DWORD;
  4340. dwFlags: DWORD;
  4341. time: DWORD;
  4342. dwExtraInfo: ULONG_PTR;
  4343. end;
  4344. {$EXTERNALSYM MOUSEINPUT}
  4345. MOUSEINPUT = tagMOUSEINPUT;
  4346. {$EXTERNALSYM MOUSEINPUT}
  4347. TMouseInput = MOUSEINPUT;
  4348. PMouseInput = LPMOUSEINPUT;
  4349. LPKEYBDINPUT = ^KEYBDINPUT;
  4350. {$EXTERNALSYM LPKEYBDINPUT}
  4351. tagKEYBDINPUT = record
  4352. wVk: WORD;
  4353. wScan: WORD;
  4354. dwFlags: DWORD;
  4355. time: DWORD;
  4356. dwExtraInfo: ULONG_PTR;
  4357. end;
  4358. {$EXTERNALSYM tagKEYBDINPUT}
  4359. KEYBDINPUT = tagKEYBDINPUT;
  4360. {$EXTERNALSYM KEYBDINPUT}
  4361. TKeybdinput = KEYBDINPUT;
  4362. PKeybdInput = LPKEYBDINPUT;
  4363. LPHARDWAREINPUT = ^HARDWAREINPUT;
  4364. {$EXTERNALSYM LPHARDWAREINPUT}
  4365. tagHARDWAREINPUT = record
  4366. uMsg: DWORD;
  4367. wParamL: WORD;
  4368. wParamH: WORD;
  4369. end;
  4370. {$EXTERNALSYM tagHARDWAREINPUT}
  4371. HARDWAREINPUT = tagHARDWAREINPUT;
  4372. {$EXTERNALSYM HARDWAREINPUT}
  4373. THardwareInput = HARDWAREINPUT;
  4374. PHardwareInput = LPHARDWAREINPUT;
  4375. const
  4376. INPUT_MOUSE = 0;
  4377. {$EXTERNALSYM INPUT_MOUSE}
  4378. INPUT_KEYBOARD = 1;
  4379. {$EXTERNALSYM INPUT_KEYBOARD}
  4380. INPUT_HARDWARE = 2;
  4381. {$EXTERNALSYM INPUT_HARDWARE}
  4382. type
  4383. LPINPUT = ^INPUT;
  4384. {$EXTERNALSYM LPINPUT}
  4385. tagINPUT = record
  4386. type_: DWORD;
  4387. case Integer of
  4388. 0: (mi: MOUSEINPUT);
  4389. 1: (ki: KEYBDINPUT);
  4390. 2: (hi: HARDWAREINPUT);
  4391. end;
  4392. {$EXTERNALSYM tagINPUT}
  4393. INPUT = tagINPUT;
  4394. {$EXTERNALSYM INPUT}
  4395. TInput = INPUT;
  4396. PInput = LPINPUT;
  4397. function SendInput(cInputs: UINT; pInputs: LPINPUT; cbSize: Integer): UINT; stdcall;
  4398. {$EXTERNALSYM SendInput}
  4399. type
  4400. PLASTINPUTINFO = ^LASTINPUTINFO;
  4401. tagLASTINPUTINFO = record
  4402. cbSize: UINT;
  4403. dwTime: DWORD;
  4404. end;
  4405. {$EXTERNALSYM tagLASTINPUTINFO}
  4406. LASTINPUTINFO = tagLASTINPUTINFO;
  4407. {$EXTERNALSYM LASTINPUTINFO}
  4408. TLastInputInfo = LASTINPUTINFO;
  4409. function GetLastInputInfo(var plii: LASTINPUTINFO): BOOL; stdcall;
  4410. {$EXTERNALSYM GetLastInputInfo}
  4411. function MapVirtualKeyA(uCode, uMapType: UINT): UINT; stdcall;
  4412. {$EXTERNALSYM MapVirtualKeyA}
  4413. function MapVirtualKeyW(uCode, uMapType: UINT): UINT; stdcall;
  4414. {$EXTERNALSYM MapVirtualKeyW}
  4415. function MapVirtualKey(uCode, uMapType: UINT): UINT; stdcall;
  4416. {$EXTERNALSYM MapVirtualKey}
  4417. function MapVirtualKeyExA(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4418. {$EXTERNALSYM MapVirtualKeyExA}
  4419. function MapVirtualKeyExW(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4420. {$EXTERNALSYM MapVirtualKeyExW}
  4421. function MapVirtualKeyEx(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
  4422. {$EXTERNALSYM MapVirtualKeyEx}
  4423. function GetInputState: BOOL; stdcall;
  4424. {$EXTERNALSYM GetInputState}
  4425. function GetQueueStatus(flags: UINT): DWORD; stdcall;
  4426. {$EXTERNALSYM GetQueueStatus}
  4427. function GetCapture: HWND; stdcall;
  4428. {$EXTERNALSYM GetCapture}
  4429. function SetCapture(hWnd: HWND): HWND; stdcall;
  4430. {$EXTERNALSYM SetCapture}
  4431. function ReleaseCapture: BOOL; stdcall;
  4432. {$EXTERNALSYM ReleaseCapture}
  4433. function MsgWaitForMultipleObjects(nCount: DWORD; pHandles: PHANDLE;
  4434. fWaitAll: BOOL; dwMilliseconds: DWORD; dwWakeMask: DWORD): DWORD; stdcall;
  4435. {$EXTERNALSYM MsgWaitForMultipleObjects}
  4436. function MsgWaitForMultipleObjectsEx(nCount: DWORD; pHandles: PHANDLE;
  4437. dwMilliseconds: DWORD; dwWakeMask: DWORD; dwFlags: DWORD): DWORD; stdcall;
  4438. {$EXTERNALSYM MsgWaitForMultipleObjectsEx}
  4439. const
  4440. MWMO_WAITALL = $0001;
  4441. {$EXTERNALSYM MWMO_WAITALL}
  4442. MWMO_ALERTABLE = $0002;
  4443. {$EXTERNALSYM MWMO_ALERTABLE}
  4444. MWMO_INPUTAVAILABLE = $0004;
  4445. {$EXTERNALSYM MWMO_INPUTAVAILABLE}
  4446. //
  4447. // Windows Functions
  4448. //
  4449. function SetTimer(hWnd: HWND; nIDEvent: UINT_PTR; uElapse: UINT;
  4450. lpTimerFunc: TIMERPROC): UINT_PTR; stdcall;
  4451. {$EXTERNALSYM SetTimer}
  4452. function KillTimer(hWnd: HWND; uIDEvent: UINT_PTR): BOOL; stdcall;
  4453. {$EXTERNALSYM KillTimer}
  4454. function IsWindowUnicode(hWnd: HWND): BOOL; stdcall;
  4455. {$EXTERNALSYM IsWindowUnicode}
  4456. function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
  4457. {$EXTERNALSYM EnableWindow}
  4458. function IsWindowEnabled(hWnd: HWND): BOOL; stdcall;
  4459. {$EXTERNALSYM IsWindowEnabled}
  4460. function LoadAcceleratorsA(hInstance: HINST; lpTableName: LPCSTR): HACCEL; stdcall;
  4461. {$EXTERNALSYM LoadAcceleratorsA}
  4462. function LoadAcceleratorsW(hInstance: HINST; lpTableName: LPCWSTR): HACCEL; stdcall;
  4463. {$EXTERNALSYM LoadAcceleratorsW}
  4464. function LoadAccelerators(hInstance: HINST; lpTableName: LPCTSTR): HACCEL; stdcall;
  4465. {$EXTERNALSYM LoadAccelerators}
  4466. function CreateAcceleratorTableA(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4467. {$EXTERNALSYM CreateAcceleratorTableA}
  4468. function CreateAcceleratorTableW(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4469. {$EXTERNALSYM CreateAcceleratorTableW}
  4470. function CreateAcceleratorTable(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
  4471. {$EXTERNALSYM CreateAcceleratorTable}
  4472. function DestroyAcceleratorTable(hAccel: HACCEL): BOOL; stdcall;
  4473. {$EXTERNALSYM DestroyAcceleratorTable}
  4474. function CopyAcceleratorTableA(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4475. cAccelEntries: Integer): Integer; stdcall;
  4476. {$EXTERNALSYM CopyAcceleratorTableA}
  4477. function CopyAcceleratorTableW(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4478. cAccelEntries: Integer): Integer; stdcall;
  4479. {$EXTERNALSYM CopyAcceleratorTableW}
  4480. function CopyAcceleratorTable(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
  4481. cAccelEntries: Integer): Integer; stdcall;
  4482. {$EXTERNALSYM CopyAcceleratorTable}
  4483. function TranslateAcceleratorA(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4484. {$EXTERNALSYM TranslateAcceleratorA}
  4485. function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4486. {$EXTERNALSYM TranslateAcceleratorW}
  4487. function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
  4488. {$EXTERNALSYM TranslateAccelerator}
  4489. //
  4490. // GetSystemMetrics() codes
  4491. //
  4492. const
  4493. SM_CXSCREEN = 0;
  4494. {$EXTERNALSYM SM_CXSCREEN}
  4495. SM_CYSCREEN = 1;
  4496. {$EXTERNALSYM SM_CYSCREEN}
  4497. SM_CXVSCROLL = 2;
  4498. {$EXTERNALSYM SM_CXVSCROLL}
  4499. SM_CYHSCROLL = 3;
  4500. {$EXTERNALSYM SM_CYHSCROLL}
  4501. SM_CYCAPTION = 4;
  4502. {$EXTERNALSYM SM_CYCAPTION}
  4503. SM_CXBORDER = 5;
  4504. {$EXTERNALSYM SM_CXBORDER}
  4505. SM_CYBORDER = 6;
  4506. {$EXTERNALSYM SM_CYBORDER}
  4507. SM_CXDLGFRAME = 7;
  4508. {$EXTERNALSYM SM_CXDLGFRAME}
  4509. SM_CYDLGFRAME = 8;
  4510. {$EXTERNALSYM SM_CYDLGFRAME}
  4511. SM_CYVTHUMB = 9;
  4512. {$EXTERNALSYM SM_CYVTHUMB}
  4513. SM_CXHTHUMB = 10;
  4514. {$EXTERNALSYM SM_CXHTHUMB}
  4515. SM_CXICON = 11;
  4516. {$EXTERNALSYM SM_CXICON}
  4517. SM_CYICON = 12;
  4518. {$EXTERNALSYM SM_CYICON}
  4519. SM_CXCURSOR = 13;
  4520. {$EXTERNALSYM SM_CXCURSOR}
  4521. SM_CYCURSOR = 14;
  4522. {$EXTERNALSYM SM_CYCURSOR}
  4523. SM_CYMENU = 15;
  4524. {$EXTERNALSYM SM_CYMENU}
  4525. SM_CXFULLSCREEN = 16;
  4526. {$EXTERNALSYM SM_CXFULLSCREEN}
  4527. SM_CYFULLSCREEN = 17;
  4528. {$EXTERNALSYM SM_CYFULLSCREEN}
  4529. SM_CYKANJIWINDOW = 18;
  4530. {$EXTERNALSYM SM_CYKANJIWINDOW}
  4531. SM_MOUSEPRESENT = 19;
  4532. {$EXTERNALSYM SM_MOUSEPRESENT}
  4533. SM_CYVSCROLL = 20;
  4534. {$EXTERNALSYM SM_CYVSCROLL}
  4535. SM_CXHSCROLL = 21;
  4536. {$EXTERNALSYM SM_CXHSCROLL}
  4537. SM_DEBUG = 22;
  4538. {$EXTERNALSYM SM_DEBUG}
  4539. SM_SWAPBUTTON = 23;
  4540. {$EXTERNALSYM SM_SWAPBUTTON}
  4541. SM_RESERVED1 = 24;
  4542. {$EXTERNALSYM SM_RESERVED1}
  4543. SM_RESERVED2 = 25;
  4544. {$EXTERNALSYM SM_RESERVED2}
  4545. SM_RESERVED3 = 26;
  4546. {$EXTERNALSYM SM_RESERVED3}
  4547. SM_RESERVED4 = 27;
  4548. {$EXTERNALSYM SM_RESERVED4}
  4549. SM_CXMIN = 28;
  4550. {$EXTERNALSYM SM_CXMIN}
  4551. SM_CYMIN = 29;
  4552. {$EXTERNALSYM SM_CYMIN}
  4553. SM_CXSIZE = 30;
  4554. {$EXTERNALSYM SM_CXSIZE}
  4555. SM_CYSIZE = 31;
  4556. {$EXTERNALSYM SM_CYSIZE}
  4557. SM_CXFRAME = 32;
  4558. {$EXTERNALSYM SM_CXFRAME}
  4559. SM_CYFRAME = 33;
  4560. {$EXTERNALSYM SM_CYFRAME}
  4561. SM_CXMINTRACK = 34;
  4562. {$EXTERNALSYM SM_CXMINTRACK}
  4563. SM_CYMINTRACK = 35;
  4564. {$EXTERNALSYM SM_CYMINTRACK}
  4565. SM_CXDOUBLECLK = 36;
  4566. {$EXTERNALSYM SM_CXDOUBLECLK}
  4567. SM_CYDOUBLECLK = 37;
  4568. {$EXTERNALSYM SM_CYDOUBLECLK}
  4569. SM_CXICONSPACING = 38;
  4570. {$EXTERNALSYM SM_CXICONSPACING}
  4571. SM_CYICONSPACING = 39;
  4572. {$EXTERNALSYM SM_CYICONSPACING}
  4573. SM_MENUDROPALIGNMENT = 40;
  4574. {$EXTERNALSYM SM_MENUDROPALIGNMENT}
  4575. SM_PENWINDOWS = 41;
  4576. {$EXTERNALSYM SM_PENWINDOWS}
  4577. SM_DBCSENABLED = 42;
  4578. {$EXTERNALSYM SM_DBCSENABLED}
  4579. SM_CMOUSEBUTTONS = 43;
  4580. {$EXTERNALSYM SM_CMOUSEBUTTONS}
  4581. SM_CXFIXEDFRAME = SM_CXDLGFRAME; // ;win40 name change
  4582. {$EXTERNALSYM SM_CXFIXEDFRAME}
  4583. SM_CYFIXEDFRAME = SM_CYDLGFRAME; // ;win40 name change
  4584. {$EXTERNALSYM SM_CYFIXEDFRAME}
  4585. SM_CXSIZEFRAME = SM_CXFRAME; // ;win40 name change
  4586. {$EXTERNALSYM SM_CXSIZEFRAME}
  4587. SM_CYSIZEFRAME = SM_CYFRAME; // ;win40 name change
  4588. {$EXTERNALSYM SM_CYSIZEFRAME}
  4589. SM_SECURE = 44;
  4590. {$EXTERNALSYM SM_SECURE}
  4591. SM_CXEDGE = 45;
  4592. {$EXTERNALSYM SM_CXEDGE}
  4593. SM_CYEDGE = 46;
  4594. {$EXTERNALSYM SM_CYEDGE}
  4595. SM_CXMINSPACING = 47;
  4596. {$EXTERNALSYM SM_CXMINSPACING}
  4597. SM_CYMINSPACING = 48;
  4598. {$EXTERNALSYM SM_CYMINSPACING}
  4599. SM_CXSMICON = 49;
  4600. {$EXTERNALSYM SM_CXSMICON}
  4601. SM_CYSMICON = 50;
  4602. {$EXTERNALSYM SM_CYSMICON}
  4603. SM_CYSMCAPTION = 51;
  4604. {$EXTERNALSYM SM_CYSMCAPTION}
  4605. SM_CXSMSIZE = 52;
  4606. {$EXTERNALSYM SM_CXSMSIZE}
  4607. SM_CYSMSIZE = 53;
  4608. {$EXTERNALSYM SM_CYSMSIZE}
  4609. SM_CXMENUSIZE = 54;
  4610. {$EXTERNALSYM SM_CXMENUSIZE}
  4611. SM_CYMENUSIZE = 55;
  4612. {$EXTERNALSYM SM_CYMENUSIZE}
  4613. SM_ARRANGE = 56;
  4614. {$EXTERNALSYM SM_ARRANGE}
  4615. SM_CXMINIMIZED = 57;
  4616. {$EXTERNALSYM SM_CXMINIMIZED}
  4617. SM_CYMINIMIZED = 58;
  4618. {$EXTERNALSYM SM_CYMINIMIZED}
  4619. SM_CXMAXTRACK = 59;
  4620. {$EXTERNALSYM SM_CXMAXTRACK}
  4621. SM_CYMAXTRACK = 60;
  4622. {$EXTERNALSYM SM_CYMAXTRACK}
  4623. SM_CXMAXIMIZED = 61;
  4624. {$EXTERNALSYM SM_CXMAXIMIZED}
  4625. SM_CYMAXIMIZED = 62;
  4626. {$EXTERNALSYM SM_CYMAXIMIZED}
  4627. SM_NETWORK = 63;
  4628. {$EXTERNALSYM SM_NETWORK}
  4629. SM_CLEANBOOT = 67;
  4630. {$EXTERNALSYM SM_CLEANBOOT}
  4631. SM_CXDRAG = 68;
  4632. {$EXTERNALSYM SM_CXDRAG}
  4633. SM_CYDRAG = 69;
  4634. {$EXTERNALSYM SM_CYDRAG}
  4635. SM_SHOWSOUNDS = 70;
  4636. {$EXTERNALSYM SM_SHOWSOUNDS}
  4637. SM_CXMENUCHECK = 71; // Use instead of GetMenuCheckMarkDimensions()!
  4638. {$EXTERNALSYM SM_CXMENUCHECK}
  4639. SM_CYMENUCHECK = 72;
  4640. {$EXTERNALSYM SM_CYMENUCHECK}
  4641. SM_SLOWMACHINE = 73;
  4642. {$EXTERNALSYM SM_SLOWMACHINE}
  4643. SM_MIDEASTENABLED = 74;
  4644. {$EXTERNALSYM SM_MIDEASTENABLED}
  4645. SM_MOUSEWHEELPRESENT = 75;
  4646. {$EXTERNALSYM SM_MOUSEWHEELPRESENT}
  4647. SM_XVIRTUALSCREEN = 76;
  4648. {$EXTERNALSYM SM_XVIRTUALSCREEN}
  4649. SM_YVIRTUALSCREEN = 77;
  4650. {$EXTERNALSYM SM_YVIRTUALSCREEN}
  4651. SM_CXVIRTUALSCREEN = 78;
  4652. {$EXTERNALSYM SM_CXVIRTUALSCREEN}
  4653. SM_CYVIRTUALSCREEN = 79;
  4654. {$EXTERNALSYM SM_CYVIRTUALSCREEN}
  4655. SM_CMONITORS = 80;
  4656. {$EXTERNALSYM SM_CMONITORS}
  4657. SM_SAMEDISPLAYFORMAT = 81;
  4658. {$EXTERNALSYM SM_SAMEDISPLAYFORMAT}
  4659. SM_IMMENABLED = 82;
  4660. {$EXTERNALSYM SM_IMMENABLED}
  4661. SM_CXFOCUSBORDER = 83;
  4662. {$EXTERNALSYM SM_CXFOCUSBORDER}
  4663. SM_CYFOCUSBORDER = 84;
  4664. {$EXTERNALSYM SM_CYFOCUSBORDER}
  4665. //#if(_WIN32_WINNT >= 0x0501)
  4666. SM_TABLETPC = 86;
  4667. {$EXTERNALSYM SM_TABLETPC}
  4668. SM_MEDIACENTER = 87;
  4669. {$EXTERNALSYM SM_MEDIACENTER}
  4670. //#endif /* _WIN32_WINNT >= 0x0501 */
  4671. const
  4672. {$IFNDEF WIN98ME_UP}
  4673. SM_CMETRICS = 76;
  4674. {$ELSE}
  4675. {$IFDEF WIN98ME}
  4676. SM_CMETRICS = 83;
  4677. {$ELSE}
  4678. SM_CMETRICS = 88;
  4679. {$ENDIF WIN98ME}
  4680. {$ENDIF !WIN98ME_UP}
  4681. {$EXTERNALSYM SM_CMETRICS}
  4682. SM_REMOTESESSION = $1000;
  4683. {$EXTERNALSYM SM_REMOTESESSION}
  4684. SM_SHUTTINGDOWN = $2000;
  4685. {$EXTERNALSYM SM_SHUTTINGDOWN}
  4686. //#if(WINVER >= 0x0501)
  4687. SM_REMOTECONTROL = $2001;
  4688. {$EXTERNALSYM SM_REMOTECONTROL}
  4689. //#endif /* WINVER >= 0x0501 */
  4690. function GetSystemMetrics(nIndex: Integer): Integer; stdcall;
  4691. {$EXTERNALSYM GetSystemMetrics}
  4692. function LoadMenuA(hInstance: HINST; lpMenuName: LPCSTR): HMENU; stdcall;
  4693. {$EXTERNALSYM LoadMenuA}
  4694. function LoadMenuW(hInstance: HINST; lpMenuName: LPCWSTR): HMENU; stdcall;
  4695. {$EXTERNALSYM LoadMenuW}
  4696. function LoadMenu(hInstance: HINST; lpMenuName: LPCTSTR): HMENU; stdcall;
  4697. {$EXTERNALSYM LoadMenu}
  4698. function LoadMenuIndirectA(lpMenuTemplate: LPMENUTEMPLATEA): HMENU; stdcall;
  4699. {$EXTERNALSYM LoadMenuIndirectA}
  4700. function LoadMenuIndirectW(lpMenuTemplate: LPMENUTEMPLATEW): HMENU; stdcall;
  4701. {$EXTERNALSYM LoadMenuIndirectW}
  4702. function LoadMenuIndirect(lpMenuTemplate: LPMENUTEMPLATE): HMENU; stdcall;
  4703. {$EXTERNALSYM LoadMenuIndirect}
  4704. function GetMenu(hWnd: HWND): HMENU; stdcall;
  4705. {$EXTERNALSYM GetMenu}
  4706. function SetMenu(hWnd: HWND; hMenu: HMENU): BOOL; stdcall;
  4707. {$EXTERNALSYM SetMenu}
  4708. function ChangeMenuA(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCSTR;
  4709. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4710. {$EXTERNALSYM ChangeMenuA}
  4711. function ChangeMenuW(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCWSTR;
  4712. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4713. {$EXTERNALSYM ChangeMenuW}
  4714. function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCTSTR;
  4715. cmdInsert: UINT; flags: UINT): BOOL; stdcall;
  4716. {$EXTERNALSYM ChangeMenu}
  4717. function HiliteMenuItem(hWnd: HWND; hMenu: HMENU; uIDHiliteItem: UINT; uHilite: UINT): BOOL; stdcall;
  4718. {$EXTERNALSYM HiliteMenuItem}
  4719. function GetMenuStringA(hMenu: HMENU; uIDItem: UINT; lpString: LPSTR;
  4720. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4721. {$EXTERNALSYM GetMenuStringA}
  4722. function GetMenuStringW(hMenu: HMENU; uIDItem: UINT; lpString: LPWSTR;
  4723. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4724. {$EXTERNALSYM GetMenuStringW}
  4725. function GetMenuString(hMenu: HMENU; uIDItem: UINT; lpString: LPTSTR;
  4726. nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
  4727. {$EXTERNALSYM GetMenuString}
  4728. function GetMenuState(hMenu: HMENU; uId, uFlags: UINT): UINT; stdcall;
  4729. {$EXTERNALSYM GetMenuState}
  4730. function DrawMenuBar(hWnd: HWND): BOOL; stdcall;
  4731. {$EXTERNALSYM DrawMenuBar}
  4732. const
  4733. PMB_ACTIVE = $00000001;
  4734. {$EXTERNALSYM PMB_ACTIVE}
  4735. function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; stdcall;
  4736. {$EXTERNALSYM GetSystemMenu}
  4737. function CreateMenu: HMENU; stdcall;
  4738. {$EXTERNALSYM CreateMenu}
  4739. function CreatePopupMenu: HMENU; stdcall;
  4740. {$EXTERNALSYM CreatePopupMenu}
  4741. function DestroyMenu(hMenu: HMENU): BOOL; stdcall;
  4742. {$EXTERNALSYM DestroyMenu}
  4743. function CheckMenuItem(hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD; stdcall;
  4744. {$EXTERNALSYM CheckMenuItem}
  4745. function EnableMenuItem(hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL; stdcall;
  4746. {$EXTERNALSYM EnableMenuItem}
  4747. function GetSubMenu(hMenu: HMENU; nPos: Integer): HMENU; stdcall;
  4748. {$EXTERNALSYM GetSubMenu}
  4749. function GetMenuItemID(hMenu: HMENU; nPos: Integer): UINT; stdcall;
  4750. {$EXTERNALSYM GetMenuItemID}
  4751. function GetMenuItemCount(hMenu: HMENU): Integer; stdcall;
  4752. {$EXTERNALSYM GetMenuItemCount}
  4753. function InsertMenuA(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4754. lpNewItem: LPCSTR): BOOL; stdcall;
  4755. {$EXTERNALSYM InsertMenuA}
  4756. function InsertMenuW(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4757. lpNewItem: LPCWSTR): BOOL; stdcall;
  4758. {$EXTERNALSYM InsertMenuW}
  4759. function InsertMenu(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
  4760. lpNewItem: LPCTSTR): BOOL; stdcall;
  4761. {$EXTERNALSYM InsertMenu}
  4762. function AppendMenuA(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4763. lpNewItem: LPCSTR): BOOL; stdcall;
  4764. {$EXTERNALSYM AppendMenuA}
  4765. function AppendMenuW(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4766. lpNewItem: LPCWSTR): BOOL; stdcall;
  4767. {$EXTERNALSYM AppendMenuW}
  4768. function AppendMenu(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
  4769. lpNewItem: LPCTSTR): BOOL; stdcall;
  4770. {$EXTERNALSYM AppendMenu}
  4771. function ModifyMenuA(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4772. uIDNewItem: UINT_PTR; lpNewItem: LPCSTR): BOOL; stdcall;
  4773. {$EXTERNALSYM ModifyMenuA}
  4774. function ModifyMenuW(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4775. uIDNewItem: UINT_PTR; lpNewItem: LPCWSTR): BOOL; stdcall;
  4776. {$EXTERNALSYM ModifyMenuW}
  4777. function ModifyMenu(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
  4778. uIDNewItem: UINT_PTR; lpNewItem: LPCTSTR): BOOL; stdcall;
  4779. {$EXTERNALSYM ModifyMenu}
  4780. function RemoveMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4781. {$EXTERNALSYM RemoveMenu}
  4782. function DeleteMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
  4783. {$EXTERNALSYM DeleteMenu}
  4784. function SetMenuItemBitmaps(hMenu: HMENU; uPosition: UINT; uFlags: UINT;
  4785. hBitmapUnchecked: HBITMAP; hBitmapChecked: HBITMAP): BOOL; stdcall;
  4786. {$EXTERNALSYM SetMenuItemBitmaps}
  4787. function GetMenuCheckMarkDimensions: LONG; stdcall;
  4788. {$EXTERNALSYM GetMenuCheckMarkDimensions}
  4789. function TrackPopupMenu(hMenu: HMENU; uFlags: UINT; x: Integer; y: Integer;
  4790. nReserved: Integer; hWnd: HWND; prcRect: LPRECT): BOOL; stdcall;
  4791. {$EXTERNALSYM TrackPopupMenu}
  4792. // return codes for WM_MENUCHAR//
  4793. const
  4794. MNC_IGNORE = 0;
  4795. {$EXTERNALSYM MNC_IGNORE}
  4796. MNC_CLOSE = 1;
  4797. {$EXTERNALSYM MNC_CLOSE}
  4798. MNC_EXECUTE = 2;
  4799. {$EXTERNALSYM MNC_EXECUTE}
  4800. MNC_SELECT = 3;
  4801. {$EXTERNALSYM MNC_SELECT}
  4802. type
  4803. LPTPMPARAMS = ^TPMPARAMS;
  4804. {$EXTERNALSYM LPTPMPARAMS}
  4805. tagTPMPARAMS = record
  4806. cbSize: UINT; // Size of structure
  4807. rcExclude: RECT; // Screen coordinates of rectangle to exclude when positioning
  4808. end;
  4809. {$EXTERNALSYM tagTPMPARAMS}
  4810. TPMPARAMS = tagTPMPARAMS;
  4811. {$EXTERNALSYM TPMPARAMS}
  4812. TTPMParams = TPMPARAMS;
  4813. PTPMParams = LPTPMPARAMS;
  4814. function TrackPopupMenuEx(hmenu: HMENU; fuflags: UINT; x, y: Integer;
  4815. hwnd: HWND; lptpm: LPTPMPARAMS): BOOL; stdcall;
  4816. {$EXTERNALSYM TrackPopupMenuEx}
  4817. const
  4818. MNS_NOCHECK = $80000000;
  4819. {$EXTERNALSYM MNS_NOCHECK}
  4820. MNS_MODELESS = $40000000;
  4821. {$EXTERNALSYM MNS_MODELESS}
  4822. MNS_DRAGDROP = $20000000;
  4823. {$EXTERNALSYM MNS_DRAGDROP}
  4824. MNS_AUTODISMISS = $10000000;
  4825. {$EXTERNALSYM MNS_AUTODISMISS}
  4826. MNS_NOTIFYBYPOS = $08000000;
  4827. {$EXTERNALSYM MNS_NOTIFYBYPOS}
  4828. MNS_CHECKORBMP = $04000000;
  4829. {$EXTERNALSYM MNS_CHECKORBMP}
  4830. MIM_MAXHEIGHT = $00000001;
  4831. {$EXTERNALSYM MIM_MAXHEIGHT}
  4832. MIM_BACKGROUND = $00000002;
  4833. {$EXTERNALSYM MIM_BACKGROUND}
  4834. MIM_HELPID = $00000004;
  4835. {$EXTERNALSYM MIM_HELPID}
  4836. MIM_MENUDATA = $00000008;
  4837. {$EXTERNALSYM MIM_MENUDATA}
  4838. MIM_STYLE = $00000010;
  4839. {$EXTERNALSYM MIM_STYLE}
  4840. MIM_APPLYTOSUBMENUS = $80000000;
  4841. {$EXTERNALSYM MIM_APPLYTOSUBMENUS}
  4842. type
  4843. LPMENUINFO = ^MENUINFO;
  4844. {$EXTERNALSYM LPMENUINFO}
  4845. tagMENUINFO = record
  4846. cbSize: DWORD;
  4847. fMask: DWORD;
  4848. dwStyle: DWORD;
  4849. cyMax: UINT;
  4850. hbrBack: HBRUSH;
  4851. dwContextHelpID: DWORD;
  4852. dwMenuData: ULONG_PTR;
  4853. end;
  4854. {$EXTERNALSYM tagMENUINFO}
  4855. MENUINFO = tagMENUINFO;
  4856. {$EXTERNALSYM MENUINFO}
  4857. TMenuinfo = MENUINFO;
  4858. PMenuinfo = LPMENUINFO;
  4859. LPCMENUINFO = ^MENUINFO;
  4860. {$EXTERNALSYM LPCMENUINFO}
  4861. function GetMenuInfo(hmenu: HMENU; var lpcmi: MENUINFO): BOOL; stdcall;
  4862. {$EXTERNALSYM GetMenuInfo}
  4863. function SetMenuInfo(hemnu: HMENU; const lpcmi: MENUINFO): BOOL; stdcall;
  4864. {$EXTERNALSYM SetMenuInfo}
  4865. function EndMenu: BOOL; stdcall;
  4866. {$EXTERNALSYM EndMenu}
  4867. //
  4868. // WM_MENUDRAG return values.
  4869. //
  4870. const
  4871. MND_CONTINUE = 0;
  4872. {$EXTERNALSYM MND_CONTINUE}
  4873. MND_ENDMENU = 1;
  4874. {$EXTERNALSYM MND_ENDMENU}
  4875. type
  4876. PMENUGETOBJECTINFO = ^MENUGETOBJECTINFO;
  4877. tagMENUGETOBJECTINFO = record
  4878. dwFlags: DWORD;
  4879. uPos: UINT;
  4880. hmenu: HMENU;
  4881. riid: PVOID;
  4882. pvObj: PVOID;
  4883. end;
  4884. {$EXTERNALSYM tagMENUGETOBJECTINFO}
  4885. MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;
  4886. {$EXTERNALSYM MENUGETOBJECTINFO}
  4887. TMenuGetObjectInfo = MENUGETOBJECTINFO;
  4888. //
  4889. // MENUGETOBJECTINFO dwFlags values
  4890. //
  4891. const
  4892. MNGOF_TOPGAP = $00000001;
  4893. {$EXTERNALSYM MNGOF_TOPGAP}
  4894. MNGOF_BOTTOMGAP = $00000002;
  4895. {$EXTERNALSYM MNGOF_BOTTOMGAP}
  4896. //
  4897. // WM_MENUGETOBJECT return values
  4898. //
  4899. MNGO_NOINTERFACE = $00000000;
  4900. {$EXTERNALSYM MNGO_NOINTERFACE}
  4901. MNGO_NOERROR = $00000001;
  4902. {$EXTERNALSYM MNGO_NOERROR}
  4903. MIIM_STATE = $00000001;
  4904. {$EXTERNALSYM MIIM_STATE}
  4905. MIIM_ID = $00000002;
  4906. {$EXTERNALSYM MIIM_ID}
  4907. MIIM_SUBMENU = $00000004;
  4908. {$EXTERNALSYM MIIM_SUBMENU}
  4909. MIIM_CHECKMARKS = $00000008;
  4910. {$EXTERNALSYM MIIM_CHECKMARKS}
  4911. MIIM_TYPE = $00000010;
  4912. {$EXTERNALSYM MIIM_TYPE}
  4913. MIIM_DATA = $00000020;
  4914. {$EXTERNALSYM MIIM_DATA}
  4915. MIIM_STRING = $00000040;
  4916. {$EXTERNALSYM MIIM_STRING}
  4917. MIIM_BITMAP = $00000080;
  4918. {$EXTERNALSYM MIIM_BITMAP}
  4919. MIIM_FTYPE = $00000100;
  4920. {$EXTERNALSYM MIIM_FTYPE}
  4921. HBMMENU_CALLBACK = HBITMAP(-1);
  4922. {$EXTERNALSYM HBMMENU_CALLBACK}
  4923. HBMMENU_SYSTEM = HBITMAP(1);
  4924. {$EXTERNALSYM HBMMENU_SYSTEM}
  4925. HBMMENU_MBAR_RESTORE = HBITMAP(2);
  4926. {$EXTERNALSYM HBMMENU_MBAR_RESTORE}
  4927. HBMMENU_MBAR_MINIMIZE = HBITMAP(3);
  4928. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE}
  4929. HBMMENU_MBAR_CLOSE = HBITMAP(5);
  4930. {$EXTERNALSYM HBMMENU_MBAR_CLOSE}
  4931. HBMMENU_MBAR_CLOSE_D = HBITMAP(6);
  4932. {$EXTERNALSYM HBMMENU_MBAR_CLOSE_D}
  4933. HBMMENU_MBAR_MINIMIZE_D = HBITMAP(7);
  4934. {$EXTERNALSYM HBMMENU_MBAR_MINIMIZE_D}
  4935. HBMMENU_POPUP_CLOSE = HBITMAP(8);
  4936. {$EXTERNALSYM HBMMENU_POPUP_CLOSE}
  4937. HBMMENU_POPUP_RESTORE = HBITMAP(9);
  4938. {$EXTERNALSYM HBMMENU_POPUP_RESTORE}
  4939. HBMMENU_POPUP_MAXIMIZE = HBITMAP(10);
  4940. {$EXTERNALSYM HBMMENU_POPUP_MAXIMIZE}
  4941. HBMMENU_POPUP_MINIMIZE = HBITMAP(11);
  4942. {$EXTERNALSYM HBMMENU_POPUP_MINIMIZE}
  4943. type
  4944. LPMENUITEMINFOA = ^MENUITEMINFOA;
  4945. {$EXTERNALSYM LPMENUITEMINFOA}
  4946. tagMENUITEMINFOA = record
  4947. cbSize: UINT;
  4948. fMask: UINT;
  4949. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4950. fState: UINT; // used if MIIM_STATE
  4951. wID: UINT; // used if MIIM_ID
  4952. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4953. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4954. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4955. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4956. dwTypeData: LPSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4957. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4958. {$IFDEF WIN98ME_UP}
  4959. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4960. {$ENDIF WIN98ME_UP}
  4961. end;
  4962. {$EXTERNALSYM tagMENUITEMINFOA}
  4963. MENUITEMINFOA = tagMENUITEMINFOA;
  4964. {$EXTERNALSYM MENUITEMINFOA}
  4965. TMenuItemInfoA = MENUITEMINFOA;
  4966. PMenuItemInfoA = LPMENUITEMINFOA;
  4967. LPMENUITEMINFOW = ^MENUITEMINFOW;
  4968. {$EXTERNALSYM LPMENUITEMINFOW}
  4969. tagMENUITEMINFOW = record
  4970. cbSize: UINT;
  4971. fMask: UINT;
  4972. fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
  4973. fState: UINT; // used if MIIM_STATE
  4974. wID: UINT; // used if MIIM_ID
  4975. hSubMenu: HMENU; // used if MIIM_SUBMENU
  4976. hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
  4977. hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
  4978. dwItemData: ULONG_PTR; // used if MIIM_DATA
  4979. dwTypeData: LPWSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4980. cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
  4981. {$IFDEF WIN98ME_UP}
  4982. hbmpItem: HBITMAP; // used if MIIM_BITMAP
  4983. {$ENDIF WIN98ME_UP}
  4984. end;
  4985. {$EXTERNALSYM tagMENUITEMINFOW}
  4986. MENUITEMINFOW = tagMENUITEMINFOW;
  4987. {$EXTERNALSYM MENUITEMINFOW}
  4988. TMenuItemInfoW = MENUITEMINFOW;
  4989. PMenuItemInfoW = LPMENUITEMINFOW;
  4990. LPCMENUITEMINFOA = ^MENUITEMINFOA;
  4991. {$EXTERNALSYM LPCMENUITEMINFOA}
  4992. LPCMENUITEMINFOW = ^MENUITEMINFOW;
  4993. {$EXTERNALSYM LPCMENUITEMINFOW}
  4994. {$IFDEF UNICODE}
  4995. MENUITEMINFO = MENUITEMINFOW;
  4996. {$EXTERNALSYM MENUITEMINFO}
  4997. LPMENUITEMINFO = LPMENUITEMINFOW;
  4998. {$EXTERNALSYM LPMENUITEMINFO}
  4999. TMenuItemInfo = TMenuItemInfoW;
  5000. PMenuItemInfo = PMenuItemInfoW;
  5001. LPCMENUITEMINFO = LPCMENUITEMINFOW;
  5002. {$EXTERNALSYM LPCMENUITEMINFO}
  5003. {$ELSE}
  5004. MENUITEMINFO = MENUITEMINFOA;
  5005. {$EXTERNALSYM MENUITEMINFO}
  5006. LPMENUITEMINFO = LPMENUITEMINFOA;
  5007. {$EXTERNALSYM LPMENUITEMINFO}
  5008. TMenuItemInfo = TMenuItemInfoA;
  5009. PMenuItemInfo = PMenuItemInfoA;
  5010. LPCMENUITEMINFO = LPCMENUITEMINFOA;
  5011. {$EXTERNALSYM LPCMENUITEMINFO}
  5012. {$ENDIF UNICODE}
  5013. function InsertMenuItemA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5014. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5015. {$EXTERNALSYM InsertMenuItemA}
  5016. function InsertMenuItemW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5017. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5018. {$EXTERNALSYM InsertMenuItemW}
  5019. function InsertMenuItem(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5020. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5021. {$EXTERNALSYM InsertMenuItem}
  5022. function GetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5023. var lpmii: MENUITEMINFOA): BOOL; stdcall;
  5024. {$EXTERNALSYM GetMenuItemInfoA}
  5025. function GetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5026. var lpmii: MENUITEMINFOW): BOOL; stdcall;
  5027. {$EXTERNALSYM GetMenuItemInfoW}
  5028. function GetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5029. var lpmii: MENUITEMINFO): BOOL; stdcall;
  5030. {$EXTERNALSYM GetMenuItemInfo}
  5031. function SetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5032. const lpmii: MENUITEMINFOA): BOOL; stdcall;
  5033. {$EXTERNALSYM SetMenuItemInfoA}
  5034. function SetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5035. const lpmii: MENUITEMINFOW): BOOL; stdcall;
  5036. {$EXTERNALSYM SetMenuItemInfoW}
  5037. function SetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
  5038. const lpmii: MENUITEMINFO): BOOL; stdcall;
  5039. {$EXTERNALSYM SetMenuItemInfo}
  5040. const
  5041. GMDI_USEDISABLED = $0001;
  5042. {$EXTERNALSYM GMDI_USEDISABLED}
  5043. GMDI_GOINTOPOPUPS = $0002;
  5044. {$EXTERNALSYM GMDI_GOINTOPOPUPS}
  5045. function GetMenuDefaultItem(hMenu: HMENU; fByPos, gmdiFlags: UINT): UINT; stdcall;
  5046. {$EXTERNALSYM GetMenuDefaultItem}
  5047. function SetMenuDefaultItem(hMenu: HMENU; uItem, fByPos: UINT): BOOL; stdcall;
  5048. {$EXTERNALSYM SetMenuDefaultItem}
  5049. function GetMenuItemRect(hWnd: HWND; hMenu: HMENU; uItem: UINT; var lprcItem: RECT): BOOL; stdcall;
  5050. {$EXTERNALSYM GetMenuItemRect}
  5051. function MenuItemFromPoint(hWnd: HWND; hMenu: HMENU; ptScreen: POINT): Integer; stdcall;
  5052. {$EXTERNALSYM MenuItemFromPoint}
  5053. //
  5054. // Flags for TrackPopupMenu
  5055. //
  5056. const
  5057. TPM_LEFTBUTTON = $0000;
  5058. {$EXTERNALSYM TPM_LEFTBUTTON}
  5059. TPM_RIGHTBUTTON = $0002;
  5060. {$EXTERNALSYM TPM_RIGHTBUTTON}
  5061. TPM_LEFTALIGN = $0000;
  5062. {$EXTERNALSYM TPM_LEFTALIGN}
  5063. TPM_CENTERALIGN = $0004;
  5064. {$EXTERNALSYM TPM_CENTERALIGN}
  5065. TPM_RIGHTALIGN = $0008;
  5066. {$EXTERNALSYM TPM_RIGHTALIGN}
  5067. TPM_TOPALIGN = $0000;
  5068. {$EXTERNALSYM TPM_TOPALIGN}
  5069. TPM_VCENTERALIGN = $0010;
  5070. {$EXTERNALSYM TPM_VCENTERALIGN}
  5071. TPM_BOTTOMALIGN = $0020;
  5072. {$EXTERNALSYM TPM_BOTTOMALIGN}
  5073. TPM_HORIZONTAL = $0000; // Horz alignment matters more
  5074. {$EXTERNALSYM TPM_HORIZONTAL}
  5075. TPM_VERTICAL = $0040; // Vert alignment matters more
  5076. {$EXTERNALSYM TPM_VERTICAL}
  5077. TPM_NONOTIFY = $0080; // Don't send any notification msgs
  5078. {$EXTERNALSYM TPM_NONOTIFY}
  5079. TPM_RETURNCMD = $0100;
  5080. {$EXTERNALSYM TPM_RETURNCMD}
  5081. TPM_RECURSE = $0001;
  5082. {$EXTERNALSYM TPM_RECURSE}
  5083. TPM_HORPOSANIMATION = $0400;
  5084. {$EXTERNALSYM TPM_HORPOSANIMATION}
  5085. TPM_HORNEGANIMATION = $0800;
  5086. {$EXTERNALSYM TPM_HORNEGANIMATION}
  5087. TPM_VERPOSANIMATION = $1000;
  5088. {$EXTERNALSYM TPM_VERPOSANIMATION}
  5089. TPM_VERNEGANIMATION = $2000;
  5090. {$EXTERNALSYM TPM_VERNEGANIMATION}
  5091. TPM_NOANIMATION = $4000;
  5092. {$EXTERNALSYM TPM_NOANIMATION}
  5093. TPM_LAYOUTRTL = $8000;
  5094. {$EXTERNALSYM TPM_LAYOUTRTL}
  5095. //
  5096. // Drag-and-drop support
  5097. // Obsolete - use OLE instead
  5098. //
  5099. type
  5100. LPDROPSTRUCT = ^DROPSTRUCT;
  5101. {$EXTERNALSYM LPDROPSTRUCT}
  5102. tagDROPSTRUCT = record
  5103. hwndSource: HWND;
  5104. hwndSink: HWND;
  5105. wFmt: DWORD;
  5106. dwData: ULONG_PTR;
  5107. ptDrop: POINT;
  5108. dwControlData: DWORD;
  5109. end;
  5110. {$EXTERNALSYM tagDROPSTRUCT}
  5111. DROPSTRUCT = tagDROPSTRUCT;
  5112. {$EXTERNALSYM DROPSTRUCT}
  5113. TDropStruct = DROPSTRUCT;
  5114. PDropStruct = LPDROPSTRUCT;
  5115. const
  5116. DOF_EXECUTABLE = $8001; // wFmt flags
  5117. {$EXTERNALSYM DOF_EXECUTABLE}
  5118. DOF_DOCUMENT = $8002;
  5119. {$EXTERNALSYM DOF_DOCUMENT}
  5120. DOF_DIRECTORY = $8003;
  5121. {$EXTERNALSYM DOF_DIRECTORY}
  5122. DOF_MULTIPLE = $8004;
  5123. {$EXTERNALSYM DOF_MULTIPLE}
  5124. DOF_PROGMAN = $0001;
  5125. {$EXTERNALSYM DOF_PROGMAN}
  5126. DOF_SHELLDATA = $0002;
  5127. {$EXTERNALSYM DOF_SHELLDATA}
  5128. DO_DROPFILE = $454C4946;
  5129. {$EXTERNALSYM DO_DROPFILE}
  5130. DO_PRINTFILE = $544E5250;
  5131. {$EXTERNALSYM DO_PRINTFILE}
  5132. function DragObject(hwnd1, hwnd2: HWND; i: UINT; u: ULONG_PTR; hcursor: HCURSOR): DWORD; stdcall;
  5133. {$EXTERNALSYM DragObject}
  5134. function DragDetect(hwnd: HWND; pt: POINT): BOOL; stdcall;
  5135. {$EXTERNALSYM DragDetect}
  5136. function DrawIcon(hDC: HDC; X, Y: Integer; hIcon: HICON): BOOL; stdcall;
  5137. {$EXTERNALSYM DrawIcon}
  5138. //
  5139. // DrawText() Format Flags
  5140. //
  5141. const
  5142. DT_TOP = $00000000;
  5143. {$EXTERNALSYM DT_TOP}
  5144. DT_LEFT = $00000000;
  5145. {$EXTERNALSYM DT_LEFT}
  5146. DT_CENTER = $00000001;
  5147. {$EXTERNALSYM DT_CENTER}
  5148. DT_RIGHT = $00000002;
  5149. {$EXTERNALSYM DT_RIGHT}
  5150. DT_VCENTER = $00000004;
  5151. {$EXTERNALSYM DT_VCENTER}
  5152. DT_BOTTOM = $00000008;
  5153. {$EXTERNALSYM DT_BOTTOM}
  5154. DT_WORDBREAK = $00000010;
  5155. {$EXTERNALSYM DT_WORDBREAK}
  5156. DT_SINGLELINE = $00000020;
  5157. {$EXTERNALSYM DT_SINGLELINE}
  5158. DT_EXPANDTABS = $00000040;
  5159. {$EXTERNALSYM DT_EXPANDTABS}
  5160. DT_TABSTOP = $00000080;
  5161. {$EXTERNALSYM DT_TABSTOP}
  5162. DT_NOCLIP = $00000100;
  5163. {$EXTERNALSYM DT_NOCLIP}
  5164. DT_EXTERNALLEADING = $00000200;
  5165. {$EXTERNALSYM DT_EXTERNALLEADING}
  5166. DT_CALCRECT = $00000400;
  5167. {$EXTERNALSYM DT_CALCRECT}
  5168. DT_NOPREFIX = $00000800;
  5169. {$EXTERNALSYM DT_NOPREFIX}
  5170. DT_INTERNAL = $00001000;
  5171. {$EXTERNALSYM DT_INTERNAL}
  5172. DT_EDITCONTROL = $00002000;
  5173. {$EXTERNALSYM DT_EDITCONTROL}
  5174. DT_PATH_ELLIPSIS = $00004000;
  5175. {$EXTERNALSYM DT_PATH_ELLIPSIS}
  5176. DT_END_ELLIPSIS = $00008000;
  5177. {$EXTERNALSYM DT_END_ELLIPSIS}
  5178. DT_MODIFYSTRING = $00010000;
  5179. {$EXTERNALSYM DT_MODIFYSTRING}
  5180. DT_RTLREADING = $00020000;
  5181. {$EXTERNALSYM DT_RTLREADING}
  5182. DT_WORD_ELLIPSIS = $00040000;
  5183. {$EXTERNALSYM DT_WORD_ELLIPSIS}
  5184. DT_NOFULLWIDTHCHARBREAK = $00080000;
  5185. {$EXTERNALSYM DT_NOFULLWIDTHCHARBREAK}
  5186. DT_HIDEPREFIX = $00100000;
  5187. {$EXTERNALSYM DT_HIDEPREFIX}
  5188. DT_PREFIXONLY = $00200000;
  5189. {$EXTERNALSYM DT_PREFIXONLY}
  5190. type
  5191. LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
  5192. {$EXTERNALSYM LPDRAWTEXTPARAMS}
  5193. tagDRAWTEXTPARAMS = record
  5194. cbSize: UINT;
  5195. iTabLength: Integer;
  5196. iLeftMargin: Integer;
  5197. iRightMargin: Integer;
  5198. uiLengthDrawn: UINT;
  5199. end;
  5200. {$EXTERNALSYM tagDRAWTEXTPARAMS}
  5201. DRAWTEXTPARAMS = tagDRAWTEXTPARAMS;
  5202. {$EXTERNALSYM DRAWTEXTPARAMS}
  5203. TDrawTextParams = DRAWTEXTPARAMS;
  5204. PDrawTextParams = LPDRAWTEXTPARAMS;
  5205. function DrawTextA(hDC: HDC; lpString: LPCSTR; nCount: Integer;
  5206. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5207. {$EXTERNALSYM DrawTextA}
  5208. function DrawTextW(hDC: HDC; lpString: LPCWSTR; nCount: Integer;
  5209. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5210. {$EXTERNALSYM DrawTextW}
  5211. function DrawText(hDC: HDC; lpString: LPCTSTR; nCount: Integer;
  5212. var lpRect: RECT; uFormat: UINT): Integer; stdcall;
  5213. {$EXTERNALSYM DrawText}
  5214. function DrawTextExA(hDc: HDC; lpchText: LPSTR; cchText: Integer;
  5215. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5216. {$EXTERNALSYM DrawTextExA}
  5217. function DrawTextExW(hDc: HDC; lpchText: LPWSTR; cchText: Integer;
  5218. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5219. {$EXTERNALSYM DrawTextExW}
  5220. function DrawTextEx(hDc: HDC; lpchText: LPTSTR; cchText: Integer;
  5221. var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
  5222. {$EXTERNALSYM DrawTextEx}
  5223. function GrayStringA(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5224. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5225. {$EXTERNALSYM GrayStringA}
  5226. function GrayStringW(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5227. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5228. {$EXTERNALSYM GrayStringW}
  5229. function GrayString(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
  5230. lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
  5231. {$EXTERNALSYM GrayString}
  5232. // Monolithic state-drawing routine//
  5233. // Image type//
  5234. const
  5235. DST_COMPLEX = $0000;
  5236. {$EXTERNALSYM DST_COMPLEX}
  5237. DST_TEXT = $0001;
  5238. {$EXTERNALSYM DST_TEXT}
  5239. DST_PREFIXTEXT = $0002;
  5240. {$EXTERNALSYM DST_PREFIXTEXT}
  5241. DST_ICON = $0003;
  5242. {$EXTERNALSYM DST_ICON}
  5243. DST_BITMAP = $0004;
  5244. {$EXTERNALSYM DST_BITMAP}
  5245. // State type//
  5246. DSS_NORMAL = $0000;
  5247. {$EXTERNALSYM DSS_NORMAL}
  5248. DSS_UNION = $0010; // Gray string appearance
  5249. {$EXTERNALSYM DSS_UNION}
  5250. DSS_DISABLED = $0020;
  5251. {$EXTERNALSYM DSS_DISABLED}
  5252. DSS_MONO = $0080;
  5253. {$EXTERNALSYM DSS_MONO}
  5254. DSS_HIDEPREFIX = $0200;
  5255. {$EXTERNALSYM DSS_HIDEPREFIX}
  5256. DSS_PREFIXONLY = $0400;
  5257. {$EXTERNALSYM DSS_PREFIXONLY}
  5258. DSS_RIGHT = $8000;
  5259. {$EXTERNALSYM DSS_RIGHT}
  5260. function DrawStateA(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5261. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5262. {$EXTERNALSYM DrawStateA}
  5263. function DrawStateW(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5264. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5265. {$EXTERNALSYM DrawStateW}
  5266. function DrawState(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
  5267. lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
  5268. {$EXTERNALSYM DrawState}
  5269. function TabbedTextOutA(hDC: HDC; X, Y: Integer; lpString: LPCSTR; nCount,
  5270. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5271. {$EXTERNALSYM TabbedTextOutA}
  5272. function TabbedTextOutW(hDC: HDC; X, Y: Integer; lpString: LPCWSTR; nCount,
  5273. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5274. {$EXTERNALSYM TabbedTextOutW}
  5275. function TabbedTextOut(hDC: HDC; X, Y: Integer; lpString: LPCTSTR; nCount,
  5276. nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
  5277. {$EXTERNALSYM TabbedTextOut}
  5278. function GetTabbedTextExtentA(hDC: HDC; lpString: LPCSTR; nCount,
  5279. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5280. {$EXTERNALSYM GetTabbedTextExtentA}
  5281. function GetTabbedTextExtentW(hDC: HDC; lpString: LPCWSTR; nCount,
  5282. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5283. {$EXTERNALSYM GetTabbedTextExtentW}
  5284. function GetTabbedTextExtent(hDC: HDC; lpString: LPCTSTR; nCount,
  5285. nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
  5286. {$EXTERNALSYM GetTabbedTextExtent}
  5287. function UpdateWindow(hWnd: HWND): BOOL; stdcall;
  5288. {$EXTERNALSYM UpdateWindow}
  5289. function SetActiveWindow(hWnd: HWND): HWND; stdcall;
  5290. {$EXTERNALSYM SetActiveWindow}
  5291. function GetForegroundWindow: HWND; stdcall;
  5292. {$EXTERNALSYM GetForegroundWindow}
  5293. function PaintDesktop(hdc: HDC): BOOL; stdcall;
  5294. {$EXTERNALSYM PaintDesktop}
  5295. procedure SwitchToThisWindow(hwnd: HWND; fUnknown: BOOL); stdcall;
  5296. {$EXTERNALSYM SwitchToThisWindow}
  5297. function SetForegroundWindow(hWnd: HWND): BOOL; stdcall;
  5298. {$EXTERNALSYM SetForegroundWindow}
  5299. function AllowSetForegroundWindow(dwProcessId: DWORD): BOOL; stdcall;
  5300. {$EXTERNALSYM AllowSetForegroundWindow}
  5301. const
  5302. ASFW_ANY = DWORD(-1);
  5303. {$EXTERNALSYM ASFW_ANY}
  5304. function LockSetForegroundWindow(uLockCode: UINT): BOOL; stdcall;
  5305. {$EXTERNALSYM LockSetForegroundWindow}
  5306. const
  5307. LSFW_LOCK = 1;
  5308. {$EXTERNALSYM LSFW_LOCK}
  5309. LSFW_UNLOCK = 2;
  5310. {$EXTERNALSYM LSFW_UNLOCK}
  5311. function WindowFromDC(hDC: HDC): HWND; stdcall;
  5312. {$EXTERNALSYM WindowFromDC}
  5313. function GetDC(hWnd: HWND): HDC; stdcall;
  5314. {$EXTERNALSYM GetDC}
  5315. function GetDCEx(hWnd: HWND; hrgnClip: HRGN; flags: DWORD): HDC; stdcall;
  5316. {$EXTERNALSYM GetDCEx}
  5317. //
  5318. // GetDCEx() flags
  5319. //
  5320. const
  5321. DCX_WINDOW = $00000001;
  5322. {$EXTERNALSYM DCX_WINDOW}
  5323. DCX_CACHE = $00000002;
  5324. {$EXTERNALSYM DCX_CACHE}
  5325. DCX_NORESETATTRS = $00000004;
  5326. {$EXTERNALSYM DCX_NORESETATTRS}
  5327. DCX_CLIPCHILDREN = $00000008;
  5328. {$EXTERNALSYM DCX_CLIPCHILDREN}
  5329. DCX_CLIPSIBLINGS = $00000010;
  5330. {$EXTERNALSYM DCX_CLIPSIBLINGS}
  5331. DCX_PARENTCLIP = $00000020;
  5332. {$EXTERNALSYM DCX_PARENTCLIP}
  5333. DCX_EXCLUDERGN = $00000040;
  5334. {$EXTERNALSYM DCX_EXCLUDERGN}
  5335. DCX_INTERSECTRGN = $00000080;
  5336. {$EXTERNALSYM DCX_INTERSECTRGN}
  5337. DCX_EXCLUDEUPDATE = $00000100;
  5338. {$EXTERNALSYM DCX_EXCLUDEUPDATE}
  5339. DCX_INTERSECTUPDATE = $00000200;
  5340. {$EXTERNALSYM DCX_INTERSECTUPDATE}
  5341. DCX_LOCKWINDOWUPDATE = $00000400;
  5342. {$EXTERNALSYM DCX_LOCKWINDOWUPDATE}
  5343. DCX_VALIDATE = $00200000;
  5344. {$EXTERNALSYM DCX_VALIDATE}
  5345. function GetWindowDC(hWnd: HWND): HDC; stdcall;
  5346. {$EXTERNALSYM GetWindowDC}
  5347. function ReleaseDC(hWnd: HWND; hDC: HDC): Integer; stdcall;
  5348. {$EXTERNALSYM ReleaseDC}
  5349. function BeginPaint(hWnd: HWND; var lpPaint: PAINTSTRUCT): HDC; stdcall;
  5350. {$EXTERNALSYM BeginPaint}
  5351. function EndPaint(hWnd: HWND; const lpPaint: PAINTSTRUCT): BOOL; stdcall;
  5352. {$EXTERNALSYM EndPaint}
  5353. function GetUpdateRect(hWnd: HWND; var lpRect: RECT; bErase: BOOL): BOOL; stdcall;
  5354. {$EXTERNALSYM GetUpdateRect}
  5355. function GetUpdateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): Integer; stdcall;
  5356. {$EXTERNALSYM GetUpdateRgn}
  5357. function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: BOOL): Integer; stdcall;
  5358. {$EXTERNALSYM SetWindowRgn}
  5359. function GetWindowRgn(hWnd: HWND; hRgn: HRGN): Integer; stdcall;
  5360. {$EXTERNALSYM GetWindowRgn}
  5361. function GetWindowRgnBox(hWnd: HWND; var lprc: RECT): Integer; stdcall;
  5362. {$EXTERNALSYM GetWindowRgnBox}
  5363. function ExcludeUpdateRgn(hDC: HDC; hWnd: HWND): Integer; stdcall;
  5364. {$EXTERNALSYM ExcludeUpdateRgn}
  5365. function InvalidateRect(hWnd: HWND; lpRect: LPRECT; bErase: BOOL): BOOL; stdcall;
  5366. {$EXTERNALSYM InvalidateRect}
  5367. function ValidateRect(hWnd: HWND; lpRect: LPRECT): BOOL; stdcall;
  5368. {$EXTERNALSYM ValidateRect}
  5369. function InvalidateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): BOOL; stdcall;
  5370. {$EXTERNALSYM InvalidateRgn}
  5371. function ValidateRgn(hWnd: HWND; hRgn: HRGN): BOOL; stdcall;
  5372. {$EXTERNALSYM ValidateRgn}
  5373. function RedrawWindow(hWnd: HWND; lprcUpdate: LPRECT; hrgnUpdate: HRGN; flags: UINT): BOOL; stdcall;
  5374. {$EXTERNALSYM RedrawWindow}
  5375. //
  5376. // RedrawWindow() flags
  5377. //
  5378. const
  5379. RDW_INVALIDATE = $0001;
  5380. {$EXTERNALSYM RDW_INVALIDATE}
  5381. RDW_INTERNALPAINT = $0002;
  5382. {$EXTERNALSYM RDW_INTERNALPAINT}
  5383. RDW_ERASE = $0004;
  5384. {$EXTERNALSYM RDW_ERASE}
  5385. RDW_VALIDATE = $0008;
  5386. {$EXTERNALSYM RDW_VALIDATE}
  5387. RDW_NOINTERNALPAINT = $0010;
  5388. {$EXTERNALSYM RDW_NOINTERNALPAINT}
  5389. RDW_NOERASE = $0020;
  5390. {$EXTERNALSYM RDW_NOERASE}
  5391. RDW_NOCHILDREN = $0040;
  5392. {$EXTERNALSYM RDW_NOCHILDREN}
  5393. RDW_ALLCHILDREN = $0080;
  5394. {$EXTERNALSYM RDW_ALLCHILDREN}
  5395. RDW_UPDATENOW = $0100;
  5396. {$EXTERNALSYM RDW_UPDATENOW}
  5397. RDW_ERASENOW = $0200;
  5398. {$EXTERNALSYM RDW_ERASENOW}
  5399. RDW_FRAME = $0400;
  5400. {$EXTERNALSYM RDW_FRAME}
  5401. RDW_NOFRAME = $0800;
  5402. {$EXTERNALSYM RDW_NOFRAME}
  5403. //
  5404. // LockWindowUpdate API
  5405. //
  5406. function LockWindowUpdate(hWndLock: HWND): BOOL; stdcall;
  5407. {$EXTERNALSYM LockWindowUpdate}
  5408. function ScrollWindow(hWnd: HWND; XAmount, YAmount: Integer; lpRect, lpClipRect: LPRECT): BOOL; stdcall;
  5409. {$EXTERNALSYM ScrollWindow}
  5410. function ScrollDC(hDC: HDC; dx, dy: Integer; lprcScroll, lprcClip: LPRECT;
  5411. hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; stdcall;
  5412. {$EXTERNALSYM ScrollDC}
  5413. function ScrollWindowEx(hWnd: HWND; dx, dy: Integer; prcScroll, prcClip: LPRECT;
  5414. hrgnUpdate: HRGN; prcUpdate: LPRECT; flags: UINT): Integer; stdcall;
  5415. {$EXTERNALSYM ScrollWindowEx}
  5416. const
  5417. SW_SCROLLCHILDREN = $0001; // Scroll children within *lprcScroll.
  5418. {$EXTERNALSYM SW_SCROLLCHILDREN}
  5419. SW_INVALIDATE = $0002; // Invalidate after scrolling
  5420. {$EXTERNALSYM SW_INVALIDATE}
  5421. SW_ERASE = $0004; // If SW_INVALIDATE, don't send WM_ERASEBACKGROUND
  5422. {$EXTERNALSYM SW_ERASE}
  5423. SW_SMOOTHSCROLL = $0010; // Use smooth scrolling
  5424. {$EXTERNALSYM SW_SMOOTHSCROLL}
  5425. function SetScrollPos(hWnd: HWND; nBar, nPos: Integer; bRedraw: BOOL): Integer; stdcall;
  5426. {$EXTERNALSYM SetScrollPos}
  5427. function GetScrollPos(hWnd: HWND; nBar: Integer): Integer; stdcall;
  5428. {$EXTERNALSYM GetScrollPos}
  5429. function SetScrollRange(hWnd: HWND; nBar, nMinPos, nMaxPos: Integer; bRedraw: BOOL): BOOL; stdcall;
  5430. {$EXTERNALSYM SetScrollRange}
  5431. function GetScrollRange(hWnd: HWND; nBar: Integer; var lpMinPos, lpMaxPos: Integer): BOOL; stdcall;
  5432. {$EXTERNALSYM GetScrollRange}
  5433. function ShowScrollBar(hWnd: HWND; wBar: Integer; bShow: BOOL): BOOL; stdcall;
  5434. {$EXTERNALSYM ShowScrollBar}
  5435. function EnableScrollBar(hWnd: HWND; wSBflags, wArrows: UINT): BOOL; stdcall;
  5436. {$EXTERNALSYM EnableScrollBar}
  5437. //
  5438. // EnableScrollBar() flags
  5439. //
  5440. const
  5441. ESB_ENABLE_BOTH = $0000;
  5442. {$EXTERNALSYM ESB_ENABLE_BOTH}
  5443. ESB_DISABLE_BOTH = $0003;
  5444. {$EXTERNALSYM ESB_DISABLE_BOTH}
  5445. ESB_DISABLE_LEFT = $0001;
  5446. {$EXTERNALSYM ESB_DISABLE_LEFT}
  5447. ESB_DISABLE_RIGHT = $0002;
  5448. {$EXTERNALSYM ESB_DISABLE_RIGHT}
  5449. ESB_DISABLE_UP = $0001;
  5450. {$EXTERNALSYM ESB_DISABLE_UP}
  5451. ESB_DISABLE_DOWN = $0002;
  5452. {$EXTERNALSYM ESB_DISABLE_DOWN}
  5453. ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
  5454. {$EXTERNALSYM ESB_DISABLE_LTUP}
  5455. ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
  5456. {$EXTERNALSYM ESB_DISABLE_RTDN}
  5457. function SetPropA(hWnd: HWND; lpString: LPCSTR; hData: HANDLE): BOOL; stdcall;
  5458. {$EXTERNALSYM SetPropA}
  5459. function SetPropW(hWnd: HWND; lpString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
  5460. {$EXTERNALSYM SetPropW}
  5461. function SetProp(hWnd: HWND; lpString: LPCTSTR; hData: HANDLE): BOOL; stdcall;
  5462. {$EXTERNALSYM SetProp}
  5463. function GetPropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5464. {$EXTERNALSYM GetPropA}
  5465. function GetPropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5466. {$EXTERNALSYM GetPropW}
  5467. function GetProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5468. {$EXTERNALSYM GetProp}
  5469. function RemovePropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
  5470. {$EXTERNALSYM RemovePropA}
  5471. function RemovePropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
  5472. {$EXTERNALSYM RemovePropW}
  5473. function RemoveProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
  5474. {$EXTERNALSYM RemoveProp}
  5475. function EnumPropsExA(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXA; lParam: LPARAM): Integer; stdcall;
  5476. {$EXTERNALSYM EnumPropsExA}
  5477. function EnumPropsExW(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXW; lParam: LPARAM): Integer; stdcall;
  5478. {$EXTERNALSYM EnumPropsExW}
  5479. function EnumPropsEx(hWnd: HWND; lpEnumFunc: PROPENUMPROCEX; lParam: LPARAM): Integer; stdcall;
  5480. {$EXTERNALSYM EnumPropsEx}
  5481. function EnumPropsA(hWnd: HWND; lpEnumFunc: PROPENUMPROCA): Integer; stdcall;
  5482. {$EXTERNALSYM EnumPropsA}
  5483. function EnumPropsW(hWnd: HWND; lpEnumFunc: PROPENUMPROCW): Integer; stdcall;
  5484. {$EXTERNALSYM EnumPropsW}
  5485. function EnumProps(hWnd: HWND; lpEnumFunc: PROPENUMPROC): Integer; stdcall;
  5486. {$EXTERNALSYM EnumProps}
  5487. function SetWindowTextA(hWnd: HWND; lpString: LPCSTR): BOOL; stdcall;
  5488. {$EXTERNALSYM SetWindowTextA}
  5489. function SetWindowTextW(hWnd: HWND; lpString: LPCWSTR): BOOL; stdcall;
  5490. {$EXTERNALSYM SetWindowTextW}
  5491. function SetWindowText(hWnd: HWND; lpString: LPCTSTR): BOOL; stdcall;
  5492. {$EXTERNALSYM SetWindowText}
  5493. function GetWindowTextA(hWnd: HWND; lpString: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5494. {$EXTERNALSYM GetWindowTextA}
  5495. function GetWindowTextW(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5496. {$EXTERNALSYM GetWindowTextW}
  5497. function GetWindowText(hWnd: HWND; lpString: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5498. {$EXTERNALSYM GetWindowText}
  5499. function GetWindowTextLengthA(hWnd: HWND): Integer; stdcall;
  5500. {$EXTERNALSYM GetWindowTextLengthA}
  5501. function GetWindowTextLengthW(hWnd: HWND): Integer; stdcall;
  5502. {$EXTERNALSYM GetWindowTextLengthW}
  5503. function GetWindowTextLength(hWnd: HWND): Integer; stdcall;
  5504. {$EXTERNALSYM GetWindowTextLength}
  5505. function GetClientRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5506. {$EXTERNALSYM GetClientRect}
  5507. function GetWindowRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
  5508. {$EXTERNALSYM GetWindowRect}
  5509. function AdjustWindowRect(var lpRect: RECT; dwStyle: DWORD; bMenu: BOOL): BOOL; stdcall;
  5510. {$EXTERNALSYM AdjustWindowRect}
  5511. function AdjustWindowRectEx(var lpRect: RECT; dwStyle: DWORD;
  5512. bMenu: BOOL; dwExStyle: DWORD): BOOL; stdcall;
  5513. {$EXTERNALSYM AdjustWindowRectEx}
  5514. const
  5515. HELPINFO_WINDOW = $0001;
  5516. {$EXTERNALSYM HELPINFO_WINDOW}
  5517. HELPINFO_MENUITEM = $0002;
  5518. {$EXTERNALSYM HELPINFO_MENUITEM}
  5519. type
  5520. LPHELPINFO = ^HELPINFO;
  5521. {$EXTERNALSYM LPHELPINFO}
  5522. tagHELPINFO = record // Structure pointed to by lParam of WM_HELP//
  5523. cbSize: UINT; // Size in bytes of this struct //
  5524. iContextType: Integer; // Either HELPINFO_WINDOW or HELPINFO_MENUITEM//
  5525. iCtrlId: Integer; // Control Id or a Menu item Id.//
  5526. hItemHandle: HANDLE; // hWnd of control or hMenu. //
  5527. dwContextId: DWORD_PTR; // Context Id associated with this item//
  5528. MousePos: POINT; // Mouse Position in screen co-ordinates//
  5529. end;
  5530. {$EXTERNALSYM tagHELPINFO}
  5531. HELPINFO = tagHELPINFO;
  5532. {$EXTERNALSYM HELPINFO}
  5533. THelpInfo = HELPINFO;
  5534. PHelpInfo = LPHELPINFO;
  5535. function SetWindowContextHelpId(hwnd: HWND; dwContextHelpId: DWORD): BOOL; stdcall;
  5536. {$EXTERNALSYM SetWindowContextHelpId}
  5537. function GetWindowContextHelpId(hwnd: HWND): DWORD; stdcall;
  5538. {$EXTERNALSYM GetWindowContextHelpId}
  5539. function SetMenuContextHelpId(hmenu: HMENU; dwContextHelpId: DWORD): BOOL; stdcall;
  5540. {$EXTERNALSYM SetMenuContextHelpId}
  5541. function GetMenuContextHelpId(hmenu: HMENU): DWORD; stdcall;
  5542. {$EXTERNALSYM GetMenuContextHelpId}
  5543. //
  5544. // MessageBox() Flags
  5545. //
  5546. const
  5547. MB_OK = $00000000;
  5548. {$EXTERNALSYM MB_OK}
  5549. MB_OKCANCEL = $00000001;
  5550. {$EXTERNALSYM MB_OKCANCEL}
  5551. MB_ABORTRETRYIGNORE = $00000002;
  5552. {$EXTERNALSYM MB_ABORTRETRYIGNORE}
  5553. MB_YESNOCANCEL = $00000003;
  5554. {$EXTERNALSYM MB_YESNOCANCEL}
  5555. MB_YESNO = $00000004;
  5556. {$EXTERNALSYM MB_YESNO}
  5557. MB_RETRYCANCEL = $00000005;
  5558. {$EXTERNALSYM MB_RETRYCANCEL}
  5559. MB_CANCELTRYCONTINUE = $00000006;
  5560. {$EXTERNALSYM MB_CANCELTRYCONTINUE}
  5561. MB_ICONHAND = $00000010;
  5562. {$EXTERNALSYM MB_ICONHAND}
  5563. MB_ICONQUESTION = $00000020;
  5564. {$EXTERNALSYM MB_ICONQUESTION}
  5565. MB_ICONEXCLAMATION = $00000030;
  5566. {$EXTERNALSYM MB_ICONEXCLAMATION}
  5567. MB_ICONASTERISK = $00000040;
  5568. {$EXTERNALSYM MB_ICONASTERISK}
  5569. MB_USERICON = $00000080;
  5570. {$EXTERNALSYM MB_USERICON}
  5571. MB_ICONWARNING = MB_ICONEXCLAMATION;
  5572. {$EXTERNALSYM MB_ICONWARNING}
  5573. MB_ICONERROR = MB_ICONHAND;
  5574. {$EXTERNALSYM MB_ICONERROR}
  5575. MB_ICONINFORMATION = MB_ICONASTERISK;
  5576. {$EXTERNALSYM MB_ICONINFORMATION}
  5577. MB_ICONSTOP = MB_ICONHAND;
  5578. {$EXTERNALSYM MB_ICONSTOP}
  5579. MB_DEFBUTTON1 = $00000000;
  5580. {$EXTERNALSYM MB_DEFBUTTON1}
  5581. MB_DEFBUTTON2 = $00000100;
  5582. {$EXTERNALSYM MB_DEFBUTTON2}
  5583. MB_DEFBUTTON3 = $00000200;
  5584. {$EXTERNALSYM MB_DEFBUTTON3}
  5585. MB_DEFBUTTON4 = $00000300;
  5586. {$EXTERNALSYM MB_DEFBUTTON4}
  5587. MB_APPLMODAL = $00000000;
  5588. {$EXTERNALSYM MB_APPLMODAL}
  5589. MB_SYSTEMMODAL = $00001000;
  5590. {$EXTERNALSYM MB_SYSTEMMODAL}
  5591. MB_TASKMODAL = $00002000;
  5592. {$EXTERNALSYM MB_TASKMODAL}
  5593. MB_HELP = $00004000; // Help Button
  5594. {$EXTERNALSYM MB_HELP}
  5595. MB_NOFOCUS = $00008000;
  5596. {$EXTERNALSYM MB_NOFOCUS}
  5597. MB_SETFOREGROUND = $00010000;
  5598. {$EXTERNALSYM MB_SETFOREGROUND}
  5599. MB_DEFAULT_DESKTOP_ONLY = $00020000;
  5600. {$EXTERNALSYM MB_DEFAULT_DESKTOP_ONLY}
  5601. MB_TOPMOST = $00040000;
  5602. {$EXTERNALSYM MB_TOPMOST}
  5603. MB_RIGHT = $00080000;
  5604. {$EXTERNALSYM MB_RIGHT}
  5605. MB_RTLREADING = $00100000;
  5606. {$EXTERNALSYM MB_RTLREADING}
  5607. const
  5608. {$IFDEF WINNT4_UP}
  5609. MB_SERVICE_NOTIFICATION = $00200000;
  5610. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5611. {$ELSE}
  5612. MB_SERVICE_NOTIFICATION = $00040000;
  5613. {$EXTERNALSYM MB_SERVICE_NOTIFICATION}
  5614. {$ENDIF WINNT4_UP}
  5615. MB_TYPEMASK = $0000000F;
  5616. {$EXTERNALSYM MB_TYPEMASK}
  5617. MB_ICONMASK = $000000F0;
  5618. {$EXTERNALSYM MB_ICONMASK}
  5619. MB_DEFMASK = $00000F00;
  5620. {$EXTERNALSYM MB_DEFMASK}
  5621. MB_MODEMASK = $00003000;
  5622. {$EXTERNALSYM MB_MODEMASK}
  5623. MB_MISCMASK = $0000C000;
  5624. {$EXTERNALSYM MB_MISCMASK}
  5625. function MessageBoxA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT): Integer; stdcall;
  5626. {$EXTERNALSYM MessageBoxA}
  5627. function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
  5628. {$EXTERNALSYM MessageBoxW}
  5629. function MessageBox(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT): Integer; stdcall;
  5630. {$EXTERNALSYM MessageBox}
  5631. function MessageBoxExA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT;
  5632. wLanguageId: WORD): Integer; stdcall;
  5633. {$EXTERNALSYM MessageBoxExA}
  5634. function MessageBoxExW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT;
  5635. wLanguageId: WORD): Integer; stdcall;
  5636. {$EXTERNALSYM MessageBoxExW}
  5637. function MessageBoxEx(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT;
  5638. wLanguageId: WORD): Integer; stdcall;
  5639. {$EXTERNALSYM MessageBoxEx}
  5640. type
  5641. MSGBOXCALLBACK = procedure(var lpHelpInfo: HELPINFO); stdcall;
  5642. {$EXTERNALSYM MSGBOXCALLBACK}
  5643. TMsgBoxCallback = MSGBOXCALLBACK;
  5644. LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;
  5645. {$EXTERNALSYM LPMSGBOXPARAMSA}
  5646. tagMSGBOXPARAMSA = record
  5647. cbSize: UINT;
  5648. hwndOwner: HWND;
  5649. hInstance: HINST;
  5650. lpszText: LPCSTR;
  5651. lpszCaption: LPCSTR;
  5652. dwStyle: DWORD;
  5653. lpszIcon: LPCSTR;
  5654. dwContextHelpId: DWORD_PTR;
  5655. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5656. dwLanguageId: DWORD;
  5657. end;
  5658. {$EXTERNALSYM tagMSGBOXPARAMSA}
  5659. MSGBOXPARAMSA = tagMSGBOXPARAMSA;
  5660. {$EXTERNALSYM MSGBOXPARAMSA}
  5661. TMsgBoxParamsA = MSGBOXPARAMSA;
  5662. PMsgBoxParamsA = LPMSGBOXPARAMSA;
  5663. LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;
  5664. {$EXTERNALSYM LPMSGBOXPARAMSW}
  5665. tagMSGBOXPARAMSW = record
  5666. cbSize: UINT;
  5667. hwndOwner: HWND;
  5668. hInstance: HINST;
  5669. lpszText: LPCWSTR;
  5670. lpszCaption: LPCWSTR;
  5671. dwStyle: DWORD;
  5672. lpszIcon: LPCWSTR;
  5673. dwContextHelpId: DWORD_PTR;
  5674. lpfnMsgBoxCallback: MSGBOXCALLBACK;
  5675. dwLanguageId: DWORD;
  5676. end;
  5677. {$EXTERNALSYM tagMSGBOXPARAMSW}
  5678. MSGBOXPARAMSW = tagMSGBOXPARAMSW;
  5679. {$EXTERNALSYM MSGBOXPARAMSW}
  5680. TMsgBoxParamsW = MSGBOXPARAMSW;
  5681. PMsgBoxParamsW = LPMSGBOXPARAMSW;
  5682. {$IFDEF UNICODE}
  5683. MSGBOXPARAMS = MSGBOXPARAMSW;
  5684. {$EXTERNALSYM MSGBOXPARAMS}
  5685. LPMSGBOXPARAMS = LPMSGBOXPARAMSW;
  5686. {$EXTERNALSYM LPMSGBOXPARAMS}
  5687. TMsgBoxParams = TMsgBoxParamsW;
  5688. PMsgBoxParams = PMsgBoxParamsW;
  5689. {$ELSE}
  5690. MSGBOXPARAMS = MSGBOXPARAMSA;
  5691. {$EXTERNALSYM MSGBOXPARAMS}
  5692. LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
  5693. {$EXTERNALSYM LPMSGBOXPARAMS}
  5694. TMsgBoxParams = TMsgBoxParamsA;
  5695. PMsgBoxParams = PMsgBoxParamsA;
  5696. {$ENDIF UNICODE}
  5697. function MessageBoxIndirectA(const lpMsgBoxParams: MSGBOXPARAMSA): Integer; stdcall;
  5698. {$EXTERNALSYM MessageBoxIndirectA}
  5699. function MessageBoxIndirectW(const lpMsgBoxParams: MSGBOXPARAMSW): Integer; stdcall;
  5700. {$EXTERNALSYM MessageBoxIndirectW}
  5701. function MessageBoxIndirect(const lpMsgBoxParams: MSGBOXPARAMS): Integer; stdcall;
  5702. {$EXTERNALSYM MessageBoxIndirect}
  5703. function MessageBeep(uType: UINT): BOOL; stdcall;
  5704. {$EXTERNALSYM MessageBeep}
  5705. function ShowCursor(bShow: BOOL): Integer; stdcall;
  5706. {$EXTERNALSYM ShowCursor}
  5707. function SetCursorPos(X, Y: Integer): BOOL; stdcall;
  5708. {$EXTERNALSYM SetCursorPos}
  5709. function SetCursor(hCursor: HCURSOR): HCURSOR; stdcall;
  5710. {$EXTERNALSYM SetCursor}
  5711. function GetCursorPos(var lpPoint: POINT): BOOL; stdcall;
  5712. {$EXTERNALSYM GetCursorPos}
  5713. function ClipCursor(lpRect: LPRECT): BOOL; stdcall;
  5714. {$EXTERNALSYM ClipCursor}
  5715. function GetClipCursor(var lpRect: RECT): BOOL; stdcall;
  5716. {$EXTERNALSYM GetClipCursor}
  5717. function GetCursor: HCURSOR; stdcall;
  5718. {$EXTERNALSYM GetCursor}
  5719. function CreateCaret(hWnd: HWND; hBitmap: HBITMAP; nWidth, nHeight: Integer): BOOL; stdcall;
  5720. {$EXTERNALSYM CreateCaret}
  5721. function GetCaretBlinkTime: UINT; stdcall;
  5722. {$EXTERNALSYM GetCaretBlinkTime}
  5723. function SetCaretBlinkTime(uMSeconds: UINT): BOOL; stdcall;
  5724. {$EXTERNALSYM SetCaretBlinkTime}
  5725. function DestroyCaret: BOOL; stdcall;
  5726. {$EXTERNALSYM DestroyCaret}
  5727. function HideCaret(hWnd: HWND): BOOL; stdcall;
  5728. {$EXTERNALSYM HideCaret}
  5729. function ShowCaret(hWnd: HWND): BOOL; stdcall;
  5730. {$EXTERNALSYM ShowCaret}
  5731. function SetCaretPos(X, Y: Integer): BOOL; stdcall;
  5732. {$EXTERNALSYM SetCaretPos}
  5733. function GetCaretPos(var lpPoint: POINT): BOOL; stdcall;
  5734. {$EXTERNALSYM GetCaretPos}
  5735. function ClientToScreen(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5736. {$EXTERNALSYM ClientToScreen}
  5737. function ScreenToClient(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
  5738. {$EXTERNALSYM ScreenToClient}
  5739. function MapWindowPoints(hWndFrom, hWndTo: HWND; lpPoints: LPPOINT; cPoints: UINT): Integer; stdcall;
  5740. {$EXTERNALSYM MapWindowPoints}
  5741. function WindowFromPoint(Point: POINT): HWND; stdcall;
  5742. {$EXTERNALSYM WindowFromPoint}
  5743. function ChildWindowFromPoint(hWndParent: HWND; Point: POINT): HWND; stdcall;
  5744. {$EXTERNALSYM ChildWindowFromPoint}
  5745. const
  5746. CWP_ALL = $0000;
  5747. {$EXTERNALSYM CWP_ALL}
  5748. CWP_SKIPINVISIBLE = $0001;
  5749. {$EXTERNALSYM CWP_SKIPINVISIBLE}
  5750. CWP_SKIPDISABLED = $0002;
  5751. {$EXTERNALSYM CWP_SKIPDISABLED}
  5752. CWP_SKIPTRANSPARENT = $0004;
  5753. {$EXTERNALSYM CWP_SKIPTRANSPARENT}
  5754. function ChildWindowFromPointEx(hwndParent: HWND; pt: POINT; uFlags: UINT): HWND; stdcall;
  5755. {$EXTERNALSYM ChildWindowFromPointEx}
  5756. //
  5757. // Color Types
  5758. //
  5759. const
  5760. CTLCOLOR_MSGBOX = 0;
  5761. {$EXTERNALSYM CTLCOLOR_MSGBOX}
  5762. CTLCOLOR_EDIT = 1;
  5763. {$EXTERNALSYM CTLCOLOR_EDIT}
  5764. CTLCOLOR_LISTBOX = 2;
  5765. {$EXTERNALSYM CTLCOLOR_LISTBOX}
  5766. CTLCOLOR_BTN = 3;
  5767. {$EXTERNALSYM CTLCOLOR_BTN}
  5768. CTLCOLOR_DLG = 4;
  5769. {$EXTERNALSYM CTLCOLOR_DLG}
  5770. CTLCOLOR_SCROLLBAR = 5;
  5771. {$EXTERNALSYM CTLCOLOR_SCROLLBAR}
  5772. CTLCOLOR_STATIC = 6;
  5773. {$EXTERNALSYM CTLCOLOR_STATIC}
  5774. CTLCOLOR_MAX = 7;
  5775. {$EXTERNALSYM CTLCOLOR_MAX}
  5776. COLOR_SCROLLBAR = 0;
  5777. {$EXTERNALSYM COLOR_SCROLLBAR}
  5778. COLOR_BACKGROUND = 1;
  5779. {$EXTERNALSYM COLOR_BACKGROUND}
  5780. COLOR_ACTIVECAPTION = 2;
  5781. {$EXTERNALSYM COLOR_ACTIVECAPTION}
  5782. COLOR_INACTIVECAPTION = 3;
  5783. {$EXTERNALSYM COLOR_INACTIVECAPTION}
  5784. COLOR_MENU = 4;
  5785. {$EXTERNALSYM COLOR_MENU}
  5786. COLOR_WINDOW = 5;
  5787. {$EXTERNALSYM COLOR_WINDOW}
  5788. COLOR_WINDOWFRAME = 6;
  5789. {$EXTERNALSYM COLOR_WINDOWFRAME}
  5790. COLOR_MENUTEXT = 7;
  5791. {$EXTERNALSYM COLOR_MENUTEXT}
  5792. COLOR_WINDOWTEXT = 8;
  5793. {$EXTERNALSYM COLOR_WINDOWTEXT}
  5794. COLOR_CAPTIONTEXT = 9;
  5795. {$EXTERNALSYM COLOR_CAPTIONTEXT}
  5796. COLOR_ACTIVEBORDER = 10;
  5797. {$EXTERNALSYM COLOR_ACTIVEBORDER}
  5798. COLOR_INACTIVEBORDER = 11;
  5799. {$EXTERNALSYM COLOR_INACTIVEBORDER}
  5800. COLOR_APPWORKSPACE = 12;
  5801. {$EXTERNALSYM COLOR_APPWORKSPACE}
  5802. COLOR_HIGHLIGHT = 13;
  5803. {$EXTERNALSYM COLOR_HIGHLIGHT}
  5804. COLOR_HIGHLIGHTTEXT = 14;
  5805. {$EXTERNALSYM COLOR_HIGHLIGHTTEXT}
  5806. COLOR_BTNFACE = 15;
  5807. {$EXTERNALSYM COLOR_BTNFACE}
  5808. COLOR_BTNSHADOW = 16;
  5809. {$EXTERNALSYM COLOR_BTNSHADOW}
  5810. COLOR_GRAYTEXT = 17;
  5811. {$EXTERNALSYM COLOR_GRAYTEXT}
  5812. COLOR_BTNTEXT = 18;
  5813. {$EXTERNALSYM COLOR_BTNTEXT}
  5814. COLOR_INACTIVECAPTIONTEXT = 19;
  5815. {$EXTERNALSYM COLOR_INACTIVECAPTIONTEXT}
  5816. COLOR_BTNHIGHLIGHT = 20;
  5817. {$EXTERNALSYM COLOR_BTNHIGHLIGHT}
  5818. COLOR_3DDKSHADOW = 21;
  5819. {$EXTERNALSYM COLOR_3DDKSHADOW}
  5820. COLOR_3DLIGHT = 22;
  5821. {$EXTERNALSYM COLOR_3DLIGHT}
  5822. COLOR_INFOTEXT = 23;
  5823. {$EXTERNALSYM COLOR_INFOTEXT}
  5824. COLOR_INFOBK = 24;
  5825. {$EXTERNALSYM COLOR_INFOBK}
  5826. COLOR_HOTLIGHT = 26;
  5827. {$EXTERNALSYM COLOR_HOTLIGHT}
  5828. COLOR_GRADIENTACTIVECAPTION = 27;
  5829. {$EXTERNALSYM COLOR_GRADIENTACTIVECAPTION}
  5830. COLOR_GRADIENTINACTIVECAPTION = 28;
  5831. {$EXTERNALSYM COLOR_GRADIENTINACTIVECAPTION}
  5832. COLOR_MENUHILIGHT = 29;
  5833. {$EXTERNALSYM COLOR_MENUHILIGHT}
  5834. COLOR_MENUBAR = 30;
  5835. {$EXTERNALSYM COLOR_MENUBAR}
  5836. COLOR_DESKTOP = COLOR_BACKGROUND;
  5837. {$EXTERNALSYM COLOR_DESKTOP}
  5838. COLOR_3DFACE = COLOR_BTNFACE;
  5839. {$EXTERNALSYM COLOR_3DFACE}
  5840. COLOR_3DSHADOW = COLOR_BTNSHADOW;
  5841. {$EXTERNALSYM COLOR_3DSHADOW}
  5842. COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT;
  5843. {$EXTERNALSYM COLOR_3DHIGHLIGHT}
  5844. COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT;
  5845. {$EXTERNALSYM COLOR_3DHILIGHT}
  5846. COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT;
  5847. {$EXTERNALSYM COLOR_BTNHILIGHT}
  5848. function GetSysColor(nIndex: Integer): DWORD; stdcall;
  5849. {$EXTERNALSYM GetSysColor}
  5850. function GetSysColorBrush(nIndex: Integer): HBRUSH; stdcall;
  5851. {$EXTERNALSYM GetSysColorBrush}
  5852. function SetSysColors(cElements: Integer; lpaElements: LPINT;
  5853. lpaRgbValues: LPCOLORREF): BOOL; stdcall;
  5854. {$EXTERNALSYM SetSysColors}
  5855. function DrawFocusRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5856. {$EXTERNALSYM DrawFocusRect}
  5857. function FillRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5858. {$EXTERNALSYM FillRect}
  5859. function FrameRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
  5860. {$EXTERNALSYM FrameRect}
  5861. function InvertRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
  5862. {$EXTERNALSYM InvertRect}
  5863. function SetRect(var lprc: RECT; xLeft, yTop, xRight, yBottom: Integer): BOOL; stdcall;
  5864. {$EXTERNALSYM SetRect}
  5865. function SetRectEmpty(var lprc: RECT): BOOL; stdcall;
  5866. {$EXTERNALSYM SetRectEmpty}
  5867. function CopyRect(var lprcDst: RECT; const lprcSrc: RECT): BOOL; stdcall;
  5868. {$EXTERNALSYM CopyRect}
  5869. function InflateRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5870. {$EXTERNALSYM InflateRect}
  5871. function IntersectRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5872. {$EXTERNALSYM IntersectRect}
  5873. function UnionRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5874. {$EXTERNALSYM UnionRect}
  5875. function SubtractRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
  5876. {$EXTERNALSYM SubtractRect}
  5877. function OffsetRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
  5878. {$EXTERNALSYM OffsetRect}
  5879. function IsRectEmpty(const lprc: RECT): BOOL; stdcall;
  5880. {$EXTERNALSYM IsRectEmpty}
  5881. function EqualRect(const lprc1, lprc2: RECT): BOOL; stdcall;
  5882. {$EXTERNALSYM EqualRect}
  5883. function PtInRect(const lprc: RECT; pt: POINT): BOOL; stdcall;
  5884. {$EXTERNALSYM PtInRect}
  5885. function GetWindowWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5886. {$EXTERNALSYM GetWindowWord}
  5887. function SetWindowWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5888. {$EXTERNALSYM SetWindowWord}
  5889. function GetWindowLongA(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5890. {$EXTERNALSYM GetWindowLongA}
  5891. function GetWindowLongW(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5892. {$EXTERNALSYM GetWindowLongW}
  5893. function GetWindowLong(hWnd: HWND; nIndex: Integer): LONG; stdcall;
  5894. {$EXTERNALSYM GetWindowLong}
  5895. function SetWindowLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5896. {$EXTERNALSYM SetWindowLongA}
  5897. function SetWindowLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5898. {$EXTERNALSYM SetWindowLongW}
  5899. function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
  5900. {$EXTERNALSYM SetWindowLong}
  5901. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5902. {$EXTERNALSYM GetWindowLongPtrA}
  5903. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5904. {$EXTERNALSYM GetWindowLongPtrW}
  5905. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  5906. {$EXTERNALSYM GetWindowLongPtr}
  5907. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5908. {$EXTERNALSYM SetWindowLongPtrA}
  5909. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5910. {$EXTERNALSYM SetWindowLongPtrW}
  5911. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  5912. {$EXTERNALSYM SetWindowLongPtr}
  5913. function GetClassWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
  5914. {$EXTERNALSYM GetClassWord}
  5915. function SetClassWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
  5916. {$EXTERNALSYM SetClassWord}
  5917. function GetClassLongA(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5918. {$EXTERNALSYM GetClassLongA}
  5919. function GetClassLongW(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5920. {$EXTERNALSYM GetClassLongW}
  5921. function GetClassLong(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
  5922. {$EXTERNALSYM GetClassLong}
  5923. function SetClassLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5924. {$EXTERNALSYM SetClassLongA}
  5925. function SetClassLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5926. {$EXTERNALSYM SetClassLongW}
  5927. function SetClassLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
  5928. {$EXTERNALSYM SetClassLong}
  5929. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5930. {$EXTERNALSYM GetClassLongPtrA}
  5931. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5932. {$EXTERNALSYM GetClassLongPtrW}
  5933. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  5934. {$EXTERNALSYM GetClassLongPtr}
  5935. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5936. {$EXTERNALSYM SetClassLongPtrA}
  5937. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5938. {$EXTERNALSYM SetClassLongPtrW}
  5939. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  5940. {$EXTERNALSYM SetClassLongPtr}
  5941. function GetProcessDefaultLayout(var pdwDefaultLayout: DWORD): BOOL; stdcall;
  5942. {$EXTERNALSYM GetProcessDefaultLayout}
  5943. function SetProcessDefaultLayout(dwDefaultLayout: DWORD): BOOL; stdcall;
  5944. {$EXTERNALSYM SetProcessDefaultLayout}
  5945. function GetDesktopWindow: HWND; stdcall;
  5946. {$EXTERNALSYM GetDesktopWindow}
  5947. function GetParent(hWnd: HWND): HWND; stdcall;
  5948. {$EXTERNALSYM GetParent}
  5949. function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;
  5950. {$EXTERNALSYM SetParent}
  5951. function EnumChildWindows(hWndParent: HWND; lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5952. {$EXTERNALSYM EnumChildWindows}
  5953. function FindWindowA(lpClassName, lpWindowName: LPCSTR): HWND; stdcall;
  5954. {$EXTERNALSYM FindWindowA}
  5955. function FindWindowW(lpClassName, lpWindowName: LPCWSTR): HWND; stdcall;
  5956. {$EXTERNALSYM FindWindowW}
  5957. function FindWindow(lpClassName, lpWindowName: LPCTSTR): HWND; stdcall;
  5958. {$EXTERNALSYM FindWindow}
  5959. function FindWindowExA(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCSTR): HWND; stdcall;
  5960. {$EXTERNALSYM FindWindowExA}
  5961. function FindWindowExW(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCWSTR): HWND; stdcall;
  5962. {$EXTERNALSYM FindWindowExW}
  5963. function FindWindowEx(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCTSTR): HWND; stdcall;
  5964. {$EXTERNALSYM FindWindowEx}
  5965. function GetShellWindow: HWND; stdcall;
  5966. {$EXTERNALSYM GetShellWindow}
  5967. function RegisterShellHookWindow(h: HWND): BOOL; stdcall;
  5968. {$EXTERNALSYM RegisterShellHookWindow}
  5969. function DeregisterShellHookWindow(h: HWND): BOOL; stdcall;
  5970. {$EXTERNALSYM DeregisterShellHookWindow}
  5971. function EnumWindows(lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5972. {$EXTERNALSYM EnumWindows}
  5973. function EnumThreadWindows(dwThreadId: DWORD; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
  5974. {$EXTERNALSYM EnumThreadWindows}
  5975. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  5976. {$EXTERNALSYM EnumTaskWindows}
  5977. function GetClassNameA(hWnd: HWND; lpClassName: LPSTR; nMaxCount: Integer): Integer; stdcall;
  5978. {$EXTERNALSYM GetClassNameA}
  5979. function GetClassNameW(hWnd: HWND; lpClassName: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  5980. {$EXTERNALSYM GetClassNameW}
  5981. function GetClassName(hWnd: HWND; lpClassName: LPTSTR; nMaxCount: Integer): Integer; stdcall;
  5982. {$EXTERNALSYM GetClassName}
  5983. function GetTopWindow(hWnd: HWND): HWND; stdcall;
  5984. {$EXTERNALSYM GetTopWindow}
  5985. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  5986. {$EXTERNALSYM GetNextWindow}
  5987. function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: LPDWORD): DWORD; stdcall;
  5988. {$EXTERNALSYM GetWindowThreadProcessId}
  5989. function IsGUIThread(bConvert: BOOL): BOOL; stdcall;
  5990. {$EXTERNALSYM IsGUIThread}
  5991. function GetWindowTask(hWnd: HWND): HANDLE;
  5992. {$EXTERNALSYM GetWindowTask}
  5993. function GetLastActivePopup(hWnd: HWND): HWND; stdcall;
  5994. {$EXTERNALSYM GetLastActivePopup}
  5995. //
  5996. // GetWindow() Constants
  5997. //
  5998. const
  5999. GW_HWNDFIRST = 0;
  6000. {$EXTERNALSYM GW_HWNDFIRST}
  6001. GW_HWNDLAST = 1;
  6002. {$EXTERNALSYM GW_HWNDLAST}
  6003. GW_HWNDNEXT = 2;
  6004. {$EXTERNALSYM GW_HWNDNEXT}
  6005. GW_HWNDPREV = 3;
  6006. {$EXTERNALSYM GW_HWNDPREV}
  6007. GW_OWNER = 4;
  6008. {$EXTERNALSYM GW_OWNER}
  6009. GW_CHILD = 5;
  6010. {$EXTERNALSYM GW_CHILD}
  6011. {$IFNDEF WIN98_UP} // #if(WINVER <= 0x0400)
  6012. GW_MAX = 5;
  6013. {$EXTERNALSYM GW_MAX}
  6014. {$ELSE}
  6015. GW_ENABLEDPOPUP = 6;
  6016. {$EXTERNALSYM GW_ENABLEDPOPUP}
  6017. GW_MAX = 6;
  6018. {$EXTERNALSYM GW_MAX}
  6019. {$ENDIF WIN98ME_UP}
  6020. function GetWindow(hWnd: HWND; uCmd: UINT): HWND; stdcall;
  6021. {$EXTERNALSYM GetWindow}
  6022. function SetWindowsHookA(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6023. {$EXTERNALSYM SetWindowsHookA}
  6024. function SetWindowsHookW(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6025. {$EXTERNALSYM SetWindowsHookW}
  6026. function SetWindowsHook(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
  6027. {$EXTERNALSYM SetWindowsHook}
  6028. function UnhookWindowsHook(nCode: Integer; pfnFilterProc: HOOKPROC): BOOL; stdcall;
  6029. {$EXTERNALSYM UnhookWindowsHook}
  6030. function SetWindowsHookExA(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6031. dwThreadId: DWORD): HHOOK; stdcall;
  6032. {$EXTERNALSYM SetWindowsHookExA}
  6033. function SetWindowsHookExW(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6034. dwThreadId: DWORD): HHOOK; stdcall;
  6035. {$EXTERNALSYM SetWindowsHookExW}
  6036. function SetWindowsHookEx(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
  6037. dwThreadId: DWORD): HHOOK; stdcall;
  6038. {$EXTERNALSYM SetWindowsHookEx}
  6039. function UnhookWindowsHookEx(hhk: HHOOK): BOOL; stdcall;
  6040. {$EXTERNALSYM UnhookWindowsHookEx}
  6041. function CallNextHookEx(hhk: HHOOK; nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  6042. {$EXTERNALSYM CallNextHookEx}
  6043. //
  6044. // Macros for source-level compatibility with old functions.
  6045. //
  6046. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  6047. {$EXTERNALSYM DefHookProc}
  6048. // ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags//
  6049. //
  6050. // Menu flags for Add/Check/EnableMenuItem()
  6051. ///)
  6052. const
  6053. MF_INSERT = $00000000;
  6054. {$EXTERNALSYM MF_INSERT}
  6055. MF_CHANGE = $00000080;
  6056. {$EXTERNALSYM MF_CHANGE}
  6057. MF_APPEND = $00000100;
  6058. {$EXTERNALSYM MF_APPEND}
  6059. MF_DELETE = $00000200;
  6060. {$EXTERNALSYM MF_DELETE}
  6061. MF_REMOVE = $00001000;
  6062. {$EXTERNALSYM MF_REMOVE}
  6063. MF_BYCOMMAND = $00000000;
  6064. {$EXTERNALSYM MF_BYCOMMAND}
  6065. MF_BYPOSITION = $00000400;
  6066. {$EXTERNALSYM MF_BYPOSITION}
  6067. MF_SEPARATOR = $00000800;
  6068. {$EXTERNALSYM MF_SEPARATOR}
  6069. MF_ENABLED = $00000000;
  6070. {$EXTERNALSYM MF_ENABLED}
  6071. MF_GRAYED = $00000001;
  6072. {$EXTERNALSYM MF_GRAYED}
  6073. MF_DISABLED = $00000002;
  6074. {$EXTERNALSYM MF_DISABLED}
  6075. MF_UNCHECKED = $00000000;
  6076. {$EXTERNALSYM MF_UNCHECKED}
  6077. MF_CHECKED = $00000008;
  6078. {$EXTERNALSYM MF_CHECKED}
  6079. MF_USECHECKBITMAPS = $00000200;
  6080. {$EXTERNALSYM MF_USECHECKBITMAPS}
  6081. MF_STRING = $00000000;
  6082. {$EXTERNALSYM MF_STRING}
  6083. MF_BITMAP = $00000004;
  6084. {$EXTERNALSYM MF_BITMAP}
  6085. MF_OWNERDRAW = $00000100;
  6086. {$EXTERNALSYM MF_OWNERDRAW}
  6087. MF_POPUP = $00000010;
  6088. {$EXTERNALSYM MF_POPUP}
  6089. MF_MENUBARBREAK = $00000020;
  6090. {$EXTERNALSYM MF_MENUBARBREAK}
  6091. MF_MENUBREAK = $00000040;
  6092. {$EXTERNALSYM MF_MENUBREAK}
  6093. MF_UNHILITE = $00000000;
  6094. {$EXTERNALSYM MF_UNHILITE}
  6095. MF_HILITE = $00000080;
  6096. {$EXTERNALSYM MF_HILITE}
  6097. MF_DEFAULT = $00001000;
  6098. {$EXTERNALSYM MF_DEFAULT}
  6099. MF_SYSMENU = $00002000;
  6100. {$EXTERNALSYM MF_SYSMENU}
  6101. MF_HELP = $00004000;
  6102. {$EXTERNALSYM MF_HELP}
  6103. MF_RIGHTJUSTIFY = $00004000;
  6104. {$EXTERNALSYM MF_RIGHTJUSTIFY}
  6105. MF_MOUSESELECT = $00008000;
  6106. {$EXTERNALSYM MF_MOUSESELECT}
  6107. MF_END = $00000080; // Obsolete -- only used by old RES files
  6108. {$EXTERNALSYM MF_END}
  6109. MFT_STRING = MF_STRING;
  6110. {$EXTERNALSYM MFT_STRING}
  6111. MFT_BITMAP = MF_BITMAP;
  6112. {$EXTERNALSYM MFT_BITMAP}
  6113. MFT_MENUBARBREAK = MF_MENUBARBREAK;
  6114. {$EXTERNALSYM MFT_MENUBARBREAK}
  6115. MFT_MENUBREAK = MF_MENUBREAK;
  6116. {$EXTERNALSYM MFT_MENUBREAK}
  6117. MFT_OWNERDRAW = MF_OWNERDRAW;
  6118. {$EXTERNALSYM MFT_OWNERDRAW}
  6119. MFT_RADIOCHECK = $00000200;
  6120. {$EXTERNALSYM MFT_RADIOCHECK}
  6121. MFT_SEPARATOR = MF_SEPARATOR;
  6122. {$EXTERNALSYM MFT_SEPARATOR}
  6123. MFT_RIGHTORDER = $00002000;
  6124. {$EXTERNALSYM MFT_RIGHTORDER}
  6125. MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY;
  6126. {$EXTERNALSYM MFT_RIGHTJUSTIFY}
  6127. // Menu flags for Add/Check/EnableMenuItem()
  6128. MFS_GRAYED = $00000003;
  6129. {$EXTERNALSYM MFS_GRAYED}
  6130. MFS_DISABLED = MFS_GRAYED;
  6131. {$EXTERNALSYM MFS_DISABLED}
  6132. MFS_CHECKED = MF_CHECKED;
  6133. {$EXTERNALSYM MFS_CHECKED}
  6134. MFS_HILITE = MF_HILITE;
  6135. {$EXTERNALSYM MFS_HILITE}
  6136. MFS_ENABLED = MF_ENABLED;
  6137. {$EXTERNALSYM MFS_ENABLED}
  6138. MFS_UNCHECKED = MF_UNCHECKED;
  6139. {$EXTERNALSYM MFS_UNCHECKED}
  6140. MFS_UNHILITE = MF_UNHILITE;
  6141. {$EXTERNALSYM MFS_UNHILITE}
  6142. MFS_DEFAULT = MF_DEFAULT;
  6143. {$EXTERNALSYM MFS_DEFAULT}
  6144. function CheckMenuRadioItem(hmenu: HMENU; idFirst, idLast, idCheck, uFlags: UINT): BOOL; stdcall;
  6145. {$EXTERNALSYM CheckMenuRadioItem}
  6146. //
  6147. // Menu item resource format
  6148. //
  6149. type
  6150. PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
  6151. MENUITEMTEMPLATEHEADER = record
  6152. versionNumber: WORD;
  6153. offset: WORD;
  6154. end;
  6155. {$EXTERNALSYM MENUITEMTEMPLATEHEADER}
  6156. TMenuItemTemplateHeader = MENUITEMTEMPLATEHEADER;
  6157. PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; // version 0
  6158. MENUITEMTEMPLATE = record
  6159. mtOption: WORD;
  6160. mtID: WORD;
  6161. mtString: array [0..0] of WCHAR;
  6162. end;
  6163. {$EXTERNALSYM MENUITEMTEMPLATE}
  6164. TMenuItemTemplate = MENUITEMTEMPLATE;
  6165. //
  6166. // System Menu Command Values
  6167. //
  6168. const
  6169. SC_SIZE = $F000;
  6170. {$EXTERNALSYM SC_SIZE}
  6171. SC_MOVE = $F010;
  6172. {$EXTERNALSYM SC_MOVE}
  6173. SC_MINIMIZE = $F020;
  6174. {$EXTERNALSYM SC_MINIMIZE}
  6175. SC_MAXIMIZE = $F030;
  6176. {$EXTERNALSYM SC_MAXIMIZE}
  6177. SC_NEXTWINDOW = $F040;
  6178. {$EXTERNALSYM SC_NEXTWINDOW}
  6179. SC_PREVWINDOW = $F050;
  6180. {$EXTERNALSYM SC_PREVWINDOW}
  6181. SC_CLOSE = $F060;
  6182. {$EXTERNALSYM SC_CLOSE}
  6183. SC_VSCROLL = $F070;
  6184. {$EXTERNALSYM SC_VSCROLL}
  6185. SC_HSCROLL = $F080;
  6186. {$EXTERNALSYM SC_HSCROLL}
  6187. SC_MOUSEMENU = $F090;
  6188. {$EXTERNALSYM SC_MOUSEMENU}
  6189. SC_KEYMENU = $F100;
  6190. {$EXTERNALSYM SC_KEYMENU}
  6191. SC_ARRANGE = $F110;
  6192. {$EXTERNALSYM SC_ARRANGE}
  6193. SC_RESTORE = $F120;
  6194. {$EXTERNALSYM SC_RESTORE}
  6195. SC_TASKLIST = $F130;
  6196. {$EXTERNALSYM SC_TASKLIST}
  6197. SC_SCREENSAVE = $F140;
  6198. {$EXTERNALSYM SC_SCREENSAVE}
  6199. SC_HOTKEY = $F150;
  6200. {$EXTERNALSYM SC_HOTKEY}
  6201. SC_DEFAULT = $F160;
  6202. {$EXTERNALSYM SC_DEFAULT}
  6203. SC_MONITORPOWER = $F170;
  6204. {$EXTERNALSYM SC_MONITORPOWER}
  6205. SC_CONTEXTHELP = $F180;
  6206. {$EXTERNALSYM SC_CONTEXTHELP}
  6207. SC_SEPARATOR = $F00F;
  6208. {$EXTERNALSYM SC_SEPARATOR}
  6209. //
  6210. // Obsolete names
  6211. //
  6212. const
  6213. SC_ICON = SC_MINIMIZE;
  6214. {$EXTERNALSYM SC_ICON}
  6215. SC_ZOOM = SC_MAXIMIZE;
  6216. {$EXTERNALSYM SC_ZOOM}
  6217. //
  6218. // Resource Loading Routines
  6219. //
  6220. function LoadBitmapA(hInstance: HINST; lpBitmapName: LPCSTR): HBITMAP; stdcall;
  6221. {$EXTERNALSYM LoadBitmapA}
  6222. function LoadBitmapW(hInstance: HINST; lpBitmapName: LPCWSTR): HBITMAP; stdcall;
  6223. {$EXTERNALSYM LoadBitmapW}
  6224. function LoadBitmap(hInstance: HINST; lpBitmapName: LPCTSTR): HBITMAP; stdcall;
  6225. {$EXTERNALSYM LoadBitmap}
  6226. function LoadCursorA(hInstance: HINST; lpCursorName: LPCSTR): HCURSOR; stdcall;
  6227. {$EXTERNALSYM LoadCursorA}
  6228. function LoadCursorW(hInstance: HINST; lpCursorName: LPCWSTR): HCURSOR; stdcall;
  6229. {$EXTERNALSYM LoadCursorW}
  6230. function LoadCursor(hInstance: HINST; lpCursorName: LPCTSTR): HCURSOR; stdcall;
  6231. {$EXTERNALSYM LoadCursor}
  6232. function LoadCursorFromFileA(lpFileName: LPCSTR): HCURSOR; stdcall;
  6233. {$EXTERNALSYM LoadCursorFromFileA}
  6234. function LoadCursorFromFileW(lpFileName: LPCWSTR): HCURSOR; stdcall;
  6235. {$EXTERNALSYM LoadCursorFromFileW}
  6236. function LoadCursorFromFile(lpFileName: LPCTSTR): HCURSOR; stdcall;
  6237. {$EXTERNALSYM LoadCursorFromFile}
  6238. function CreateCursor(hInst: HINST; xHotSpot, yHotSpot, nWidth, nHeight: Integer;
  6239. pvANDPlane: PVOID; pvXORPlane: PVOID): HCURSOR; stdcall;
  6240. {$EXTERNALSYM CreateCursor}
  6241. function DestroyCursor(hCursor: HCURSOR): BOOL; stdcall;
  6242. {$EXTERNALSYM DestroyCursor}
  6243. function CopyCursor(pcur: HCURSOR): HCURSOR;
  6244. {$EXTERNALSYM CopyCursor}
  6245. //
  6246. // Standard Cursor IDs
  6247. //
  6248. const
  6249. IDC_ARROW = MAKEINTRESOURCE(32512);
  6250. {$EXTERNALSYM IDC_ARROW}
  6251. IDC_IBEAM = MAKEINTRESOURCE(32513);
  6252. {$EXTERNALSYM IDC_IBEAM}
  6253. IDC_WAIT = MAKEINTRESOURCE(32514);
  6254. {$EXTERNALSYM IDC_WAIT}
  6255. IDC_CROSS = MAKEINTRESOURCE(32515);
  6256. {$EXTERNALSYM IDC_CROSS}
  6257. IDC_UPARROW = MAKEINTRESOURCE(32516);
  6258. {$EXTERNALSYM IDC_UPARROW}
  6259. IDC_SIZE = MAKEINTRESOURCE(32640); // OBSOLETE: use IDC_SIZEALL
  6260. {$EXTERNALSYM IDC_SIZE}
  6261. IDC_ICON = MAKEINTRESOURCE(32641); // OBSOLETE: use IDC_ARROW
  6262. {$EXTERNALSYM IDC_ICON}
  6263. IDC_SIZENWSE = MAKEINTRESOURCE(32642);
  6264. {$EXTERNALSYM IDC_SIZENWSE}
  6265. IDC_SIZENESW = MAKEINTRESOURCE(32643);
  6266. {$EXTERNALSYM IDC_SIZENESW}
  6267. IDC_SIZEWE = MAKEINTRESOURCE(32644);
  6268. {$EXTERNALSYM IDC_SIZEWE}
  6269. IDC_SIZENS = MAKEINTRESOURCE(32645);
  6270. {$EXTERNALSYM IDC_SIZENS}
  6271. IDC_SIZEALL = MAKEINTRESOURCE(32646);
  6272. {$EXTERNALSYM IDC_SIZEALL}
  6273. IDC_NO = MAKEINTRESOURCE(32648); // not in win3.1
  6274. {$EXTERNALSYM IDC_NO}
  6275. IDC_HAND = MAKEINTRESOURCE(32649);
  6276. {$EXTERNALSYM IDC_HAND}
  6277. IDC_APPSTARTING = MAKEINTRESOURCE(32650); // not in win3.1
  6278. {$EXTERNALSYM IDC_APPSTARTING}
  6279. IDC_HELP = MAKEINTRESOURCE(32651);
  6280. {$EXTERNALSYM IDC_HELP}
  6281. function SetSystemCursor(hcur: HCURSOR; id: DWORD): BOOL; stdcall;
  6282. {$EXTERNALSYM SetSystemCursor}
  6283. type
  6284. PICONINFO = ^ICONINFO;
  6285. _ICONINFO = record
  6286. fIcon: BOOL;
  6287. xHotspot: DWORD;
  6288. yHotspot: DWORD;
  6289. hbmMask: HBITMAP;
  6290. hbmColor: HBITMAP;
  6291. end;
  6292. {$EXTERNALSYM _ICONINFO}
  6293. ICONINFO = _ICONINFO;
  6294. {$EXTERNALSYM ICONINFO}
  6295. TIconInfo = ICONINFO;
  6296. function LoadIconA(hInstance: HINST; lpIconName: LPCSTR): HICON; stdcall;
  6297. {$EXTERNALSYM LoadIconA}
  6298. function LoadIconW(hInstance: HINST; lpIconName: LPCWSTR): HICON; stdcall;
  6299. {$EXTERNALSYM LoadIconW}
  6300. function LoadIcon(hInstance: HINST; lpIconName: LPCTSTR): HICON; stdcall;
  6301. {$EXTERNALSYM LoadIcon}
  6302. function PrivateExtractIconsA(szFileName: LPCSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6303. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6304. {$EXTERNALSYM PrivateExtractIconsA}
  6305. function PrivateExtractIconsW(szFileName: LPCWSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6306. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6307. {$EXTERNALSYM PrivateExtractIconsW}
  6308. function PrivateExtractIcons(szFileName: LPCTSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
  6309. var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
  6310. {$EXTERNALSYM PrivateExtractIcons}
  6311. function CreateIcon(hInstance: HINST; nWidth, nHeight: Integer; cPlanes,
  6312. cBitsPixel: BYTE; lpbANDbits: LPBYTE; lpbXORbits: LPBYTE): HICON; stdcall;
  6313. {$EXTERNALSYM CreateIcon}
  6314. function DestroyIcon(hIcon: HICON): BOOL; stdcall;
  6315. {$EXTERNALSYM DestroyIcon}
  6316. function LookupIconIdFromDirectory(presbits: PBYTE; fIcon: BOOL): Integer; stdcall;
  6317. {$EXTERNALSYM LookupIconIdFromDirectory}
  6318. function LookupIconIdFromDirectoryEx(presbits: PBYTE; fIcon: BOOL;
  6319. cxDesired, cyDesired: Integer; Flags: UINT): Integer; stdcall;
  6320. {$EXTERNALSYM LookupIconIdFromDirectoryEx}
  6321. function CreateIconFromResource(presbits: PBYTE; dwResSize: DWORD;
  6322. fIcon: BOOL; dwVer: DWORD): HICON; stdcall;
  6323. {$EXTERNALSYM CreateIconFromResource}
  6324. function CreateIconFromResourceEx(presbits: PBYTE; dwResSize: DWORD; fIcon: BOOL;
  6325. dwVer: DWORD; cxDesired, cyDesired: Integer; Flags: UINT): HICON; stdcall;
  6326. {$EXTERNALSYM CreateIconFromResourceEx}
  6327. // Icon/Cursor header//
  6328. type
  6329. LPCURSORSHAPE = ^CURSORSHAPE;
  6330. {$EXTERNALSYM LPCURSORSHAPE}
  6331. tagCURSORSHAPE = record
  6332. xHotSpot: Integer;
  6333. yHotSpot: Integer;
  6334. cx: Integer;
  6335. cy: Integer;
  6336. cbWidth: Integer;
  6337. Planes: BYTE;
  6338. BitsPixel: BYTE;
  6339. end;
  6340. {$EXTERNALSYM tagCURSORSHAPE}
  6341. CURSORSHAPE = tagCURSORSHAPE;
  6342. {$EXTERNALSYM CURSORSHAPE}
  6343. TCursorShape = CURSORSHAPE;
  6344. PCursorShape = LPCURSORSHAPE;
  6345. const
  6346. IMAGE_BITMAP = 0;
  6347. {$EXTERNALSYM IMAGE_BITMAP}
  6348. IMAGE_ICON = 1;
  6349. {$EXTERNALSYM IMAGE_ICON}
  6350. IMAGE_CURSOR = 2;
  6351. {$EXTERNALSYM IMAGE_CURSOR}
  6352. IMAGE_ENHMETAFILE = 3;
  6353. {$EXTERNALSYM IMAGE_ENHMETAFILE}
  6354. LR_DEFAULTCOLOR = $0000;
  6355. {$EXTERNALSYM LR_DEFAULTCOLOR}
  6356. LR_MONOCHROME = $0001;
  6357. {$EXTERNALSYM LR_MONOCHROME}
  6358. LR_COLOR = $0002;
  6359. {$EXTERNALSYM LR_COLOR}
  6360. LR_COPYRETURNORG = $0004;
  6361. {$EXTERNALSYM LR_COPYRETURNORG}
  6362. LR_COPYDELETEORG = $0008;
  6363. {$EXTERNALSYM LR_COPYDELETEORG}
  6364. LR_LOADFROMFILE = $0010;
  6365. {$EXTERNALSYM LR_LOADFROMFILE}
  6366. LR_LOADTRANSPARENT = $0020;
  6367. {$EXTERNALSYM LR_LOADTRANSPARENT}
  6368. LR_DEFAULTSIZE = $0040;
  6369. {$EXTERNALSYM LR_DEFAULTSIZE}
  6370. LR_VGACOLOR = $0080;
  6371. {$EXTERNALSYM LR_VGACOLOR}
  6372. LR_LOADMAP3DCOLORS = $1000;
  6373. {$EXTERNALSYM LR_LOADMAP3DCOLORS}
  6374. LR_CREATEDIBSECTION = $2000;
  6375. {$EXTERNALSYM LR_CREATEDIBSECTION}
  6376. LR_COPYFROMRESOURCE = $4000;
  6377. {$EXTERNALSYM LR_COPYFROMRESOURCE}
  6378. LR_SHARED = $8000;
  6379. {$EXTERNALSYM LR_SHARED}
  6380. function LoadImageA(hinst: HINST; lpszName: LPCSTR; uType: UINT;
  6381. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6382. {$EXTERNALSYM LoadImageA}
  6383. function LoadImageW(hinst: HINST; lpszName: LPCWSTR; uType: UINT;
  6384. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6385. {$EXTERNALSYM LoadImageW}
  6386. function LoadImage(hinst: HINST; lpszName: LPCTSTR; uType: UINT;
  6387. cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
  6388. {$EXTERNALSYM LoadImage}
  6389. function CopyImage(hinst: HANDLE; lpszName: UINT; cxDesired, cyDesired: Integer;
  6390. fuFlags: UINT): HANDLE; stdcall;
  6391. {$EXTERNALSYM CopyImage}
  6392. const
  6393. DI_MASK = $0001;
  6394. {$EXTERNALSYM DI_MASK}
  6395. DI_IMAGE = $0002;
  6396. {$EXTERNALSYM DI_IMAGE}
  6397. DI_NORMAL = $0003;
  6398. {$EXTERNALSYM DI_NORMAL}
  6399. DI_COMPAT = $0004;
  6400. {$EXTERNALSYM DI_COMPAT}
  6401. DI_DEFAULTSIZE = $0008;
  6402. {$EXTERNALSYM DI_DEFAULTSIZE}
  6403. DI_NOMIRROR = $0010;
  6404. {$EXTERNALSYM DI_NOMIRROR}
  6405. function DrawIconEx(hdc: HDC; xLeft, yTop: Integer; hIcon: HICON;
  6406. cxWidth, cyWidth: Integer; istepIfAniCur: UINT; hbrFlickerFreeDraw: HBRUSH;
  6407. diFlags: UINT): BOOL; stdcall;
  6408. {$EXTERNALSYM DrawIconEx}
  6409. function CreateIconIndirect(const piconinfo: ICONINFO): HICON; stdcall;
  6410. {$EXTERNALSYM CreateIconIndirect}
  6411. function CopyIcon(hIcon: HICON): HICON; stdcall;
  6412. {$EXTERNALSYM CopyIcon}
  6413. function GetIconInfo(hIcon: HICON; var piconinfo: ICONINFO): BOOL; stdcall;
  6414. {$EXTERNALSYM GetIconInfo}
  6415. const
  6416. RES_ICON = 1;
  6417. {$EXTERNALSYM RES_ICON}
  6418. RES_CURSOR = 2;
  6419. {$EXTERNALSYM RES_CURSOR}
  6420. //
  6421. // OEM Resource Ordinal Numbers
  6422. //
  6423. OBM_CLOSE = 32754;
  6424. {$EXTERNALSYM OBM_CLOSE}
  6425. OBM_UPARROW = 32753;
  6426. {$EXTERNALSYM OBM_UPARROW}
  6427. OBM_DNARROW = 32752;
  6428. {$EXTERNALSYM OBM_DNARROW}
  6429. OBM_RGARROW = 32751;
  6430. {$EXTERNALSYM OBM_RGARROW}
  6431. OBM_LFARROW = 32750;
  6432. {$EXTERNALSYM OBM_LFARROW}
  6433. OBM_REDUCE = 32749;
  6434. {$EXTERNALSYM OBM_REDUCE}
  6435. OBM_ZOOM = 32748;
  6436. {$EXTERNALSYM OBM_ZOOM}
  6437. OBM_RESTORE = 32747;
  6438. {$EXTERNALSYM OBM_RESTORE}
  6439. OBM_REDUCED = 32746;
  6440. {$EXTERNALSYM OBM_REDUCED}
  6441. OBM_ZOOMD = 32745;
  6442. {$EXTERNALSYM OBM_ZOOMD}
  6443. OBM_RESTORED = 32744;
  6444. {$EXTERNALSYM OBM_RESTORED}
  6445. OBM_UPARROWD = 32743;
  6446. {$EXTERNALSYM OBM_UPARROWD}
  6447. OBM_DNARROWD = 32742;
  6448. {$EXTERNALSYM OBM_DNARROWD}
  6449. OBM_RGARROWD = 32741;
  6450. {$EXTERNALSYM OBM_RGARROWD}
  6451. OBM_LFARROWD = 32740;
  6452. {$EXTERNALSYM OBM_LFARROWD}
  6453. OBM_MNARROW = 32739;
  6454. {$EXTERNALSYM OBM_MNARROW}
  6455. OBM_COMBO = 32738;
  6456. {$EXTERNALSYM OBM_COMBO}
  6457. OBM_UPARROWI = 32737;
  6458. {$EXTERNALSYM OBM_UPARROWI}
  6459. OBM_DNARROWI = 32736;
  6460. {$EXTERNALSYM OBM_DNARROWI}
  6461. OBM_RGARROWI = 32735;
  6462. {$EXTERNALSYM OBM_RGARROWI}
  6463. OBM_LFARROWI = 32734;
  6464. {$EXTERNALSYM OBM_LFARROWI}
  6465. OBM_OLD_CLOSE = 32767;
  6466. {$EXTERNALSYM OBM_OLD_CLOSE}
  6467. OBM_SIZE = 32766;
  6468. {$EXTERNALSYM OBM_SIZE}
  6469. OBM_OLD_UPARROW = 32765;
  6470. {$EXTERNALSYM OBM_OLD_UPARROW}
  6471. OBM_OLD_DNARROW = 32764;
  6472. {$EXTERNALSYM OBM_OLD_DNARROW}
  6473. OBM_OLD_RGARROW = 32763;
  6474. {$EXTERNALSYM OBM_OLD_RGARROW}
  6475. OBM_OLD_LFARROW = 32762;
  6476. {$EXTERNALSYM OBM_OLD_LFARROW}
  6477. OBM_BTSIZE = 32761;
  6478. {$EXTERNALSYM OBM_BTSIZE}
  6479. OBM_CHECK = 32760;
  6480. {$EXTERNALSYM OBM_CHECK}
  6481. OBM_CHECKBOXES = 32759;
  6482. {$EXTERNALSYM OBM_CHECKBOXES}
  6483. OBM_BTNCORNERS = 32758;
  6484. {$EXTERNALSYM OBM_BTNCORNERS}
  6485. OBM_OLD_REDUCE = 32757;
  6486. {$EXTERNALSYM OBM_OLD_REDUCE}
  6487. OBM_OLD_ZOOM = 32756;
  6488. {$EXTERNALSYM OBM_OLD_ZOOM}
  6489. OBM_OLD_RESTORE = 32755;
  6490. {$EXTERNALSYM OBM_OLD_RESTORE}
  6491. OCR_NORMAL = 32512;
  6492. {$EXTERNALSYM OCR_NORMAL}
  6493. OCR_IBEAM = 32513;
  6494. {$EXTERNALSYM OCR_IBEAM}
  6495. OCR_WAIT = 32514;
  6496. {$EXTERNALSYM OCR_WAIT}
  6497. OCR_CROSS = 32515;
  6498. {$EXTERNALSYM OCR_CROSS}
  6499. OCR_UP = 32516;
  6500. {$EXTERNALSYM OCR_UP}
  6501. OCR_SIZE = 32640; // OBSOLETE: use OCR_SIZEALL
  6502. {$EXTERNALSYM OCR_SIZE}
  6503. OCR_ICON = 32641; // OBSOLETE: use OCR_NORMAL
  6504. {$EXTERNALSYM OCR_ICON}
  6505. OCR_SIZENWSE = 32642;
  6506. {$EXTERNALSYM OCR_SIZENWSE}
  6507. OCR_SIZENESW = 32643;
  6508. {$EXTERNALSYM OCR_SIZENESW}
  6509. OCR_SIZEWE = 32644;
  6510. {$EXTERNALSYM OCR_SIZEWE}
  6511. OCR_SIZENS = 32645;
  6512. {$EXTERNALSYM OCR_SIZENS}
  6513. OCR_SIZEALL = 32646;
  6514. {$EXTERNALSYM OCR_SIZEALL}
  6515. OCR_ICOCUR = 32647; // OBSOLETE: use OIC_WINLOGO
  6516. {$EXTERNALSYM OCR_ICOCUR}
  6517. OCR_NO = 32648;
  6518. {$EXTERNALSYM OCR_NO}
  6519. OCR_HAND = 32649;
  6520. {$EXTERNALSYM OCR_HAND}
  6521. OCR_APPSTARTING = 32650;
  6522. {$EXTERNALSYM OCR_APPSTARTING}
  6523. OIC_SAMPLE = 32512;
  6524. {$EXTERNALSYM OIC_SAMPLE}
  6525. OIC_HAND = 32513;
  6526. {$EXTERNALSYM OIC_HAND}
  6527. OIC_QUES = 32514;
  6528. {$EXTERNALSYM OIC_QUES}
  6529. OIC_BANG = 32515;
  6530. {$EXTERNALSYM OIC_BANG}
  6531. OIC_NOTE = 32516;
  6532. {$EXTERNALSYM OIC_NOTE}
  6533. OIC_WINLOGO = 32517;
  6534. {$EXTERNALSYM OIC_WINLOGO}
  6535. OIC_WARNING = OIC_BANG;
  6536. {$EXTERNALSYM OIC_WARNING}
  6537. OIC_ERROR = OIC_HAND;
  6538. {$EXTERNALSYM OIC_ERROR}
  6539. OIC_INFORMATION = OIC_NOTE;
  6540. {$EXTERNALSYM OIC_INFORMATION}
  6541. ORD_LANGDRIVER = 1; // The ordinal number for the entry point of language drivers.
  6542. {$EXTERNALSYM ORD_LANGDRIVER}
  6543. //
  6544. // Standard Icon IDs
  6545. //
  6546. IDI_APPLICATION = MAKEINTRESOURCE(32512);
  6547. {$EXTERNALSYM IDI_APPLICATION}
  6548. IDI_HAND = MAKEINTRESOURCE(32513);
  6549. {$EXTERNALSYM IDI_HAND}
  6550. IDI_QUESTION = MAKEINTRESOURCE(32514);
  6551. {$EXTERNALSYM IDI_QUESTION}
  6552. IDI_EXCLAMATION = MAKEINTRESOURCE(32515);
  6553. {$EXTERNALSYM IDI_EXCLAMATION}
  6554. IDI_ASTERISK = MAKEINTRESOURCE(32516);
  6555. {$EXTERNALSYM IDI_ASTERISK}
  6556. IDI_WINLOGO = MAKEINTRESOURCE(32517);
  6557. {$EXTERNALSYM IDI_WINLOGO}
  6558. IDI_WARNING = IDI_EXCLAMATION;
  6559. {$EXTERNALSYM IDI_WARNING}
  6560. IDI_ERROR = IDI_HAND;
  6561. {$EXTERNALSYM IDI_ERROR}
  6562. IDI_INFORMATION = IDI_ASTERISK;
  6563. {$EXTERNALSYM IDI_INFORMATION}
  6564. function LoadStringA(hInstance: HINST; uID: UINT; lpBuffer: LPSTR;
  6565. nBufferMax: Integer): Integer; stdcall;
  6566. {$EXTERNALSYM LoadStringA}
  6567. function LoadStringW(hInstance: HINST; uID: UINT; lpBuffer: LPWSTR;
  6568. nBufferMax: Integer): Integer; stdcall;
  6569. {$EXTERNALSYM LoadStringW}
  6570. function LoadString(hInstance: HINST; uID: UINT; lpBuffer: LPTSTR;
  6571. nBufferMax: Integer): Integer; stdcall;
  6572. {$EXTERNALSYM LoadString}
  6573. //
  6574. // Dialog Box Command IDs
  6575. //
  6576. const
  6577. IDOK = 1;
  6578. {$EXTERNALSYM IDOK}
  6579. IDCANCEL = 2;
  6580. {$EXTERNALSYM IDCANCEL}
  6581. IDABORT = 3;
  6582. {$EXTERNALSYM IDABORT}
  6583. IDRETRY = 4;
  6584. {$EXTERNALSYM IDRETRY}
  6585. IDIGNORE = 5;
  6586. {$EXTERNALSYM IDIGNORE}
  6587. IDYES = 6;
  6588. {$EXTERNALSYM IDYES}
  6589. IDNO = 7;
  6590. {$EXTERNALSYM IDNO}
  6591. IDCLOSE = 8;
  6592. {$EXTERNALSYM IDCLOSE}
  6593. IDHELP = 9;
  6594. {$EXTERNALSYM IDHELP}
  6595. IDTRYAGAIN = 10;
  6596. {$EXTERNALSYM IDTRYAGAIN}
  6597. IDCONTINUE = 11;
  6598. {$EXTERNALSYM IDCONTINUE}
  6599. IDTIMEOUT = 32000;
  6600. {$EXTERNALSYM IDTIMEOUT}
  6601. //
  6602. // Control Manager Structures and Definitions
  6603. //
  6604. //
  6605. // Edit Control Styles
  6606. //
  6607. ES_LEFT = $0000;
  6608. {$EXTERNALSYM ES_LEFT}
  6609. ES_CENTER = $0001;
  6610. {$EXTERNALSYM ES_CENTER}
  6611. ES_RIGHT = $0002;
  6612. {$EXTERNALSYM ES_RIGHT}
  6613. ES_MULTILINE = $0004;
  6614. {$EXTERNALSYM ES_MULTILINE}
  6615. ES_UPPERCASE = $0008;
  6616. {$EXTERNALSYM ES_UPPERCASE}
  6617. ES_LOWERCASE = $0010;
  6618. {$EXTERNALSYM ES_LOWERCASE}
  6619. ES_PASSWORD = $0020;
  6620. {$EXTERNALSYM ES_PASSWORD}
  6621. ES_AUTOVSCROLL = $0040;
  6622. {$EXTERNALSYM ES_AUTOVSCROLL}
  6623. ES_AUTOHSCROLL = $0080;
  6624. {$EXTERNALSYM ES_AUTOHSCROLL}
  6625. ES_NOHIDESEL = $0100;
  6626. {$EXTERNALSYM ES_NOHIDESEL}
  6627. ES_OEMCONVERT = $0400;
  6628. {$EXTERNALSYM ES_OEMCONVERT}
  6629. ES_READONLY = $0800;
  6630. {$EXTERNALSYM ES_READONLY}
  6631. ES_WANTRETURN = $1000;
  6632. {$EXTERNALSYM ES_WANTRETURN}
  6633. ES_NUMBER = $2000;
  6634. {$EXTERNALSYM ES_NUMBER}
  6635. //
  6636. // Edit Control Notification Codes
  6637. //
  6638. EN_SETFOCUS = $0100;
  6639. {$EXTERNALSYM EN_SETFOCUS}
  6640. EN_KILLFOCUS = $0200;
  6641. {$EXTERNALSYM EN_KILLFOCUS}
  6642. EN_CHANGE = $0300;
  6643. {$EXTERNALSYM EN_CHANGE}
  6644. EN_UPDATE = $0400;
  6645. {$EXTERNALSYM EN_UPDATE}
  6646. EN_ERRSPACE = $0500;
  6647. {$EXTERNALSYM EN_ERRSPACE}
  6648. EN_MAXTEXT = $0501;
  6649. {$EXTERNALSYM EN_MAXTEXT}
  6650. EN_HSCROLL = $0601;
  6651. {$EXTERNALSYM EN_HSCROLL}
  6652. EN_VSCROLL = $0602;
  6653. {$EXTERNALSYM EN_VSCROLL}
  6654. EN_ALIGN_LTR_EC = $0700;
  6655. {$EXTERNALSYM EN_ALIGN_LTR_EC}
  6656. EN_ALIGN_RTL_EC = $0701;
  6657. {$EXTERNALSYM EN_ALIGN_RTL_EC}
  6658. // Edit control EM_SETMARGIN parameters//
  6659. EC_LEFTMARGIN = $0001;
  6660. {$EXTERNALSYM EC_LEFTMARGIN}
  6661. EC_RIGHTMARGIN = $0002;
  6662. {$EXTERNALSYM EC_RIGHTMARGIN}
  6663. EC_USEFONTINFO = $ffff;
  6664. {$EXTERNALSYM EC_USEFONTINFO}
  6665. // wParam of EM_GET/SETIMESTATUS //
  6666. EMSIS_COMPOSITIONSTRING = $0001;
  6667. {$EXTERNALSYM EMSIS_COMPOSITIONSTRING}
  6668. // lParam for EMSIS_COMPOSITIONSTRING //
  6669. EIMES_GETCOMPSTRATONCE = $0001;
  6670. {$EXTERNALSYM EIMES_GETCOMPSTRATONCE}
  6671. EIMES_CANCELCOMPSTRINFOCUS = $0002;
  6672. {$EXTERNALSYM EIMES_CANCELCOMPSTRINFOCUS}
  6673. EIMES_COMPLETECOMPSTRKILLFOCUS = $0004;
  6674. {$EXTERNALSYM EIMES_COMPLETECOMPSTRKILLFOCUS}
  6675. //
  6676. // Edit Control Messages
  6677. //
  6678. EM_GETSEL = $00B0;
  6679. {$EXTERNALSYM EM_GETSEL}
  6680. EM_SETSEL = $00B1;
  6681. {$EXTERNALSYM EM_SETSEL}
  6682. EM_GETRECT = $00B2;
  6683. {$EXTERNALSYM EM_GETRECT}
  6684. EM_SETRECT = $00B3;
  6685. {$EXTERNALSYM EM_SETRECT}
  6686. EM_SETRECTNP = $00B4;
  6687. {$EXTERNALSYM EM_SETRECTNP}
  6688. EM_SCROLL = $00B5;
  6689. {$EXTERNALSYM EM_SCROLL}
  6690. EM_LINESCROLL = $00B6;
  6691. {$EXTERNALSYM EM_LINESCROLL}
  6692. EM_SCROLLCARET = $00B7;
  6693. {$EXTERNALSYM EM_SCROLLCARET}
  6694. EM_GETMODIFY = $00B8;
  6695. {$EXTERNALSYM EM_GETMODIFY}
  6696. EM_SETMODIFY = $00B9;
  6697. {$EXTERNALSYM EM_SETMODIFY}
  6698. EM_GETLINECOUNT = $00BA;
  6699. {$EXTERNALSYM EM_GETLINECOUNT}
  6700. EM_LINEINDEX = $00BB;
  6701. {$EXTERNALSYM EM_LINEINDEX}
  6702. EM_SETHANDLE = $00BC;
  6703. {$EXTERNALSYM EM_SETHANDLE}
  6704. EM_GETHANDLE = $00BD;
  6705. {$EXTERNALSYM EM_GETHANDLE}
  6706. EM_GETTHUMB = $00BE;
  6707. {$EXTERNALSYM EM_GETTHUMB}
  6708. EM_LINELENGTH = $00C1;
  6709. {$EXTERNALSYM EM_LINELENGTH}
  6710. EM_REPLACESEL = $00C2;
  6711. {$EXTERNALSYM EM_REPLACESEL}
  6712. EM_GETLINE = $00C4;
  6713. {$EXTERNALSYM EM_GETLINE}
  6714. EM_LIMITTEXT = $00C5;
  6715. {$EXTERNALSYM EM_LIMITTEXT}
  6716. EM_CANUNDO = $00C6;
  6717. {$EXTERNALSYM EM_CANUNDO}
  6718. EM_UNDO = $00C7;
  6719. {$EXTERNALSYM EM_UNDO}
  6720. EM_FMTLINES = $00C8;
  6721. {$EXTERNALSYM EM_FMTLINES}
  6722. EM_LINEFROMCHAR = $00C9;
  6723. {$EXTERNALSYM EM_LINEFROMCHAR}
  6724. EM_SETTABSTOPS = $00CB;
  6725. {$EXTERNALSYM EM_SETTABSTOPS}
  6726. EM_SETPASSWORDCHAR = $00CC;
  6727. {$EXTERNALSYM EM_SETPASSWORDCHAR}
  6728. EM_EMPTYUNDOBUFFER = $00CD;
  6729. {$EXTERNALSYM EM_EMPTYUNDOBUFFER}
  6730. EM_GETFIRSTVISIBLELINE = $00CE;
  6731. {$EXTERNALSYM EM_GETFIRSTVISIBLELINE}
  6732. EM_SETREADONLY = $00CF;
  6733. {$EXTERNALSYM EM_SETREADONLY}
  6734. EM_SETWORDBREAKPROC = $00D0;
  6735. {$EXTERNALSYM EM_SETWORDBREAKPROC}
  6736. EM_GETWORDBREAKPROC = $00D1;
  6737. {$EXTERNALSYM EM_GETWORDBREAKPROC}
  6738. EM_GETPASSWORDCHAR = $00D2;
  6739. {$EXTERNALSYM EM_GETPASSWORDCHAR}
  6740. EM_SETMARGINS = $00D3;
  6741. {$EXTERNALSYM EM_SETMARGINS}
  6742. EM_GETMARGINS = $00D4;
  6743. {$EXTERNALSYM EM_GETMARGINS}
  6744. EM_SETLIMITTEXT = EM_LIMITTEXT; // ;win40 Name change
  6745. {$EXTERNALSYM EM_SETLIMITTEXT}
  6746. EM_GETLIMITTEXT = $00D5;
  6747. {$EXTERNALSYM EM_GETLIMITTEXT}
  6748. EM_POSFROMCHAR = $00D6;
  6749. {$EXTERNALSYM EM_POSFROMCHAR}
  6750. EM_CHARFROMPOS = $00D7;
  6751. {$EXTERNALSYM EM_CHARFROMPOS}
  6752. EM_SETIMESTATUS = $00D8;
  6753. {$EXTERNALSYM EM_SETIMESTATUS}
  6754. EM_GETIMESTATUS = $00D9;
  6755. {$EXTERNALSYM EM_GETIMESTATUS}
  6756. //
  6757. // EDITWORDBREAKPROC code values
  6758. //
  6759. WB_LEFT = 0;
  6760. {$EXTERNALSYM WB_LEFT}
  6761. WB_RIGHT = 1;
  6762. {$EXTERNALSYM WB_RIGHT}
  6763. WB_ISDELIMITER = 2;
  6764. {$EXTERNALSYM WB_ISDELIMITER}
  6765. //
  6766. // Button Control Styles
  6767. //
  6768. BS_PUSHBUTTON = $00000000;
  6769. {$EXTERNALSYM BS_PUSHBUTTON}
  6770. BS_DEFPUSHBUTTON = $00000001;
  6771. {$EXTERNALSYM BS_DEFPUSHBUTTON}
  6772. BS_CHECKBOX = $00000002;
  6773. {$EXTERNALSYM BS_CHECKBOX}
  6774. BS_AUTOCHECKBOX = $00000003;
  6775. {$EXTERNALSYM BS_AUTOCHECKBOX}
  6776. BS_RADIOBUTTON = $00000004;
  6777. {$EXTERNALSYM BS_RADIOBUTTON}
  6778. BS_3STATE = $00000005;
  6779. {$EXTERNALSYM BS_3STATE}
  6780. BS_AUTO3STATE = $00000006;
  6781. {$EXTERNALSYM BS_AUTO3STATE}
  6782. BS_GROUPBOX = $00000007;
  6783. {$EXTERNALSYM BS_GROUPBOX}
  6784. BS_USERBUTTON = $00000008;
  6785. {$EXTERNALSYM BS_USERBUTTON}
  6786. BS_AUTORADIOBUTTON = $00000009;
  6787. {$EXTERNALSYM BS_AUTORADIOBUTTON}
  6788. BS_PUSHBOX = $0000000A;
  6789. {$EXTERNALSYM BS_PUSHBOX}
  6790. BS_OWNERDRAW = $0000000B;
  6791. {$EXTERNALSYM BS_OWNERDRAW}
  6792. BS_TYPEMASK = $0000000F;
  6793. {$EXTERNALSYM BS_TYPEMASK}
  6794. BS_LEFTTEXT = $00000020;
  6795. {$EXTERNALSYM BS_LEFTTEXT}
  6796. BS_TEXT = $00000000;
  6797. {$EXTERNALSYM BS_TEXT}
  6798. BS_ICON = $00000040;
  6799. {$EXTERNALSYM BS_ICON}
  6800. BS_BITMAP = $00000080;
  6801. {$EXTERNALSYM BS_BITMAP}
  6802. BS_LEFT = $00000100;
  6803. {$EXTERNALSYM BS_LEFT}
  6804. BS_RIGHT = $00000200;
  6805. {$EXTERNALSYM BS_RIGHT}
  6806. BS_CENTER = $00000300;
  6807. {$EXTERNALSYM BS_CENTER}
  6808. BS_TOP = $00000400;
  6809. {$EXTERNALSYM BS_TOP}
  6810. BS_BOTTOM = $00000800;
  6811. {$EXTERNALSYM BS_BOTTOM}
  6812. BS_VCENTER = $00000C00;
  6813. {$EXTERNALSYM BS_VCENTER}
  6814. BS_PUSHLIKE = $00001000;
  6815. {$EXTERNALSYM BS_PUSHLIKE}
  6816. BS_MULTILINE = $00002000;
  6817. {$EXTERNALSYM BS_MULTILINE}
  6818. BS_NOTIFY = $00004000;
  6819. {$EXTERNALSYM BS_NOTIFY}
  6820. BS_FLAT = $00008000;
  6821. {$EXTERNALSYM BS_FLAT}
  6822. BS_RIGHTBUTTON = BS_LEFTTEXT;
  6823. {$EXTERNALSYM BS_RIGHTBUTTON}
  6824. //
  6825. // User Button Notification Codes
  6826. //
  6827. BN_CLICKED = 0;
  6828. {$EXTERNALSYM BN_CLICKED}
  6829. BN_PAINT = 1;
  6830. {$EXTERNALSYM BN_PAINT}
  6831. BN_HILITE = 2;
  6832. {$EXTERNALSYM BN_HILITE}
  6833. BN_UNHILITE = 3;
  6834. {$EXTERNALSYM BN_UNHILITE}
  6835. BN_DISABLE = 4;
  6836. {$EXTERNALSYM BN_DISABLE}
  6837. BN_DOUBLECLICKED = 5;
  6838. {$EXTERNALSYM BN_DOUBLECLICKED}
  6839. BN_PUSHED = BN_HILITE;
  6840. {$EXTERNALSYM BN_PUSHED}
  6841. BN_UNPUSHED = BN_UNHILITE;
  6842. {$EXTERNALSYM BN_UNPUSHED}
  6843. BN_DBLCLK = BN_DOUBLECLICKED;
  6844. {$EXTERNALSYM BN_DBLCLK}
  6845. BN_SETFOCUS = 6;
  6846. {$EXTERNALSYM BN_SETFOCUS}
  6847. BN_KILLFOCUS = 7;
  6848. {$EXTERNALSYM BN_KILLFOCUS}
  6849. //
  6850. // Button Control Messages
  6851. //
  6852. BM_GETCHECK = $00F0;
  6853. {$EXTERNALSYM BM_GETCHECK}
  6854. BM_SETCHECK = $00F1;
  6855. {$EXTERNALSYM BM_SETCHECK}
  6856. BM_GETSTATE = $00F2;
  6857. {$EXTERNALSYM BM_GETSTATE}
  6858. BM_SETSTATE = $00F3;
  6859. {$EXTERNALSYM BM_SETSTATE}
  6860. BM_SETSTYLE = $00F4;
  6861. {$EXTERNALSYM BM_SETSTYLE}
  6862. BM_CLICK = $00F5;
  6863. {$EXTERNALSYM BM_CLICK}
  6864. BM_GETIMAGE = $00F6;
  6865. {$EXTERNALSYM BM_GETIMAGE}
  6866. BM_SETIMAGE = $00F7;
  6867. {$EXTERNALSYM BM_SETIMAGE}
  6868. BST_UNCHECKED = $0000;
  6869. {$EXTERNALSYM BST_UNCHECKED}
  6870. BST_CHECKED = $0001;
  6871. {$EXTERNALSYM BST_CHECKED}
  6872. BST_INDETERMINATE = $0002;
  6873. {$EXTERNALSYM BST_INDETERMINATE}
  6874. BST_PUSHED = $0004;
  6875. {$EXTERNALSYM BST_PUSHED}
  6876. BST_FOCUS = $0008;
  6877. {$EXTERNALSYM BST_FOCUS}
  6878. //
  6879. // Static Control Constants
  6880. //
  6881. SS_LEFT = $00000000;
  6882. {$EXTERNALSYM SS_LEFT}
  6883. SS_CENTER = $00000001;
  6884. {$EXTERNALSYM SS_CENTER}
  6885. SS_RIGHT = $00000002;
  6886. {$EXTERNALSYM SS_RIGHT}
  6887. SS_ICON = $00000003;
  6888. {$EXTERNALSYM SS_ICON}
  6889. SS_BLACKRECT = $00000004;
  6890. {$EXTERNALSYM SS_BLACKRECT}
  6891. SS_GRAYRECT = $00000005;
  6892. {$EXTERNALSYM SS_GRAYRECT}
  6893. SS_WHITERECT = $00000006;
  6894. {$EXTERNALSYM SS_WHITERECT}
  6895. SS_BLACKFRAME = $00000007;
  6896. {$EXTERNALSYM SS_BLACKFRAME}
  6897. SS_GRAYFRAME = $00000008;
  6898. {$EXTERNALSYM SS_GRAYFRAME}
  6899. SS_WHITEFRAME = $00000009;
  6900. {$EXTERNALSYM SS_WHITEFRAME}
  6901. SS_USERITEM = $0000000A;
  6902. {$EXTERNALSYM SS_USERITEM}
  6903. SS_SIMPLE = $0000000B;
  6904. {$EXTERNALSYM SS_SIMPLE}
  6905. SS_LEFTNOWORDWRAP = $0000000C;
  6906. {$EXTERNALSYM SS_LEFTNOWORDWRAP}
  6907. SS_OWNERDRAW = $0000000D;
  6908. {$EXTERNALSYM SS_OWNERDRAW}
  6909. SS_BITMAP = $0000000E;
  6910. {$EXTERNALSYM SS_BITMAP}
  6911. SS_ENHMETAFILE = $0000000F;
  6912. {$EXTERNALSYM SS_ENHMETAFILE}
  6913. SS_ETCHEDHORZ = $00000010;
  6914. {$EXTERNALSYM SS_ETCHEDHORZ}
  6915. SS_ETCHEDVERT = $00000011;
  6916. {$EXTERNALSYM SS_ETCHEDVERT}
  6917. SS_ETCHEDFRAME = $00000012;
  6918. {$EXTERNALSYM SS_ETCHEDFRAME}
  6919. SS_TYPEMASK = $0000001F;
  6920. {$EXTERNALSYM SS_TYPEMASK}
  6921. SS_REALSIZECONTROL = $00000040;
  6922. {$EXTERNALSYM SS_REALSIZECONTROL}
  6923. SS_NOPREFIX = $00000080; // Don't do "&" character translation
  6924. {$EXTERNALSYM SS_NOPREFIX}
  6925. SS_NOTIFY = $00000100;
  6926. {$EXTERNALSYM SS_NOTIFY}
  6927. SS_CENTERIMAGE = $00000200;
  6928. {$EXTERNALSYM SS_CENTERIMAGE}
  6929. SS_RIGHTJUST = $00000400;
  6930. {$EXTERNALSYM SS_RIGHTJUST}
  6931. SS_REALSIZEIMAGE = $00000800;
  6932. {$EXTERNALSYM SS_REALSIZEIMAGE}
  6933. SS_SUNKEN = $00001000;
  6934. {$EXTERNALSYM SS_SUNKEN}
  6935. SS_EDITCONTROL = $00002000;
  6936. {$EXTERNALSYM SS_EDITCONTROL}
  6937. SS_ENDELLIPSIS = $00004000;
  6938. {$EXTERNALSYM SS_ENDELLIPSIS}
  6939. SS_PATHELLIPSIS = $00008000;
  6940. {$EXTERNALSYM SS_PATHELLIPSIS}
  6941. SS_WORDELLIPSIS = $0000C000;
  6942. {$EXTERNALSYM SS_WORDELLIPSIS}
  6943. SS_ELLIPSISMASK = $0000C000;
  6944. {$EXTERNALSYM SS_ELLIPSISMASK}
  6945. //
  6946. // Static Control Mesages
  6947. //
  6948. STM_SETICON = $0170;
  6949. {$EXTERNALSYM STM_SETICON}
  6950. STM_GETICON = $0171;
  6951. {$EXTERNALSYM STM_GETICON}
  6952. STM_SETIMAGE = $0172;
  6953. {$EXTERNALSYM STM_SETIMAGE}
  6954. STM_GETIMAGE = $0173;
  6955. {$EXTERNALSYM STM_GETIMAGE}
  6956. STN_CLICKED = 0;
  6957. {$EXTERNALSYM STN_CLICKED}
  6958. STN_DBLCLK = 1;
  6959. {$EXTERNALSYM STN_DBLCLK}
  6960. STN_ENABLE = 2;
  6961. {$EXTERNALSYM STN_ENABLE}
  6962. STN_DISABLE = 3;
  6963. {$EXTERNALSYM STN_DISABLE}
  6964. STM_MSGMAX = $0174;
  6965. {$EXTERNALSYM STM_MSGMAX}
  6966. //
  6967. // Dialog window class
  6968. //
  6969. WC_DIALOG = MAKEINTATOM($8002);
  6970. {$EXTERNALSYM WC_DIALOG}
  6971. //
  6972. // Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
  6973. //
  6974. DWL_MSGRESULT = 0;
  6975. {$EXTERNALSYM DWL_MSGRESULT}
  6976. DWL_DLGPROC = 4;
  6977. {$EXTERNALSYM DWL_DLGPROC}
  6978. DWL_USER = 8;
  6979. {$EXTERNALSYM DWL_USER}
  6980. DWLP_MSGRESULT = 0;
  6981. {$EXTERNALSYM DWLP_MSGRESULT}
  6982. DWLP_DLGPROC = DWLP_MSGRESULT + SizeOf(LRESULT);
  6983. {$EXTERNALSYM DWLP_DLGPROC}
  6984. DWLP_USER = DWLP_DLGPROC + SizeOf(DLGPROC);
  6985. {$EXTERNALSYM DWLP_USER}
  6986. //
  6987. // Dialog Manager Routines
  6988. //
  6989. function IsDialogMessageA(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6990. {$EXTERNALSYM IsDialogMessageA}
  6991. function IsDialogMessageW(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6992. {$EXTERNALSYM IsDialogMessageW}
  6993. function IsDialogMessage(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
  6994. {$EXTERNALSYM IsDialogMessage}
  6995. function MapDialogRect(hDlg: HWND; var lpRect: RECT): BOOL; stdcall;
  6996. {$EXTERNALSYM MapDialogRect}
  6997. function DlgDirListA(hDlg: HWND; lpPathSpec: LPSTR; nIDListBox: Integer;
  6998. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  6999. {$EXTERNALSYM DlgDirListA}
  7000. function DlgDirListW(hDlg: HWND; lpPathSpec: LPWSTR; nIDListBox: Integer;
  7001. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  7002. {$EXTERNALSYM DlgDirListW}
  7003. function DlgDirList(hDlg: HWND; lpPathSpec: LPTSTR; nIDListBox: Integer;
  7004. nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
  7005. {$EXTERNALSYM DlgDirList}
  7006. //
  7007. // DlgDirList, DlgDirListComboBox flags values
  7008. //
  7009. const
  7010. DDL_READWRITE = $0000;
  7011. {$EXTERNALSYM DDL_READWRITE}
  7012. DDL_READONLY = $0001;
  7013. {$EXTERNALSYM DDL_READONLY}
  7014. DDL_HIDDEN = $0002;
  7015. {$EXTERNALSYM DDL_HIDDEN}
  7016. DDL_SYSTEM = $0004;
  7017. {$EXTERNALSYM DDL_SYSTEM}
  7018. DDL_DIRECTORY = $0010;
  7019. {$EXTERNALSYM DDL_DIRECTORY}
  7020. DDL_ARCHIVE = $0020;
  7021. {$EXTERNALSYM DDL_ARCHIVE}
  7022. DDL_POSTMSGS = $2000;
  7023. {$EXTERNALSYM DDL_POSTMSGS}
  7024. DDL_DRIVES = $4000;
  7025. {$EXTERNALSYM DDL_DRIVES}
  7026. DDL_EXCLUSIVE = $8000;
  7027. {$EXTERNALSYM DDL_EXCLUSIVE}
  7028. function DlgDirSelectExA(hDlg: HWND; lpString: LPSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7029. {$EXTERNALSYM DlgDirSelectExA}
  7030. function DlgDirSelectExW(hDlg: HWND; lpString: LPWSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7031. {$EXTERNALSYM DlgDirSelectExW}
  7032. function DlgDirSelectEx(hDlg: HWND; lpString: LPTSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
  7033. {$EXTERNALSYM DlgDirSelectEx}
  7034. function DlgDirListComboBoxA(hDlg: HWND; lpPathSpec: LPSTR; nIDComboBox: Integer;
  7035. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7036. {$EXTERNALSYM DlgDirListComboBoxA}
  7037. function DlgDirListComboBoxW(hDlg: HWND; lpPathSpec: LPWSTR; nIDComboBox: Integer;
  7038. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7039. {$EXTERNALSYM DlgDirListComboBoxW}
  7040. function DlgDirListComboBox(hDlg: HWND; lpPathSpec: LPTSTR; nIDComboBox: Integer;
  7041. nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
  7042. {$EXTERNALSYM DlgDirListComboBox}
  7043. function DlgDirSelectComboBoxExA(hDlg: HWND; lpString: LPSTR; nCount: Integer;
  7044. nIDComboBox: Integer): BOOL; stdcall;
  7045. {$EXTERNALSYM DlgDirSelectComboBoxExA}
  7046. function DlgDirSelectComboBoxExW(hDlg: HWND; lpString: LPWSTR; nCount: Integer;
  7047. nIDComboBox: Integer): BOOL; stdcall;
  7048. {$EXTERNALSYM DlgDirSelectComboBoxExW}
  7049. function DlgDirSelectComboBoxEx(hDlg: HWND; lpString: LPTSTR; nCount: Integer;
  7050. nIDComboBox: Integer): BOOL; stdcall;
  7051. {$EXTERNALSYM DlgDirSelectComboBoxEx}
  7052. //
  7053. // Dialog Styles
  7054. //
  7055. const
  7056. DS_ABSALIGN = $01;
  7057. {$EXTERNALSYM DS_ABSALIGN}
  7058. DS_SYSMODAL = $02;
  7059. {$EXTERNALSYM DS_SYSMODAL}
  7060. DS_LOCALEDIT = $20; // Edit items get Local storage.
  7061. {$EXTERNALSYM DS_LOCALEDIT}
  7062. DS_SETFONT = $40; // User specified font for Dlg controls
  7063. {$EXTERNALSYM DS_SETFONT}
  7064. DS_MODALFRAME = $80; // Can be combined with WS_CAPTION
  7065. {$EXTERNALSYM DS_MODALFRAME}
  7066. DS_NOIDLEMSG = $100; // WM_ENTERIDLE message will not be sent
  7067. {$EXTERNALSYM DS_NOIDLEMSG}
  7068. DS_SETFOREGROUND = $200; // not in win3.1
  7069. {$EXTERNALSYM DS_SETFOREGROUND}
  7070. DS_3DLOOK = $0004;
  7071. {$EXTERNALSYM DS_3DLOOK}
  7072. DS_FIXEDSYS = $0008;
  7073. {$EXTERNALSYM DS_FIXEDSYS}
  7074. DS_NOFAILCREATE = $0010;
  7075. {$EXTERNALSYM DS_NOFAILCREATE}
  7076. DS_CONTROL = $0400;
  7077. {$EXTERNALSYM DS_CONTROL}
  7078. DS_CENTER = $0800;
  7079. {$EXTERNALSYM DS_CENTER}
  7080. DS_CENTERMOUSE = $1000;
  7081. {$EXTERNALSYM DS_CENTERMOUSE}
  7082. DS_CONTEXTHELP = $2000;
  7083. {$EXTERNALSYM DS_CONTEXTHELP}
  7084. DS_SHELLFONT = DS_SETFONT or DS_FIXEDSYS;
  7085. {$EXTERNALSYM DS_SHELLFONT}
  7086. //#if(_WIN32_WCE >= 0x0500)
  7087. DS_USEPIXELS = $8000;
  7088. {$EXTERNALSYM DS_USEPIXELS}
  7089. //#endif
  7090. DM_GETDEFID = WM_USER + 0;
  7091. {$EXTERNALSYM DM_GETDEFID}
  7092. DM_SETDEFID = WM_USER + 1;
  7093. {$EXTERNALSYM DM_SETDEFID}
  7094. DM_REPOSITION = WM_USER + 2;
  7095. {$EXTERNALSYM DM_REPOSITION}
  7096. //
  7097. // Returned in HIWORD() of DM_GETDEFID result if msg is supported
  7098. //
  7099. DC_HASDEFID = $534B;
  7100. {$EXTERNALSYM DC_HASDEFID}
  7101. //
  7102. // Dialog Codes
  7103. //
  7104. DLGC_WANTARROWS = $0001; // Control wants arrow keys
  7105. {$EXTERNALSYM DLGC_WANTARROWS}
  7106. DLGC_WANTTAB = $0002; // Control wants tab keys
  7107. {$EXTERNALSYM DLGC_WANTTAB}
  7108. DLGC_WANTALLKEYS = $0004; // Control wants all keys
  7109. {$EXTERNALSYM DLGC_WANTALLKEYS}
  7110. DLGC_WANTMESSAGE = $0004; // Pass message to control
  7111. {$EXTERNALSYM DLGC_WANTMESSAGE}
  7112. DLGC_HASSETSEL = $0008; // Understands EM_SETSEL message
  7113. {$EXTERNALSYM DLGC_HASSETSEL}
  7114. DLGC_DEFPUSHBUTTON = $0010; // Default pushbutton
  7115. {$EXTERNALSYM DLGC_DEFPUSHBUTTON}
  7116. DLGC_UNDEFPUSHBUTTON = $0020; // Non-default pushbutton
  7117. {$EXTERNALSYM DLGC_UNDEFPUSHBUTTON}
  7118. DLGC_RADIOBUTTON = $0040; // Radio button
  7119. {$EXTERNALSYM DLGC_RADIOBUTTON}
  7120. DLGC_WANTCHARS = $0080; // Want WM_CHAR messages
  7121. {$EXTERNALSYM DLGC_WANTCHARS}
  7122. DLGC_STATIC = $0100; // Static item: don't include
  7123. {$EXTERNALSYM DLGC_STATIC}
  7124. DLGC_BUTTON = $2000; // Button item: can be checked
  7125. {$EXTERNALSYM DLGC_BUTTON}
  7126. LB_CTLCODE = 0;
  7127. {$EXTERNALSYM LB_CTLCODE}
  7128. //
  7129. // Listbox Return Values
  7130. //
  7131. LB_OKAY = 0;
  7132. {$EXTERNALSYM LB_OKAY}
  7133. LB_ERR = DWORD(-1);
  7134. {$EXTERNALSYM LB_ERR}
  7135. LB_ERRSPACE = DWORD(-2);
  7136. {$EXTERNALSYM LB_ERRSPACE}
  7137. //
  7138. // The idStaticPath parameter to DlgDirList can have the following values
  7139. // ORed if the list box should show other details of the files along with
  7140. // the name of the files;
  7141. //
  7142. // all other details also will be returned
  7143. //
  7144. // Listbox Notification Codes
  7145. //
  7146. LBN_ERRSPACE = DWORD(-2);
  7147. {$EXTERNALSYM LBN_ERRSPACE}
  7148. LBN_SELCHANGE = 1;
  7149. {$EXTERNALSYM LBN_SELCHANGE}
  7150. LBN_DBLCLK = 2;
  7151. {$EXTERNALSYM LBN_DBLCLK}
  7152. LBN_SELCANCEL = 3;
  7153. {$EXTERNALSYM LBN_SELCANCEL}
  7154. LBN_SETFOCUS = 4;
  7155. {$EXTERNALSYM LBN_SETFOCUS}
  7156. LBN_KILLFOCUS = 5;
  7157. {$EXTERNALSYM LBN_KILLFOCUS}
  7158. //
  7159. // Listbox messages
  7160. //
  7161. LB_ADDSTRING = $0180;
  7162. {$EXTERNALSYM LB_ADDSTRING}
  7163. LB_INSERTSTRING = $0181;
  7164. {$EXTERNALSYM LB_INSERTSTRING}
  7165. LB_DELETESTRING = $0182;
  7166. {$EXTERNALSYM LB_DELETESTRING}
  7167. LB_SELITEMRANGEEX = $0183;
  7168. {$EXTERNALSYM LB_SELITEMRANGEEX}
  7169. LB_RESETCONTENT = $0184;
  7170. {$EXTERNALSYM LB_RESETCONTENT}
  7171. LB_SETSEL = $0185;
  7172. {$EXTERNALSYM LB_SETSEL}
  7173. LB_SETCURSEL = $0186;
  7174. {$EXTERNALSYM LB_SETCURSEL}
  7175. LB_GETSEL = $0187;
  7176. {$EXTERNALSYM LB_GETSEL}
  7177. LB_GETCURSEL = $0188;
  7178. {$EXTERNALSYM LB_GETCURSEL}
  7179. LB_GETTEXT = $0189;
  7180. {$EXTERNALSYM LB_GETTEXT}
  7181. LB_GETTEXTLEN = $018A;
  7182. {$EXTERNALSYM LB_GETTEXTLEN}
  7183. LB_GETCOUNT = $018B;
  7184. {$EXTERNALSYM LB_GETCOUNT}
  7185. LB_SELECTSTRING = $018C;
  7186. {$EXTERNALSYM LB_SELECTSTRING}
  7187. LB_DIR = $018D;
  7188. {$EXTERNALSYM LB_DIR}
  7189. LB_GETTOPINDEX = $018E;
  7190. {$EXTERNALSYM LB_GETTOPINDEX}
  7191. LB_FINDSTRING = $018F;
  7192. {$EXTERNALSYM LB_FINDSTRING}
  7193. LB_GETSELCOUNT = $0190;
  7194. {$EXTERNALSYM LB_GETSELCOUNT}
  7195. LB_GETSELITEMS = $0191;
  7196. {$EXTERNALSYM LB_GETSELITEMS}
  7197. LB_SETTABSTOPS = $0192;
  7198. {$EXTERNALSYM LB_SETTABSTOPS}
  7199. LB_GETHORIZONTALEXTENT = $0193;
  7200. {$EXTERNALSYM LB_GETHORIZONTALEXTENT}
  7201. LB_SETHORIZONTALEXTENT = $0194;
  7202. {$EXTERNALSYM LB_SETHORIZONTALEXTENT}
  7203. LB_SETCOLUMNWIDTH = $0195;
  7204. {$EXTERNALSYM LB_SETCOLUMNWIDTH}
  7205. LB_ADDFILE = $0196;
  7206. {$EXTERNALSYM LB_ADDFILE}
  7207. LB_SETTOPINDEX = $0197;
  7208. {$EXTERNALSYM LB_SETTOPINDEX}
  7209. LB_GETITEMRECT = $0198;
  7210. {$EXTERNALSYM LB_GETITEMRECT}
  7211. LB_GETITEMDATA = $0199;
  7212. {$EXTERNALSYM LB_GETITEMDATA}
  7213. LB_SETITEMDATA = $019A;
  7214. {$EXTERNALSYM LB_SETITEMDATA}
  7215. LB_SELITEMRANGE = $019B;
  7216. {$EXTERNALSYM LB_SELITEMRANGE}
  7217. LB_SETANCHORINDEX = $019C;
  7218. {$EXTERNALSYM LB_SETANCHORINDEX}
  7219. LB_GETANCHORINDEX = $019D;
  7220. {$EXTERNALSYM LB_GETANCHORINDEX}
  7221. LB_SETCARETINDEX = $019E;
  7222. {$EXTERNALSYM LB_SETCARETINDEX}
  7223. LB_GETCARETINDEX = $019F;
  7224. {$EXTERNALSYM LB_GETCARETINDEX}
  7225. LB_SETITEMHEIGHT = $01A0;
  7226. {$EXTERNALSYM LB_SETITEMHEIGHT}
  7227. LB_GETITEMHEIGHT = $01A1;
  7228. {$EXTERNALSYM LB_GETITEMHEIGHT}
  7229. LB_FINDSTRINGEXACT = $01A2;
  7230. {$EXTERNALSYM LB_FINDSTRINGEXACT}
  7231. LB_SETLOCALE = $01A5;
  7232. {$EXTERNALSYM LB_SETLOCALE}
  7233. LB_GETLOCALE = $01A6;
  7234. {$EXTERNALSYM LB_GETLOCALE}
  7235. LB_SETCOUNT = $01A7;
  7236. {$EXTERNALSYM LB_SETCOUNT}
  7237. LB_INITSTORAGE = $01A8;
  7238. {$EXTERNALSYM LB_INITSTORAGE}
  7239. LB_ITEMFROMPOINT = $01A9;
  7240. {$EXTERNALSYM LB_ITEMFROMPOINT}
  7241. LB_MULTIPLEADDSTRING = $01B1;
  7242. {$EXTERNALSYM LB_MULTIPLEADDSTRING}
  7243. LB_GETLISTBOXINFO = $01B2;
  7244. {$EXTERNALSYM LB_GETLISTBOXINFO}
  7245. {$IFDEF WINXP_UP}
  7246. LB_MSGMAX = $01B3;
  7247. {$EXTERNALSYM LB_MSGMAX}
  7248. {$ELSE}
  7249. LB_MSGMAX = $01B0;
  7250. {$EXTERNALSYM LB_MSGMAX}
  7251. {$ENDIF WINXP_UP}
  7252. //
  7253. // Listbox Styles
  7254. //
  7255. LBS_NOTIFY = $0001;
  7256. {$EXTERNALSYM LBS_NOTIFY}
  7257. LBS_SORT = $0002;
  7258. {$EXTERNALSYM LBS_SORT}
  7259. LBS_NOREDRAW = $0004;
  7260. {$EXTERNALSYM LBS_NOREDRAW}
  7261. LBS_MULTIPLESEL = $0008;
  7262. {$EXTERNALSYM LBS_MULTIPLESEL}
  7263. LBS_OWNERDRAWFIXED = $0010;
  7264. {$EXTERNALSYM LBS_OWNERDRAWFIXED}
  7265. LBS_OWNERDRAWVARIABLE = $0020;
  7266. {$EXTERNALSYM LBS_OWNERDRAWVARIABLE}
  7267. LBS_HASSTRINGS = $0040;
  7268. {$EXTERNALSYM LBS_HASSTRINGS}
  7269. LBS_USETABSTOPS = $0080;
  7270. {$EXTERNALSYM LBS_USETABSTOPS}
  7271. LBS_NOINTEGRALHEIGHT = $0100;
  7272. {$EXTERNALSYM LBS_NOINTEGRALHEIGHT}
  7273. LBS_MULTICOLUMN = $0200;
  7274. {$EXTERNALSYM LBS_MULTICOLUMN}
  7275. LBS_WANTKEYBOARDINPUT = $0400;
  7276. {$EXTERNALSYM LBS_WANTKEYBOARDINPUT}
  7277. LBS_EXTENDEDSEL = $0800;
  7278. {$EXTERNALSYM LBS_EXTENDEDSEL}
  7279. LBS_DISABLENOSCROLL = $1000;
  7280. {$EXTERNALSYM LBS_DISABLENOSCROLL}
  7281. LBS_NODATA = $2000;
  7282. {$EXTERNALSYM LBS_NODATA}
  7283. LBS_NOSEL = $4000;
  7284. {$EXTERNALSYM LBS_NOSEL}
  7285. LBS_COMBOBOX = $8000;
  7286. {$EXTERNALSYM LBS_COMBOBOX}
  7287. LBS_STANDARD = LBS_NOTIFY or LBS_SORT or WS_VSCROLL or WS_BORDER;
  7288. {$EXTERNALSYM LBS_STANDARD}
  7289. //
  7290. // Combo Box return Values
  7291. //
  7292. CB_OKAY = 0;
  7293. {$EXTERNALSYM CB_OKAY}
  7294. CB_ERR = DWORD(-1);
  7295. {$EXTERNALSYM CB_ERR}
  7296. CB_ERRSPACE = DWORD(-2);
  7297. {$EXTERNALSYM CB_ERRSPACE}
  7298. //
  7299. // Combo Box Notification Codes
  7300. //
  7301. CBN_ERRSPACE = DWORD(-1);
  7302. {$EXTERNALSYM CBN_ERRSPACE}
  7303. CBN_SELCHANGE = 1;
  7304. {$EXTERNALSYM CBN_SELCHANGE}
  7305. CBN_DBLCLK = 2;
  7306. {$EXTERNALSYM CBN_DBLCLK}
  7307. CBN_SETFOCUS = 3;
  7308. {$EXTERNALSYM CBN_SETFOCUS}
  7309. CBN_KILLFOCUS = 4;
  7310. {$EXTERNALSYM CBN_KILLFOCUS}
  7311. CBN_EDITCHANGE = 5;
  7312. {$EXTERNALSYM CBN_EDITCHANGE}
  7313. CBN_EDITUPDATE = 6;
  7314. {$EXTERNALSYM CBN_EDITUPDATE}
  7315. CBN_DROPDOWN = 7;
  7316. {$EXTERNALSYM CBN_DROPDOWN}
  7317. CBN_CLOSEUP = 8;
  7318. {$EXTERNALSYM CBN_CLOSEUP}
  7319. CBN_SELENDOK = 9;
  7320. {$EXTERNALSYM CBN_SELENDOK}
  7321. CBN_SELENDCANCEL = 10;
  7322. {$EXTERNALSYM CBN_SELENDCANCEL}
  7323. //
  7324. // Combo Box styles
  7325. //
  7326. CBS_SIMPLE = $0001;
  7327. {$EXTERNALSYM CBS_SIMPLE}
  7328. CBS_DROPDOWN = $0002;
  7329. {$EXTERNALSYM CBS_DROPDOWN}
  7330. CBS_DROPDOWNLIST = $0003;
  7331. {$EXTERNALSYM CBS_DROPDOWNLIST}
  7332. CBS_OWNERDRAWFIXED = $0010;
  7333. {$EXTERNALSYM CBS_OWNERDRAWFIXED}
  7334. CBS_OWNERDRAWVARIABLE = $0020;
  7335. {$EXTERNALSYM CBS_OWNERDRAWVARIABLE}
  7336. CBS_AUTOHSCROLL = $0040;
  7337. {$EXTERNALSYM CBS_AUTOHSCROLL}
  7338. CBS_OEMCONVERT = $0080;
  7339. {$EXTERNALSYM CBS_OEMCONVERT}
  7340. CBS_SORT = $0100;
  7341. {$EXTERNALSYM CBS_SORT}
  7342. CBS_HASSTRINGS = $0200;
  7343. {$EXTERNALSYM CBS_HASSTRINGS}
  7344. CBS_NOINTEGRALHEIGHT = $0400;
  7345. {$EXTERNALSYM CBS_NOINTEGRALHEIGHT}
  7346. CBS_DISABLENOSCROLL = $0800;
  7347. {$EXTERNALSYM CBS_DISABLENOSCROLL}
  7348. CBS_UPPERCASE = $2000;
  7349. {$EXTERNALSYM CBS_UPPERCASE}
  7350. CBS_LOWERCASE = $4000;
  7351. {$EXTERNALSYM CBS_LOWERCASE}
  7352. //
  7353. // Combo Box messages
  7354. //
  7355. CB_GETEDITSEL = $0140;
  7356. {$EXTERNALSYM CB_GETEDITSEL}
  7357. CB_LIMITTEXT = $0141;
  7358. {$EXTERNALSYM CB_LIMITTEXT}
  7359. CB_SETEDITSEL = $0142;
  7360. {$EXTERNALSYM CB_SETEDITSEL}
  7361. CB_ADDSTRING = $0143;
  7362. {$EXTERNALSYM CB_ADDSTRING}
  7363. CB_DELETESTRING = $0144;
  7364. {$EXTERNALSYM CB_DELETESTRING}
  7365. CB_DIR = $0145;
  7366. {$EXTERNALSYM CB_DIR}
  7367. CB_GETCOUNT = $0146;
  7368. {$EXTERNALSYM CB_GETCOUNT}
  7369. CB_GETCURSEL = $0147;
  7370. {$EXTERNALSYM CB_GETCURSEL}
  7371. CB_GETLBTEXT = $0148;
  7372. {$EXTERNALSYM CB_GETLBTEXT}
  7373. CB_GETLBTEXTLEN = $0149;
  7374. {$EXTERNALSYM CB_GETLBTEXTLEN}
  7375. CB_INSERTSTRING = $014A;
  7376. {$EXTERNALSYM CB_INSERTSTRING}
  7377. CB_RESETCONTENT = $014B;
  7378. {$EXTERNALSYM CB_RESETCONTENT}
  7379. CB_FINDSTRING = $014C;
  7380. {$EXTERNALSYM CB_FINDSTRING}
  7381. CB_SELECTSTRING = $014D;
  7382. {$EXTERNALSYM CB_SELECTSTRING}
  7383. CB_SETCURSEL = $014E;
  7384. {$EXTERNALSYM CB_SETCURSEL}
  7385. CB_SHOWDROPDOWN = $014F;
  7386. {$EXTERNALSYM CB_SHOWDROPDOWN}
  7387. CB_GETITEMDATA = $0150;
  7388. {$EXTERNALSYM CB_GETITEMDATA}
  7389. CB_SETITEMDATA = $0151;
  7390. {$EXTERNALSYM CB_SETITEMDATA}
  7391. CB_GETDROPPEDCONTROLRECT = $0152;
  7392. {$EXTERNALSYM CB_GETDROPPEDCONTROLRECT}
  7393. CB_SETITEMHEIGHT = $0153;
  7394. {$EXTERNALSYM CB_SETITEMHEIGHT}
  7395. CB_GETITEMHEIGHT = $0154;
  7396. {$EXTERNALSYM CB_GETITEMHEIGHT}
  7397. CB_SETEXTENDEDUI = $0155;
  7398. {$EXTERNALSYM CB_SETEXTENDEDUI}
  7399. CB_GETEXTENDEDUI = $0156;
  7400. {$EXTERNALSYM CB_GETEXTENDEDUI}
  7401. CB_GETDROPPEDSTATE = $0157;
  7402. {$EXTERNALSYM CB_GETDROPPEDSTATE}
  7403. CB_FINDSTRINGEXACT = $0158;
  7404. {$EXTERNALSYM CB_FINDSTRINGEXACT}
  7405. CB_SETLOCALE = $0159;
  7406. {$EXTERNALSYM CB_SETLOCALE}
  7407. CB_GETLOCALE = $015A;
  7408. {$EXTERNALSYM CB_GETLOCALE}
  7409. CB_GETTOPINDEX = $015b;
  7410. {$EXTERNALSYM CB_GETTOPINDEX}
  7411. CB_SETTOPINDEX = $015c;
  7412. {$EXTERNALSYM CB_SETTOPINDEX}
  7413. CB_GETHORIZONTALEXTENT = $015d;
  7414. {$EXTERNALSYM CB_GETHORIZONTALEXTENT}
  7415. CB_SETHORIZONTALEXTENT = $015e;
  7416. {$EXTERNALSYM CB_SETHORIZONTALEXTENT}
  7417. CB_GETDROPPEDWIDTH = $015f;
  7418. {$EXTERNALSYM CB_GETDROPPEDWIDTH}
  7419. CB_SETDROPPEDWIDTH = $0160;
  7420. {$EXTERNALSYM CB_SETDROPPEDWIDTH}
  7421. CB_INITSTORAGE = $0161;
  7422. {$EXTERNALSYM CB_INITSTORAGE}
  7423. CB_MULTIPLEADDSTRING = $0163;
  7424. {$EXTERNALSYM CB_MULTIPLEADDSTRING}
  7425. CB_GETCOMBOBOXINFO = $0164;
  7426. {$EXTERNALSYM CB_GETCOMBOBOXINFO}
  7427. {$IFDEF WINXP_UP}
  7428. CB_MSGMAX = $0165;
  7429. {$EXTERNALSYM CB_MSGMAX}
  7430. {$ELSE}
  7431. CB_MSGMAX = $0162;
  7432. {$EXTERNALSYM CB_MSGMAX}
  7433. {$ENDIF WINXP_UP}
  7434. //
  7435. // Scroll Bar Styles
  7436. //
  7437. SBS_HORZ = $0000;
  7438. {$EXTERNALSYM SBS_HORZ}
  7439. SBS_VERT = $0001;
  7440. {$EXTERNALSYM SBS_VERT}
  7441. SBS_TOPALIGN = $0002;
  7442. {$EXTERNALSYM SBS_TOPALIGN}
  7443. SBS_LEFTALIGN = $0002;
  7444. {$EXTERNALSYM SBS_LEFTALIGN}
  7445. SBS_BOTTOMALIGN = $0004;
  7446. {$EXTERNALSYM SBS_BOTTOMALIGN}
  7447. SBS_RIGHTALIGN = $0004;
  7448. {$EXTERNALSYM SBS_RIGHTALIGN}
  7449. SBS_SIZEBOXTOPLEFTALIGN = $0002;
  7450. {$EXTERNALSYM SBS_SIZEBOXTOPLEFTALIGN}
  7451. SBS_SIZEBOXBOTTOMRIGHTALIGN = $0004;
  7452. {$EXTERNALSYM SBS_SIZEBOXBOTTOMRIGHTALIGN}
  7453. SBS_SIZEBOX = $0008;
  7454. {$EXTERNALSYM SBS_SIZEBOX}
  7455. SBS_SIZEGRIP = $0010;
  7456. {$EXTERNALSYM SBS_SIZEGRIP}
  7457. //
  7458. // Scroll bar messages
  7459. //
  7460. SBM_SETPOS = $00E0; // not in win3.1
  7461. {$EXTERNALSYM SBM_SETPOS}
  7462. SBM_GETPOS = $00E1; // not in win3.1
  7463. {$EXTERNALSYM SBM_GETPOS}
  7464. SBM_SETRANGE = $00E2; // not in win3.1
  7465. {$EXTERNALSYM SBM_SETRANGE}
  7466. SBM_SETRANGEREDRAW = $00E6; // not in win3.1
  7467. {$EXTERNALSYM SBM_SETRANGEREDRAW}
  7468. SBM_GETRANGE = $00E3; // not in win3.1
  7469. {$EXTERNALSYM SBM_GETRANGE}
  7470. SBM_ENABLE_ARROWS = $00E4; // not in win3.1
  7471. {$EXTERNALSYM SBM_ENABLE_ARROWS}
  7472. SBM_SETSCROLLINFO = $00E9;
  7473. {$EXTERNALSYM SBM_SETSCROLLINFO}
  7474. SBM_GETSCROLLINFO = $00EA;
  7475. {$EXTERNALSYM SBM_GETSCROLLINFO}
  7476. SBM_GETSCROLLBARINFO = $00EB;
  7477. {$EXTERNALSYM SBM_GETSCROLLBARINFO}
  7478. SIF_RANGE = $0001;
  7479. {$EXTERNALSYM SIF_RANGE}
  7480. SIF_PAGE = $0002;
  7481. {$EXTERNALSYM SIF_PAGE}
  7482. SIF_POS = $0004;
  7483. {$EXTERNALSYM SIF_POS}
  7484. SIF_DISABLENOSCROLL = $0008;
  7485. {$EXTERNALSYM SIF_DISABLENOSCROLL}
  7486. SIF_TRACKPOS = $0010;
  7487. {$EXTERNALSYM SIF_TRACKPOS}
  7488. SIF_ALL = SIF_RANGE or SIF_PAGE or SIF_POS or SIF_TRACKPOS;
  7489. {$EXTERNALSYM SIF_ALL}
  7490. type
  7491. LPSCROLLINFO = ^SCROLLINFO;
  7492. {$EXTERNALSYM LPSCROLLINFO}
  7493. tagSCROLLINFO = record
  7494. cbSize: UINT;
  7495. fMask: UINT;
  7496. nMin: Integer;
  7497. nMax: Integer;
  7498. nPage: UINT;
  7499. nPos: Integer;
  7500. nTrackPos: Integer;
  7501. end;
  7502. {$EXTERNALSYM tagSCROLLINFO}
  7503. SCROLLINFO = tagSCROLLINFO;
  7504. {$EXTERNALSYM SCROLLINFO}
  7505. TScrollInfo = SCROLLINFO;
  7506. PScrollInfo = LPSCROLLINFO;
  7507. function SetScrollInfo(hwnd: HWND; fnBar: Integer; const lpsi: SCROLLINFO;
  7508. fRedraw: BOOL): Integer; stdcall;
  7509. {$EXTERNALSYM SetScrollInfo}
  7510. function GetScrollInfo(hwnd: HWND; fnBar: Integer; var lpsi: SCROLLINFO): BOOL; stdcall;
  7511. {$EXTERNALSYM GetScrollInfo}
  7512. //
  7513. // MDI client style bits
  7514. //
  7515. const
  7516. MDIS_ALLCHILDSTYLES = $0001;
  7517. {$EXTERNALSYM MDIS_ALLCHILDSTYLES}
  7518. //
  7519. // wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
  7520. //
  7521. const
  7522. MDITILE_VERTICAL = $0000; // not in win3.1
  7523. {$EXTERNALSYM MDITILE_VERTICAL}
  7524. MDITILE_HORIZONTAL = $0001; // not in win3.1
  7525. {$EXTERNALSYM MDITILE_HORIZONTAL}
  7526. MDITILE_SKIPDISABLED = $0002; // not in win3.1
  7527. {$EXTERNALSYM MDITILE_SKIPDISABLED}
  7528. MDITILE_ZORDER = $0004;
  7529. {$EXTERNALSYM MDITILE_ZORDER}
  7530. type
  7531. LPMDICREATESTRUCTA = ^MDICREATESTRUCTA;
  7532. {$EXTERNALSYM LPMDICREATESTRUCTA}
  7533. tagMDICREATESTRUCTA = record
  7534. szClass: LPCSTR;
  7535. szTitle: LPCSTR;
  7536. hOwner: HANDLE;
  7537. x: Integer;
  7538. y: Integer;
  7539. cx: Integer;
  7540. cy: Integer;
  7541. style: DWORD;
  7542. lParam: LPARAM; // app-defined stuff//
  7543. end;
  7544. {$EXTERNALSYM tagMDICREATESTRUCTA}
  7545. MDICREATESTRUCTA = tagMDICREATESTRUCTA;
  7546. {$EXTERNALSYM MDICREATESTRUCTA}
  7547. TMdiCreateStructA = MDICREATESTRUCTA;
  7548. PMdiCreateStructA = LPMDICREATESTRUCTA;
  7549. LPMDICREATESTRUCTW = ^MDICREATESTRUCTW;
  7550. {$EXTERNALSYM LPMDICREATESTRUCTW}
  7551. tagMDICREATESTRUCTW = record
  7552. szClass: LPCWSTR;
  7553. szTitle: LPCWSTR;
  7554. hOwner: HANDLE;
  7555. x: Integer;
  7556. y: Integer;
  7557. cx: Integer;
  7558. cy: Integer;
  7559. style: DWORD;
  7560. lParam: LPARAM; // app-defined stuff//
  7561. end;
  7562. {$EXTERNALSYM tagMDICREATESTRUCTW}
  7563. MDICREATESTRUCTW = tagMDICREATESTRUCTW;
  7564. {$EXTERNALSYM MDICREATESTRUCTW}
  7565. TMdiCreateStructW = MDICREATESTRUCTW;
  7566. PMdiCreateStructW = LPMDICREATESTRUCTW;
  7567. {$IFDEF UNICODE}
  7568. MDICREATESTRUCT = MDICREATESTRUCTW;
  7569. {$EXTERNALSYM MDICREATESTRUCT}
  7570. LPMDICREATESTRUCT = LPMDICREATESTRUCTW;
  7571. {$EXTERNALSYM LPMDICREATESTRUCT}
  7572. TMdiCreateStruct = TMdiCreateStructW;
  7573. PMdiCreateStruct = PMdiCreateStructW;
  7574. {$ELSE}
  7575. MDICREATESTRUCT = MDICREATESTRUCTA;
  7576. {$EXTERNALSYM MDICREATESTRUCT}
  7577. LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
  7578. {$EXTERNALSYM LPMDICREATESTRUCT}
  7579. TMdiCreateStruct = TMdiCreateStructA;
  7580. PMdiCreateStruct = PMdiCreateStructA;
  7581. {$ENDIF UNICODE}
  7582. LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
  7583. {$EXTERNALSYM LPCLIENTCREATESTRUCT}
  7584. tagCLIENTCREATESTRUCT = record
  7585. hWindowMenu: HANDLE;
  7586. idFirstChild: UINT;
  7587. end;
  7588. {$EXTERNALSYM tagCLIENTCREATESTRUCT}
  7589. CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT;
  7590. {$EXTERNALSYM CLIENTCREATESTRUCT}
  7591. TClientCreateStruct = CLIENTCREATESTRUCT;
  7592. PClientCreateStruct = LPCLIENTCREATESTRUCT;
  7593. function DefFrameProcA(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7594. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7595. {$EXTERNALSYM DefFrameProcA}
  7596. function DefFrameProcW(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7597. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7598. {$EXTERNALSYM DefFrameProcW}
  7599. function DefFrameProc(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
  7600. wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7601. {$EXTERNALSYM DefFrameProc}
  7602. function DefMDIChildProcA(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7603. {$EXTERNALSYM DefMDIChildProcA}
  7604. function DefMDIChildProcW(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7605. {$EXTERNALSYM DefMDIChildProcW}
  7606. function DefMDIChildProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
  7607. {$EXTERNALSYM DefMDIChildProc}
  7608. function TranslateMDISysAccel(hWndClient: HWND; const lpMsg: MSG): BOOL; stdcall;
  7609. {$EXTERNALSYM TranslateMDISysAccel}
  7610. function ArrangeIconicWindows(hWnd: HWND): UINT; stdcall;
  7611. {$EXTERNALSYM ArrangeIconicWindows}
  7612. function CreateMDIWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
  7613. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7614. lParam: LPARAM): HWND; stdcall;
  7615. {$EXTERNALSYM CreateMDIWindowA}
  7616. function CreateMDIWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
  7617. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7618. lParam: LPARAM): HWND; stdcall;
  7619. {$EXTERNALSYM CreateMDIWindowW}
  7620. function CreateMDIWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
  7621. X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
  7622. lParam: LPARAM): HWND; stdcall;
  7623. {$EXTERNALSYM CreateMDIWindow}
  7624. function TileWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT; cKids: UINT;
  7625. hwnd: HWND; lpKids: LPHWND): WORD; stdcall;
  7626. {$EXTERNALSYM TileWindows}
  7627. function CascadeWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT;
  7628. cKids: UINT; lpKids: LPHWND): WORD; stdcall;
  7629. {$EXTERNALSYM CascadeWindows}
  7630. //***** Help support ********************************************************/
  7631. type
  7632. HELPPOLY = DWORD;
  7633. {$EXTERNALSYM HELPPOLY}
  7634. LPMULTIKEYHELPA = ^MULTIKEYHELPA;
  7635. {$EXTERNALSYM LPMULTIKEYHELPA}
  7636. tagMULTIKEYHELPA = record
  7637. mkSize: DWORD;
  7638. mkKeylist: CHAR;
  7639. szKeyphrase: array [0..0] of CHAR;
  7640. end;
  7641. {$EXTERNALSYM tagMULTIKEYHELPA}
  7642. MULTIKEYHELPA = tagMULTIKEYHELPA;
  7643. {$EXTERNALSYM MULTIKEYHELPA}
  7644. TMultiKeyHelpA = MULTIKEYHELPA;
  7645. PMultiKeyHelpA = LPMULTIKEYHELPA;
  7646. LPMULTIKEYHELPW = ^MULTIKEYHELPW;
  7647. {$EXTERNALSYM LPMULTIKEYHELPW}
  7648. tagMULTIKEYHELPW = record
  7649. mkSize: DWORD;
  7650. mkKeylist: WCHAR;
  7651. szKeyphrase: array [0..0] of WCHAR;
  7652. end;
  7653. {$EXTERNALSYM tagMULTIKEYHELPW}
  7654. MULTIKEYHELPW = tagMULTIKEYHELPW;
  7655. {$EXTERNALSYM MULTIKEYHELPW}
  7656. TMultiKeyHelpW = MULTIKEYHELPW;
  7657. PMultiKeyHelpW = LPMULTIKEYHELPW;
  7658. {$IFDEF UNICODE}
  7659. MULTIKEYHELP = MULTIKEYHELPW;
  7660. {$EXTERNALSYM MULTIKEYHELP}
  7661. LPMULTIKEYHELP = LPMULTIKEYHELPW;
  7662. {$EXTERNALSYM LPMULTIKEYHELP}
  7663. TMultiKeyHelp = TMultiKeyHelpW;
  7664. PMultiKeyHelp = PMultiKeyHelpW;
  7665. {$ELSE}
  7666. MULTIKEYHELP = MULTIKEYHELPA;
  7667. {$EXTERNALSYM MULTIKEYHELP}
  7668. LPMULTIKEYHELP = LPMULTIKEYHELPA;
  7669. {$EXTERNALSYM LPMULTIKEYHELP}
  7670. TMultiKeyHelp = TMultiKeyHelpA;
  7671. PMultiKeyHelp = PMultiKeyHelpA;
  7672. {$ENDIF UNICODE}
  7673. LPHELPWININFOA = ^HELPWININFOA;
  7674. {$EXTERNALSYM LPHELPWININFOA}
  7675. tagHELPWININFOA = record
  7676. wStructSize: Integer;
  7677. x: Integer;
  7678. y: Integer;
  7679. dx: Integer;
  7680. dy: Integer;
  7681. wMax: Integer;
  7682. rgchMember: array [0..1] of CHAR;
  7683. end;
  7684. {$EXTERNALSYM tagHELPWININFOA}
  7685. HELPWININFOA = tagHELPWININFOA;
  7686. {$EXTERNALSYM HELPWININFOA}
  7687. THelpWinInfoA = HELPWININFOA;
  7688. PHelpWinInfoA = LPHELPWININFOA;
  7689. LPHELPWININFOW = ^HELPWININFOW;
  7690. {$EXTERNALSYM LPHELPWININFOW}
  7691. tagHELPWININFOW = record
  7692. wStructSize: Integer;
  7693. x: Integer;
  7694. y: Integer;
  7695. dx: Integer;
  7696. dy: Integer;
  7697. wMax: Integer;
  7698. rgchMember: array [0..1] of WCHAR;
  7699. end;
  7700. {$EXTERNALSYM tagHELPWININFOW}
  7701. HELPWININFOW = tagHELPWININFOW;
  7702. {$EXTERNALSYM HELPWININFOW}
  7703. THelpWinInfoW = HELPWININFOW;
  7704. PHelpWinInfoW = LPHELPWININFOW;
  7705. {$IFDEF UNICODE}
  7706. HELPWININFO = HELPWININFOW;
  7707. {$EXTERNALSYM HELPWININFO}
  7708. LPHELPWININFO = LPHELPWININFOW;
  7709. {$EXTERNALSYM LPHELPWININFO}
  7710. THelpWinInfo = THelpWinInfoW;
  7711. PHelpWinInfo = PHelpWinInfoW;
  7712. {$ELSE}
  7713. HELPWININFO = HELPWININFOA;
  7714. {$EXTERNALSYM HELPWININFO}
  7715. LPHELPWININFO = LPHELPWININFOA;
  7716. {$EXTERNALSYM LPHELPWININFO}
  7717. THelpWinInfo = THelpWinInfoA;
  7718. PHelpWinInfo = PHelpWinInfoA;
  7719. {$ENDIF UNICODE}
  7720. //
  7721. // Commands to pass to WinHelp()
  7722. //
  7723. const
  7724. HELP_CONTEXT = $0001; // Display topic in ulTopic
  7725. {$EXTERNALSYM HELP_CONTEXT}
  7726. HELP_QUIT = $0002; // Terminate help
  7727. {$EXTERNALSYM HELP_QUIT}
  7728. HELP_INDEX = $0003; // Display index
  7729. {$EXTERNALSYM HELP_INDEX}
  7730. HELP_CONTENTS = $0003;
  7731. {$EXTERNALSYM HELP_CONTENTS}
  7732. HELP_HELPONHELP = $0004; // Display help on using help
  7733. {$EXTERNALSYM HELP_HELPONHELP}
  7734. HELP_SETINDEX = $0005; // Set current Index for multi index help
  7735. {$EXTERNALSYM HELP_SETINDEX}
  7736. HELP_SETCONTENTS = $0005;
  7737. {$EXTERNALSYM HELP_SETCONTENTS}
  7738. HELP_CONTEXTPOPUP = $0008;
  7739. {$EXTERNALSYM HELP_CONTEXTPOPUP}
  7740. HELP_FORCEFILE = $0009;
  7741. {$EXTERNALSYM HELP_FORCEFILE}
  7742. HELP_KEY = $0101; // Display topic for keyword in offabData
  7743. {$EXTERNALSYM HELP_KEY}
  7744. HELP_COMMAND = $0102;
  7745. {$EXTERNALSYM HELP_COMMAND}
  7746. HELP_PARTIALKEY = $0105;
  7747. {$EXTERNALSYM HELP_PARTIALKEY}
  7748. HELP_MULTIKEY = $0201;
  7749. {$EXTERNALSYM HELP_MULTIKEY}
  7750. HELP_SETWINPOS = $0203;
  7751. {$EXTERNALSYM HELP_SETWINPOS}
  7752. HELP_CONTEXTMENU = $000a;
  7753. {$EXTERNALSYM HELP_CONTEXTMENU}
  7754. HELP_FINDER = $000b;
  7755. {$EXTERNALSYM HELP_FINDER}
  7756. HELP_WM_HELP = $000c;
  7757. {$EXTERNALSYM HELP_WM_HELP}
  7758. HELP_SETPOPUP_POS = $000d;
  7759. {$EXTERNALSYM HELP_SETPOPUP_POS}
  7760. HELP_TCARD = $8000;
  7761. {$EXTERNALSYM HELP_TCARD}
  7762. HELP_TCARD_DATA = $0010;
  7763. {$EXTERNALSYM HELP_TCARD_DATA}
  7764. HELP_TCARD_OTHER_CALLER = $0011;
  7765. {$EXTERNALSYM HELP_TCARD_OTHER_CALLER}
  7766. // These are in winhelp.h in Win95.
  7767. IDH_NO_HELP = 28440;
  7768. {$EXTERNALSYM IDH_NO_HELP}
  7769. IDH_MISSING_CONTEXT = 28441; // Control doesn't have matching help context
  7770. {$EXTERNALSYM IDH_MISSING_CONTEXT}
  7771. IDH_GENERIC_HELP_BUTTON = 28442; // Property sheet help button
  7772. {$EXTERNALSYM IDH_GENERIC_HELP_BUTTON}
  7773. IDH_OK = 28443;
  7774. {$EXTERNALSYM IDH_OK}
  7775. IDH_CANCEL = 28444;
  7776. {$EXTERNALSYM IDH_CANCEL}
  7777. IDH_HELP = 28445;
  7778. {$EXTERNALSYM IDH_HELP}
  7779. function WinHelpA(hWndMain: HWND; lpszHelp: LPCSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7780. {$EXTERNALSYM WinHelpA}
  7781. function WinHelpW(hWndMain: HWND; lpszHelp: LPCWSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7782. {$EXTERNALSYM WinHelpW}
  7783. function WinHelp(hWndMain: HWND; lpszHelp: LPCTSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
  7784. {$EXTERNALSYM WinHelp}
  7785. const
  7786. GR_GDIOBJECTS = 0; // Count of GDI objects
  7787. {$EXTERNALSYM GR_GDIOBJECTS}
  7788. GR_USEROBJECTS = 1; // Count of USER objects
  7789. {$EXTERNALSYM GR_USEROBJECTS}
  7790. function GetGuiResources(hProcess: HANDLE; uiFlags: DWORD): DWORD; stdcall;
  7791. {$EXTERNALSYM GetGuiResources}
  7792. //
  7793. // Parameter for SystemParametersInfo()
  7794. //
  7795. const
  7796. SPI_GETBEEP = 1;
  7797. {$EXTERNALSYM SPI_GETBEEP}
  7798. SPI_SETBEEP = 2;
  7799. {$EXTERNALSYM SPI_SETBEEP}
  7800. SPI_GETMOUSE = 3;
  7801. {$EXTERNALSYM SPI_GETMOUSE}
  7802. SPI_SETMOUSE = 4;
  7803. {$EXTERNALSYM SPI_SETMOUSE}
  7804. SPI_GETBORDER = 5;
  7805. {$EXTERNALSYM SPI_GETBORDER}
  7806. SPI_SETBORDER = 6;
  7807. {$EXTERNALSYM SPI_SETBORDER}
  7808. SPI_GETKEYBOARDSPEED = 10;
  7809. {$EXTERNALSYM SPI_GETKEYBOARDSPEED}
  7810. SPI_SETKEYBOARDSPEED = 11;
  7811. {$EXTERNALSYM SPI_SETKEYBOARDSPEED}
  7812. SPI_LANGDRIVER = 12;
  7813. {$EXTERNALSYM SPI_LANGDRIVER}
  7814. SPI_ICONHORIZONTALSPACING = 13;
  7815. {$EXTERNALSYM SPI_ICONHORIZONTALSPACING}
  7816. SPI_GETSCREENSAVETIMEOUT = 14;
  7817. {$EXTERNALSYM SPI_GETSCREENSAVETIMEOUT}
  7818. SPI_SETSCREENSAVETIMEOUT = 15;
  7819. {$EXTERNALSYM SPI_SETSCREENSAVETIMEOUT}
  7820. SPI_GETSCREENSAVEACTIVE = 16;
  7821. {$EXTERNALSYM SPI_GETSCREENSAVEACTIVE}
  7822. SPI_SETSCREENSAVEACTIVE = 17;
  7823. {$EXTERNALSYM SPI_SETSCREENSAVEACTIVE}
  7824. SPI_GETGRIDGRANULARITY = 18;
  7825. {$EXTERNALSYM SPI_GETGRIDGRANULARITY}
  7826. SPI_SETGRIDGRANULARITY = 19;
  7827. {$EXTERNALSYM SPI_SETGRIDGRANULARITY}
  7828. SPI_SETDESKWALLPAPER = 20;
  7829. {$EXTERNALSYM SPI_SETDESKWALLPAPER}
  7830. SPI_SETDESKPATTERN = 21;
  7831. {$EXTERNALSYM SPI_SETDESKPATTERN}
  7832. SPI_GETKEYBOARDDELAY = 22;
  7833. {$EXTERNALSYM SPI_GETKEYBOARDDELAY}
  7834. SPI_SETKEYBOARDDELAY = 23;
  7835. {$EXTERNALSYM SPI_SETKEYBOARDDELAY}
  7836. SPI_ICONVERTICALSPACING = 24;
  7837. {$EXTERNALSYM SPI_ICONVERTICALSPACING}
  7838. SPI_GETICONTITLEWRAP = 25;
  7839. {$EXTERNALSYM SPI_GETICONTITLEWRAP}
  7840. SPI_SETICONTITLEWRAP = 26;
  7841. {$EXTERNALSYM SPI_SETICONTITLEWRAP}
  7842. SPI_GETMENUDROPALIGNMENT = 27;
  7843. {$EXTERNALSYM SPI_GETMENUDROPALIGNMENT}
  7844. SPI_SETMENUDROPALIGNMENT = 28;
  7845. {$EXTERNALSYM SPI_SETMENUDROPALIGNMENT}
  7846. SPI_SETDOUBLECLKWIDTH = 29;
  7847. {$EXTERNALSYM SPI_SETDOUBLECLKWIDTH}
  7848. SPI_SETDOUBLECLKHEIGHT = 30;
  7849. {$EXTERNALSYM SPI_SETDOUBLECLKHEIGHT}
  7850. SPI_GETICONTITLELOGFONT = 31;
  7851. {$EXTERNALSYM SPI_GETICONTITLELOGFONT}
  7852. SPI_SETDOUBLECLICKTIME = 32;
  7853. {$EXTERNALSYM SPI_SETDOUBLECLICKTIME}
  7854. SPI_SETMOUSEBUTTONSWAP = 33;
  7855. {$EXTERNALSYM SPI_SETMOUSEBUTTONSWAP}
  7856. SPI_SETICONTITLELOGFONT = 34;
  7857. {$EXTERNALSYM SPI_SETICONTITLELOGFONT}
  7858. SPI_GETFASTTASKSWITCH = 35;
  7859. {$EXTERNALSYM SPI_GETFASTTASKSWITCH}
  7860. SPI_SETFASTTASKSWITCH = 36;
  7861. {$EXTERNALSYM SPI_SETFASTTASKSWITCH}
  7862. SPI_SETDRAGFULLWINDOWS = 37;
  7863. {$EXTERNALSYM SPI_SETDRAGFULLWINDOWS}
  7864. SPI_GETDRAGFULLWINDOWS = 38;
  7865. {$EXTERNALSYM SPI_GETDRAGFULLWINDOWS}
  7866. SPI_GETNONCLIENTMETRICS = 41;
  7867. {$EXTERNALSYM SPI_GETNONCLIENTMETRICS}
  7868. SPI_SETNONCLIENTMETRICS = 42;
  7869. {$EXTERNALSYM SPI_SETNONCLIENTMETRICS}
  7870. SPI_GETMINIMIZEDMETRICS = 43;
  7871. {$EXTERNALSYM SPI_GETMINIMIZEDMETRICS}
  7872. SPI_SETMINIMIZEDMETRICS = 44;
  7873. {$EXTERNALSYM SPI_SETMINIMIZEDMETRICS}
  7874. SPI_GETICONMETRICS = 45;
  7875. {$EXTERNALSYM SPI_GETICONMETRICS}
  7876. SPI_SETICONMETRICS = 46;
  7877. {$EXTERNALSYM SPI_SETICONMETRICS}
  7878. SPI_SETWORKAREA = 47;
  7879. {$EXTERNALSYM SPI_SETWORKAREA}
  7880. SPI_GETWORKAREA = 48;
  7881. {$EXTERNALSYM SPI_GETWORKAREA}
  7882. SPI_SETPENWINDOWS = 49;
  7883. {$EXTERNALSYM SPI_SETPENWINDOWS}
  7884. SPI_GETHIGHCONTRAST = 66;
  7885. {$EXTERNALSYM SPI_GETHIGHCONTRAST}
  7886. SPI_SETHIGHCONTRAST = 67;
  7887. {$EXTERNALSYM SPI_SETHIGHCONTRAST}
  7888. SPI_GETKEYBOARDPREF = 68;
  7889. {$EXTERNALSYM SPI_GETKEYBOARDPREF}
  7890. SPI_SETKEYBOARDPREF = 69;
  7891. {$EXTERNALSYM SPI_SETKEYBOARDPREF}
  7892. SPI_GETSCREENREADER = 70;
  7893. {$EXTERNALSYM SPI_GETSCREENREADER}
  7894. SPI_SETSCREENREADER = 71;
  7895. {$EXTERNALSYM SPI_SETSCREENREADER}
  7896. SPI_GETANIMATION = 72;
  7897. {$EXTERNALSYM SPI_GETANIMATION}
  7898. SPI_SETANIMATION = 73;
  7899. {$EXTERNALSYM SPI_SETANIMATION}
  7900. SPI_GETFONTSMOOTHING = 74;
  7901. {$EXTERNALSYM SPI_GETFONTSMOOTHING}
  7902. SPI_SETFONTSMOOTHING = 75;
  7903. {$EXTERNALSYM SPI_SETFONTSMOOTHING}
  7904. SPI_SETDRAGWIDTH = 76;
  7905. {$EXTERNALSYM SPI_SETDRAGWIDTH}
  7906. SPI_SETDRAGHEIGHT = 77;
  7907. {$EXTERNALSYM SPI_SETDRAGHEIGHT}
  7908. SPI_SETHANDHELD = 78;
  7909. {$EXTERNALSYM SPI_SETHANDHELD}
  7910. SPI_GETLOWPOWERTIMEOUT = 79;
  7911. {$EXTERNALSYM SPI_GETLOWPOWERTIMEOUT}
  7912. SPI_GETPOWEROFFTIMEOUT = 80;
  7913. {$EXTERNALSYM SPI_GETPOWEROFFTIMEOUT}
  7914. SPI_SETLOWPOWERTIMEOUT = 81;
  7915. {$EXTERNALSYM SPI_SETLOWPOWERTIMEOUT}
  7916. SPI_SETPOWEROFFTIMEOUT = 82;
  7917. {$EXTERNALSYM SPI_SETPOWEROFFTIMEOUT}
  7918. SPI_GETLOWPOWERACTIVE = 83;
  7919. {$EXTERNALSYM SPI_GETLOWPOWERACTIVE}
  7920. SPI_GETPOWEROFFACTIVE = 84;
  7921. {$EXTERNALSYM SPI_GETPOWEROFFACTIVE}
  7922. SPI_SETLOWPOWERACTIVE = 85;
  7923. {$EXTERNALSYM SPI_SETLOWPOWERACTIVE}
  7924. SPI_SETPOWEROFFACTIVE = 86;
  7925. {$EXTERNALSYM SPI_SETPOWEROFFACTIVE}
  7926. SPI_SETCURSORS = 87;
  7927. {$EXTERNALSYM SPI_SETCURSORS}
  7928. SPI_SETICONS = 88;
  7929. {$EXTERNALSYM SPI_SETICONS}
  7930. SPI_GETDEFAULTINPUTLANG = 89;
  7931. {$EXTERNALSYM SPI_GETDEFAULTINPUTLANG}
  7932. SPI_SETDEFAULTINPUTLANG = 90;
  7933. {$EXTERNALSYM SPI_SETDEFAULTINPUTLANG}
  7934. SPI_SETLANGTOGGLE = 91;
  7935. {$EXTERNALSYM SPI_SETLANGTOGGLE}
  7936. SPI_GETWINDOWSEXTENSION = 92;
  7937. {$EXTERNALSYM SPI_GETWINDOWSEXTENSION}
  7938. SPI_SETMOUSETRAILS = 93;
  7939. {$EXTERNALSYM SPI_SETMOUSETRAILS}
  7940. SPI_GETMOUSETRAILS = 94;
  7941. {$EXTERNALSYM SPI_GETMOUSETRAILS}
  7942. SPI_SETSCREENSAVERRUNNING = 97;
  7943. {$EXTERNALSYM SPI_SETSCREENSAVERRUNNING}
  7944. SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING;
  7945. {$EXTERNALSYM SPI_SCREENSAVERRUNNING}
  7946. SPI_GETFILTERKEYS = 50;
  7947. {$EXTERNALSYM SPI_GETFILTERKEYS}
  7948. SPI_SETFILTERKEYS = 51;
  7949. {$EXTERNALSYM SPI_SETFILTERKEYS}
  7950. SPI_GETTOGGLEKEYS = 52;
  7951. {$EXTERNALSYM SPI_GETTOGGLEKEYS}
  7952. SPI_SETTOGGLEKEYS = 53;
  7953. {$EXTERNALSYM SPI_SETTOGGLEKEYS}
  7954. SPI_GETMOUSEKEYS = 54;
  7955. {$EXTERNALSYM SPI_GETMOUSEKEYS}
  7956. SPI_SETMOUSEKEYS = 55;
  7957. {$EXTERNALSYM SPI_SETMOUSEKEYS}
  7958. SPI_GETSHOWSOUNDS = 56;
  7959. {$EXTERNALSYM SPI_GETSHOWSOUNDS}
  7960. SPI_SETSHOWSOUNDS = 57;
  7961. {$EXTERNALSYM SPI_SETSHOWSOUNDS}
  7962. SPI_GETSTICKYKEYS = 58;
  7963. {$EXTERNALSYM SPI_GETSTICKYKEYS}
  7964. SPI_SETSTICKYKEYS = 59;
  7965. {$EXTERNALSYM SPI_SETSTICKYKEYS}
  7966. SPI_GETACCESSTIMEOUT = 60;
  7967. {$EXTERNALSYM SPI_GETACCESSTIMEOUT}
  7968. SPI_SETACCESSTIMEOUT = 61;
  7969. {$EXTERNALSYM SPI_SETACCESSTIMEOUT}
  7970. SPI_GETSERIALKEYS = 62;
  7971. {$EXTERNALSYM SPI_GETSERIALKEYS}
  7972. SPI_SETSERIALKEYS = 63;
  7973. {$EXTERNALSYM SPI_SETSERIALKEYS}
  7974. SPI_GETSOUNDSENTRY = 64;
  7975. {$EXTERNALSYM SPI_GETSOUNDSENTRY}
  7976. SPI_SETSOUNDSENTRY = 65;
  7977. {$EXTERNALSYM SPI_SETSOUNDSENTRY}
  7978. SPI_GETSNAPTODEFBUTTON = 95;
  7979. {$EXTERNALSYM SPI_GETSNAPTODEFBUTTON}
  7980. SPI_SETSNAPTODEFBUTTON = 96;
  7981. {$EXTERNALSYM SPI_SETSNAPTODEFBUTTON}
  7982. SPI_GETMOUSEHOVERWIDTH = 98;
  7983. {$EXTERNALSYM SPI_GETMOUSEHOVERWIDTH}
  7984. SPI_SETMOUSEHOVERWIDTH = 99;
  7985. {$EXTERNALSYM SPI_SETMOUSEHOVERWIDTH}
  7986. SPI_GETMOUSEHOVERHEIGHT = 100;
  7987. {$EXTERNALSYM SPI_GETMOUSEHOVERHEIGHT}
  7988. SPI_SETMOUSEHOVERHEIGHT = 101;
  7989. {$EXTERNALSYM SPI_SETMOUSEHOVERHEIGHT}
  7990. SPI_GETMOUSEHOVERTIME = 102;
  7991. {$EXTERNALSYM SPI_GETMOUSEHOVERTIME}
  7992. SPI_SETMOUSEHOVERTIME = 103;
  7993. {$EXTERNALSYM SPI_SETMOUSEHOVERTIME}
  7994. SPI_GETWHEELSCROLLLINES = 104;
  7995. {$EXTERNALSYM SPI_GETWHEELSCROLLLINES}
  7996. SPI_SETWHEELSCROLLLINES = 105;
  7997. {$EXTERNALSYM SPI_SETWHEELSCROLLLINES}
  7998. SPI_GETMENUSHOWDELAY = 106;
  7999. {$EXTERNALSYM SPI_GETMENUSHOWDELAY}
  8000. SPI_SETMENUSHOWDELAY = 107;
  8001. {$EXTERNALSYM SPI_SETMENUSHOWDELAY}
  8002. SPI_GETSHOWIMEUI = 110;
  8003. {$EXTERNALSYM SPI_GETSHOWIMEUI}
  8004. SPI_SETSHOWIMEUI = 111;
  8005. {$EXTERNALSYM SPI_SETSHOWIMEUI}
  8006. SPI_GETMOUSESPEED = 112;
  8007. {$EXTERNALSYM SPI_GETMOUSESPEED}
  8008. SPI_SETMOUSESPEED = 113;
  8009. {$EXTERNALSYM SPI_SETMOUSESPEED}
  8010. SPI_GETSCREENSAVERRUNNING = 114;
  8011. {$EXTERNALSYM SPI_GETSCREENSAVERRUNNING}
  8012. SPI_GETDESKWALLPAPER = 115;
  8013. {$EXTERNALSYM SPI_GETDESKWALLPAPER}
  8014. SPI_GETACTIVEWINDOWTRACKING = $1000;
  8015. {$EXTERNALSYM SPI_GETACTIVEWINDOWTRACKING}
  8016. SPI_SETACTIVEWINDOWTRACKING = $1001;
  8017. {$EXTERNALSYM SPI_SETACTIVEWINDOWTRACKING}
  8018. SPI_GETMENUANIMATION = $1002;
  8019. {$EXTERNALSYM SPI_GETMENUANIMATION}
  8020. SPI_SETMENUANIMATION = $1003;
  8021. {$EXTERNALSYM SPI_SETMENUANIMATION}
  8022. SPI_GETCOMBOBOXANIMATION = $1004;
  8023. {$EXTERNALSYM SPI_GETCOMBOBOXANIMATION}
  8024. SPI_SETCOMBOBOXANIMATION = $1005;
  8025. {$EXTERNALSYM SPI_SETCOMBOBOXANIMATION}
  8026. SPI_GETLISTBOXSMOOTHSCROLLING = $1006;
  8027. {$EXTERNALSYM SPI_GETLISTBOXSMOOTHSCROLLING}
  8028. SPI_SETLISTBOXSMOOTHSCROLLING = $1007;
  8029. {$EXTERNALSYM SPI_SETLISTBOXSMOOTHSCROLLING}
  8030. SPI_GETGRADIENTCAPTIONS = $1008;
  8031. {$EXTERNALSYM SPI_GETGRADIENTCAPTIONS}
  8032. SPI_SETGRADIENTCAPTIONS = $1009;
  8033. {$EXTERNALSYM SPI_SETGRADIENTCAPTIONS}
  8034. SPI_GETKEYBOARDCUES = $100A;
  8035. {$EXTERNALSYM SPI_GETKEYBOARDCUES}
  8036. SPI_SETKEYBOARDCUES = $100B;
  8037. {$EXTERNALSYM SPI_SETKEYBOARDCUES}
  8038. SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES;
  8039. {$EXTERNALSYM SPI_GETMENUUNDERLINES}
  8040. SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES;
  8041. {$EXTERNALSYM SPI_SETMENUUNDERLINES}
  8042. SPI_GETACTIVEWNDTRKZORDER = $100C;
  8043. {$EXTERNALSYM SPI_GETACTIVEWNDTRKZORDER}
  8044. SPI_SETACTIVEWNDTRKZORDER = $100D;
  8045. {$EXTERNALSYM SPI_SETACTIVEWNDTRKZORDER}
  8046. SPI_GETHOTTRACKING = $100E;
  8047. {$EXTERNALSYM SPI_GETHOTTRACKING}
  8048. SPI_SETHOTTRACKING = $100F;
  8049. {$EXTERNALSYM SPI_SETHOTTRACKING}
  8050. SPI_GETMENUFADE = $1012;
  8051. {$EXTERNALSYM SPI_GETMENUFADE}
  8052. SPI_SETMENUFADE = $1013;
  8053. {$EXTERNALSYM SPI_SETMENUFADE}
  8054. SPI_GETSELECTIONFADE = $1014;
  8055. {$EXTERNALSYM SPI_GETSELECTIONFADE}
  8056. SPI_SETSELECTIONFADE = $1015;
  8057. {$EXTERNALSYM SPI_SETSELECTIONFADE}
  8058. SPI_GETTOOLTIPANIMATION = $1016;
  8059. {$EXTERNALSYM SPI_GETTOOLTIPANIMATION}
  8060. SPI_SETTOOLTIPANIMATION = $1017;
  8061. {$EXTERNALSYM SPI_SETTOOLTIPANIMATION}
  8062. SPI_GETTOOLTIPFADE = $1018;
  8063. {$EXTERNALSYM SPI_GETTOOLTIPFADE}
  8064. SPI_SETTOOLTIPFADE = $1019;
  8065. {$EXTERNALSYM SPI_SETTOOLTIPFADE}
  8066. SPI_GETCURSORSHADOW = $101A;
  8067. {$EXTERNALSYM SPI_GETCURSORSHADOW}
  8068. SPI_SETCURSORSHADOW = $101B;
  8069. {$EXTERNALSYM SPI_SETCURSORSHADOW}
  8070. SPI_GETMOUSESONAR = $101C;
  8071. {$EXTERNALSYM SPI_GETMOUSESONAR}
  8072. SPI_SETMOUSESONAR = $101D;
  8073. {$EXTERNALSYM SPI_SETMOUSESONAR}
  8074. SPI_GETMOUSECLICKLOCK = $101E;
  8075. {$EXTERNALSYM SPI_GETMOUSECLICKLOCK}
  8076. SPI_SETMOUSECLICKLOCK = $101F;
  8077. {$EXTERNALSYM SPI_SETMOUSECLICKLOCK}
  8078. SPI_GETMOUSEVANISH = $1020;
  8079. {$EXTERNALSYM SPI_GETMOUSEVANISH}
  8080. SPI_SETMOUSEVANISH = $1021;
  8081. {$EXTERNALSYM SPI_SETMOUSEVANISH}
  8082. SPI_GETFLATMENU = $1022;
  8083. {$EXTERNALSYM SPI_GETFLATMENU}
  8084. SPI_SETFLATMENU = $1023;
  8085. {$EXTERNALSYM SPI_SETFLATMENU}
  8086. SPI_GETDROPSHADOW = $1024;
  8087. {$EXTERNALSYM SPI_GETDROPSHADOW}
  8088. SPI_SETDROPSHADOW = $1025;
  8089. {$EXTERNALSYM SPI_SETDROPSHADOW}
  8090. SPI_GETBLOCKSENDINPUTRESETS = $1026;
  8091. {$EXTERNALSYM SPI_GETBLOCKSENDINPUTRESETS}
  8092. SPI_SETBLOCKSENDINPUTRESETS = $1027;
  8093. {$EXTERNALSYM SPI_SETBLOCKSENDINPUTRESETS}
  8094. SPI_GETUIEFFECTS = $103E;
  8095. {$EXTERNALSYM SPI_GETUIEFFECTS}
  8096. SPI_SETUIEFFECTS = $103F;
  8097. {$EXTERNALSYM SPI_SETUIEFFECTS}
  8098. SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  8099. {$EXTERNALSYM SPI_GETFOREGROUNDLOCKTIMEOUT}
  8100. SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
  8101. {$EXTERNALSYM SPI_SETFOREGROUNDLOCKTIMEOUT}
  8102. SPI_GETACTIVEWNDTRKTIMEOUT = $2002;
  8103. {$EXTERNALSYM SPI_GETACTIVEWNDTRKTIMEOUT}
  8104. SPI_SETACTIVEWNDTRKTIMEOUT = $2003;
  8105. {$EXTERNALSYM SPI_SETACTIVEWNDTRKTIMEOUT}
  8106. SPI_GETFOREGROUNDFLASHCOUNT = $2004;
  8107. {$EXTERNALSYM SPI_GETFOREGROUNDFLASHCOUNT}
  8108. SPI_SETFOREGROUNDFLASHCOUNT = $2005;
  8109. {$EXTERNALSYM SPI_SETFOREGROUNDFLASHCOUNT}
  8110. SPI_GETCARETWIDTH = $2006;
  8111. {$EXTERNALSYM SPI_GETCARETWIDTH}
  8112. SPI_SETCARETWIDTH = $2007;
  8113. {$EXTERNALSYM SPI_SETCARETWIDTH}
  8114. SPI_GETMOUSECLICKLOCKTIME = $2008;
  8115. {$EXTERNALSYM SPI_GETMOUSECLICKLOCKTIME}
  8116. SPI_SETMOUSECLICKLOCKTIME = $2009;
  8117. {$EXTERNALSYM SPI_SETMOUSECLICKLOCKTIME}
  8118. SPI_GETFONTSMOOTHINGTYPE = $200A;
  8119. {$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
  8120. SPI_SETFONTSMOOTHINGTYPE = $200B;
  8121. {$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
  8122. // constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE
  8123. FE_FONTSMOOTHINGSTANDARD = $0001;
  8124. {$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
  8125. FE_FONTSMOOTHINGCLEARTYPE = $0002;
  8126. {$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
  8127. FE_FONTSMOOTHINGDOCKING = $8000;
  8128. {$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
  8129. SPI_GETFONTSMOOTHINGCONTRAST = $200C;
  8130. {$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
  8131. SPI_SETFONTSMOOTHINGCONTRAST = $200D;
  8132. {$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
  8133. SPI_GETFOCUSBORDERWIDTH = $200E;
  8134. {$EXTERNALSYM SPI_GETFOCUSBORDERWIDTH}
  8135. SPI_SETFOCUSBORDERWIDTH = $200F;
  8136. {$EXTERNALSYM SPI_SETFOCUSBORDERWIDTH}
  8137. SPI_GETFOCUSBORDERHEIGHT = $2010;
  8138. {$EXTERNALSYM SPI_GETFOCUSBORDERHEIGHT}
  8139. SPI_SETFOCUSBORDERHEIGHT = $2011;
  8140. {$EXTERNALSYM SPI_SETFOCUSBORDERHEIGHT}
  8141. SPI_GETFONTSMOOTHINGORIENTATION = $2012;
  8142. {$EXTERNALSYM SPI_GETFONTSMOOTHINGORIENTATION}
  8143. SPI_SETFONTSMOOTHINGORIENTATION = $2013;
  8144. {$EXTERNALSYM SPI_SETFONTSMOOTHINGORIENTATION}
  8145. // constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION:
  8146. FE_FONTSMOOTHINGORIENTATIONBGR = $0000;
  8147. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONBGR}
  8148. FE_FONTSMOOTHINGORIENTATIONRGB = $0001;
  8149. {$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONRGB}
  8150. //
  8151. // Flags
  8152. //
  8153. SPIF_UPDATEINIFILE = $0001;
  8154. {$EXTERNALSYM SPIF_UPDATEINIFILE}
  8155. SPIF_SENDWININICHANGE = $0002;
  8156. {$EXTERNALSYM SPIF_SENDWININICHANGE}
  8157. SPIF_SENDCHANGE = SPIF_SENDWININICHANGE;
  8158. {$EXTERNALSYM SPIF_SENDCHANGE}
  8159. METRICS_USEDEFAULT = DWORD(-1);
  8160. {$EXTERNALSYM METRICS_USEDEFAULT}
  8161. type
  8162. LPNONCLIENTMETRICSA = ^NONCLIENTMETRICSA;
  8163. {$EXTERNALSYM LPNONCLIENTMETRICSA}
  8164. tagNONCLIENTMETRICSA = record
  8165. cbSize: UINT;
  8166. iBorderWidth: Integer;
  8167. iScrollWidth: Integer;
  8168. iScrollHeight: Integer;
  8169. iCaptionWidth: Integer;
  8170. iCaptionHeight: Integer;
  8171. lfCaptionFont: LOGFONTA;
  8172. iSmCaptionWidth: Integer;
  8173. iSmCaptionHeight: Integer;
  8174. lfSmCaptionFont: LOGFONTA;
  8175. iMenuWidth: Integer;
  8176. iMenuHeight: Integer;
  8177. lfMenuFont: LOGFONTA;
  8178. lfStatusFont: LOGFONTA;
  8179. lfMessageFont: LOGFONTA;
  8180. end;
  8181. {$EXTERNALSYM tagNONCLIENTMETRICSA}
  8182. NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
  8183. {$EXTERNALSYM NONCLIENTMETRICSA}
  8184. TNonClientMetricsA = NONCLIENTMETRICSA;
  8185. PNonClientMetricsA = LPNONCLIENTMETRICSA;
  8186. LPNONCLIENTMETRICSW = ^NONCLIENTMETRICSW;
  8187. {$EXTERNALSYM LPNONCLIENTMETRICSW}
  8188. tagNONCLIENTMETRICSW = record
  8189. cbSize: UINT;
  8190. iBorderWidth: Integer;
  8191. iScrollWidth: Integer;
  8192. iScrollHeight: Integer;
  8193. iCaptionWidth: Integer;
  8194. iCaptionHeight: Integer;
  8195. lfCaptionFont: LOGFONTW;
  8196. iSmCaptionWidth: Integer;
  8197. iSmCaptionHeight: Integer;
  8198. lfSmCaptionFont: LOGFONTW;
  8199. iMenuWidth: Integer;
  8200. iMenuHeight: Integer;
  8201. lfMenuFont: LOGFONTW;
  8202. lfStatusFont: LOGFONTW;
  8203. lfMessageFont: LOGFONTW;
  8204. end;
  8205. {$EXTERNALSYM tagNONCLIENTMETRICSW}
  8206. NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
  8207. {$EXTERNALSYM NONCLIENTMETRICSW}
  8208. TNonClientMetricsW = NONCLIENTMETRICSW;
  8209. PNonClientMetricsW = LPNONCLIENTMETRICSW;
  8210. {$IFDEF UNICODE}
  8211. NONCLIENTMETRICS = NONCLIENTMETRICSW;
  8212. {$EXTERNALSYM NONCLIENTMETRICS}
  8213. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSW;
  8214. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8215. TNonClientMetrics = TNonClientMetricsW;
  8216. PNonClientMetrics = PNonClientMetricsW;
  8217. {$ELSE}
  8218. NONCLIENTMETRICS = NONCLIENTMETRICSA;
  8219. {$EXTERNALSYM NONCLIENTMETRICS}
  8220. LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
  8221. {$EXTERNALSYM LPNONCLIENTMETRICS}
  8222. TNonClientMetrics = TNonClientMetricsA;
  8223. PNonClientMetrics = PNonClientMetricsA;
  8224. {$ENDIF UNICODE}
  8225. const
  8226. ARW_BOTTOMLEFT = $0000;
  8227. {$EXTERNALSYM ARW_BOTTOMLEFT}
  8228. ARW_BOTTOMRIGHT = $0001;
  8229. {$EXTERNALSYM ARW_BOTTOMRIGHT}
  8230. ARW_TOPLEFT = $0002;
  8231. {$EXTERNALSYM ARW_TOPLEFT}
  8232. ARW_TOPRIGHT = $0003;
  8233. {$EXTERNALSYM ARW_TOPRIGHT}
  8234. ARW_STARTMASK = $0003;
  8235. {$EXTERNALSYM ARW_STARTMASK}
  8236. ARW_STARTRIGHT = $0001;
  8237. {$EXTERNALSYM ARW_STARTRIGHT}
  8238. ARW_STARTTOP = $0002;
  8239. {$EXTERNALSYM ARW_STARTTOP}
  8240. ARW_LEFT = $0000;
  8241. {$EXTERNALSYM ARW_LEFT}
  8242. ARW_RIGHT = $0000;
  8243. {$EXTERNALSYM ARW_RIGHT}
  8244. ARW_UP = $0004;
  8245. {$EXTERNALSYM ARW_UP}
  8246. ARW_DOWN = $0004;
  8247. {$EXTERNALSYM ARW_DOWN}
  8248. ARW_HIDE = $0008;
  8249. {$EXTERNALSYM ARW_HIDE}
  8250. type
  8251. LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
  8252. {$EXTERNALSYM LPMINIMIZEDMETRICS}
  8253. tagMINIMIZEDMETRICS = record
  8254. cbSize: UINT;
  8255. iWidth: Integer;
  8256. iHorzGap: Integer;
  8257. iVertGap: Integer;
  8258. iArrange: Integer;
  8259. end;
  8260. {$EXTERNALSYM tagMINIMIZEDMETRICS}
  8261. MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
  8262. {$EXTERNALSYM MINIMIZEDMETRICS}
  8263. TMinimizedMetrics = MINIMIZEDMETRICS;
  8264. PMinimizedMetrics = LPMINIMIZEDMETRICS;
  8265. LPICONMETRICSA = ^ICONMETRICSA;
  8266. {$EXTERNALSYM LPICONMETRICSA}
  8267. tagICONMETRICSA = record
  8268. cbSize: UINT;
  8269. iHorzSpacing: Integer;
  8270. iVertSpacing: Integer;
  8271. iTitleWrap: Integer;
  8272. lfFont: LOGFONTA;
  8273. end;
  8274. {$EXTERNALSYM tagICONMETRICSA}
  8275. ICONMETRICSA = tagICONMETRICSA;
  8276. {$EXTERNALSYM ICONMETRICSA}
  8277. TIconMetricsA = ICONMETRICSA;
  8278. PIconMetricsA = LPICONMETRICSA;
  8279. LPICONMETRICSW = ^ICONMETRICSW;
  8280. {$EXTERNALSYM LPICONMETRICSW}
  8281. tagICONMETRICSW = record
  8282. cbSize: UINT;
  8283. iHorzSpacing: Integer;
  8284. iVertSpacing: Integer;
  8285. iTitleWrap: Integer;
  8286. lfFont: LOGFONTW;
  8287. end;
  8288. {$EXTERNALSYM tagICONMETRICSW}
  8289. ICONMETRICSW = tagICONMETRICSW;
  8290. {$EXTERNALSYM ICONMETRICSW}
  8291. TIconMetricsW = ICONMETRICSW;
  8292. PIconMetricsW = LPICONMETRICSW;
  8293. {$IFDEF UNICODE}
  8294. ICONMETRICS = ICONMETRICSW;
  8295. {$EXTERNALSYM ICONMETRICS}
  8296. LPICONMETRICS = LPICONMETRICSW;
  8297. {$EXTERNALSYM LPICONMETRICS}
  8298. TIconMetrics = TIconMetricsW;
  8299. PIconMetrics = PIconMetricsW;
  8300. {$ELSE}
  8301. ICONMETRICS = ICONMETRICSA;
  8302. {$EXTERNALSYM ICONMETRICS}
  8303. LPICONMETRICS = LPICONMETRICSA;
  8304. {$EXTERNALSYM LPICONMETRICS}
  8305. TIconMetrics = TIconMetricsA;
  8306. PIconMetrics = PIconMetricsA;
  8307. {$ENDIF UNICODE}
  8308. LPANIMATIONINFO = ^ANIMATIONINFO;
  8309. {$EXTERNALSYM LPANIMATIONINFO}
  8310. tagANIMATIONINFO = record
  8311. cbSize: UINT;
  8312. iMinAnimate: Integer;
  8313. end;
  8314. {$EXTERNALSYM tagANIMATIONINFO}
  8315. ANIMATIONINFO = tagANIMATIONINFO;
  8316. {$EXTERNALSYM ANIMATIONINFO}
  8317. TAnimationInfo = ANIMATIONINFO;
  8318. PAnimationInfo = LPANIMATIONINFO;
  8319. LPSERIALKEYSA = ^SERIALKEYSA;
  8320. {$EXTERNALSYM LPSERIALKEYSA}
  8321. tagSERIALKEYSA = record
  8322. cbSize: UINT;
  8323. dwFlags: DWORD;
  8324. lpszActivePort: LPSTR;
  8325. lpszPort: LPSTR;
  8326. iBaudRate: UINT;
  8327. iPortState: UINT;
  8328. iActive: UINT;
  8329. end;
  8330. {$EXTERNALSYM tagSERIALKEYSA}
  8331. SERIALKEYSA = tagSERIALKEYSA;
  8332. {$EXTERNALSYM SERIALKEYSA}
  8333. TSerialKeysA = SERIALKEYSA;
  8334. PSerialKeysA = LPSERIALKEYSA;
  8335. LPSERIALKEYSW = ^SERIALKEYSW;
  8336. {$EXTERNALSYM LPSERIALKEYSW}
  8337. tagSERIALKEYSW = record
  8338. cbSize: UINT;
  8339. dwFlags: DWORD;
  8340. lpszActivePort: LPWSTR;
  8341. lpszPort: LPWSTR;
  8342. iBaudRate: UINT;
  8343. iPortState: UINT;
  8344. iActive: UINT;
  8345. end;
  8346. {$EXTERNALSYM tagSERIALKEYSW}
  8347. SERIALKEYSW = tagSERIALKEYSW;
  8348. {$EXTERNALSYM SERIALKEYSW}
  8349. TSerialKeysW = SERIALKEYSW;
  8350. PSerialKeysW = LPSERIALKEYSW;
  8351. {$IFDEF UNICODE}
  8352. SERIALKEYS = SERIALKEYSW;
  8353. {$EXTERNALSYM SERIALKEYS}
  8354. LPSERIALKEYS = LPSERIALKEYSW;
  8355. {$EXTERNALSYM LPSERIALKEYS}
  8356. TSerialKeys = TSerialKeysW;
  8357. PSerialKeys = PSerialKeysW;
  8358. {$ELSE}
  8359. SERIALKEYS = SERIALKEYSA;
  8360. {$EXTERNALSYM SERIALKEYS}
  8361. LPSERIALKEYS = LPSERIALKEYSA;
  8362. {$EXTERNALSYM LPSERIALKEYS}
  8363. TSerialKeys = TSerialKeysA;
  8364. PSerialKeys = PSerialKeysA;
  8365. {$ENDIF UNICODE}
  8366. // flags for SERIALKEYS dwFlags field//
  8367. const
  8368. SERKF_SERIALKEYSON = $00000001;
  8369. {$EXTERNALSYM SERKF_SERIALKEYSON}
  8370. SERKF_AVAILABLE = $00000002;
  8371. {$EXTERNALSYM SERKF_AVAILABLE}
  8372. SERKF_INDICATOR = $00000004;
  8373. {$EXTERNALSYM SERKF_INDICATOR}
  8374. type
  8375. LPHIGHCONTRASTA = ^HIGHCONTRASTA;
  8376. {$EXTERNALSYM LPHIGHCONTRASTA}
  8377. tagHIGHCONTRASTA = record
  8378. cbSize: UINT;
  8379. dwFlags: DWORD;
  8380. lpszDefaultScheme: LPSTR;
  8381. end;
  8382. {$EXTERNALSYM tagHIGHCONTRASTA}
  8383. HIGHCONTRASTA = tagHIGHCONTRASTA;
  8384. {$EXTERNALSYM HIGHCONTRASTA}
  8385. THighContrastA = HIGHCONTRASTA;
  8386. PHighContrastA = LPHIGHCONTRASTA;
  8387. LPHIGHCONTRASTW = ^HIGHCONTRASTW;
  8388. {$EXTERNALSYM LPHIGHCONTRASTW}
  8389. tagHIGHCONTRASTW = record
  8390. cbSize: UINT;
  8391. dwFlags: DWORD;
  8392. lpszDefaultScheme: LPWSTR;
  8393. end;
  8394. {$EXTERNALSYM tagHIGHCONTRASTW}
  8395. HIGHCONTRASTW = tagHIGHCONTRASTW;
  8396. {$EXTERNALSYM HIGHCONTRASTW}
  8397. THighContrastW = HIGHCONTRASTW;
  8398. PHighContrastW = LPHIGHCONTRASTW;
  8399. {$IFDEF UNICODE}
  8400. HIGHCONTRAST = HIGHCONTRASTW;
  8401. {$EXTERNALSYM HIGHCONTRAST}
  8402. LPHIGHCONTRAST = LPHIGHCONTRASTW;
  8403. {$EXTERNALSYM LPHIGHCONTRAST}
  8404. THighContrast = THighContrastW;
  8405. PHighContrast = PHighContrastW;
  8406. {$ELSE}
  8407. HIGHCONTRAST = HIGHCONTRASTA;
  8408. {$EXTERNALSYM HIGHCONTRAST}
  8409. LPHIGHCONTRAST = LPHIGHCONTRASTA;
  8410. {$EXTERNALSYM LPHIGHCONTRAST}
  8411. THighContrast = THighContrastA;
  8412. PHighContrast = PHighContrastA;
  8413. {$ENDIF UNICODE}
  8414. // flags for HIGHCONTRAST dwFlags field//
  8415. const
  8416. HCF_HIGHCONTRASTON = $00000001;
  8417. {$EXTERNALSYM HCF_HIGHCONTRASTON}
  8418. HCF_AVAILABLE = $00000002;
  8419. {$EXTERNALSYM HCF_AVAILABLE}
  8420. HCF_HOTKEYACTIVE = $00000004;
  8421. {$EXTERNALSYM HCF_HOTKEYACTIVE}
  8422. HCF_CONFIRMHOTKEY = $00000008;
  8423. {$EXTERNALSYM HCF_CONFIRMHOTKEY}
  8424. HCF_HOTKEYSOUND = $00000010;
  8425. {$EXTERNALSYM HCF_HOTKEYSOUND}
  8426. HCF_INDICATOR = $00000020;
  8427. {$EXTERNALSYM HCF_INDICATOR}
  8428. HCF_HOTKEYAVAILABLE = $00000040;
  8429. {$EXTERNALSYM HCF_HOTKEYAVAILABLE}
  8430. // Flags for ChangeDisplaySettings//
  8431. CDS_UPDATEREGISTRY = $00000001;
  8432. {$EXTERNALSYM CDS_UPDATEREGISTRY}
  8433. CDS_TEST = $00000002;
  8434. {$EXTERNALSYM CDS_TEST}
  8435. CDS_FULLSCREEN = $00000004;
  8436. {$EXTERNALSYM CDS_FULLSCREEN}
  8437. CDS_GLOBAL = $00000008;
  8438. {$EXTERNALSYM CDS_GLOBAL}
  8439. CDS_SET_PRIMARY = $00000010;
  8440. {$EXTERNALSYM CDS_SET_PRIMARY}
  8441. CDS_VIDEOPARAMETERS = $00000020;
  8442. {$EXTERNALSYM CDS_VIDEOPARAMETERS}
  8443. CDS_RESET = $40000000;
  8444. {$EXTERNALSYM CDS_RESET}
  8445. CDS_NORESET = $10000000;
  8446. {$EXTERNALSYM CDS_NORESET}
  8447. // #include <tvout.h>
  8448. // Return values for ChangeDisplaySettings
  8449. DISP_CHANGE_SUCCESSFUL = 0;
  8450. {$EXTERNALSYM DISP_CHANGE_SUCCESSFUL}
  8451. DISP_CHANGE_RESTART = 1;
  8452. {$EXTERNALSYM DISP_CHANGE_RESTART}
  8453. DISP_CHANGE_FAILED = DWORD(-1);
  8454. {$EXTERNALSYM DISP_CHANGE_FAILED}
  8455. DISP_CHANGE_BADMODE = DWORD(-2);
  8456. {$EXTERNALSYM DISP_CHANGE_BADMODE}
  8457. DISP_CHANGE_NOTUPDATED = DWORD(-3);
  8458. {$EXTERNALSYM DISP_CHANGE_NOTUPDATED}
  8459. DISP_CHANGE_BADFLAGS = DWORD(-4);
  8460. {$EXTERNALSYM DISP_CHANGE_BADFLAGS}
  8461. DISP_CHANGE_BADPARAM = DWORD(-5);
  8462. {$EXTERNALSYM DISP_CHANGE_BADPARAM}
  8463. DISP_CHANGE_BADDUALVIEW = DWORD(-6);
  8464. {$EXTERNALSYM DISP_CHANGE_BADDUALVIEW}
  8465. function ChangeDisplaySettingsA(lpDevMode: LPDEVMODEA; dwFlags: DWORD): LONG; stdcall;
  8466. {$EXTERNALSYM ChangeDisplaySettingsA}
  8467. function ChangeDisplaySettingsW(lpDevMode: LPDEVMODEW; dwFlags: DWORD): LONG; stdcall;
  8468. {$EXTERNALSYM ChangeDisplaySettingsW}
  8469. function ChangeDisplaySettings(lpDevMode: LPDEVMODE; dwFlags: DWORD): LONG; stdcall;
  8470. {$EXTERNALSYM ChangeDisplaySettings}
  8471. function ChangeDisplaySettingsExA(lpszDeviceName: LPCSTR; lpDevMode: LPDEVMODEA;
  8472. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8473. {$EXTERNALSYM ChangeDisplaySettingsExA}
  8474. function ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR; lpDevMode: LPDEVMODEW;
  8475. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8476. {$EXTERNALSYM ChangeDisplaySettingsExW}
  8477. function ChangeDisplaySettingsEx(lpszDeviceName: LPCTSTR; lpDevMode: LPDEVMODE;
  8478. hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
  8479. {$EXTERNALSYM ChangeDisplaySettingsEx}
  8480. const
  8481. ENUM_CURRENT_SETTINGS = DWORD(-1);
  8482. {$EXTERNALSYM ENUM_CURRENT_SETTINGS}
  8483. ENUM_REGISTRY_SETTINGS = DWORD(-2);
  8484. {$EXTERNALSYM ENUM_REGISTRY_SETTINGS}
  8485. function EnumDisplaySettingsA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8486. var lpDevMode: DEVMODEA): BOOL; stdcall;
  8487. {$EXTERNALSYM EnumDisplaySettingsA}
  8488. function EnumDisplaySettingsW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8489. var lpDevMode: DEVMODEW): BOOL; stdcall;
  8490. {$EXTERNALSYM EnumDisplaySettingsW}
  8491. function EnumDisplaySettings(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8492. var lpDevMode: DEVMODE): BOOL; stdcall;
  8493. {$EXTERNALSYM EnumDisplaySettings}
  8494. function EnumDisplaySettingsExA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
  8495. var lpDevMode: DEVMODEA; dwFlags: DWORD): BOOL; stdcall;
  8496. {$EXTERNALSYM EnumDisplaySettingsExA}
  8497. function EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
  8498. var lpDevMode: DEVMODEW; dwFlags: DWORD): BOOL; stdcall;
  8499. {$EXTERNALSYM EnumDisplaySettingsExW}
  8500. function EnumDisplaySettingsEx(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
  8501. var lpDevMode: DEVMODE; dwFlags: DWORD): BOOL; stdcall;
  8502. {$EXTERNALSYM EnumDisplaySettingsEx}
  8503. // Flags for EnumDisplaySettingsEx//
  8504. const
  8505. EDS_RAWMODE = $00000002;
  8506. {$EXTERNALSYM EDS_RAWMODE}
  8507. function EnumDisplayDevicesA(lpDevice: LPCSTR; iDevNum: DWORD;
  8508. var lpDisplayDevice: DISPLAY_DEVICEA; dwFlags: DWORD): BOOL; stdcall;
  8509. {$EXTERNALSYM EnumDisplayDevicesA}
  8510. function EnumDisplayDevicesW(lpDevice: LPCWSTR; iDevNum: DWORD;
  8511. var lpDisplayDevice: DISPLAY_DEVICEW; dwFlags: DWORD): BOOL; stdcall;
  8512. {$EXTERNALSYM EnumDisplayDevicesW}
  8513. function EnumDisplayDevices(lpDevice: LPCTSTR; iDevNum: DWORD;
  8514. var lpDisplayDevice: DISPLAY_DEVICE; dwFlags: DWORD): BOOL; stdcall;
  8515. {$EXTERNALSYM EnumDisplayDevices}
  8516. function SystemParametersInfoA(uiAction: UINT; uiParam: UINT;
  8517. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8518. {$EXTERNALSYM SystemParametersInfoA}
  8519. function SystemParametersInfoW(uiAction: UINT; uiParam: UINT;
  8520. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8521. {$EXTERNALSYM SystemParametersInfoW}
  8522. function SystemParametersInfo(uiAction: UINT; uiParam: UINT;
  8523. pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
  8524. {$EXTERNALSYM SystemParametersInfo}
  8525. //
  8526. // Accessibility support
  8527. //
  8528. type
  8529. LPFILTERKEYS = ^FILTERKEYS;
  8530. {$EXTERNALSYM LPFILTERKEYS}
  8531. tagFILTERKEYS = record
  8532. cbSize: UINT;
  8533. dwFlags: DWORD;
  8534. iWaitMSec: DWORD; // Acceptance Delay
  8535. iDelayMSec: DWORD; // Delay Until Repeat
  8536. iRepeatMSec: DWORD; // Repeat Rate
  8537. iBounceMSec: DWORD; // Debounce Time
  8538. end;
  8539. {$EXTERNALSYM tagFILTERKEYS}
  8540. FILTERKEYS = tagFILTERKEYS;
  8541. {$EXTERNALSYM FILTERKEYS}
  8542. TFilterKeys = FILTERKEYS;
  8543. PFilterKeys = LPFILTERKEYS;
  8544. //
  8545. // FILTERKEYS dwFlags field
  8546. //
  8547. const
  8548. FKF_FILTERKEYSON = $00000001;
  8549. {$EXTERNALSYM FKF_FILTERKEYSON}
  8550. FKF_AVAILABLE = $00000002;
  8551. {$EXTERNALSYM FKF_AVAILABLE}
  8552. FKF_HOTKEYACTIVE = $00000004;
  8553. {$EXTERNALSYM FKF_HOTKEYACTIVE}
  8554. FKF_CONFIRMHOTKEY = $00000008;
  8555. {$EXTERNALSYM FKF_CONFIRMHOTKEY}
  8556. FKF_HOTKEYSOUND = $00000010;
  8557. {$EXTERNALSYM FKF_HOTKEYSOUND}
  8558. FKF_INDICATOR = $00000020;
  8559. {$EXTERNALSYM FKF_INDICATOR}
  8560. FKF_CLICKON = $00000040;
  8561. {$EXTERNALSYM FKF_CLICKON}
  8562. type
  8563. LPSTICKYKEYS = ^STICKYKEYS;
  8564. {$EXTERNALSYM LPSTICKYKEYS}
  8565. tagSTICKYKEYS = record
  8566. cbSize: UINT;
  8567. dwFlags: DWORD;
  8568. end;
  8569. {$EXTERNALSYM tagSTICKYKEYS}
  8570. STICKYKEYS = tagSTICKYKEYS;
  8571. {$EXTERNALSYM STICKYKEYS}
  8572. TStickyKeys = STICKYKEYS;
  8573. PStickyKeys = LPSTICKYKEYS;
  8574. //
  8575. // STICKYKEYS dwFlags field
  8576. //
  8577. const
  8578. SKF_STICKYKEYSON = $00000001;
  8579. {$EXTERNALSYM SKF_STICKYKEYSON}
  8580. SKF_AVAILABLE = $00000002;
  8581. {$EXTERNALSYM SKF_AVAILABLE}
  8582. SKF_HOTKEYACTIVE = $00000004;
  8583. {$EXTERNALSYM SKF_HOTKEYACTIVE}
  8584. SKF_CONFIRMHOTKEY = $00000008;
  8585. {$EXTERNALSYM SKF_CONFIRMHOTKEY}
  8586. SKF_HOTKEYSOUND = $00000010;
  8587. {$EXTERNALSYM SKF_HOTKEYSOUND}
  8588. SKF_INDICATOR = $00000020;
  8589. {$EXTERNALSYM SKF_INDICATOR}
  8590. SKF_AUDIBLEFEEDBACK = $00000040;
  8591. {$EXTERNALSYM SKF_AUDIBLEFEEDBACK}
  8592. SKF_TRISTATE = $00000080;
  8593. {$EXTERNALSYM SKF_TRISTATE}
  8594. SKF_TWOKEYSOFF = $00000100;
  8595. {$EXTERNALSYM SKF_TWOKEYSOFF}
  8596. SKF_LALTLATCHED = $10000000;
  8597. {$EXTERNALSYM SKF_LALTLATCHED}
  8598. SKF_LCTLLATCHED = $04000000;
  8599. {$EXTERNALSYM SKF_LCTLLATCHED}
  8600. SKF_LSHIFTLATCHED = $01000000;
  8601. {$EXTERNALSYM SKF_LSHIFTLATCHED}
  8602. SKF_RALTLATCHED = $20000000;
  8603. {$EXTERNALSYM SKF_RALTLATCHED}
  8604. SKF_RCTLLATCHED = $08000000;
  8605. {$EXTERNALSYM SKF_RCTLLATCHED}
  8606. SKF_RSHIFTLATCHED = $02000000;
  8607. {$EXTERNALSYM SKF_RSHIFTLATCHED}
  8608. SKF_LWINLATCHED = $40000000;
  8609. {$EXTERNALSYM SKF_LWINLATCHED}
  8610. SKF_RWINLATCHED = $80000000;
  8611. {$EXTERNALSYM SKF_RWINLATCHED}
  8612. SKF_LALTLOCKED = $00100000;
  8613. {$EXTERNALSYM SKF_LALTLOCKED}
  8614. SKF_LCTLLOCKED = $00040000;
  8615. {$EXTERNALSYM SKF_LCTLLOCKED}
  8616. SKF_LSHIFTLOCKED = $00010000;
  8617. {$EXTERNALSYM SKF_LSHIFTLOCKED}
  8618. SKF_RALTLOCKED = $00200000;
  8619. {$EXTERNALSYM SKF_RALTLOCKED}
  8620. SKF_RCTLLOCKED = $00080000;
  8621. {$EXTERNALSYM SKF_RCTLLOCKED}
  8622. SKF_RSHIFTLOCKED = $00020000;
  8623. {$EXTERNALSYM SKF_RSHIFTLOCKED}
  8624. SKF_LWINLOCKED = $00400000;
  8625. {$EXTERNALSYM SKF_LWINLOCKED}
  8626. SKF_RWINLOCKED = $00800000;
  8627. {$EXTERNALSYM SKF_RWINLOCKED}
  8628. type
  8629. LPMOUSEKEYS = ^MOUSEKEYS;
  8630. {$EXTERNALSYM LPMOUSEKEYS}
  8631. tagMOUSEKEYS = record
  8632. cbSize: UINT;
  8633. dwFlags: DWORD;
  8634. iMaxSpeed: DWORD;
  8635. iTimeToMaxSpeed: DWORD;
  8636. iCtrlSpeed: DWORD;
  8637. dwReserved1: DWORD;
  8638. dwReserved2: DWORD;
  8639. end;
  8640. {$EXTERNALSYM tagMOUSEKEYS}
  8641. MOUSEKEYS = tagMOUSEKEYS;
  8642. {$EXTERNALSYM MOUSEKEYS}
  8643. TMouseKeys = MOUSEKEYS;
  8644. PMouseKeys = LPMOUSEKEYS;
  8645. //
  8646. // MOUSEKEYS dwFlags field
  8647. //
  8648. const
  8649. MKF_MOUSEKEYSON = $00000001;
  8650. {$EXTERNALSYM MKF_MOUSEKEYSON}
  8651. MKF_AVAILABLE = $00000002;
  8652. {$EXTERNALSYM MKF_AVAILABLE}
  8653. MKF_HOTKEYACTIVE = $00000004;
  8654. {$EXTERNALSYM MKF_HOTKEYACTIVE}
  8655. MKF_CONFIRMHOTKEY = $00000008;
  8656. {$EXTERNALSYM MKF_CONFIRMHOTKEY}
  8657. MKF_HOTKEYSOUND = $00000010;
  8658. {$EXTERNALSYM MKF_HOTKEYSOUND}
  8659. MKF_INDICATOR = $00000020;
  8660. {$EXTERNALSYM MKF_INDICATOR}
  8661. MKF_MODIFIERS = $00000040;
  8662. {$EXTERNALSYM MKF_MODIFIERS}
  8663. MKF_REPLACENUMBERS = $00000080;
  8664. {$EXTERNALSYM MKF_REPLACENUMBERS}
  8665. MKF_LEFTBUTTONSEL = $10000000;
  8666. {$EXTERNALSYM MKF_LEFTBUTTONSEL}
  8667. MKF_RIGHTBUTTONSEL = $20000000;
  8668. {$EXTERNALSYM MKF_RIGHTBUTTONSEL}
  8669. MKF_LEFTBUTTONDOWN = $01000000;
  8670. {$EXTERNALSYM MKF_LEFTBUTTONDOWN}
  8671. MKF_RIGHTBUTTONDOWN = $02000000;
  8672. {$EXTERNALSYM MKF_RIGHTBUTTONDOWN}
  8673. MKF_MOUSEMODE = $80000000;
  8674. {$EXTERNALSYM MKF_MOUSEMODE}
  8675. type
  8676. LPACCESSTIMEOUT = ^ACCESSTIMEOUT;
  8677. {$EXTERNALSYM LPACCESSTIMEOUT}
  8678. tagACCESSTIMEOUT = record
  8679. cbSize: UINT;
  8680. dwFlags: DWORD;
  8681. iTimeOutMSec: DWORD;
  8682. end;
  8683. {$EXTERNALSYM tagACCESSTIMEOUT}
  8684. ACCESSTIMEOUT = tagACCESSTIMEOUT;
  8685. {$EXTERNALSYM ACCESSTIMEOUT}
  8686. TAccessTimeout = ACCESSTIMEOUT;
  8687. PAccessTimeout = LPACCESSTIMEOUT;
  8688. //
  8689. // ACCESSTIMEOUT dwFlags field
  8690. //
  8691. const
  8692. ATF_TIMEOUTON = $00000001;
  8693. {$EXTERNALSYM ATF_TIMEOUTON}
  8694. ATF_ONOFFFEEDBACK = $00000002;
  8695. {$EXTERNALSYM ATF_ONOFFFEEDBACK}
  8696. // values for SOUNDSENTRY iFSGrafEffect field//
  8697. SSGF_NONE = 0;
  8698. {$EXTERNALSYM SSGF_NONE}
  8699. SSGF_DISPLAY = 3;
  8700. {$EXTERNALSYM SSGF_DISPLAY}
  8701. // values for SOUNDSENTRY iFSTextEffect field//
  8702. SSTF_NONE = 0;
  8703. {$EXTERNALSYM SSTF_NONE}
  8704. SSTF_CHARS = 1;
  8705. {$EXTERNALSYM SSTF_CHARS}
  8706. SSTF_BORDER = 2;
  8707. {$EXTERNALSYM SSTF_BORDER}
  8708. SSTF_DISPLAY = 3;
  8709. {$EXTERNALSYM SSTF_DISPLAY}
  8710. // values for SOUNDSENTRY iWindowsEffect field//
  8711. SSWF_NONE = 0;
  8712. {$EXTERNALSYM SSWF_NONE}
  8713. SSWF_TITLE = 1;
  8714. {$EXTERNALSYM SSWF_TITLE}
  8715. SSWF_WINDOW = 2;
  8716. {$EXTERNALSYM SSWF_WINDOW}
  8717. SSWF_DISPLAY = 3;
  8718. {$EXTERNALSYM SSWF_DISPLAY}
  8719. SSWF_CUSTOM = 4;
  8720. {$EXTERNALSYM SSWF_CUSTOM}
  8721. type
  8722. LPSOUNDSENTRYA = ^SOUNDSENTRYA;
  8723. {$EXTERNALSYM LPSOUNDSENTRYA}
  8724. tagSOUNDSENTRYA = record
  8725. cbSize: UINT;
  8726. dwFlags: DWORD;
  8727. iFSTextEffect: DWORD;
  8728. iFSTextEffectMSec: DWORD;
  8729. iFSTextEffectColorBits: DWORD;
  8730. iFSGrafEffect: DWORD;
  8731. iFSGrafEffectMSec: DWORD;
  8732. iFSGrafEffectColor: DWORD;
  8733. iWindowsEffect: DWORD;
  8734. iWindowsEffectMSec: DWORD;
  8735. lpszWindowsEffectDLL: LPSTR;
  8736. iWindowsEffectOrdinal: DWORD;
  8737. end;
  8738. {$EXTERNALSYM tagSOUNDSENTRYA}
  8739. SOUNDSENTRYA = tagSOUNDSENTRYA;
  8740. {$EXTERNALSYM SOUNDSENTRYA}
  8741. TSoundsEntryA = SOUNDSENTRYA;
  8742. PSoundsEntryA = LPSOUNDSENTRYA;
  8743. LPSOUNDSENTRYW = ^SOUNDSENTRYW;
  8744. {$EXTERNALSYM LPSOUNDSENTRYW}
  8745. tagSOUNDSENTRYW = record
  8746. cbSize: UINT;
  8747. dwFlags: DWORD;
  8748. iFSTextEffect: DWORD;
  8749. iFSTextEffectMSec: DWORD;
  8750. iFSTextEffectColorBits: DWORD;
  8751. iFSGrafEffect: DWORD;
  8752. iFSGrafEffectMSec: DWORD;
  8753. iFSGrafEffectColor: DWORD;
  8754. iWindowsEffect: DWORD;
  8755. iWindowsEffectMSec: DWORD;
  8756. lpszWindowsEffectDLL: LPWSTR;
  8757. iWindowsEffectOrdinal: DWORD;
  8758. end;
  8759. {$EXTERNALSYM tagSOUNDSENTRYW}
  8760. SOUNDSENTRYW = tagSOUNDSENTRYW;
  8761. {$EXTERNALSYM SOUNDSENTRYW}
  8762. TSoundsEntryW = SOUNDSENTRYW;
  8763. PSoundsEntryW = LPSOUNDSENTRYW;
  8764. {$IFDEF UNICODE}
  8765. SOUNDSENTRY = SOUNDSENTRYW;
  8766. {$EXTERNALSYM SOUNDSENTRY}
  8767. LPSOUNDSENTRY = LPSOUNDSENTRYW;
  8768. {$EXTERNALSYM LPSOUNDSENTRY}
  8769. TSoundsEntry = TSoundsEntryW;
  8770. PSoundsEntry = PSoundsEntryW;
  8771. {$ELSE}
  8772. SOUNDSENTRY = SOUNDSENTRYA;
  8773. {$EXTERNALSYM SOUNDSENTRY}
  8774. LPSOUNDSENTRY = LPSOUNDSENTRYA;
  8775. {$EXTERNALSYM LPSOUNDSENTRY}
  8776. TSoundsEntry = TSoundsEntryA;
  8777. PSoundsEntry = PSoundsEntryA;
  8778. {$ENDIF UNICODE}
  8779. //
  8780. // SOUNDSENTRY dwFlags field
  8781. //
  8782. const
  8783. SSF_SOUNDSENTRYON = $00000001;
  8784. {$EXTERNALSYM SSF_SOUNDSENTRYON}
  8785. SSF_AVAILABLE = $00000002;
  8786. {$EXTERNALSYM SSF_AVAILABLE}
  8787. SSF_INDICATOR = $00000004;
  8788. {$EXTERNALSYM SSF_INDICATOR}
  8789. type
  8790. LPTOGGLEKEYS = ^TOGGLEKEYS;
  8791. {$EXTERNALSYM LPTOGGLEKEYS}
  8792. tagTOGGLEKEYS = record
  8793. cbSize: UINT;
  8794. dwFlags: DWORD;
  8795. end;
  8796. {$EXTERNALSYM tagTOGGLEKEYS}
  8797. TOGGLEKEYS = tagTOGGLEKEYS;
  8798. {$EXTERNALSYM TOGGLEKEYS}
  8799. TToggleKeys = TOGGLEKEYS;
  8800. PToggleKeys = LPTOGGLEKEYS;
  8801. //
  8802. // TOGGLEKEYS dwFlags field
  8803. //
  8804. const
  8805. TKF_TOGGLEKEYSON = $00000001;
  8806. {$EXTERNALSYM TKF_TOGGLEKEYSON}
  8807. TKF_AVAILABLE = $00000002;
  8808. {$EXTERNALSYM TKF_AVAILABLE}
  8809. TKF_HOTKEYACTIVE = $00000004;
  8810. {$EXTERNALSYM TKF_HOTKEYACTIVE}
  8811. TKF_CONFIRMHOTKEY = $00000008;
  8812. {$EXTERNALSYM TKF_CONFIRMHOTKEY}
  8813. TKF_HOTKEYSOUND = $00000010;
  8814. {$EXTERNALSYM TKF_HOTKEYSOUND}
  8815. TKF_INDICATOR = $00000020;
  8816. {$EXTERNALSYM TKF_INDICATOR}
  8817. //
  8818. // Set debug level
  8819. //
  8820. procedure SetDebugErrorLevel(dwLevel: DWORD); stdcall;
  8821. {$EXTERNALSYM SetDebugErrorLevel}
  8822. //
  8823. // SetLastErrorEx() types.
  8824. //
  8825. const
  8826. SLE_ERROR = $00000001;
  8827. {$EXTERNALSYM SLE_ERROR}
  8828. SLE_MINORERROR = $00000002;
  8829. {$EXTERNALSYM SLE_MINORERROR}
  8830. SLE_WARNING = $00000003;
  8831. {$EXTERNALSYM SLE_WARNING}
  8832. procedure SetLastErrorEx(dwErrCode, dwType: DWORD); stdcall;
  8833. {$EXTERNALSYM SetLastErrorEx}
  8834. function InternalGetWindowText(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
  8835. {$EXTERNALSYM InternalGetWindowText}
  8836. function EndTask(hWnd: HWND; fShutDown, fForce: BOOL): BOOL; stdcall;
  8837. {$EXTERNALSYM EndTask}
  8838. //
  8839. // Multimonitor API.
  8840. //
  8841. const
  8842. MONITOR_DEFAULTTONULL = $00000000;
  8843. {$EXTERNALSYM MONITOR_DEFAULTTONULL}
  8844. MONITOR_DEFAULTTOPRIMARY = $00000001;
  8845. {$EXTERNALSYM MONITOR_DEFAULTTOPRIMARY}
  8846. MONITOR_DEFAULTTONEAREST = $00000002;
  8847. {$EXTERNALSYM MONITOR_DEFAULTTONEAREST}
  8848. function MonitorFromPoint(pt: POINT; dwFlags: DWORD): HMONITOR; stdcall;
  8849. {$EXTERNALSYM MonitorFromPoint}
  8850. function MonitorFromRect(const lprc: RECT; dwFlags: DWORD): HMONITOR; stdcall;
  8851. {$EXTERNALSYM MonitorFromRect}
  8852. function MonitorFromWindow(hwnd: HWND; dwFlags: DWORD): HMONITOR; stdcall;
  8853. {$EXTERNALSYM MonitorFromWindow}
  8854. const
  8855. MONITORINFOF_PRIMARY = $00000001;
  8856. {$EXTERNALSYM MONITORINFOF_PRIMARY}
  8857. {$IFNDEF JWA_INCLUDEMODE}
  8858. CCHDEVICENAME = 32;
  8859. {$EXTERNALSYM CCHDEVICENAME}
  8860. {$ENDIF JWA_INCLUDEMODE}
  8861. type
  8862. LPMONITORINFO = ^MONITORINFO;
  8863. {$EXTERNALSYM LPMONITORINFO}
  8864. tagMONITORINFO = record
  8865. cbSize: DWORD;
  8866. rcMonitor: RECT;
  8867. rcWork: RECT;
  8868. dwFlags: DWORD;
  8869. end;
  8870. {$EXTERNALSYM tagMONITORINFO}
  8871. MONITORINFO = tagMONITORINFO;
  8872. {$EXTERNALSYM MONITORINFO}
  8873. TMonitorInfo = MONITORINFO;
  8874. PMonitorInfo = LPMONITORINFO;
  8875. LPMONITORINFOEXA = ^MONITORINFOEXA;
  8876. {$EXTERNALSYM LPMONITORINFOEXA}
  8877. tagMONITORINFOEXA = record
  8878. MonitorInfo: MONITORINFO;
  8879. szDevice: array [0..CCHDEVICENAME - 1] of CHAR;
  8880. end;
  8881. {$EXTERNALSYM tagMONITORINFOEXA}
  8882. MONITORINFOEXA = tagMONITORINFOEXA;
  8883. {$EXTERNALSYM MONITORINFOEXA}
  8884. TMonitorinfoexa = MONITORINFOEXA;
  8885. PMonitorInfoExA = LPMONITORINFOEXA;
  8886. LPMONITORINFOEXW = ^MONITORINFOEXW;
  8887. {$EXTERNALSYM LPMONITORINFOEXW}
  8888. tagMONITORINFOEXW = record
  8889. MonitorInfo: MONITORINFO;
  8890. szDevice: array [0..CCHDEVICENAME - 1] of WCHAR;
  8891. end;
  8892. {$EXTERNALSYM tagMONITORINFOEXW}
  8893. MONITORINFOEXW = tagMONITORINFOEXW;
  8894. {$EXTERNALSYM MONITORINFOEXW}
  8895. TMonitorInfoExW = MONITORINFOEXW;
  8896. PMonitorInfoExW = LPMONITORINFOEXW;
  8897. {$IFDEF UNICODE}
  8898. MONITORINFOEX = MONITORINFOEXW;
  8899. {$EXTERNALSYM MONITORINFOEX}
  8900. LPMONITORINFOEX = LPMONITORINFOEXW;
  8901. {$EXTERNALSYM LPMONITORINFOEX}
  8902. TMonitorInfoEx = TMonitorInfoExW;
  8903. PMonitorInfoEx = PMonitorInfoExW;
  8904. {$ELSE}
  8905. MONITORINFOEX = MONITORINFOEXA;
  8906. {$EXTERNALSYM MONITORINFOEX}
  8907. LPMONITORINFOEX = LPMONITORINFOEXA;
  8908. {$EXTERNALSYM LPMONITORINFOEX}
  8909. TMonitorInfoEx = TMonitorInfoExA;
  8910. PMonitorInfoEx = PMonitorInfoExA;
  8911. {$ENDIF UNICODE}
  8912. function GetMonitorInfoA(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8913. {$EXTERNALSYM GetMonitorInfoA}
  8914. function GetMonitorInfoW(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8915. {$EXTERNALSYM GetMonitorInfoW}
  8916. function GetMonitorInfo(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
  8917. {$EXTERNALSYM GetMonitorInfo}
  8918. type
  8919. MONITORENUMPROC = function(hMonitor: HMONITOR; hdcMonitor: HDC;
  8920. lprcMonitor: LPRECT; dwData: LPARAM): BOOL; stdcall;
  8921. {$EXTERNALSYM MONITORENUMPROC}
  8922. TMonitorEnumProc = MONITORENUMPROC;
  8923. function EnumDisplayMonitors(hdc: HDC; lprcClip: LPCRECT;
  8924. lpfnEnum: MONITORENUMPROC; dwData: LPARAM): BOOL; stdcall;
  8925. {$EXTERNALSYM EnumDisplayMonitors}
  8926. //
  8927. // WinEvents - Active Accessibility hooks
  8928. //
  8929. procedure NotifyWinEvent(event: DWORD; hwnd: HWND; idObject: LONG; idChild: LONG); stdcall;
  8930. {$EXTERNALSYM NotifyWinEvent}
  8931. type
  8932. WINEVENTPROC = procedure(hWinEventHook: HWINEVENTHOOK; event: DWORD; hwnd: HWND;
  8933. idObject, idChild: LONG; idEventThread, dwmsEventTime: DWORD); stdcall;
  8934. {$EXTERNALSYM WINEVENTPROC}
  8935. TWinEventProc = WINEVENTPROC;
  8936. function SetWinEventHook(eventMin: DWORD; eventMax: DWORD;
  8937. hmodWinEventProc: HMODULE; pfnWinEventProc: WINEVENTPROC; idProcess: DWORD;
  8938. idThread: DWORD; dwFlags: DWORD): HWINEVENTHOOK; stdcall;
  8939. {$EXTERNALSYM SetWinEventHook}
  8940. function IsWinEventHookInstalled(event: DWORD): BOOL; stdcall;
  8941. {$EXTERNALSYM IsWinEventHookInstalled}
  8942. //
  8943. // dwFlags for SetWinEventHook
  8944. //
  8945. const
  8946. WINEVENT_OUTOFCONTEXT = $0000; // Events are ASYNC
  8947. {$EXTERNALSYM WINEVENT_OUTOFCONTEXT}
  8948. WINEVENT_SKIPOWNTHREAD = $0001; // Don't call back for events on installer's thread
  8949. {$EXTERNALSYM WINEVENT_SKIPOWNTHREAD}
  8950. WINEVENT_SKIPOWNPROCESS = $0002; // Don't call back for events on installer's process
  8951. {$EXTERNALSYM WINEVENT_SKIPOWNPROCESS}
  8952. WINEVENT_INCONTEXT = $0004; // Events are SYNC, this causes your dll to be injected into every process
  8953. {$EXTERNALSYM WINEVENT_INCONTEXT}
  8954. function UnhookWinEvent(hWinEventHook: HWINEVENTHOOK): BOOL; stdcall;
  8955. {$EXTERNALSYM UnhookWinEvent}
  8956. //
  8957. // idObject values for WinEventProc and NotifyWinEvent
  8958. //
  8959. //
  8960. // hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
  8961. // to get an interface pointer to the container. indexChild is the item
  8962. // within the container in question. Setup a VARIANT with vt VT_I4 and
  8963. // lVal the indexChild and pass that in to all methods. Then you
  8964. // are raring to go.
  8965. //
  8966. //
  8967. // Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
  8968. // thing in question). Positive IDs are reserved for apps (app specific),
  8969. // negative IDs are system things and are global, 0 means "just little old
  8970. // me".
  8971. //
  8972. const
  8973. CHILDID_SELF = 0;
  8974. {$EXTERNALSYM CHILDID_SELF}
  8975. INDEXID_OBJECT = 0;
  8976. {$EXTERNALSYM INDEXID_OBJECT}
  8977. INDEXID_CONTAINER = 0;
  8978. {$EXTERNALSYM INDEXID_CONTAINER}
  8979. //
  8980. // Reserved IDs for system objects
  8981. //
  8982. const
  8983. OBJID_WINDOW = DWORD($00000000);
  8984. {$EXTERNALSYM OBJID_WINDOW}
  8985. OBJID_SYSMENU = DWORD($FFFFFFFF);
  8986. {$EXTERNALSYM OBJID_SYSMENU}
  8987. OBJID_TITLEBAR = DWORD($FFFFFFFE);
  8988. {$EXTERNALSYM OBJID_TITLEBAR}
  8989. OBJID_MENU = DWORD($FFFFFFFD);
  8990. {$EXTERNALSYM OBJID_MENU}
  8991. OBJID_CLIENT = DWORD($FFFFFFFC);
  8992. {$EXTERNALSYM OBJID_CLIENT}
  8993. OBJID_VSCROLL = DWORD($FFFFFFFB);
  8994. {$EXTERNALSYM OBJID_VSCROLL}
  8995. OBJID_HSCROLL = DWORD($FFFFFFFA);
  8996. {$EXTERNALSYM OBJID_HSCROLL}
  8997. OBJID_SIZEGRIP = DWORD($FFFFFFF9);
  8998. {$EXTERNALSYM OBJID_SIZEGRIP}
  8999. OBJID_CARET = DWORD($FFFFFFF8);
  9000. {$EXTERNALSYM OBJID_CARET}
  9001. OBJID_CURSOR = DWORD($FFFFFFF7);
  9002. {$EXTERNALSYM OBJID_CURSOR}
  9003. OBJID_ALERT = DWORD($FFFFFFF6);
  9004. {$EXTERNALSYM OBJID_ALERT}
  9005. OBJID_SOUND = DWORD($FFFFFFF5);
  9006. {$EXTERNALSYM OBJID_SOUND}
  9007. OBJID_QUERYCLASSNAMEIDX = DWORD($FFFFFFF4);
  9008. {$EXTERNALSYM OBJID_QUERYCLASSNAMEIDX}
  9009. OBJID_NATIVEOM = DWORD($FFFFFFF0);
  9010. {$EXTERNALSYM OBJID_NATIVEOM}
  9011. //
  9012. // EVENT DEFINITION
  9013. //
  9014. EVENT_MIN = $00000001;
  9015. {$EXTERNALSYM EVENT_MIN}
  9016. EVENT_MAX = $7FFFFFFF;
  9017. {$EXTERNALSYM EVENT_MAX}
  9018. //
  9019. // EVENT_SYSTEM_SOUND
  9020. // Sent when a sound is played. Currently nothing is generating this, we
  9021. // this event when a system sound (for menus, etc) is played. Apps
  9022. // generate this, if accessible, when a private sound is played. For
  9023. // example, if Mail plays a "New Mail" sound.
  9024. //
  9025. // System Sounds:
  9026. // (Generated by PlaySoundEvent in USER itself)
  9027. // hwnd is NULL
  9028. // idObject is OBJID_SOUND
  9029. // idChild is sound child ID if one
  9030. // App Sounds:
  9031. // (PlaySoundEvent won't generate notification; up to app)
  9032. // hwnd + idObject gets interface pointer to Sound object
  9033. // idChild identifies the sound in question
  9034. // are going to be cleaning up the SOUNDSENTRY feature in the control panel
  9035. // and will use this at that time. Applications implementing WinEvents
  9036. // are perfectly welcome to use it. Clients of IAccessible* will simply
  9037. // turn around and get back a non-visual object that describes the sound.
  9038. //
  9039. EVENT_SYSTEM_SOUND = $0001;
  9040. {$EXTERNALSYM EVENT_SYSTEM_SOUND}
  9041. //
  9042. // EVENT_SYSTEM_ALERT
  9043. // System Alerts:
  9044. // (Generated by MessageBox() calls for example)
  9045. // hwnd is hwndMessageBox
  9046. // idObject is OBJID_ALERT
  9047. // App Alerts:
  9048. // (Generated whenever)
  9049. // hwnd+idObject gets interface pointer to Alert
  9050. //
  9051. EVENT_SYSTEM_ALERT = $0002;
  9052. {$EXTERNALSYM EVENT_SYSTEM_ALERT}
  9053. //
  9054. // EVENT_SYSTEM_FOREGROUND
  9055. // Sent when the foreground (active) window changes, even if it is changing
  9056. // to another window in the same thread as the previous one.
  9057. // hwnd is hwndNewForeground
  9058. // idObject is OBJID_WINDOW
  9059. // idChild is INDEXID_OBJECT
  9060. //
  9061. EVENT_SYSTEM_FOREGROUND = $0003;
  9062. {$EXTERNALSYM EVENT_SYSTEM_FOREGROUND}
  9063. //
  9064. // Menu
  9065. // hwnd is window (top level window or popup menu window)
  9066. // idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
  9067. // idChild is CHILDID_SELF
  9068. // EVENT_SYSTEM_MENUSTART
  9069. // EVENT_SYSTEM_MENUEND
  9070. // For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
  9071. // or the control bringing up the context menu.
  9072. // Sent when entering into and leaving from menu mode (system, app bar, and
  9073. // track popups).
  9074. //
  9075. EVENT_SYSTEM_MENUSTART = $0004;
  9076. {$EXTERNALSYM EVENT_SYSTEM_MENUSTART}
  9077. EVENT_SYSTEM_MENUEND = $0005;
  9078. {$EXTERNALSYM EVENT_SYSTEM_MENUEND}
  9079. //
  9080. // EVENT_SYSTEM_MENUPOPUPSTART
  9081. // EVENT_SYSTEM_MENUPOPUPEND
  9082. // Sent when a menu popup comes up and just before it is taken down. Note
  9083. // that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
  9084. // followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
  9085. // being shown.
  9086. // For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
  9087. // parent item which is hierarchical. You can get the parent menu/popup by
  9088. // asking for the accParent object.
  9089. //
  9090. EVENT_SYSTEM_MENUPOPUPSTART = $0006;
  9091. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPSTART}
  9092. EVENT_SYSTEM_MENUPOPUPEND = $0007;
  9093. {$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPEND}
  9094. //
  9095. // EVENT_SYSTEM_CAPTURESTART
  9096. // EVENT_SYSTEM_CAPTUREEND
  9097. // Sent when a window takes the capture and releases the capture.
  9098. //
  9099. EVENT_SYSTEM_CAPTURESTART = $0008;
  9100. {$EXTERNALSYM EVENT_SYSTEM_CAPTURESTART}
  9101. EVENT_SYSTEM_CAPTUREEND = $0009;
  9102. {$EXTERNALSYM EVENT_SYSTEM_CAPTUREEND}
  9103. //
  9104. // Move Size
  9105. // EVENT_SYSTEM_MOVESIZESTART
  9106. // EVENT_SYSTEM_MOVESIZEEND
  9107. // Sent when a window enters and leaves move-size dragging mode.
  9108. //
  9109. EVENT_SYSTEM_MOVESIZESTART = $000A;
  9110. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZESTART}
  9111. EVENT_SYSTEM_MOVESIZEEND = $000B;
  9112. {$EXTERNALSYM EVENT_SYSTEM_MOVESIZEEND}
  9113. //
  9114. // Context Help
  9115. // EVENT_SYSTEM_CONTEXTHELPSTART
  9116. // EVENT_SYSTEM_CONTEXTHELPEND
  9117. // Sent when a window enters and leaves context sensitive help mode.
  9118. //
  9119. EVENT_SYSTEM_CONTEXTHELPSTART = $000C;
  9120. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPSTART}
  9121. EVENT_SYSTEM_CONTEXTHELPEND = $000D;
  9122. {$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPEND}
  9123. //
  9124. // Drag & Drop
  9125. // EVENT_SYSTEM_DRAGDROPSTART
  9126. // EVENT_SYSTEM_DRAGDROPEND
  9127. // Send the START notification just before going into drag&drop loop. Send
  9128. // the END notification just after canceling out.
  9129. // Note that it is up to apps and OLE to generate this, since the system
  9130. // doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this
  9131. // is prevalent.
  9132. //
  9133. EVENT_SYSTEM_DRAGDROPSTART = $000E;
  9134. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPSTART}
  9135. EVENT_SYSTEM_DRAGDROPEND = $000F;
  9136. {$EXTERNALSYM EVENT_SYSTEM_DRAGDROPEND}
  9137. //
  9138. // Dialog
  9139. // Send the START notification right after the dialog is completely
  9140. // initialized and visible. Send the END right before the dialog
  9141. // is hidden and goes away.
  9142. // EVENT_SYSTEM_DIALOGSTART
  9143. // EVENT_SYSTEM_DIALOGEND
  9144. //
  9145. EVENT_SYSTEM_DIALOGSTART = $0010;
  9146. {$EXTERNALSYM EVENT_SYSTEM_DIALOGSTART}
  9147. EVENT_SYSTEM_DIALOGEND = $0011;
  9148. {$EXTERNALSYM EVENT_SYSTEM_DIALOGEND}
  9149. //
  9150. // EVENT_SYSTEM_SCROLLING
  9151. // EVENT_SYSTEM_SCROLLINGSTART
  9152. // EVENT_SYSTEM_SCROLLINGEND
  9153. // Sent when beginning and ending the tracking of a scrollbar in a window,
  9154. // and also for scrollbar controls.
  9155. //
  9156. EVENT_SYSTEM_SCROLLINGSTART = $0012;
  9157. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGSTART}
  9158. EVENT_SYSTEM_SCROLLINGEND = $0013;
  9159. {$EXTERNALSYM EVENT_SYSTEM_SCROLLINGEND}
  9160. //
  9161. // Alt-Tab Window
  9162. // Send the START notification right after the switch window is initialized
  9163. // and visible. Send the END right before it is hidden and goes away.
  9164. // EVENT_SYSTEM_SWITCHSTART
  9165. // EVENT_SYSTEM_SWITCHEND
  9166. //
  9167. EVENT_SYSTEM_SWITCHSTART = $0014;
  9168. {$EXTERNALSYM EVENT_SYSTEM_SWITCHSTART}
  9169. EVENT_SYSTEM_SWITCHEND = $0015;
  9170. {$EXTERNALSYM EVENT_SYSTEM_SWITCHEND}
  9171. //
  9172. // EVENT_SYSTEM_MINIMIZESTART
  9173. // EVENT_SYSTEM_MINIMIZEEND
  9174. // Sent when a window minimizes and just before it restores.
  9175. //
  9176. EVENT_SYSTEM_MINIMIZESTART = $0016;
  9177. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZESTART}
  9178. EVENT_SYSTEM_MINIMIZEEND = $0017;
  9179. {$EXTERNALSYM EVENT_SYSTEM_MINIMIZEEND}
  9180. EVENT_CONSOLE_CARET = $4001;
  9181. {$EXTERNALSYM EVENT_CONSOLE_CARET}
  9182. EVENT_CONSOLE_UPDATE_REGION = $4002;
  9183. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_REGION}
  9184. EVENT_CONSOLE_UPDATE_SIMPLE = $4003;
  9185. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SIMPLE}
  9186. EVENT_CONSOLE_UPDATE_SCROLL = $4004;
  9187. {$EXTERNALSYM EVENT_CONSOLE_UPDATE_SCROLL}
  9188. EVENT_CONSOLE_LAYOUT = $4005;
  9189. {$EXTERNALSYM EVENT_CONSOLE_LAYOUT}
  9190. EVENT_CONSOLE_START_APPLICATION = $4006;
  9191. {$EXTERNALSYM EVENT_CONSOLE_START_APPLICATION}
  9192. EVENT_CONSOLE_END_APPLICATION = $4007;
  9193. {$EXTERNALSYM EVENT_CONSOLE_END_APPLICATION}
  9194. //
  9195. // Flags for EVENT_CONSOLE_START/END_APPLICATION.
  9196. //
  9197. CONSOLE_APPLICATION_16BIT = $0001;
  9198. {$EXTERNALSYM CONSOLE_APPLICATION_16BIT}
  9199. //
  9200. // Flags for EVENT_CONSOLE_CARET
  9201. //
  9202. CONSOLE_CARET_SELECTION = $0001;
  9203. {$EXTERNALSYM CONSOLE_CARET_SELECTION}
  9204. CONSOLE_CARET_VISIBLE = $0002;
  9205. {$EXTERNALSYM CONSOLE_CARET_VISIBLE}
  9206. //
  9207. // Object events
  9208. // The system AND apps generate these. The system generates these for
  9209. // real windows. Apps generate these for objects within their window which
  9210. // act like a separate control, e.g. an item in a list view.
  9211. // When the system generate them, dwParam2 is always WMOBJID_SELF. When
  9212. // apps generate them, apps put the has-meaning-to-the-app-only ID value
  9213. // in dwParam2.
  9214. // For all events, if you want detailed accessibility information, callers
  9215. // should
  9216. // * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
  9217. // of the event, and IID_IAccessible as the REFIID, to get back an
  9218. // IAccessible* to talk to
  9219. // * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
  9220. // parameter of the event.
  9221. // * If idChild isn't zero, call get_accChild() in the container to see
  9222. // if the child is an object in its own right. If so, you will get
  9223. // back an IDispatch* object for the child. You should release the
  9224. // parent, and call QueryInterface() on the child object to get its
  9225. // IAccessible*. Then you talk directly to the child. Otherwise,
  9226. // if get_accChild() returns you nothing, you should continue to
  9227. // use the child VARIANT. You will ask the container for the properties
  9228. // of the child identified by the VARIANT. In other words, the
  9229. // child in this case is accessible but not a full-blown object.
  9230. // Like a button on a titlebar which is 'small' and has no children.
  9231. //
  9232. //
  9233. // For all EVENT_OBJECT events,
  9234. // hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL,
  9235. // see above for system things)
  9236. // idObject is the ID of the object that can resolve any queries a
  9237. // client might have. It's a way to deal with windowless controls,
  9238. // controls that are just drawn on the screen in some larger parent
  9239. // window (like SDM), or standard frame elements of a window.
  9240. // idChild is the piece inside of the object that is affected. This
  9241. // allows clients to access things that are too small to have full
  9242. // blown objects in their own right. Like the thumb of a scrollbar.
  9243. // The hwnd/idObject pair gets you to the container, the dude you
  9244. // probably want to talk to most of the time anyway. The idChild
  9245. // can then be passed into the acc properties to get the name/value
  9246. // of it as needed.
  9247. // Example #1:
  9248. // System propagating a listbox selection change
  9249. // EVENT_OBJECT_SELECTION
  9250. // hwnd == listbox hwnd
  9251. // idObject == OBJID_WINDOW
  9252. // idChild == new selected item, or CHILDID_SELF if
  9253. // nothing now selected within container.
  9254. // Word '97 propagating a listbox selection change
  9255. // hwnd == SDM window
  9256. // idObject == SDM ID to get at listbox 'control'
  9257. // idChild == new selected item, or CHILDID_SELF if
  9258. // nothing
  9259. // Example #2:
  9260. // System propagating a menu item selection on the menu bar
  9261. // EVENT_OBJECT_SELECTION
  9262. // hwnd == top level window
  9263. // idObject == OBJID_MENU
  9264. // idChild == ID of child menu bar item selected
  9265. // *
  9266. // Example #3:
  9267. // System propagating a dropdown coming off of said menu bar item
  9268. // EVENT_OBJECT_CREATE
  9269. // hwnd == popup item
  9270. // idObject == OBJID_WINDOW
  9271. // idChild == CHILDID_SELF
  9272. //
  9273. // Example #4:
  9274. //
  9275. // For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the
  9276. // PARENT container in which the zorder is occurring. This is because if
  9277. // one child is zordering, all of them are changing their relative zorder.
  9278. //
  9279. EVENT_OBJECT_CREATE = $8000; // hwnd + ID + idChild is created item
  9280. {$EXTERNALSYM EVENT_OBJECT_CREATE}
  9281. EVENT_OBJECT_DESTROY = $8001; // hwnd + ID + idChild is destroyed item
  9282. {$EXTERNALSYM EVENT_OBJECT_DESTROY}
  9283. EVENT_OBJECT_SHOW = $8002; // hwnd + ID + idChild is shown item
  9284. {$EXTERNALSYM EVENT_OBJECT_SHOW}
  9285. EVENT_OBJECT_HIDE = $8003; // hwnd + ID + idChild is hidden item
  9286. {$EXTERNALSYM EVENT_OBJECT_HIDE}
  9287. EVENT_OBJECT_REORDER = $8004; // hwnd + ID + idChild is parent of zordering children
  9288. {$EXTERNALSYM EVENT_OBJECT_REORDER}
  9289. //
  9290. // NOTE:
  9291. // Minimize the number of notifications!
  9292. //
  9293. // When you are hiding a parent object, obviously all child objects are no
  9294. // longer visible on screen. They still have the same "visible" status,
  9295. // but are not truly visible. Hence do not send HIDE notifications for the
  9296. // children also. One implies all. The same goes for SHOW.
  9297. //
  9298. EVENT_OBJECT_FOCUS = $8005; // hwnd + ID + idChild is focused item
  9299. {$EXTERNALSYM EVENT_OBJECT_FOCUS}
  9300. EVENT_OBJECT_SELECTION = $8006; // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
  9301. {$EXTERNALSYM EVENT_OBJECT_SELECTION}
  9302. EVENT_OBJECT_SELECTIONADD = $8007; // hwnd + ID + idChild is item added
  9303. {$EXTERNALSYM EVENT_OBJECT_SELECTIONADD}
  9304. EVENT_OBJECT_SELECTIONREMOVE = $8008; // hwnd + ID + idChild is item removed
  9305. {$EXTERNALSYM EVENT_OBJECT_SELECTIONREMOVE}
  9306. EVENT_OBJECT_SELECTIONWITHIN = $8009; // hwnd + ID + idChild is parent of changed selected items
  9307. {$EXTERNALSYM EVENT_OBJECT_SELECTIONWITHIN}
  9308. //
  9309. // NOTES:
  9310. // There is only one "focused" child item in a parent. This is the place
  9311. // keystrokes are going at a given moment. Hence only send a notification
  9312. // about where the NEW focus is going. A NEW item getting the focus already
  9313. // implies that the OLD item is losing it.
  9314. //
  9315. // SELECTION however can be multiple. Hence the different SELECTION
  9316. // notifications. Here's when to use each:
  9317. //
  9318. // (1) Send a SELECTION notification in the simple single selection
  9319. // case (like the focus) when the item with the selection is
  9320. // merely moving to a different item within a container. hwnd + ID
  9321. // is the container control, idChildItem is the new child with the
  9322. // selection.
  9323. //
  9324. // (2) Send a SELECTIONADD notification when a new item has simply been added
  9325. // to the selection within a container. This is appropriate when the
  9326. // number of newly selected items is very small. hwnd + ID is the
  9327. // container control, idChildItem is the new child added to the selection.
  9328. //
  9329. // (3) Send a SELECTIONREMOVE notification when a new item has simply been
  9330. // removed from the selection within a container. This is appropriate
  9331. // when the number of newly selected items is very small, just like
  9332. // SELECTIONADD. hwnd + ID is the container control, idChildItem is the
  9333. // new child removed from the selection.
  9334. //
  9335. // (4) Send a SELECTIONWITHIN notification when the selected items within a
  9336. // control have changed substantially. Rather than propagate a large
  9337. // number of changes to reflect removal for some items, addition of
  9338. // others, just tell somebody who cares that a lot happened. It will
  9339. // be faster an easier for somebody watching to just turn around and
  9340. // query the container control what the new bunch of selected items
  9341. // are.
  9342. //
  9343. EVENT_OBJECT_STATECHANGE = $800A; // hwnd + ID + idChild is item w/ state change
  9344. {$EXTERNALSYM EVENT_OBJECT_STATECHANGE}
  9345. //
  9346. // Examples of when to send an EVENT_OBJECT_STATECHANGE include
  9347. // * It is being enabled/disabled (USER does for windows)
  9348. // * It is being pressed/released (USER does for buttons)
  9349. // * It is being checked/unchecked (USER does for radio/check buttons)
  9350. //
  9351. EVENT_OBJECT_LOCATIONCHANGE = $800B; // hwnd + ID + idChild is moved/sized item
  9352. {$EXTERNALSYM EVENT_OBJECT_LOCATIONCHANGE}
  9353. //
  9354. // Note:
  9355. // A LOCATIONCHANGE is not sent for every child object when the parent
  9356. // changes shape/moves. Send one notification for the topmost object
  9357. // that is changing. For example, if the user resizes a top level window,
  9358. // USER will generate a LOCATIONCHANGE for it, but not for the menu bar,
  9359. // title bar, scrollbars, etc. that are also changing shape/moving.
  9360. //
  9361. // In other words, it only generates LOCATIONCHANGE notifications for
  9362. // real windows that are moving/sizing. It will not generate a LOCATIONCHANGE
  9363. // for every non-floating child window when the parent moves (the children are
  9364. // logically moving also on screen, but not relative to the parent).
  9365. //
  9366. // Now, if the app itself resizes child windows as a result of being
  9367. // sized, USER will generate LOCATIONCHANGEs for those dudes also because
  9368. // it doesn't know better.
  9369. //
  9370. // Note also that USER will generate LOCATIONCHANGE notifications for two
  9371. // non-window sys objects:
  9372. // (1) System caret
  9373. // (2) Cursor
  9374. //
  9375. EVENT_OBJECT_NAMECHANGE = $800C; // hwnd + ID + idChild is item w/ name change
  9376. {$EXTERNALSYM EVENT_OBJECT_NAMECHANGE}
  9377. EVENT_OBJECT_DESCRIPTIONCHANGE = $800D; // hwnd + ID + idChild is item w/ desc change
  9378. {$EXTERNALSYM EVENT_OBJECT_DESCRIPTIONCHANGE}
  9379. EVENT_OBJECT_VALUECHANGE = $800E; // hwnd + ID + idChild is item w/ value change
  9380. {$EXTERNALSYM EVENT_OBJECT_VALUECHANGE}
  9381. EVENT_OBJECT_PARENTCHANGE = $800F; // hwnd + ID + idChild is item w/ new parent
  9382. {$EXTERNALSYM EVENT_OBJECT_PARENTCHANGE}
  9383. EVENT_OBJECT_HELPCHANGE = $8010; // hwnd + ID + idChild is item w/ help change
  9384. {$EXTERNALSYM EVENT_OBJECT_HELPCHANGE}
  9385. EVENT_OBJECT_DEFACTIONCHANGE = $8011; // hwnd + ID + idChild is item w/ def action change
  9386. {$EXTERNALSYM EVENT_OBJECT_DEFACTIONCHANGE}
  9387. EVENT_OBJECT_ACCELERATORCHANGE = $8012; // hwnd + ID + idChild is item w/ keybd accel change
  9388. {$EXTERNALSYM EVENT_OBJECT_ACCELERATORCHANGE}
  9389. //
  9390. // Child IDs
  9391. //
  9392. //
  9393. // System Sounds (idChild of system SOUND notification)
  9394. //
  9395. SOUND_SYSTEM_STARTUP = 1;
  9396. {$EXTERNALSYM SOUND_SYSTEM_STARTUP}
  9397. SOUND_SYSTEM_SHUTDOWN = 2;
  9398. {$EXTERNALSYM SOUND_SYSTEM_SHUTDOWN}
  9399. SOUND_SYSTEM_BEEP = 3;
  9400. {$EXTERNALSYM SOUND_SYSTEM_BEEP}
  9401. SOUND_SYSTEM_ERROR = 4;
  9402. {$EXTERNALSYM SOUND_SYSTEM_ERROR}
  9403. SOUND_SYSTEM_QUESTION = 5;
  9404. {$EXTERNALSYM SOUND_SYSTEM_QUESTION}
  9405. SOUND_SYSTEM_WARNING = 6;
  9406. {$EXTERNALSYM SOUND_SYSTEM_WARNING}
  9407. SOUND_SYSTEM_INFORMATION = 7;
  9408. {$EXTERNALSYM SOUND_SYSTEM_INFORMATION}
  9409. SOUND_SYSTEM_MAXIMIZE = 8;
  9410. {$EXTERNALSYM SOUND_SYSTEM_MAXIMIZE}
  9411. SOUND_SYSTEM_MINIMIZE = 9;
  9412. {$EXTERNALSYM SOUND_SYSTEM_MINIMIZE}
  9413. SOUND_SYSTEM_RESTOREUP = 10;
  9414. {$EXTERNALSYM SOUND_SYSTEM_RESTOREUP}
  9415. SOUND_SYSTEM_RESTOREDOWN = 11;
  9416. {$EXTERNALSYM SOUND_SYSTEM_RESTOREDOWN}
  9417. SOUND_SYSTEM_APPSTART = 12;
  9418. {$EXTERNALSYM SOUND_SYSTEM_APPSTART}
  9419. SOUND_SYSTEM_FAULT = 13;
  9420. {$EXTERNALSYM SOUND_SYSTEM_FAULT}
  9421. SOUND_SYSTEM_APPEND = 14;
  9422. {$EXTERNALSYM SOUND_SYSTEM_APPEND}
  9423. SOUND_SYSTEM_MENUCOMMAND = 15;
  9424. {$EXTERNALSYM SOUND_SYSTEM_MENUCOMMAND}
  9425. SOUND_SYSTEM_MENUPOPUP = 16;
  9426. {$EXTERNALSYM SOUND_SYSTEM_MENUPOPUP}
  9427. CSOUND_SYSTEM = 16;
  9428. {$EXTERNALSYM CSOUND_SYSTEM}
  9429. //
  9430. // System Alerts (indexChild of system ALERT notification)
  9431. //
  9432. ALERT_SYSTEM_INFORMATIONAL = 1; // MB_INFORMATION
  9433. {$EXTERNALSYM ALERT_SYSTEM_INFORMATIONAL}
  9434. ALERT_SYSTEM_WARNING = 2; // MB_WARNING
  9435. {$EXTERNALSYM ALERT_SYSTEM_WARNING}
  9436. ALERT_SYSTEM_ERROR = 3; // MB_ERROR
  9437. {$EXTERNALSYM ALERT_SYSTEM_ERROR}
  9438. ALERT_SYSTEM_QUERY = 4; // MB_QUESTION
  9439. {$EXTERNALSYM ALERT_SYSTEM_QUERY}
  9440. ALERT_SYSTEM_CRITICAL = 5; // HardSysErrBox
  9441. {$EXTERNALSYM ALERT_SYSTEM_CRITICAL}
  9442. CALERT_SYSTEM = 6;
  9443. {$EXTERNALSYM CALERT_SYSTEM}
  9444. type
  9445. LPGUITHREADINFO = ^GUITHREADINFO;
  9446. {$EXTERNALSYM LPGUITHREADINFO}
  9447. tagGUITHREADINFO = record
  9448. cbSize: DWORD;
  9449. flags: DWORD;
  9450. hwndActive: HWND;
  9451. hwndFocus: HWND;
  9452. hwndCapture: HWND;
  9453. hwndMenuOwner: HWND;
  9454. hwndMoveSize: HWND;
  9455. hwndCaret: HWND;
  9456. rcCaret: RECT;
  9457. end;
  9458. {$EXTERNALSYM tagGUITHREADINFO}
  9459. GUITHREADINFO = tagGUITHREADINFO;
  9460. {$EXTERNALSYM GUITHREADINFO}
  9461. TGuiThreadInfo = GUITHREADINFO;
  9462. PGuiThreadInfo = LPGUITHREADINFO;
  9463. const
  9464. GUI_CARETBLINKING = $00000001;
  9465. {$EXTERNALSYM GUI_CARETBLINKING}
  9466. GUI_INMOVESIZE = $00000002;
  9467. {$EXTERNALSYM GUI_INMOVESIZE}
  9468. GUI_INMENUMODE = $00000004;
  9469. {$EXTERNALSYM GUI_INMENUMODE}
  9470. GUI_SYSTEMMENUMODE = $00000008;
  9471. {$EXTERNALSYM GUI_SYSTEMMENUMODE}
  9472. GUI_POPUPMENUMODE = $00000010;
  9473. {$EXTERNALSYM GUI_POPUPMENUMODE}
  9474. GUI_16BITTASK = $00000020;
  9475. {$EXTERNALSYM GUI_16BITTASK}
  9476. function GetGUIThreadInfo(idThread: DWORD; var pgui: GUITHREADINFO): BOOL; stdcall;
  9477. {$EXTERNALSYM GetGUIThreadInfo}
  9478. function GetWindowModuleFileNameA(hwnd: HWND; pszFileName: LPSTR; cchFileNameMax: UINT): UINT; stdcall;
  9479. {$EXTERNALSYM GetWindowModuleFileNameA}
  9480. function GetWindowModuleFileNameW(hwnd: HWND; pszFileName: LPWSTR; cchFileNameMax: UINT): UINT; stdcall;
  9481. {$EXTERNALSYM GetWindowModuleFileNameW}
  9482. function GetWindowModuleFileName(hwnd: HWND; pszFileName: LPTSTR; cchFileNameMax: UINT): UINT; stdcall;
  9483. {$EXTERNALSYM GetWindowModuleFileName}
  9484. const
  9485. STATE_SYSTEM_UNAVAILABLE = $00000001; // Disabled
  9486. {$EXTERNALSYM STATE_SYSTEM_UNAVAILABLE}
  9487. STATE_SYSTEM_SELECTED = $00000002;
  9488. {$EXTERNALSYM STATE_SYSTEM_SELECTED}
  9489. STATE_SYSTEM_FOCUSED = $00000004;
  9490. {$EXTERNALSYM STATE_SYSTEM_FOCUSED}
  9491. STATE_SYSTEM_PRESSED = $00000008;
  9492. {$EXTERNALSYM STATE_SYSTEM_PRESSED}
  9493. STATE_SYSTEM_CHECKED = $00000010;
  9494. {$EXTERNALSYM STATE_SYSTEM_CHECKED}
  9495. STATE_SYSTEM_MIXED = $00000020; // 3-state checkbox or toolbar button
  9496. {$EXTERNALSYM STATE_SYSTEM_MIXED}
  9497. STATE_SYSTEM_INDETERMINATE = STATE_SYSTEM_MIXED;
  9498. {$EXTERNALSYM STATE_SYSTEM_INDETERMINATE}
  9499. STATE_SYSTEM_READONLY = $00000040;
  9500. {$EXTERNALSYM STATE_SYSTEM_READONLY}
  9501. STATE_SYSTEM_HOTTRACKED = $00000080;
  9502. {$EXTERNALSYM STATE_SYSTEM_HOTTRACKED}
  9503. STATE_SYSTEM_DEFAULT = $00000100;
  9504. {$EXTERNALSYM STATE_SYSTEM_DEFAULT}
  9505. STATE_SYSTEM_EXPANDED = $00000200;
  9506. {$EXTERNALSYM STATE_SYSTEM_EXPANDED}
  9507. STATE_SYSTEM_COLLAPSED = $00000400;
  9508. {$EXTERNALSYM STATE_SYSTEM_COLLAPSED}
  9509. STATE_SYSTEM_BUSY = $00000800;
  9510. {$EXTERNALSYM STATE_SYSTEM_BUSY}
  9511. STATE_SYSTEM_FLOATING = $00001000; // Children "owned" not "contained" by parent
  9512. {$EXTERNALSYM STATE_SYSTEM_FLOATING}
  9513. STATE_SYSTEM_MARQUEED = $00002000;
  9514. {$EXTERNALSYM STATE_SYSTEM_MARQUEED}
  9515. STATE_SYSTEM_ANIMATED = $00004000;
  9516. {$EXTERNALSYM STATE_SYSTEM_ANIMATED}
  9517. STATE_SYSTEM_INVISIBLE = $00008000;
  9518. {$EXTERNALSYM STATE_SYSTEM_INVISIBLE}
  9519. STATE_SYSTEM_OFFSCREEN = $00010000;
  9520. {$EXTERNALSYM STATE_SYSTEM_OFFSCREEN}
  9521. STATE_SYSTEM_SIZEABLE = $00020000;
  9522. {$EXTERNALSYM STATE_SYSTEM_SIZEABLE}
  9523. STATE_SYSTEM_MOVEABLE = $00040000;
  9524. {$EXTERNALSYM STATE_SYSTEM_MOVEABLE}
  9525. STATE_SYSTEM_SELFVOICING = $00080000;
  9526. {$EXTERNALSYM STATE_SYSTEM_SELFVOICING}
  9527. STATE_SYSTEM_FOCUSABLE = $00100000;
  9528. {$EXTERNALSYM STATE_SYSTEM_FOCUSABLE}
  9529. STATE_SYSTEM_SELECTABLE = $00200000;
  9530. {$EXTERNALSYM STATE_SYSTEM_SELECTABLE}
  9531. STATE_SYSTEM_LINKED = $00400000;
  9532. {$EXTERNALSYM STATE_SYSTEM_LINKED}
  9533. STATE_SYSTEM_TRAVERSED = $00800000;
  9534. {$EXTERNALSYM STATE_SYSTEM_TRAVERSED}
  9535. STATE_SYSTEM_MULTISELECTABLE = $01000000; // Supports multiple selection
  9536. {$EXTERNALSYM STATE_SYSTEM_MULTISELECTABLE}
  9537. STATE_SYSTEM_EXTSELECTABLE = $02000000; // Supports extended selection
  9538. {$EXTERNALSYM STATE_SYSTEM_EXTSELECTABLE}
  9539. STATE_SYSTEM_ALERT_LOW = $04000000; // This information is of low priority
  9540. {$EXTERNALSYM STATE_SYSTEM_ALERT_LOW}
  9541. STATE_SYSTEM_ALERT_MEDIUM = $08000000; // This information is of medium priority
  9542. {$EXTERNALSYM STATE_SYSTEM_ALERT_MEDIUM}
  9543. STATE_SYSTEM_ALERT_HIGH = $10000000; // This information is of high priority
  9544. {$EXTERNALSYM STATE_SYSTEM_ALERT_HIGH}
  9545. STATE_SYSTEM_PROTECTED = $20000000; // access to this is restricted
  9546. {$EXTERNALSYM STATE_SYSTEM_PROTECTED}
  9547. STATE_SYSTEM_VALID = $3FFFFFFF;
  9548. {$EXTERNALSYM STATE_SYSTEM_VALID}
  9549. CCHILDREN_TITLEBAR = 5;
  9550. {$EXTERNALSYM CCHILDREN_TITLEBAR}
  9551. CCHILDREN_SCROLLBAR = 5;
  9552. {$EXTERNALSYM CCHILDREN_SCROLLBAR}
  9553. //
  9554. // Information about the global cursor.
  9555. //
  9556. type
  9557. LPCURSORINFO = ^CURSORINFO;
  9558. {$EXTERNALSYM LPCURSORINFO}
  9559. tagCURSORINFO = record
  9560. cbSize: DWORD;
  9561. flags: DWORD;
  9562. hCursor: HCURSOR;
  9563. ptScreenPos: POINT;
  9564. end;
  9565. {$EXTERNALSYM tagCURSORINFO}
  9566. CURSORINFO = tagCURSORINFO;
  9567. {$EXTERNALSYM CURSORINFO}
  9568. TCursorInfo = CURSORINFO;
  9569. PCursorInfo = LPCURSORINFO;
  9570. const
  9571. CURSOR_SHOWING = $00000001;
  9572. {$EXTERNALSYM CURSOR_SHOWING}
  9573. function GetCursorInfo(var pci: CURSORINFO): BOOL; stdcall;
  9574. {$EXTERNALSYM GetCursorInfo}
  9575. //
  9576. // Window information snapshot
  9577. //
  9578. type
  9579. LPWINDOWINFO = ^WINDOWINFO;
  9580. {$EXTERNALSYM LPWINDOWINFO}
  9581. tagWINDOWINFO = record
  9582. cbSize: DWORD;
  9583. rcWindow: RECT;
  9584. rcClient: RECT;
  9585. dwStyle: DWORD;
  9586. dwExStyle: DWORD;
  9587. dwWindowStatus: DWORD;
  9588. cxWindowBorders: UINT;
  9589. cyWindowBorders: UINT;
  9590. atomWindowType: ATOM;
  9591. wCreatorVersion: WORD;
  9592. end;
  9593. {$EXTERNALSYM tagWINDOWINFO}
  9594. WINDOWINFO = tagWINDOWINFO;
  9595. {$EXTERNALSYM WINDOWINFO}
  9596. TWindowInfo = WINDOWINFO;
  9597. PWindowInfo = LPWINDOWINFO;
  9598. const
  9599. WS_ACTIVECAPTION = $0001;
  9600. {$EXTERNALSYM WS_ACTIVECAPTION}
  9601. function GetWindowInfo(hwnd: HWND; var pwi: WINDOWINFO): BOOL; stdcall;
  9602. {$EXTERNALSYM GetWindowInfo}
  9603. //
  9604. // Titlebar information.
  9605. //
  9606. type
  9607. LPTITLEBARINFO = ^TITLEBARINFO;
  9608. {$EXTERNALSYM LPTITLEBARINFO}
  9609. tagTITLEBARINFO = record
  9610. cbSize: DWORD;
  9611. rcTitleBar: RECT;
  9612. rgstate: array [0..CCHILDREN_TITLEBAR] of DWORD;
  9613. end;
  9614. {$EXTERNALSYM tagTITLEBARINFO}
  9615. TITLEBARINFO = tagTITLEBARINFO;
  9616. {$EXTERNALSYM TITLEBARINFO}
  9617. TTitleBarInfo = TITLEBARINFO;
  9618. PTitleBarInfo = LPTITLEBARINFO;
  9619. function GetTitleBarInfo(hwnd: HWND; var pti: TITLEBARINFO): BOOL; stdcall;
  9620. {$EXTERNALSYM GetTitleBarInfo}
  9621. //
  9622. // Menubar information
  9623. //
  9624. type
  9625. LPMENUBARINFO = ^MENUBARINFO;
  9626. {$EXTERNALSYM LPMENUBARINFO}
  9627. tagMENUBARINFO = record
  9628. cbSize: DWORD;
  9629. rcBar: RECT; // rect of bar, popup, item
  9630. hMenu: HMENU; // real menu handle of bar, popup
  9631. hwndMenu: HWND; // hwnd of item submenu if one
  9632. Flags: DWORD;
  9633. // BOOL fBarFocused:1; // bar, popup has the focus
  9634. // BOOL fFocused:1; // item has the focus
  9635. end;
  9636. {$EXTERNALSYM tagMENUBARINFO}
  9637. MENUBARINFO = tagMENUBARINFO;
  9638. {$EXTERNALSYM MENUBARINFO}
  9639. TMenuBarInfo = MENUBARINFO;
  9640. PMenuBarInfo = LPMENUBARINFO;
  9641. function GetMenuBarInfo(hwnd: HWND; idObject: LONG; idItem: LONG;
  9642. var pmbi: MENUBARINFO): BOOL; stdcall;
  9643. {$EXTERNALSYM GetMenuBarInfo}
  9644. //
  9645. // Scrollbar information
  9646. //
  9647. type
  9648. LPSCROLLBARINFO = ^SCROLLBARINFO;
  9649. {$EXTERNALSYM LPSCROLLBARINFO}
  9650. tagSCROLLBARINFO = record
  9651. cbSize: DWORD;
  9652. rcScrollBar: RECT;
  9653. dxyLineButton: Integer;
  9654. xyThumbTop: Integer;
  9655. xyThumbBottom: Integer;
  9656. reserved: Integer;
  9657. rgstate: array [0..CCHILDREN_SCROLLBAR] of DWORD;
  9658. end;
  9659. {$EXTERNALSYM tagSCROLLBARINFO}
  9660. SCROLLBARINFO = tagSCROLLBARINFO;
  9661. {$EXTERNALSYM SCROLLBARINFO}
  9662. TScrollBarInfo = SCROLLBARINFO;
  9663. PScrollBarInfo = LPSCROLLBARINFO;
  9664. function GetScrollBarInfo(hwnd: HWND; idObject: LONG; var psbi: SCROLLBARINFO): BOOL; stdcall;
  9665. {$EXTERNALSYM GetScrollBarInfo}
  9666. //
  9667. // Combobox information
  9668. //
  9669. type
  9670. LPCOMBOBOXINFO = ^COMBOBOXINFO;
  9671. {$EXTERNALSYM LPCOMBOBOXINFO}
  9672. tagCOMBOBOXINFO = record
  9673. cbSize: DWORD;
  9674. rcItem: RECT;
  9675. rcButton: RECT;
  9676. stateButton: DWORD;
  9677. hwndCombo: HWND;
  9678. hwndItem: HWND;
  9679. hwndList: HWND;
  9680. end;
  9681. {$EXTERNALSYM tagCOMBOBOXINFO}
  9682. COMBOBOXINFO = tagCOMBOBOXINFO;
  9683. {$EXTERNALSYM COMBOBOXINFO}
  9684. TComboBoxInfo = COMBOBOXINFO;
  9685. PComboBoxInfo = LPCOMBOBOXINFO;
  9686. function GetComboBoxInfo(hwndCombo: HWND; var pcbi: COMBOBOXINFO): BOOL; stdcall;
  9687. {$EXTERNALSYM GetComboBoxInfo}
  9688. //
  9689. // The "real" ancestor window
  9690. //
  9691. const
  9692. GA_PARENT = 1;
  9693. {$EXTERNALSYM GA_PARENT}
  9694. GA_ROOT = 2;
  9695. {$EXTERNALSYM GA_ROOT}
  9696. GA_ROOTOWNER = 3;
  9697. {$EXTERNALSYM GA_ROOTOWNER}
  9698. function GetAncestor(hwnd: HWND; gaFlags: UINT): HWND; stdcall;
  9699. {$EXTERNALSYM GetAncestor}
  9700. //
  9701. // This gets the REAL child window at the point. If it is in the dead
  9702. // space of a group box, it will try a sibling behind it. But static
  9703. // fields will get returned. In other words, it is kind of a cross between
  9704. // ChildWindowFromPointEx and WindowFromPoint.
  9705. //
  9706. function RealChildWindowFromPoint(hwndParent: HWND; ptParentClientCoords: POINT): HWND; stdcall;
  9707. {$EXTERNALSYM RealChildWindowFromPoint}
  9708. //
  9709. // This gets the name of the window TYPE, not class. This allows us to
  9710. // recognize ThunderButton32 et al.
  9711. //
  9712. function RealGetWindowClassA(hwnd: HWND; pszType: LPSTR; cchType: UINT): UINT; stdcall;
  9713. {$EXTERNALSYM RealGetWindowClassA}
  9714. //
  9715. // This gets the name of the window TYPE, not class. This allows us to
  9716. // recognize ThunderButton32 et al.
  9717. //
  9718. function RealGetWindowClassW(hwnd: HWND; pszType: LPWSTR; cchType: UINT): UINT; stdcall;
  9719. {$EXTERNALSYM RealGetWindowClassW}
  9720. function RealGetWindowClass(hwnd: HWND; pszType: LPTSTR; cchType: UINT): UINT; stdcall;
  9721. {$EXTERNALSYM RealGetWindowClass}
  9722. //
  9723. // Alt-Tab Switch window information.
  9724. //
  9725. type
  9726. LPALTTABINFO = ^ALTTABINFO;
  9727. {$EXTERNALSYM LPALTTABINFO}
  9728. tagALTTABINFO = record
  9729. cbSize: DWORD;
  9730. cItems: Integer;
  9731. cColumns: Integer;
  9732. cRows: Integer;
  9733. iColFocus: Integer;
  9734. iRowFocus: Integer;
  9735. cxItem: Integer;
  9736. cyItem: Integer;
  9737. ptStart: POINT;
  9738. end;
  9739. {$EXTERNALSYM tagALTTABINFO}
  9740. ALTTABINFO = tagALTTABINFO;
  9741. {$EXTERNALSYM ALTTABINFO}
  9742. TAltTabInfo = ALTTABINFO;
  9743. PAltTabInfo = LPALTTABINFO;
  9744. function GetAltTabInfoA(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9745. pszItemText: LPSTR; cchItemText: UINT): BOOL; stdcall;
  9746. {$EXTERNALSYM GetAltTabInfoA}
  9747. function GetAltTabInfoW(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9748. pszItemText: LPWSTR; cchItemText: UINT): BOOL; stdcall;
  9749. {$EXTERNALSYM GetAltTabInfoW}
  9750. function GetAltTabInfo(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
  9751. pszItemText: LPTSTR; cchItemText: UINT): BOOL; stdcall;
  9752. {$EXTERNALSYM GetAltTabInfo}
  9753. //
  9754. // Listbox information.
  9755. // Returns the number of items per row.
  9756. //
  9757. function GetListBoxInfo(hwnd: HWND): DWORD; stdcall;
  9758. {$EXTERNALSYM GetListBoxInfo}
  9759. function LockWorkStation: BOOL; stdcall;
  9760. {$EXTERNALSYM LockWorkStation}
  9761. function UserHandleGrantAccess(hUserHandle, hJob: HANDLE; bGrant: BOOL): BOOL; stdcall;
  9762. {$EXTERNALSYM UserHandleGrantAccess}
  9763. //
  9764. // Raw Input Messages.
  9765. //
  9766. type
  9767. HRAWINPUT = HANDLE;
  9768. {$EXTERNALSYM HRAWINPUT}
  9769. //
  9770. // WM_INPUT wParam
  9771. //
  9772. //
  9773. // Use this macro to get the input code from wParam.
  9774. //
  9775. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  9776. {$EXTERNALSYM GET_RAWINPUT_CODE_WPARAM}
  9777. //
  9778. // The input is in the regular message flow,
  9779. // the app is required to call DefWindowProc
  9780. // so that the system can perform clean ups.
  9781. //
  9782. const
  9783. RIM_INPUT = 0;
  9784. {$EXTERNALSYM RIM_INPUT}
  9785. //
  9786. // The input is sink only. The app is expected
  9787. // to behave nicely.
  9788. //
  9789. RIM_INPUTSINK = 1;
  9790. {$EXTERNALSYM RIM_INPUTSINK}
  9791. //
  9792. // Raw Input data header
  9793. //
  9794. type
  9795. tagRAWINPUTHEADER = record
  9796. dwType: DWORD;
  9797. dwSize: DWORD;
  9798. hDevice: HANDLE;
  9799. wParam: WPARAM;
  9800. end;
  9801. {$EXTERNALSYM tagRAWINPUTHEADER}
  9802. RAWINPUTHEADER = tagRAWINPUTHEADER;
  9803. {$EXTERNALSYM RAWINPUTHEADER}
  9804. PRAWINPUTHEADER = ^RAWINPUTHEADER;
  9805. {$EXTERNALSYM PRAWINPUTHEADER}
  9806. LPRAWINPUTHEADER = ^RAWINPUTHEADER;
  9807. {$EXTERNALSYM LPRAWINPUTHEADER}
  9808. TRawInputHeader = RAWINPUTHEADER;
  9809. //
  9810. // Type of the raw input
  9811. //
  9812. const
  9813. RIM_TYPEMOUSE = 0;
  9814. {$EXTERNALSYM RIM_TYPEMOUSE}
  9815. RIM_TYPEKEYBOARD = 1;
  9816. {$EXTERNALSYM RIM_TYPEKEYBOARD}
  9817. RIM_TYPEHID = 2;
  9818. {$EXTERNALSYM RIM_TYPEHID}
  9819. //
  9820. // Raw format of the mouse input
  9821. //
  9822. type
  9823. tagRAWMOUSE = record
  9824. //
  9825. // Indicator flags.
  9826. //
  9827. usFlags: USHORT;
  9828. //
  9829. // The transition state of the mouse buttons.
  9830. //
  9831. union: record
  9832. case Integer of
  9833. 0: (
  9834. ulButtons: ULONG);
  9835. 1: (
  9836. usButtonFlags: USHORT;
  9837. usButtonData: USHORT);
  9838. end;
  9839. //
  9840. // The raw state of the mouse buttons.
  9841. //
  9842. ulRawButtons: ULONG;
  9843. //
  9844. // The signed relative or absolute motion in the X direction.
  9845. //
  9846. lLastX: LONG;
  9847. //
  9848. // The signed relative or absolute motion in the Y direction.
  9849. //
  9850. lLastY: LONG;
  9851. //
  9852. // Device-specific additional information for the event.
  9853. //
  9854. ulExtraInformation: ULONG;
  9855. end;
  9856. {$EXTERNALSYM tagRAWMOUSE}
  9857. RAWMOUSE = tagRAWMOUSE;
  9858. {$EXTERNALSYM RAWMOUSE}
  9859. PRAWMOUSE = ^RAWMOUSE;
  9860. {$EXTERNALSYM PRAWMOUSE}
  9861. LPRAWMOUSE = ^RAWMOUSE;
  9862. {$EXTERNALSYM LPRAWMOUSE}
  9863. TRawMouse = RAWMOUSE;
  9864. //
  9865. // Define the mouse button state indicators.
  9866. //
  9867. const
  9868. RI_MOUSE_LEFT_BUTTON_DOWN = $0001; // Left Button changed to down.
  9869. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_DOWN}
  9870. RI_MOUSE_LEFT_BUTTON_UP = $0002; // Left Button changed to up.
  9871. {$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_UP}
  9872. RI_MOUSE_RIGHT_BUTTON_DOWN = $0004; // Right Button changed to down.
  9873. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_DOWN}
  9874. RI_MOUSE_RIGHT_BUTTON_UP = $0008; // Right Button changed to up.
  9875. {$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_UP}
  9876. RI_MOUSE_MIDDLE_BUTTON_DOWN = $0010; // Middle Button changed to down.
  9877. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_DOWN}
  9878. RI_MOUSE_MIDDLE_BUTTON_UP = $0020; // Middle Button changed to up.
  9879. {$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_UP}
  9880. RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
  9881. {$EXTERNALSYM RI_MOUSE_BUTTON_1_DOWN}
  9882. RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP;
  9883. {$EXTERNALSYM RI_MOUSE_BUTTON_1_UP}
  9884. RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
  9885. {$EXTERNALSYM RI_MOUSE_BUTTON_2_DOWN}
  9886. RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP;
  9887. {$EXTERNALSYM RI_MOUSE_BUTTON_2_UP}
  9888. RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
  9889. {$EXTERNALSYM RI_MOUSE_BUTTON_3_DOWN}
  9890. RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP;
  9891. {$EXTERNALSYM RI_MOUSE_BUTTON_3_UP}
  9892. RI_MOUSE_BUTTON_4_DOWN = $0040;
  9893. {$EXTERNALSYM RI_MOUSE_BUTTON_4_DOWN}
  9894. RI_MOUSE_BUTTON_4_UP = $0080;
  9895. {$EXTERNALSYM RI_MOUSE_BUTTON_4_UP}
  9896. RI_MOUSE_BUTTON_5_DOWN = $0100;
  9897. {$EXTERNALSYM RI_MOUSE_BUTTON_5_DOWN}
  9898. RI_MOUSE_BUTTON_5_UP = $0200;
  9899. {$EXTERNALSYM RI_MOUSE_BUTTON_5_UP}
  9900. //
  9901. // If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
  9902. // Take it as a signed value.
  9903. //
  9904. RI_MOUSE_WHEEL = $0400;
  9905. {$EXTERNALSYM RI_MOUSE_WHEEL}
  9906. //
  9907. // Define the mouse indicator flags.
  9908. //
  9909. MOUSE_MOVE_RELATIVE = 0;
  9910. {$EXTERNALSYM MOUSE_MOVE_RELATIVE}
  9911. MOUSE_MOVE_ABSOLUTE = 1;
  9912. {$EXTERNALSYM MOUSE_MOVE_ABSOLUTE}
  9913. MOUSE_VIRTUAL_DESKTOP = $02; // the coordinates are mapped to the virtual desktop
  9914. {$EXTERNALSYM MOUSE_VIRTUAL_DESKTOP}
  9915. MOUSE_ATTRIBUTES_CHANGED = $04; // requery for mouse attributes
  9916. {$EXTERNALSYM MOUSE_ATTRIBUTES_CHANGED}
  9917. //
  9918. // Raw format of the keyboard input
  9919. //
  9920. type
  9921. tagRAWKEYBOARD = record
  9922. //
  9923. // The "make" scan code (key depression).
  9924. //
  9925. MakeCode: USHORT;
  9926. //
  9927. // The flags field indicates a "break" (key release) and other
  9928. // miscellaneous scan code information defined in ntddkbd.h.
  9929. //
  9930. Flags: USHORT;
  9931. Reserved: USHORT;
  9932. //
  9933. // Windows message compatible information
  9934. //
  9935. VKey: USHORT;
  9936. Message: UINT;
  9937. //
  9938. // Device-specific additional information for the event.
  9939. //
  9940. ExtraInformation: ULONG;
  9941. end;
  9942. {$EXTERNALSYM tagRAWKEYBOARD}
  9943. RAWKEYBOARD = tagRAWKEYBOARD;
  9944. {$EXTERNALSYM RAWKEYBOARD}
  9945. PRAWKEYBOARD = ^RAWKEYBOARD;
  9946. {$EXTERNALSYM PRAWKEYBOARD}
  9947. LPRAWKEYBOARD = ^RAWKEYBOARD;
  9948. {$EXTERNALSYM LPRAWKEYBOARD}
  9949. TRawKeyBoard = RAWKEYBOARD;
  9950. //
  9951. // Define the keyboard overrun MakeCode.
  9952. //
  9953. const
  9954. KEYBOARD_OVERRUN_MAKE_CODE = $FF;
  9955. {$EXTERNALSYM KEYBOARD_OVERRUN_MAKE_CODE}
  9956. //
  9957. // Define the keyboard input data Flags.
  9958. //
  9959. RI_KEY_MAKE = 0;
  9960. {$EXTERNALSYM RI_KEY_MAKE}
  9961. RI_KEY_BREAK = 1;
  9962. {$EXTERNALSYM RI_KEY_BREAK}
  9963. RI_KEY_E0 = 2;
  9964. {$EXTERNALSYM RI_KEY_E0}
  9965. RI_KEY_E1 = 4;
  9966. {$EXTERNALSYM RI_KEY_E1}
  9967. RI_KEY_TERMSRV_SET_LED = 8;
  9968. {$EXTERNALSYM RI_KEY_TERMSRV_SET_LED}
  9969. RI_KEY_TERMSRV_SHADOW = $10;
  9970. {$EXTERNALSYM RI_KEY_TERMSRV_SHADOW}
  9971. //
  9972. // Raw format of the input from Human Input Devices
  9973. //
  9974. type
  9975. tagRAWHID = record
  9976. dwSizeHid: DWORD; // byte size of each report
  9977. dwCount: DWORD; // number of input packed
  9978. bRawData: array [0..0] of BYTE;
  9979. end;
  9980. {$EXTERNALSYM tagRAWHID}
  9981. RAWHID = tagRAWHID;
  9982. {$EXTERNALSYM RAWHID}
  9983. PRAWHID = ^RAWHID;
  9984. {$EXTERNALSYM PRAWHID}
  9985. LPRAWHID = ^RAWHID;
  9986. {$EXTERNALSYM LPRAWHID}
  9987. TRawHid = RAWHID;
  9988. //
  9989. // RAWINPUT data structure.
  9990. //
  9991. tagRAWINPUT = record
  9992. header: RAWINPUTHEADER;
  9993. case Integer of
  9994. 0: (mouse: RAWMOUSE);
  9995. 1: (keyboard: RAWKEYBOARD);
  9996. 2: (hid: RAWHID);
  9997. end;
  9998. {$EXTERNALSYM tagRAWINPUT}
  9999. RAWINPUT = tagRAWINPUT;
  10000. {$EXTERNALSYM RAWINPUT}
  10001. PRAWINPUT = ^RAWINPUT;
  10002. {$EXTERNALSYM PRAWINPUT}
  10003. LPRAWINPUT = ^RAWINPUT;
  10004. {$EXTERNALSYM LPRAWINPUT}
  10005. TRawInput = RAWINPUT;
  10006. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  10007. {$EXTERNALSYM RAWINPUT_ALIGN}
  10008. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10009. {$EXTERNALSYM NEXTRAWINPUTBLOCK}
  10010. //
  10011. // Flags for GetRawInputData
  10012. //
  10013. const
  10014. RID_INPUT = $10000003;
  10015. {$EXTERNALSYM RID_INPUT}
  10016. RID_HEADER = $10000005;
  10017. {$EXTERNALSYM RID_HEADER}
  10018. function GetRawInputData(hRawInput: HRAWINPUT; uiCommand: UINT; pData: LPVOID;
  10019. var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10020. {$EXTERNALSYM GetRawInputData}
  10021. //
  10022. // Raw Input Device Information
  10023. //
  10024. const
  10025. RIDI_PREPARSEDDATA = $20000005;
  10026. {$EXTERNALSYM RIDI_PREPARSEDDATA}
  10027. RIDI_DEVICENAME = $20000007; // the return valus is the character length, not the byte size
  10028. {$EXTERNALSYM RIDI_DEVICENAME}
  10029. RIDI_DEVICEINFO = $2000000b;
  10030. {$EXTERNALSYM RIDI_DEVICEINFO}
  10031. type
  10032. PRID_DEVICE_INFO_MOUSE = ^RID_DEVICE_INFO_MOUSE;
  10033. {$EXTERNALSYM PRID_DEVICE_INFO_MOUSE}
  10034. tagRID_DEVICE_INFO_MOUSE = record
  10035. dwId: DWORD;
  10036. dwNumberOfButtons: DWORD;
  10037. dwSampleRate: DWORD;
  10038. end;
  10039. {$EXTERNALSYM tagRID_DEVICE_INFO_MOUSE}
  10040. RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;
  10041. {$EXTERNALSYM RID_DEVICE_INFO_MOUSE}
  10042. TRidDeviceInfoMouse = RID_DEVICE_INFO_MOUSE;
  10043. PRidDeviceInfoMouse = PRID_DEVICE_INFO_MOUSE;
  10044. PRID_DEVICE_INFO_KEYBOARD = ^RID_DEVICE_INFO_KEYBOARD;
  10045. {$EXTERNALSYM PRID_DEVICE_INFO_KEYBOARD}
  10046. tagRID_DEVICE_INFO_KEYBOARD = record
  10047. dwType: DWORD;
  10048. dwSubType: DWORD;
  10049. dwKeyboardMode: DWORD;
  10050. dwNumberOfFunctionKeys: DWORD;
  10051. dwNumberOfIndicators: DWORD;
  10052. dwNumberOfKeysTotal: DWORD;
  10053. end;
  10054. {$EXTERNALSYM tagRID_DEVICE_INFO_KEYBOARD}
  10055. RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;
  10056. {$EXTERNALSYM RID_DEVICE_INFO_KEYBOARD}
  10057. TRidDeviceInfoKeyboard = RID_DEVICE_INFO_KEYBOARD;
  10058. PRidDeviceInfoKeyboard = PRID_DEVICE_INFO_KEYBOARD;
  10059. PRID_DEVICE_INFO_HID = ^RID_DEVICE_INFO_HID;
  10060. {$EXTERNALSYM PRID_DEVICE_INFO_HID}
  10061. tagRID_DEVICE_INFO_HID = record
  10062. dwVendorId: DWORD;
  10063. dwProductId: DWORD;
  10064. dwVersionNumber: DWORD;
  10065. //
  10066. // Top level collection UsagePage and Usage
  10067. //
  10068. usUsagePage: USHORT;
  10069. usUsage: USHORT;
  10070. end;
  10071. {$EXTERNALSYM tagRID_DEVICE_INFO_HID}
  10072. RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;
  10073. {$EXTERNALSYM RID_DEVICE_INFO_HID}
  10074. TRidDeviceInfoHid = RID_DEVICE_INFO_HID;
  10075. PRidDeviceInfoHid = PRID_DEVICE_INFO_HID;
  10076. tagRID_DEVICE_INFO = record
  10077. cbSize: DWORD;
  10078. dwType: DWORD;
  10079. case Integer of
  10080. 0: (mouse: RID_DEVICE_INFO_MOUSE);
  10081. 1: (keyboard: RID_DEVICE_INFO_KEYBOARD);
  10082. 2: (hid: RID_DEVICE_INFO_HID);
  10083. end;
  10084. {$EXTERNALSYM tagRID_DEVICE_INFO}
  10085. RID_DEVICE_INFO = tagRID_DEVICE_INFO;
  10086. {$EXTERNALSYM RID_DEVICE_INFO}
  10087. PRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10088. {$EXTERNALSYM PRID_DEVICE_INFO}
  10089. LPRID_DEVICE_INFO = ^RID_DEVICE_INFO;
  10090. {$EXTERNALSYM LPRID_DEVICE_INFO}
  10091. TRidDeviceInfo = RID_DEVICE_INFO;
  10092. PRidDeviceInfo = PRID_DEVICE_INFO;
  10093. function GetRawInputDeviceInfoA(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10094. var pcbSize: UINT): UINT; stdcall;
  10095. {$EXTERNALSYM GetRawInputDeviceInfoA}
  10096. function GetRawInputDeviceInfoW(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10097. var pcbSize: UINT): UINT; stdcall;
  10098. {$EXTERNALSYM GetRawInputDeviceInfoW}
  10099. function GetRawInputDeviceInfo(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
  10100. var pcbSize: UINT): UINT; stdcall;
  10101. {$EXTERNALSYM GetRawInputDeviceInfo}
  10102. //
  10103. // Raw Input Bulk Read: GetRawInputBuffer
  10104. //
  10105. function GetRawInputBuffer(pData: PRAWINPUT; var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
  10106. {$EXTERNALSYM GetRawInputBuffer}
  10107. //
  10108. // Raw Input request APIs
  10109. //
  10110. type
  10111. LPRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10112. {$EXTERNALSYM LPRAWINPUTDEVICE}
  10113. PRAWINPUTDEVICE = ^RAWINPUTDEVICE;
  10114. {$EXTERNALSYM PRAWINPUTDEVICE}
  10115. tagRAWINPUTDEVICE = record
  10116. usUsagePage: USHORT; // Toplevel collection UsagePage
  10117. usUsage: USHORT; // Toplevel collection Usage
  10118. dwFlags: DWORD;
  10119. hwndTarget: HWND; // Target hwnd. NULL = follows keyboard focus
  10120. end;
  10121. {$EXTERNALSYM tagRAWINPUTDEVICE}
  10122. RAWINPUTDEVICE = tagRAWINPUTDEVICE;
  10123. {$EXTERNALSYM RAWINPUTDEVICE}
  10124. TRawInputDevice = RAWINPUTDEVICE;
  10125. const
  10126. RIDEV_REMOVE = $00000001;
  10127. {$EXTERNALSYM RIDEV_REMOVE}
  10128. RIDEV_EXCLUDE = $00000010;
  10129. {$EXTERNALSYM RIDEV_EXCLUDE}
  10130. RIDEV_PAGEONLY = $00000020;
  10131. {$EXTERNALSYM RIDEV_PAGEONLY}
  10132. RIDEV_NOLEGACY = $00000030;
  10133. {$EXTERNALSYM RIDEV_NOLEGACY}
  10134. RIDEV_INPUTSINK = $00000100;
  10135. {$EXTERNALSYM RIDEV_INPUTSINK}
  10136. RIDEV_CAPTUREMOUSE = $00000200; // effective when mouse nolegacy is specified, otherwise it would be an error
  10137. {$EXTERNALSYM RIDEV_CAPTUREMOUSE}
  10138. RIDEV_NOHOTKEYS = $00000200; // effective for keyboard.
  10139. {$EXTERNALSYM RIDEV_NOHOTKEYS}
  10140. RIDEV_APPKEYS = $00000400; // effective for keyboard.
  10141. {$EXTERNALSYM RIDEV_APPKEYS}
  10142. RIDEV_EXMODEMASK = $000000F0;
  10143. {$EXTERNALSYM RIDEV_EXMODEMASK}
  10144. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10145. {$EXTERNALSYM RIDEV_EXMODE}
  10146. function RegisterRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10147. uiNumDevices: UINT; cbSize: UINT): BOOL; stdcall;
  10148. {$EXTERNALSYM RegisterRawInputDevices}
  10149. function GetRegisteredRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
  10150. var puiNumDevices: UINT; cbSize: UINT): UINT; stdcall;
  10151. {$EXTERNALSYM GetRegisteredRawInputDevices}
  10152. type
  10153. PRAWINPUTDEVICELIST = ^RAWINPUTDEVICELIST;
  10154. {$EXTERNALSYM PRAWINPUTDEVICELIST}
  10155. tagRAWINPUTDEVICELIST = record
  10156. hDevice: HANDLE;
  10157. dwType: DWORD;
  10158. end;
  10159. {$EXTERNALSYM tagRAWINPUTDEVICELIST}
  10160. RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
  10161. {$EXTERNALSYM RAWINPUTDEVICELIST}
  10162. TRawInputDeviceList = RAWINPUTDEVICELIST;
  10163. function GetRawInputDeviceList(pRawInputDeviceList: PRAWINPUTDEVICELIST; var puiNumDevices: UINT;
  10164. cbSize: UINT): UINT; stdcall;
  10165. {$EXTERNALSYM GetRawInputDeviceList}
  10166. function DefRawInputProc(paRawInput: PRAWINPUT; nInput: Integer; cbSizeHeader: UINT): LRESULT; stdcall;
  10167. {$EXTERNALSYM DefRawInputProc}
  10168. {$ENDIF JWA_IMPLEMENTATIONSECTION}
  10169. {$IFNDEF JWA_OMIT_SECTIONS}
  10170. implementation
  10171. //uses ...
  10172. {$ENDIF JWA_OMIT_SECTIONS}
  10173. {$IFNDEF JWA_INTERFACESECTION}
  10174. {$IFNDEF JWA_INCLUDEMODE}
  10175. const
  10176. user32 = 'user32.dll';
  10177. {$IFDEF UNICODE}
  10178. AWSuffix = 'W';
  10179. {$ELSE}
  10180. AWSuffix = 'A';
  10181. {$ENDIF UNICODE}
  10182. {$ENDIF JWA_INCLUDEMODE}
  10183. function IS_INTRESOURCE(wInteger: WORD): BOOL;
  10184. begin
  10185. Result := (ULONG_PTR(wInteger) shr 16) = 0;
  10186. end;
  10187. function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
  10188. begin
  10189. Result := SHORT(HIWORD(wParam));
  10190. end;
  10191. function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
  10192. begin
  10193. Result := LOWORD(wParam);
  10194. end;
  10195. function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
  10196. begin
  10197. Result := LOWORD(wParam);
  10198. end;
  10199. function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
  10200. begin
  10201. Result := HIWORD(wParam);
  10202. end;
  10203. {$IFDEF WIN2000_UP}
  10204. function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
  10205. begin
  10206. Result := WORD(HIWORD(lParam) and not FAPPCOMMAND_MASK);
  10207. end;
  10208. function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
  10209. begin
  10210. Result := WORD(HIWORD(lParam) and FAPPCOMMAND_MASK);
  10211. end;
  10212. function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
  10213. begin
  10214. Result := GET_DEVICE_LPARAM(lParam);
  10215. end;
  10216. function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
  10217. begin
  10218. Result := LOWORD(lParam);
  10219. end;
  10220. function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
  10221. begin
  10222. Result := GET_FLAGS_LPARAM(lParam);
  10223. end;
  10224. {$ENDIF WIN2000_UP}
  10225. function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
  10226. begin
  10227. Result := WPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10228. end;
  10229. function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
  10230. begin
  10231. Result := LPARAM(DWORD(MAKELONG(wLow, wHigh)));
  10232. end;
  10233. function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
  10234. begin
  10235. Result := LRESULT(DWORD(MAKELONG(wLow, wHigh)));
  10236. end;
  10237. function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
  10238. begin
  10239. Result := ExitWindowsEx(EWX_LOGOFF, $FFFFFFFF);
  10240. end;
  10241. function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10242. begin
  10243. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10244. end;
  10245. function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10246. begin
  10247. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10248. end;
  10249. function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
  10250. begin
  10251. {$IFDEF UNICODE}
  10252. Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
  10253. {$ELSE}
  10254. Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
  10255. {$ENDIF UNICODE}
  10256. end;
  10257. function CreateWindowA(lpClassName: LPCSTR; lpWindowName: LPCSTR; dwStyle: DWORD;
  10258. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10259. hInstance: HINST; lpParam: LPVOID): HWND;
  10260. begin
  10261. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10262. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10263. end;
  10264. function CreateWindowW(lpClassName: LPCWSTR; lpWindowName: LPCWSTR; dwStyle: DWORD;
  10265. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10266. hInstance: HINST; lpParam: LPVOID): HWND;
  10267. begin
  10268. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10269. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10270. end;
  10271. function CreateWindow(lpClassName: LPCTSTR; lpWindowName: LPCTSTR; dwStyle: DWORD;
  10272. x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
  10273. hInstance: HINST; lpParam: LPVOID): HWND;
  10274. begin
  10275. {$IFDEF UNICODE}
  10276. Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
  10277. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10278. {$ELSE}
  10279. Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
  10280. nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
  10281. {$ENDIF UNICODE}
  10282. end;
  10283. function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10284. begin
  10285. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10286. end;
  10287. function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10288. begin
  10289. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10290. end;
  10291. function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10292. begin
  10293. {$IFDEF UNICODE}
  10294. Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10295. {$ELSE}
  10296. Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
  10297. {$ENDIF UNICODE}
  10298. end;
  10299. function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10300. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10301. begin
  10302. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10303. end;
  10304. function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10305. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10306. begin
  10307. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10308. end;
  10309. function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
  10310. hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
  10311. begin
  10312. {$IFDEF UNICODE}
  10313. Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10314. {$ELSE}
  10315. Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10316. {$ENDIF UNICODE}
  10317. end;
  10318. function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10319. begin
  10320. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10321. end;
  10322. function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10323. begin
  10324. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10325. end;
  10326. function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10327. begin
  10328. {$IFDEF UNICODE}
  10329. Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10330. {$ELSE}
  10331. Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10332. {$ENDIF UNICODE}
  10333. end;
  10334. function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10335. begin
  10336. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10337. end;
  10338. function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10339. begin
  10340. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10341. end;
  10342. function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
  10343. begin
  10344. {$IFDEF UNICODE}
  10345. Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10346. {$ELSE}
  10347. Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
  10348. {$ENDIF UNICODE}
  10349. end;
  10350. function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10351. begin
  10352. Result := CharToOemA(lpszSrc, lpszDst);
  10353. end;
  10354. function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
  10355. begin
  10356. Result := OemToCharA(lpszSrc, lpszDst);
  10357. end;
  10358. function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10359. begin
  10360. Result := CharToOemBuffA(lpszSrc, lpszDst, cchDstLength);
  10361. end;
  10362. function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
  10363. begin
  10364. Result := OemToCharBuffA(lpszSrc, lpszDst, cchDstLength);
  10365. end;
  10366. function AnsiUpper(lpsz: LPSTR): LPSTR;
  10367. begin
  10368. Result := CharUpperA(lpsz);
  10369. end;
  10370. function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10371. begin
  10372. Result := CharUpperBuffA(lpsz, cchLength);
  10373. end;
  10374. function AnsiLower(lpsz: LPSTR): LPSTR;
  10375. begin
  10376. Result := CharLowerA(lpsz);
  10377. end;
  10378. function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
  10379. begin
  10380. Result := CharLowerBuffA(lpsz, cchLength);
  10381. end;
  10382. function AnsiNext(lpsz: LPCSTR): LPSTR;
  10383. begin
  10384. Result := CharNextA(lpsz);
  10385. end;
  10386. function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
  10387. begin
  10388. Result := CharPrevA(lpszStart, lpszCurrent);
  10389. end;
  10390. function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10391. begin
  10392. Result := GetWindowLongA(hWnd, nIndex);
  10393. end;
  10394. function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10395. begin
  10396. Result := GetWindowLongW(hWnd, nIndex);
  10397. end;
  10398. function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
  10399. begin
  10400. {$IFDEF UNICODE}
  10401. Result := GetWindowLongW(hWnd, nIndex);
  10402. {$ELSE}
  10403. Result := GetWindowLongA(hWnd, nIndex);
  10404. {$ENDIF UNICODE}
  10405. end;
  10406. function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10407. begin
  10408. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10409. end;
  10410. function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10411. begin
  10412. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10413. end;
  10414. function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
  10415. begin
  10416. {$IFDEF UNICODE}
  10417. Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
  10418. {$ELSE}
  10419. Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
  10420. {$ENDIF UNICODE}
  10421. end;
  10422. function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10423. begin
  10424. Result := GetClassLongA(hWnd, nIndex);
  10425. end;
  10426. function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10427. begin
  10428. Result := GetClassLongW(hWnd, nIndex);
  10429. end;
  10430. function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
  10431. begin
  10432. {$IFDEF UNICODE}
  10433. Result := GetClassLongW(hWnd, nIndex);
  10434. {$ELSE}
  10435. Result := GetClassLongA(hWnd, nIndex);
  10436. {$ENDIF UNICODE}
  10437. end;
  10438. function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10439. begin
  10440. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10441. end;
  10442. function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10443. begin
  10444. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10445. end;
  10446. function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
  10447. begin
  10448. {$IFDEF UNICODE}
  10449. Result := SetClassLongW(hWnd, nIndex, dwNewLong);
  10450. {$ELSE}
  10451. Result := SetClassLongA(hWnd, nIndex, dwNewLong);
  10452. {$ENDIF UNICODE}
  10453. end;
  10454. function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
  10455. begin
  10456. Result := EnumThreadWindows(ULONG(hTask), lpfn, lParam);
  10457. end;
  10458. function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
  10459. begin
  10460. Result := GetWindow(hWnd, wCmd);
  10461. end;
  10462. function GetWindowTask(hWnd: HWND): HANDLE;
  10463. begin
  10464. Result := HANDLE(DWORD_PTR(GetWindowThreadProcessId(hWnd, nil)));
  10465. end;
  10466. function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
  10467. begin
  10468. Result := CallNextHookEx(HHOOK(phhk^), nCode, wParam, lParam);
  10469. end;
  10470. function CopyCursor(pcur: HCURSOR): HCURSOR;
  10471. begin
  10472. Result := HCURSOR(CopyIcon(HICON(pcur)));
  10473. end;
  10474. function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
  10475. begin
  10476. Result := wParam and $ff;
  10477. end;
  10478. function RAWINPUT_ALIGN(x: Pointer): Pointer;
  10479. begin
  10480. Result := Pointer((PtrUInt(x) + (SizeOf(DWORD) - 1)) and not (SizeOf(DWORD) - 1));
  10481. end;
  10482. function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
  10483. begin
  10484. Result := PRAWINPUT(DWORD(RAWINPUT_ALIGN(ptr)) + ptr^.header.dwSize);
  10485. end;
  10486. function RIDEV_EXMODE(mode: DWORD): DWORD;
  10487. begin
  10488. Result := mode and RIDEV_EXMODEMASK;
  10489. end;
  10490. {$IFDEF DYNAMIC_LINK}
  10491. var
  10492. _IsHungAppWindow: Pointer;
  10493. function IsHungAppWindow;
  10494. begin
  10495. GetProcedureAddress(_IsHungAppWindow, user32, 'IsHungAppWindow');
  10496. asm
  10497. MOV ESP, EBP
  10498. POP EBP
  10499. JMP [_IsHungAppWindow]
  10500. end;
  10501. end;
  10502. var
  10503. _DisableProcessWindowsGhosting: Pointer;
  10504. procedure DisableProcessWindowsGhosting;
  10505. begin
  10506. GetProcedureAddress(_DisableProcessWindowsGhosting, user32, 'DisableProcessWindowsGhosting');
  10507. asm
  10508. MOV ESP, EBP
  10509. POP EBP
  10510. JMP [_DisableProcessWindowsGhosting]
  10511. end;
  10512. end;
  10513. var
  10514. _wvsprintfA: Pointer;
  10515. function wvsprintfA;
  10516. begin
  10517. GetProcedureAddress(_wvsprintfA, user32, 'wvsprintfA');
  10518. asm
  10519. MOV ESP, EBP
  10520. POP EBP
  10521. JMP [_wvsprintfA]
  10522. end;
  10523. end;
  10524. var
  10525. _wvsprintfW: Pointer;
  10526. function wvsprintfW;
  10527. begin
  10528. GetProcedureAddress(_wvsprintfW, user32, 'wvsprintfW');
  10529. asm
  10530. MOV ESP, EBP
  10531. POP EBP
  10532. JMP [_wvsprintfW]
  10533. end;
  10534. end;
  10535. var
  10536. _wvsprintf: Pointer;
  10537. function wvsprintf;
  10538. begin
  10539. GetProcedureAddress(_wvsprintf, user32, 'wvsprintf' + AWSuffix);
  10540. asm
  10541. MOV ESP, EBP
  10542. POP EBP
  10543. JMP [_wvsprintf]
  10544. end;
  10545. end;
  10546. var
  10547. _wsprintfA: Pointer;
  10548. function wsprintfA;
  10549. begin
  10550. GetProcedureAddress(_wsprintfA, user32, 'wsprintfA');
  10551. asm
  10552. MOV ESP, EBP
  10553. POP EBP
  10554. JMP [_wsprintfA]
  10555. end;
  10556. end;
  10557. var
  10558. _wsprintfW: Pointer;
  10559. function wsprintfW;
  10560. begin
  10561. GetProcedureAddress(_wsprintfW, user32, 'wsprintfW');
  10562. asm
  10563. MOV ESP, EBP
  10564. POP EBP
  10565. JMP [_wsprintfW]
  10566. end;
  10567. end;
  10568. var
  10569. _wsprintf: Pointer;
  10570. function wsprintf;
  10571. begin
  10572. GetProcedureAddress(_wsprintf, user32, 'wsprintf' + AWSuffix);
  10573. asm
  10574. MOV ESP, EBP
  10575. POP EBP
  10576. JMP [_wsprintf]
  10577. end;
  10578. end;
  10579. var
  10580. _LoadKeyboardLayoutA: Pointer;
  10581. function LoadKeyboardLayoutA;
  10582. begin
  10583. GetProcedureAddress(_LoadKeyboardLayoutA, user32, 'LoadKeyboardLayoutA');
  10584. asm
  10585. MOV ESP, EBP
  10586. POP EBP
  10587. JMP [_LoadKeyboardLayoutA]
  10588. end;
  10589. end;
  10590. var
  10591. _LoadKeyboardLayoutW: Pointer;
  10592. function LoadKeyboardLayoutW;
  10593. begin
  10594. GetProcedureAddress(_LoadKeyboardLayoutW, user32, 'LoadKeyboardLayoutW');
  10595. asm
  10596. MOV ESP, EBP
  10597. POP EBP
  10598. JMP [_LoadKeyboardLayoutW]
  10599. end;
  10600. end;
  10601. var
  10602. _LoadKeyboardLayout: Pointer;
  10603. function LoadKeyboardLayout;
  10604. begin
  10605. GetProcedureAddress(_LoadKeyboardLayout, user32, 'LoadKeyboardLayout' + AWSuffix);
  10606. asm
  10607. MOV ESP, EBP
  10608. POP EBP
  10609. JMP [_LoadKeyboardLayout]
  10610. end;
  10611. end;
  10612. var
  10613. _ActivateKeyboardLayout: Pointer;
  10614. function ActivateKeyboardLayout;
  10615. begin
  10616. GetProcedureAddress(_ActivateKeyboardLayout, user32, 'ActivateKeyboardLayout');
  10617. asm
  10618. MOV ESP, EBP
  10619. POP EBP
  10620. JMP [_ActivateKeyboardLayout]
  10621. end;
  10622. end;
  10623. var
  10624. _ToUnicodeEx: Pointer;
  10625. function ToUnicodeEx;
  10626. begin
  10627. GetProcedureAddress(_ToUnicodeEx, user32, 'ToUnicodeEx');
  10628. asm
  10629. MOV ESP, EBP
  10630. POP EBP
  10631. JMP [_ToUnicodeEx]
  10632. end;
  10633. end;
  10634. var
  10635. _UnloadKeyboardLayout: Pointer;
  10636. function UnloadKeyboardLayout;
  10637. begin
  10638. GetProcedureAddress(_UnloadKeyboardLayout, user32, 'UnloadKeyboardLayout');
  10639. asm
  10640. MOV ESP, EBP
  10641. POP EBP
  10642. JMP [_UnloadKeyboardLayout]
  10643. end;
  10644. end;
  10645. var
  10646. _GetKeyboardLayoutNameA: Pointer;
  10647. function GetKeyboardLayoutNameA;
  10648. begin
  10649. GetProcedureAddress(_GetKeyboardLayoutNameA, user32, 'GetKeyboardLayoutNameA');
  10650. asm
  10651. MOV ESP, EBP
  10652. POP EBP
  10653. JMP [_GetKeyboardLayoutNameA]
  10654. end;
  10655. end;
  10656. var
  10657. _GetKeyboardLayoutNameW: Pointer;
  10658. function GetKeyboardLayoutNameW;
  10659. begin
  10660. GetProcedureAddress(_GetKeyboardLayoutNameW, user32, 'GetKeyboardLayoutNameW');
  10661. asm
  10662. MOV ESP, EBP
  10663. POP EBP
  10664. JMP [_GetKeyboardLayoutNameW]
  10665. end;
  10666. end;
  10667. var
  10668. _GetKeyboardLayoutName: Pointer;
  10669. function GetKeyboardLayoutName;
  10670. begin
  10671. GetProcedureAddress(_GetKeyboardLayoutName, user32, 'GetKeyboardLayoutName' + AWSuffix);
  10672. asm
  10673. MOV ESP, EBP
  10674. POP EBP
  10675. JMP [_GetKeyboardLayoutName]
  10676. end;
  10677. end;
  10678. var
  10679. _GetKeyboardLayoutList: Pointer;
  10680. function GetKeyboardLayoutList;
  10681. begin
  10682. GetProcedureAddress(_GetKeyboardLayoutList, user32, 'GetKeyboardLayoutList');
  10683. asm
  10684. MOV ESP, EBP
  10685. POP EBP
  10686. JMP [_GetKeyboardLayoutList]
  10687. end;
  10688. end;
  10689. var
  10690. _GetKeyboardLayout: Pointer;
  10691. function GetKeyboardLayout;
  10692. begin
  10693. GetProcedureAddress(_GetKeyboardLayout, user32, 'GetKeyboardLayout');
  10694. asm
  10695. MOV ESP, EBP
  10696. POP EBP
  10697. JMP [_GetKeyboardLayout]
  10698. end;
  10699. end;
  10700. var
  10701. _GetMouseMovePointsEx: Pointer;
  10702. function GetMouseMovePointsEx;
  10703. begin
  10704. GetProcedureAddress(_GetMouseMovePointsEx, user32, 'GetMouseMovePointsEx');
  10705. asm
  10706. MOV ESP, EBP
  10707. POP EBP
  10708. JMP [_GetMouseMovePointsEx]
  10709. end;
  10710. end;
  10711. var
  10712. _CreateDesktopA: Pointer;
  10713. function CreateDesktopA;
  10714. begin
  10715. GetProcedureAddress(_CreateDesktopA, user32, 'CreateDesktopA');
  10716. asm
  10717. MOV ESP, EBP
  10718. POP EBP
  10719. JMP [_CreateDesktopA]
  10720. end;
  10721. end;
  10722. var
  10723. _CreateDesktopW: Pointer;
  10724. function CreateDesktopW;
  10725. begin
  10726. GetProcedureAddress(_CreateDesktopW, user32, 'CreateDesktopW');
  10727. asm
  10728. MOV ESP, EBP
  10729. POP EBP
  10730. JMP [_CreateDesktopW]
  10731. end;
  10732. end;
  10733. var
  10734. _CreateDesktop: Pointer;
  10735. function CreateDesktop;
  10736. begin
  10737. GetProcedureAddress(_CreateDesktop, user32, 'CreateDesktop' + AWSuffix);
  10738. asm
  10739. MOV ESP, EBP
  10740. POP EBP
  10741. JMP [_CreateDesktop]
  10742. end;
  10743. end;
  10744. var
  10745. _OpenDesktopA: Pointer;
  10746. function OpenDesktopA;
  10747. begin
  10748. GetProcedureAddress(_OpenDesktopA, user32, 'OpenDesktopA');
  10749. asm
  10750. MOV ESP, EBP
  10751. POP EBP
  10752. JMP [_OpenDesktopA]
  10753. end;
  10754. end;
  10755. var
  10756. _OpenDesktopW: Pointer;
  10757. function OpenDesktopW;
  10758. begin
  10759. GetProcedureAddress(_OpenDesktopW, user32, 'OpenDesktopW');
  10760. asm
  10761. MOV ESP, EBP
  10762. POP EBP
  10763. JMP [_OpenDesktopW]
  10764. end;
  10765. end;
  10766. var
  10767. _OpenDesktop: Pointer;
  10768. function OpenDesktop;
  10769. begin
  10770. GetProcedureAddress(_OpenDesktop, user32, 'OpenDesktop' + AWSuffix);
  10771. asm
  10772. MOV ESP, EBP
  10773. POP EBP
  10774. JMP [_OpenDesktop]
  10775. end;
  10776. end;
  10777. var
  10778. _OpenInputDesktop: Pointer;
  10779. function OpenInputDesktop;
  10780. begin
  10781. GetProcedureAddress(_OpenInputDesktop, user32, 'OpenInputDesktop');
  10782. asm
  10783. MOV ESP, EBP
  10784. POP EBP
  10785. JMP [_OpenInputDesktop]
  10786. end;
  10787. end;
  10788. var
  10789. _EnumDesktopsA: Pointer;
  10790. function EnumDesktopsA;
  10791. begin
  10792. GetProcedureAddress(_EnumDesktopsA, user32, 'EnumDesktopsA');
  10793. asm
  10794. MOV ESP, EBP
  10795. POP EBP
  10796. JMP [_EnumDesktopsA]
  10797. end;
  10798. end;
  10799. var
  10800. _EnumDesktopsW: Pointer;
  10801. function EnumDesktopsW;
  10802. begin
  10803. GetProcedureAddress(_EnumDesktopsW, user32, 'EnumDesktopsW');
  10804. asm
  10805. MOV ESP, EBP
  10806. POP EBP
  10807. JMP [_EnumDesktopsW]
  10808. end;
  10809. end;
  10810. var
  10811. _EnumDesktops: Pointer;
  10812. function EnumDesktops;
  10813. begin
  10814. GetProcedureAddress(_EnumDesktops, user32, 'EnumDesktops' + AWSuffix);
  10815. asm
  10816. MOV ESP, EBP
  10817. POP EBP
  10818. JMP [_EnumDesktops]
  10819. end;
  10820. end;
  10821. var
  10822. _EnumDesktopWindows: Pointer;
  10823. function EnumDesktopWindows;
  10824. begin
  10825. GetProcedureAddress(_EnumDesktopWindows, user32, 'EnumDesktopWindows');
  10826. asm
  10827. MOV ESP, EBP
  10828. POP EBP
  10829. JMP [_EnumDesktopWindows]
  10830. end;
  10831. end;
  10832. var
  10833. _SwitchDesktop: Pointer;
  10834. function SwitchDesktop;
  10835. begin
  10836. GetProcedureAddress(_SwitchDesktop, user32, 'SwitchDesktop');
  10837. asm
  10838. MOV ESP, EBP
  10839. POP EBP
  10840. JMP [_SwitchDesktop]
  10841. end;
  10842. end;
  10843. var
  10844. _SetThreadDesktop: Pointer;
  10845. function SetThreadDesktop;
  10846. begin
  10847. GetProcedureAddress(_SetThreadDesktop, user32, 'SetThreadDesktop');
  10848. asm
  10849. MOV ESP, EBP
  10850. POP EBP
  10851. JMP [_SetThreadDesktop]
  10852. end;
  10853. end;
  10854. var
  10855. _CloseDesktop: Pointer;
  10856. function CloseDesktop;
  10857. begin
  10858. GetProcedureAddress(_CloseDesktop, user32, 'CloseDesktop');
  10859. asm
  10860. MOV ESP, EBP
  10861. POP EBP
  10862. JMP [_CloseDesktop]
  10863. end;
  10864. end;
  10865. var
  10866. _GetThreadDesktop: Pointer;
  10867. function GetThreadDesktop;
  10868. begin
  10869. GetProcedureAddress(_GetThreadDesktop, user32, 'GetThreadDesktop');
  10870. asm
  10871. MOV ESP, EBP
  10872. POP EBP
  10873. JMP [_GetThreadDesktop]
  10874. end;
  10875. end;
  10876. var
  10877. _CreateWindowStationA: Pointer;
  10878. function CreateWindowStationA;
  10879. begin
  10880. GetProcedureAddress(_CreateWindowStationA, user32, 'CreateWindowStationA');
  10881. asm
  10882. MOV ESP, EBP
  10883. POP EBP
  10884. JMP [_CreateWindowStationA]
  10885. end;
  10886. end;
  10887. var
  10888. _CreateWindowStationW: Pointer;
  10889. function CreateWindowStationW;
  10890. begin
  10891. GetProcedureAddress(_CreateWindowStationW, user32, 'CreateWindowStationW');
  10892. asm
  10893. MOV ESP, EBP
  10894. POP EBP
  10895. JMP [_CreateWindowStationW]
  10896. end;
  10897. end;
  10898. var
  10899. _CreateWindowStation: Pointer;
  10900. function CreateWindowStation;
  10901. begin
  10902. GetProcedureAddress(_CreateWindowStation, user32, 'CreateWindowStation' + AWSuffix);
  10903. asm
  10904. MOV ESP, EBP
  10905. POP EBP
  10906. JMP [_CreateWindowStation]
  10907. end;
  10908. end;
  10909. var
  10910. _OpenWindowStationA: Pointer;
  10911. function OpenWindowStationA;
  10912. begin
  10913. GetProcedureAddress(_OpenWindowStationA, user32, 'OpenWindowStationA');
  10914. asm
  10915. MOV ESP, EBP
  10916. POP EBP
  10917. JMP [_OpenWindowStationA]
  10918. end;
  10919. end;
  10920. var
  10921. _OpenWindowStationW: Pointer;
  10922. function OpenWindowStationW;
  10923. begin
  10924. GetProcedureAddress(_OpenWindowStationW, user32, 'OpenWindowStationW');
  10925. asm
  10926. MOV ESP, EBP
  10927. POP EBP
  10928. JMP [_OpenWindowStationW]
  10929. end;
  10930. end;
  10931. var
  10932. _OpenWindowStation: Pointer;
  10933. function OpenWindowStation;
  10934. begin
  10935. GetProcedureAddress(_OpenWindowStation, user32, 'OpenWindowStation' + AWSuffix);
  10936. asm
  10937. MOV ESP, EBP
  10938. POP EBP
  10939. JMP [_OpenWindowStation]
  10940. end;
  10941. end;
  10942. var
  10943. _EnumWindowStationsA: Pointer;
  10944. function EnumWindowStationsA;
  10945. begin
  10946. GetProcedureAddress(_EnumWindowStationsA, user32, 'EnumWindowStationsA');
  10947. asm
  10948. MOV ESP, EBP
  10949. POP EBP
  10950. JMP [_EnumWindowStationsA]
  10951. end;
  10952. end;
  10953. var
  10954. _EnumWindowStationsW: Pointer;
  10955. function EnumWindowStationsW;
  10956. begin
  10957. GetProcedureAddress(_EnumWindowStationsW, user32, 'EnumWindowStationsW');
  10958. asm
  10959. MOV ESP, EBP
  10960. POP EBP
  10961. JMP [_EnumWindowStationsW]
  10962. end;
  10963. end;
  10964. var
  10965. _EnumWindowStations: Pointer;
  10966. function EnumWindowStations;
  10967. begin
  10968. GetProcedureAddress(_EnumWindowStations, user32, 'EnumWindowStations' + AWSuffix);
  10969. asm
  10970. MOV ESP, EBP
  10971. POP EBP
  10972. JMP [_EnumWindowStations]
  10973. end;
  10974. end;
  10975. var
  10976. _CloseWindowStation: Pointer;
  10977. function CloseWindowStation;
  10978. begin
  10979. GetProcedureAddress(_CloseWindowStation, user32, 'CloseWindowStation');
  10980. asm
  10981. MOV ESP, EBP
  10982. POP EBP
  10983. JMP [_CloseWindowStation]
  10984. end;
  10985. end;
  10986. var
  10987. _SetProcessWindowStation: Pointer;
  10988. function SetProcessWindowStation;
  10989. begin
  10990. GetProcedureAddress(_SetProcessWindowStation, user32, 'SetProcessWindowStation');
  10991. asm
  10992. MOV ESP, EBP
  10993. POP EBP
  10994. JMP [_SetProcessWindowStation]
  10995. end;
  10996. end;
  10997. var
  10998. _GetProcessWindowStation: Pointer;
  10999. function GetProcessWindowStation;
  11000. begin
  11001. GetProcedureAddress(_GetProcessWindowStation, user32, 'GetProcessWindowStation');
  11002. asm
  11003. MOV ESP, EBP
  11004. POP EBP
  11005. JMP [_GetProcessWindowStation]
  11006. end;
  11007. end;
  11008. var
  11009. _SetUserObjectSecurity: Pointer;
  11010. function SetUserObjectSecurity;
  11011. begin
  11012. GetProcedureAddress(_SetUserObjectSecurity, user32, 'SetUserObjectSecurity');
  11013. asm
  11014. MOV ESP, EBP
  11015. POP EBP
  11016. JMP [_SetUserObjectSecurity]
  11017. end;
  11018. end;
  11019. var
  11020. _GetUserObjectSecurity: Pointer;
  11021. function GetUserObjectSecurity;
  11022. begin
  11023. GetProcedureAddress(_GetUserObjectSecurity, user32, 'GetUserObjectSecurity');
  11024. asm
  11025. MOV ESP, EBP
  11026. POP EBP
  11027. JMP [_GetUserObjectSecurity]
  11028. end;
  11029. end;
  11030. var
  11031. _GetUserObjectInformationA: Pointer;
  11032. function GetUserObjectInformationA;
  11033. begin
  11034. GetProcedureAddress(_GetUserObjectInformationA, user32, 'GetUserObjectInformationA');
  11035. asm
  11036. MOV ESP, EBP
  11037. POP EBP
  11038. JMP [_GetUserObjectInformationA]
  11039. end;
  11040. end;
  11041. var
  11042. _GetUserObjectInformationW: Pointer;
  11043. function GetUserObjectInformationW;
  11044. begin
  11045. GetProcedureAddress(_GetUserObjectInformationW, user32, 'GetUserObjectInformationW');
  11046. asm
  11047. MOV ESP, EBP
  11048. POP EBP
  11049. JMP [_GetUserObjectInformationW]
  11050. end;
  11051. end;
  11052. var
  11053. _GetUserObjectInformation: Pointer;
  11054. function GetUserObjectInformation;
  11055. begin
  11056. GetProcedureAddress(_GetUserObjectInformation, user32, 'GetUserObjectInformation' + AWSuffix);
  11057. asm
  11058. MOV ESP, EBP
  11059. POP EBP
  11060. JMP [_GetUserObjectInformation]
  11061. end;
  11062. end;
  11063. var
  11064. _SetUserObjectInformationA: Pointer;
  11065. function SetUserObjectInformationA;
  11066. begin
  11067. GetProcedureAddress(_SetUserObjectInformationA, user32, 'SetUserObjectInformationA');
  11068. asm
  11069. MOV ESP, EBP
  11070. POP EBP
  11071. JMP [_SetUserObjectInformationA]
  11072. end;
  11073. end;
  11074. var
  11075. _SetUserObjectInformationW: Pointer;
  11076. function SetUserObjectInformationW;
  11077. begin
  11078. GetProcedureAddress(_SetUserObjectInformationW, user32, 'SetUserObjectInformationW');
  11079. asm
  11080. MOV ESP, EBP
  11081. POP EBP
  11082. JMP [_SetUserObjectInformationW]
  11083. end;
  11084. end;
  11085. var
  11086. _SetUserObjectInformation: Pointer;
  11087. function SetUserObjectInformation;
  11088. begin
  11089. GetProcedureAddress(_SetUserObjectInformation, user32, 'SetUserObjectInformation' + AWSuffix);
  11090. asm
  11091. MOV ESP, EBP
  11092. POP EBP
  11093. JMP [_SetUserObjectInformation]
  11094. end;
  11095. end;
  11096. var
  11097. _RegisterWindowMessageA: Pointer;
  11098. function RegisterWindowMessageA;
  11099. begin
  11100. GetProcedureAddress(_RegisterWindowMessageA, user32, 'RegisterWindowMessageA');
  11101. asm
  11102. MOV ESP, EBP
  11103. POP EBP
  11104. JMP [_RegisterWindowMessageA]
  11105. end;
  11106. end;
  11107. var
  11108. _RegisterWindowMessageW: Pointer;
  11109. function RegisterWindowMessageW;
  11110. begin
  11111. GetProcedureAddress(_RegisterWindowMessageW, user32, 'RegisterWindowMessageW');
  11112. asm
  11113. MOV ESP, EBP
  11114. POP EBP
  11115. JMP [_RegisterWindowMessageW]
  11116. end;
  11117. end;
  11118. var
  11119. _RegisterWindowMessage: Pointer;
  11120. function RegisterWindowMessage;
  11121. begin
  11122. GetProcedureAddress(_RegisterWindowMessage, user32, 'RegisterWindowMessage' + AWSuffix);
  11123. asm
  11124. MOV ESP, EBP
  11125. POP EBP
  11126. JMP [_RegisterWindowMessage]
  11127. end;
  11128. end;
  11129. var
  11130. __TrackMouseEvent: Pointer;
  11131. function TrackMouseEvent;
  11132. begin
  11133. GetProcedureAddress(__TrackMouseEvent, user32, 'TrackMouseEvent');
  11134. asm
  11135. MOV ESP, EBP
  11136. POP EBP
  11137. JMP [__TrackMouseEvent]
  11138. end;
  11139. end;
  11140. var
  11141. _DrawEdge: Pointer;
  11142. function DrawEdge;
  11143. begin
  11144. GetProcedureAddress(_DrawEdge, user32, 'DrawEdge');
  11145. asm
  11146. MOV ESP, EBP
  11147. POP EBP
  11148. JMP [_DrawEdge]
  11149. end;
  11150. end;
  11151. var
  11152. _DrawFrameControl: Pointer;
  11153. function DrawFrameControl;
  11154. begin
  11155. GetProcedureAddress(_DrawFrameControl, user32, 'DrawFrameControl');
  11156. asm
  11157. MOV ESP, EBP
  11158. POP EBP
  11159. JMP [_DrawFrameControl]
  11160. end;
  11161. end;
  11162. var
  11163. _DrawCaption: Pointer;
  11164. function DrawCaption;
  11165. begin
  11166. GetProcedureAddress(_DrawCaption, user32, 'DrawCaption');
  11167. asm
  11168. MOV ESP, EBP
  11169. POP EBP
  11170. JMP [_DrawCaption]
  11171. end;
  11172. end;
  11173. var
  11174. _DrawAnimatedRects: Pointer;
  11175. function DrawAnimatedRects;
  11176. begin
  11177. GetProcedureAddress(_DrawAnimatedRects, user32, 'DrawAnimatedRects');
  11178. asm
  11179. MOV ESP, EBP
  11180. POP EBP
  11181. JMP [_DrawAnimatedRects]
  11182. end;
  11183. end;
  11184. var
  11185. _GetMessageA: Pointer;
  11186. function GetMessageA;
  11187. begin
  11188. GetProcedureAddress(_GetMessageA, user32, 'GetMessageA');
  11189. asm
  11190. MOV ESP, EBP
  11191. POP EBP
  11192. JMP [_GetMessageA]
  11193. end;
  11194. end;
  11195. var
  11196. _GetMessageW: Pointer;
  11197. function GetMessageW;
  11198. begin
  11199. GetProcedureAddress(_GetMessageW, user32, 'GetMessageW');
  11200. asm
  11201. MOV ESP, EBP
  11202. POP EBP
  11203. JMP [_GetMessageW]
  11204. end;
  11205. end;
  11206. var
  11207. _GetMessage: Pointer;
  11208. function GetMessage;
  11209. begin
  11210. GetProcedureAddress(_GetMessage, user32, 'GetMessage' + AWSuffix);
  11211. asm
  11212. MOV ESP, EBP
  11213. POP EBP
  11214. JMP [_GetMessage]
  11215. end;
  11216. end;
  11217. var
  11218. _TranslateMessage: Pointer;
  11219. function TranslateMessage;
  11220. begin
  11221. GetProcedureAddress(_TranslateMessage, user32, 'TranslateMessage');
  11222. asm
  11223. MOV ESP, EBP
  11224. POP EBP
  11225. JMP [_TranslateMessage]
  11226. end;
  11227. end;
  11228. var
  11229. _DispatchMessageA: Pointer;
  11230. function DispatchMessageA;
  11231. begin
  11232. GetProcedureAddress(_DispatchMessageA, user32, 'DispatchMessageA');
  11233. asm
  11234. MOV ESP, EBP
  11235. POP EBP
  11236. JMP [_DispatchMessageA]
  11237. end;
  11238. end;
  11239. var
  11240. _DispatchMessageW: Pointer;
  11241. function DispatchMessageW;
  11242. begin
  11243. GetProcedureAddress(_DispatchMessageW, user32, 'DispatchMessageW');
  11244. asm
  11245. MOV ESP, EBP
  11246. POP EBP
  11247. JMP [_DispatchMessageW]
  11248. end;
  11249. end;
  11250. var
  11251. _DispatchMessage: Pointer;
  11252. function DispatchMessage;
  11253. begin
  11254. GetProcedureAddress(_DispatchMessage, user32, 'DispatchMessage' + AWSuffix);
  11255. asm
  11256. MOV ESP, EBP
  11257. POP EBP
  11258. JMP [_DispatchMessage]
  11259. end;
  11260. end;
  11261. var
  11262. _SetMessageQueue: Pointer;
  11263. function SetMessageQueue;
  11264. begin
  11265. GetProcedureAddress(_SetMessageQueue, user32, 'SetMessageQueue');
  11266. asm
  11267. MOV ESP, EBP
  11268. POP EBP
  11269. JMP [_SetMessageQueue]
  11270. end;
  11271. end;
  11272. var
  11273. _PeekMessageA: Pointer;
  11274. function PeekMessageA;
  11275. begin
  11276. GetProcedureAddress(_PeekMessageA, user32, 'PeekMessageA');
  11277. asm
  11278. MOV ESP, EBP
  11279. POP EBP
  11280. JMP [_PeekMessageA]
  11281. end;
  11282. end;
  11283. var
  11284. _PeekMessageW: Pointer;
  11285. function PeekMessageW;
  11286. begin
  11287. GetProcedureAddress(_PeekMessageW, user32, 'PeekMessageW');
  11288. asm
  11289. MOV ESP, EBP
  11290. POP EBP
  11291. JMP [_PeekMessageW]
  11292. end;
  11293. end;
  11294. var
  11295. _PeekMessage: Pointer;
  11296. function PeekMessage;
  11297. begin
  11298. GetProcedureAddress(_PeekMessage, user32, 'PeekMessage' + AWSuffix);
  11299. asm
  11300. MOV ESP, EBP
  11301. POP EBP
  11302. JMP [_PeekMessage]
  11303. end;
  11304. end;
  11305. var
  11306. _RegisterHotKey: Pointer;
  11307. function RegisterHotKey;
  11308. begin
  11309. GetProcedureAddress(_RegisterHotKey, user32, 'RegisterHotKey');
  11310. asm
  11311. MOV ESP, EBP
  11312. POP EBP
  11313. JMP [_RegisterHotKey]
  11314. end;
  11315. end;
  11316. var
  11317. _UnregisterHotKey: Pointer;
  11318. function UnregisterHotKey;
  11319. begin
  11320. GetProcedureAddress(_UnregisterHotKey, user32, 'UnregisterHotKey');
  11321. asm
  11322. MOV ESP, EBP
  11323. POP EBP
  11324. JMP [_UnregisterHotKey]
  11325. end;
  11326. end;
  11327. var
  11328. _ExitWindowsEx: Pointer;
  11329. function ExitWindowsEx;
  11330. begin
  11331. GetProcedureAddress(_ExitWindowsEx, user32, 'ExitWindowsEx');
  11332. asm
  11333. MOV ESP, EBP
  11334. POP EBP
  11335. JMP [_ExitWindowsEx]
  11336. end;
  11337. end;
  11338. var
  11339. _SwapMouseButton: Pointer;
  11340. function SwapMouseButton;
  11341. begin
  11342. GetProcedureAddress(_SwapMouseButton, user32, 'SwapMouseButton');
  11343. asm
  11344. MOV ESP, EBP
  11345. POP EBP
  11346. JMP [_SwapMouseButton]
  11347. end;
  11348. end;
  11349. var
  11350. _GetMessagePos: Pointer;
  11351. function GetMessagePos;
  11352. begin
  11353. GetProcedureAddress(_GetMessagePos, user32, 'GetMessagePos');
  11354. asm
  11355. MOV ESP, EBP
  11356. POP EBP
  11357. JMP [_GetMessagePos]
  11358. end;
  11359. end;
  11360. var
  11361. _GetMessageTime: Pointer;
  11362. function GetMessageTime;
  11363. begin
  11364. GetProcedureAddress(_GetMessageTime, user32, 'GetMessageTime');
  11365. asm
  11366. MOV ESP, EBP
  11367. POP EBP
  11368. JMP [_GetMessageTime]
  11369. end;
  11370. end;
  11371. var
  11372. _GetMessageExtraInfo: Pointer;
  11373. function GetMessageExtraInfo;
  11374. begin
  11375. GetProcedureAddress(_GetMessageExtraInfo, user32, 'GetMessageExtraInfo');
  11376. asm
  11377. MOV ESP, EBP
  11378. POP EBP
  11379. JMP [_GetMessageExtraInfo]
  11380. end;
  11381. end;
  11382. var
  11383. _SetMessageExtraInfo: Pointer;
  11384. function SetMessageExtraInfo;
  11385. begin
  11386. GetProcedureAddress(_SetMessageExtraInfo, user32, 'SetMessageExtraInfo');
  11387. asm
  11388. MOV ESP, EBP
  11389. POP EBP
  11390. JMP [_SetMessageExtraInfo]
  11391. end;
  11392. end;
  11393. var
  11394. _SendMessageA: Pointer;
  11395. function SendMessageA;
  11396. begin
  11397. GetProcedureAddress(_SendMessageA, user32, 'SendMessageA');
  11398. asm
  11399. MOV ESP, EBP
  11400. POP EBP
  11401. JMP [_SendMessageA]
  11402. end;
  11403. end;
  11404. var
  11405. _SendMessageW: Pointer;
  11406. function SendMessageW;
  11407. begin
  11408. GetProcedureAddress(_SendMessageW, user32, 'SendMessageW');
  11409. asm
  11410. MOV ESP, EBP
  11411. POP EBP
  11412. JMP [_SendMessageW]
  11413. end;
  11414. end;
  11415. var
  11416. _SendMessage: Pointer;
  11417. function SendMessage;
  11418. begin
  11419. GetProcedureAddress(_SendMessage, user32, 'SendMessage' + AWSuffix);
  11420. asm
  11421. MOV ESP, EBP
  11422. POP EBP
  11423. JMP [_SendMessage]
  11424. end;
  11425. end;
  11426. var
  11427. _SendMessageTimeoutA: Pointer;
  11428. function SendMessageTimeoutA;
  11429. begin
  11430. GetProcedureAddress(_SendMessageTimeoutA, user32, 'SendMessageTimeoutA');
  11431. asm
  11432. MOV ESP, EBP
  11433. POP EBP
  11434. JMP [_SendMessageTimeoutA]
  11435. end;
  11436. end;
  11437. var
  11438. _SendMessageTimeoutW: Pointer;
  11439. function SendMessageTimeoutW;
  11440. begin
  11441. GetProcedureAddress(_SendMessageTimeoutW, user32, 'SendMessageTimeoutW');
  11442. asm
  11443. MOV ESP, EBP
  11444. POP EBP
  11445. JMP [_SendMessageTimeoutW]
  11446. end;
  11447. end;
  11448. var
  11449. _SendMessageTimeout: Pointer;
  11450. function SendMessageTimeout;
  11451. begin
  11452. GetProcedureAddress(_SendMessageTimeout, user32, 'SendMessageTimeout' + AWSuffix);
  11453. asm
  11454. MOV ESP, EBP
  11455. POP EBP
  11456. JMP [_SendMessageTimeout]
  11457. end;
  11458. end;
  11459. var
  11460. _SendNotifyMessageA: Pointer;
  11461. function SendNotifyMessageA;
  11462. begin
  11463. GetProcedureAddress(_SendNotifyMessageA, user32, 'SendNotifyMessageA');
  11464. asm
  11465. MOV ESP, EBP
  11466. POP EBP
  11467. JMP [_SendNotifyMessageA]
  11468. end;
  11469. end;
  11470. var
  11471. _SendNotifyMessageW: Pointer;
  11472. function SendNotifyMessageW;
  11473. begin
  11474. GetProcedureAddress(_SendNotifyMessageW, user32, 'SendNotifyMessageW');
  11475. asm
  11476. MOV ESP, EBP
  11477. POP EBP
  11478. JMP [_SendNotifyMessageW]
  11479. end;
  11480. end;
  11481. var
  11482. _SendNotifyMessage: Pointer;
  11483. function SendNotifyMessage;
  11484. begin
  11485. GetProcedureAddress(_SendNotifyMessage, user32, 'SendNotifyMessage' + AWSuffix);
  11486. asm
  11487. MOV ESP, EBP
  11488. POP EBP
  11489. JMP [_SendNotifyMessage]
  11490. end;
  11491. end;
  11492. var
  11493. _SendMessageCallbackA: Pointer;
  11494. function SendMessageCallbackA;
  11495. begin
  11496. GetProcedureAddress(_SendMessageCallbackA, user32, 'SendMessageCallbackA');
  11497. asm
  11498. MOV ESP, EBP
  11499. POP EBP
  11500. JMP [_SendMessageCallbackA]
  11501. end;
  11502. end;
  11503. var
  11504. _SendMessageCallbackW: Pointer;
  11505. function SendMessageCallbackW;
  11506. begin
  11507. GetProcedureAddress(_SendMessageCallbackW, user32, 'SendMessageCallbackW');
  11508. asm
  11509. MOV ESP, EBP
  11510. POP EBP
  11511. JMP [_SendMessageCallbackW]
  11512. end;
  11513. end;
  11514. var
  11515. _SendMessageCallback: Pointer;
  11516. function SendMessageCallback;
  11517. begin
  11518. GetProcedureAddress(_SendMessageCallback, user32, 'SendMessageCallback' + AWSuffix);
  11519. asm
  11520. MOV ESP, EBP
  11521. POP EBP
  11522. JMP [_SendMessageCallback]
  11523. end;
  11524. end;
  11525. var
  11526. _BroadcastSystemMessageExA: Pointer;
  11527. function BroadcastSystemMessageExA;
  11528. begin
  11529. GetProcedureAddress(_BroadcastSystemMessageExA, user32, 'BroadcastSystemMessageExA');
  11530. asm
  11531. MOV ESP, EBP
  11532. POP EBP
  11533. JMP [_BroadcastSystemMessageExA]
  11534. end;
  11535. end;
  11536. var
  11537. _BroadcastSystemMessageExW: Pointer;
  11538. function BroadcastSystemMessageExW;
  11539. begin
  11540. GetProcedureAddress(_BroadcastSystemMessageExW, user32, 'BroadcastSystemMessageExW');
  11541. asm
  11542. MOV ESP, EBP
  11543. POP EBP
  11544. JMP [_BroadcastSystemMessageExW]
  11545. end;
  11546. end;
  11547. var
  11548. _BroadcastSystemMessageEx: Pointer;
  11549. function BroadcastSystemMessageEx;
  11550. begin
  11551. GetProcedureAddress(_BroadcastSystemMessageEx, user32, 'BroadcastSystemMessageEx' + AWSuffix);
  11552. asm
  11553. MOV ESP, EBP
  11554. POP EBP
  11555. JMP [_BroadcastSystemMessageEx]
  11556. end;
  11557. end;
  11558. var
  11559. _BroadcastSystemMessageA: Pointer;
  11560. function BroadcastSystemMessageA;
  11561. begin
  11562. GetProcedureAddress(_BroadcastSystemMessageA, user32, 'BroadcastSystemMessageA');
  11563. asm
  11564. MOV ESP, EBP
  11565. POP EBP
  11566. JMP [_BroadcastSystemMessageA]
  11567. end;
  11568. end;
  11569. var
  11570. _BroadcastSystemMessageW: Pointer;
  11571. function BroadcastSystemMessageW;
  11572. begin
  11573. GetProcedureAddress(_BroadcastSystemMessageW, user32, 'BroadcastSystemMessageW');
  11574. asm
  11575. MOV ESP, EBP
  11576. POP EBP
  11577. JMP [_BroadcastSystemMessageW]
  11578. end;
  11579. end;
  11580. var
  11581. _BroadcastSystemMessage: Pointer;
  11582. function BroadcastSystemMessage;
  11583. begin
  11584. GetProcedureAddress(_BroadcastSystemMessage, user32, 'BroadcastSystemMessage' + AWSuffix);
  11585. asm
  11586. MOV ESP, EBP
  11587. POP EBP
  11588. JMP [_BroadcastSystemMessage]
  11589. end;
  11590. end;
  11591. var
  11592. _RegisterDeviceNotificationA: Pointer;
  11593. function RegisterDeviceNotificationA;
  11594. begin
  11595. GetProcedureAddress(_RegisterDeviceNotificationA, user32, 'RegisterDeviceNotificationA');
  11596. asm
  11597. MOV ESP, EBP
  11598. POP EBP
  11599. JMP [_RegisterDeviceNotificationA]
  11600. end;
  11601. end;
  11602. var
  11603. _RegisterDeviceNotificationW: Pointer;
  11604. function RegisterDeviceNotificationW;
  11605. begin
  11606. GetProcedureAddress(_RegisterDeviceNotificationW, user32, 'RegisterDeviceNotificationW');
  11607. asm
  11608. MOV ESP, EBP
  11609. POP EBP
  11610. JMP [_RegisterDeviceNotificationW]
  11611. end;
  11612. end;
  11613. var
  11614. _RegisterDeviceNotification: Pointer;
  11615. function RegisterDeviceNotification;
  11616. begin
  11617. GetProcedureAddress(_RegisterDeviceNotification, user32, 'RegisterDeviceNotification' + AWSuffix);
  11618. asm
  11619. MOV ESP, EBP
  11620. POP EBP
  11621. JMP [_RegisterDeviceNotification]
  11622. end;
  11623. end;
  11624. var
  11625. _UnregisterDeviceNotification: Pointer;
  11626. function UnregisterDeviceNotification;
  11627. begin
  11628. GetProcedureAddress(_UnregisterDeviceNotification, user32, 'UnregisterDeviceNotification');
  11629. asm
  11630. MOV ESP, EBP
  11631. POP EBP
  11632. JMP [_UnregisterDeviceNotification]
  11633. end;
  11634. end;
  11635. var
  11636. _PostMessageA: Pointer;
  11637. function PostMessageA;
  11638. begin
  11639. GetProcedureAddress(_PostMessageA, user32, 'PostMessageA');
  11640. asm
  11641. MOV ESP, EBP
  11642. POP EBP
  11643. JMP [_PostMessageA]
  11644. end;
  11645. end;
  11646. var
  11647. _PostMessageW: Pointer;
  11648. function PostMessageW;
  11649. begin
  11650. GetProcedureAddress(_PostMessageW, user32, 'PostMessageW');
  11651. asm
  11652. MOV ESP, EBP
  11653. POP EBP
  11654. JMP [_PostMessageW]
  11655. end;
  11656. end;
  11657. var
  11658. _PostMessage: Pointer;
  11659. function PostMessage;
  11660. begin
  11661. GetProcedureAddress(_PostMessage, user32, 'PostMessage' + AWSuffix);
  11662. asm
  11663. MOV ESP, EBP
  11664. POP EBP
  11665. JMP [_PostMessage]
  11666. end;
  11667. end;
  11668. var
  11669. _PostThreadMessageA: Pointer;
  11670. function PostThreadMessageA;
  11671. begin
  11672. GetProcedureAddress(_PostThreadMessageA, user32, 'PostThreadMessageA');
  11673. asm
  11674. MOV ESP, EBP
  11675. POP EBP
  11676. JMP [_PostThreadMessageA]
  11677. end;
  11678. end;
  11679. var
  11680. _PostThreadMessageW: Pointer;
  11681. function PostThreadMessageW;
  11682. begin
  11683. GetProcedureAddress(_PostThreadMessageW, user32, 'PostThreadMessageW');
  11684. asm
  11685. MOV ESP, EBP
  11686. POP EBP
  11687. JMP [_PostThreadMessageW]
  11688. end;
  11689. end;
  11690. var
  11691. _PostThreadMessage: Pointer;
  11692. function PostThreadMessage;
  11693. begin
  11694. GetProcedureAddress(_PostThreadMessage, user32, 'PostThreadMessage' + AWSuffix);
  11695. asm
  11696. MOV ESP, EBP
  11697. POP EBP
  11698. JMP [_PostThreadMessage]
  11699. end;
  11700. end;
  11701. var
  11702. _AttachThreadInput: Pointer;
  11703. function AttachThreadInput;
  11704. begin
  11705. GetProcedureAddress(_AttachThreadInput, user32, 'AttachThreadInput');
  11706. asm
  11707. MOV ESP, EBP
  11708. POP EBP
  11709. JMP [_AttachThreadInput]
  11710. end;
  11711. end;
  11712. var
  11713. _ReplyMessage: Pointer;
  11714. function ReplyMessage;
  11715. begin
  11716. GetProcedureAddress(_ReplyMessage, user32, 'ReplyMessage');
  11717. asm
  11718. MOV ESP, EBP
  11719. POP EBP
  11720. JMP [_ReplyMessage]
  11721. end;
  11722. end;
  11723. var
  11724. _WaitMessage: Pointer;
  11725. function WaitMessage;
  11726. begin
  11727. GetProcedureAddress(_WaitMessage, user32, 'WaitMessage');
  11728. asm
  11729. MOV ESP, EBP
  11730. POP EBP
  11731. JMP [_WaitMessage]
  11732. end;
  11733. end;
  11734. var
  11735. _WaitForInputIdle: Pointer;
  11736. function WaitForInputIdle;
  11737. begin
  11738. GetProcedureAddress(_WaitForInputIdle, user32, 'WaitForInputIdle');
  11739. asm
  11740. MOV ESP, EBP
  11741. POP EBP
  11742. JMP [_WaitForInputIdle]
  11743. end;
  11744. end;
  11745. var
  11746. _DefWindowProcA: Pointer;
  11747. function DefWindowProcA;
  11748. begin
  11749. GetProcedureAddress(_DefWindowProcA, user32, 'DefWindowProcA');
  11750. asm
  11751. MOV ESP, EBP
  11752. POP EBP
  11753. JMP [_DefWindowProcA]
  11754. end;
  11755. end;
  11756. var
  11757. _DefWindowProcW: Pointer;
  11758. function DefWindowProcW;
  11759. begin
  11760. GetProcedureAddress(_DefWindowProcW, user32, 'DefWindowProcW');
  11761. asm
  11762. MOV ESP, EBP
  11763. POP EBP
  11764. JMP [_DefWindowProcW]
  11765. end;
  11766. end;
  11767. var
  11768. _DefWindowProc: Pointer;
  11769. function DefWindowProc;
  11770. begin
  11771. GetProcedureAddress(_DefWindowProc, user32, 'DefWindowProc' + AWSuffix);
  11772. asm
  11773. MOV ESP, EBP
  11774. POP EBP
  11775. JMP [_DefWindowProc]
  11776. end;
  11777. end;
  11778. var
  11779. _PostQuitMessage: Pointer;
  11780. procedure PostQuitMessage;
  11781. begin
  11782. GetProcedureAddress(_PostQuitMessage, user32, 'PostQuitMessage');
  11783. asm
  11784. MOV ESP, EBP
  11785. POP EBP
  11786. JMP [_PostQuitMessage]
  11787. end;
  11788. end;
  11789. var
  11790. _CallWindowProcA: Pointer;
  11791. function CallWindowProcA;
  11792. begin
  11793. GetProcedureAddress(_CallWindowProcA, user32, 'CallWindowProcA');
  11794. asm
  11795. MOV ESP, EBP
  11796. POP EBP
  11797. JMP [_CallWindowProcA]
  11798. end;
  11799. end;
  11800. var
  11801. _CallWindowProcW: Pointer;
  11802. function CallWindowProcW;
  11803. begin
  11804. GetProcedureAddress(_CallWindowProcW, user32, 'CallWindowProcW');
  11805. asm
  11806. MOV ESP, EBP
  11807. POP EBP
  11808. JMP [_CallWindowProcW]
  11809. end;
  11810. end;
  11811. var
  11812. _CallWindowProc: Pointer;
  11813. function CallWindowProc;
  11814. begin
  11815. GetProcedureAddress(_CallWindowProc, user32, 'CallWindowProc' + AWSuffix);
  11816. asm
  11817. MOV ESP, EBP
  11818. POP EBP
  11819. JMP [_CallWindowProc]
  11820. end;
  11821. end;
  11822. var
  11823. _InSendMessage: Pointer;
  11824. function InSendMessage;
  11825. begin
  11826. GetProcedureAddress(_InSendMessage, user32, 'InSendMessage');
  11827. asm
  11828. MOV ESP, EBP
  11829. POP EBP
  11830. JMP [_InSendMessage]
  11831. end;
  11832. end;
  11833. var
  11834. _InSendMessageEx: Pointer;
  11835. function InSendMessageEx;
  11836. begin
  11837. GetProcedureAddress(_InSendMessageEx, user32, 'InSendMessageEx');
  11838. asm
  11839. MOV ESP, EBP
  11840. POP EBP
  11841. JMP [_InSendMessageEx]
  11842. end;
  11843. end;
  11844. var
  11845. _GetDoubleClickTime: Pointer;
  11846. function GetDoubleClickTime;
  11847. begin
  11848. GetProcedureAddress(_GetDoubleClickTime, user32, 'GetDoubleClickTime');
  11849. asm
  11850. MOV ESP, EBP
  11851. POP EBP
  11852. JMP [_GetDoubleClickTime]
  11853. end;
  11854. end;
  11855. var
  11856. _SetDoubleClickTime: Pointer;
  11857. function SetDoubleClickTime;
  11858. begin
  11859. GetProcedureAddress(_SetDoubleClickTime, user32, 'SetDoubleClickTime');
  11860. asm
  11861. MOV ESP, EBP
  11862. POP EBP
  11863. JMP [_SetDoubleClickTime]
  11864. end;
  11865. end;
  11866. var
  11867. _RegisterClassA: Pointer;
  11868. function RegisterClassA;
  11869. begin
  11870. GetProcedureAddress(_RegisterClassA, user32, 'RegisterClassA');
  11871. asm
  11872. MOV ESP, EBP
  11873. POP EBP
  11874. JMP [_RegisterClassA]
  11875. end;
  11876. end;
  11877. var
  11878. _RegisterClassW: Pointer;
  11879. function RegisterClassW;
  11880. begin
  11881. GetProcedureAddress(_RegisterClassW, user32, 'RegisterClassW');
  11882. asm
  11883. MOV ESP, EBP
  11884. POP EBP
  11885. JMP [_RegisterClassW]
  11886. end;
  11887. end;
  11888. var
  11889. _RegisterClass: Pointer;
  11890. function RegisterClass;
  11891. begin
  11892. GetProcedureAddress(_RegisterClass, user32, 'RegisterClass' + AWSuffix);
  11893. asm
  11894. MOV ESP, EBP
  11895. POP EBP
  11896. JMP [_RegisterClass]
  11897. end;
  11898. end;
  11899. var
  11900. _UnregisterClassA: Pointer;
  11901. function UnregisterClassA;
  11902. begin
  11903. GetProcedureAddress(_UnregisterClassA, user32, 'UnregisterClassA');
  11904. asm
  11905. MOV ESP, EBP
  11906. POP EBP
  11907. JMP [_UnregisterClassA]
  11908. end;
  11909. end;
  11910. var
  11911. _UnregisterClassW: Pointer;
  11912. function UnregisterClassW;
  11913. begin
  11914. GetProcedureAddress(_UnregisterClassW, user32, 'UnregisterClassW');
  11915. asm
  11916. MOV ESP, EBP
  11917. POP EBP
  11918. JMP [_UnregisterClassW]
  11919. end;
  11920. end;
  11921. var
  11922. _UnregisterClass: Pointer;
  11923. function UnregisterClass;
  11924. begin
  11925. GetProcedureAddress(_UnregisterClass, user32, 'UnregisterClass' + AWSuffix);
  11926. asm
  11927. MOV ESP, EBP
  11928. POP EBP
  11929. JMP [_UnregisterClass]
  11930. end;
  11931. end;
  11932. var
  11933. _GetClassInfoA: Pointer;
  11934. function GetClassInfoA;
  11935. begin
  11936. GetProcedureAddress(_GetClassInfoA, user32, 'GetClassInfoA');
  11937. asm
  11938. MOV ESP, EBP
  11939. POP EBP
  11940. JMP [_GetClassInfoA]
  11941. end;
  11942. end;
  11943. var
  11944. _GetClassInfoW: Pointer;
  11945. function GetClassInfoW;
  11946. begin
  11947. GetProcedureAddress(_GetClassInfoW, user32, 'GetClassInfoW');
  11948. asm
  11949. MOV ESP, EBP
  11950. POP EBP
  11951. JMP [_GetClassInfoW]
  11952. end;
  11953. end;
  11954. var
  11955. _GetClassInfo: Pointer;
  11956. function GetClassInfo;
  11957. begin
  11958. GetProcedureAddress(_GetClassInfo, user32, 'GetClassInfo' + AWSuffix);
  11959. asm
  11960. MOV ESP, EBP
  11961. POP EBP
  11962. JMP [_GetClassInfo]
  11963. end;
  11964. end;
  11965. var
  11966. _RegisterClassExA: Pointer;
  11967. function RegisterClassExA;
  11968. begin
  11969. GetProcedureAddress(_RegisterClassExA, user32, 'RegisterClassExA');
  11970. asm
  11971. MOV ESP, EBP
  11972. POP EBP
  11973. JMP [_RegisterClassExA]
  11974. end;
  11975. end;
  11976. var
  11977. _RegisterClassExW: Pointer;
  11978. function RegisterClassExW;
  11979. begin
  11980. GetProcedureAddress(_RegisterClassExW, user32, 'RegisterClassExW');
  11981. asm
  11982. MOV ESP, EBP
  11983. POP EBP
  11984. JMP [_RegisterClassExW]
  11985. end;
  11986. end;
  11987. var
  11988. _RegisterClassEx: Pointer;
  11989. function RegisterClassEx;
  11990. begin
  11991. GetProcedureAddress(_RegisterClassEx, user32, 'RegisterClassEx' + AWSuffix);
  11992. asm
  11993. MOV ESP, EBP
  11994. POP EBP
  11995. JMP [_RegisterClassEx]
  11996. end;
  11997. end;
  11998. var
  11999. _GetClassInfoExA: Pointer;
  12000. function GetClassInfoExA;
  12001. begin
  12002. GetProcedureAddress(_GetClassInfoExA, user32, 'GetClassInfoExA');
  12003. asm
  12004. MOV ESP, EBP
  12005. POP EBP
  12006. JMP [_GetClassInfoExA]
  12007. end;
  12008. end;
  12009. var
  12010. _GetClassInfoExW: Pointer;
  12011. function GetClassInfoExW;
  12012. begin
  12013. GetProcedureAddress(_GetClassInfoExW, user32, 'GetClassInfoExW');
  12014. asm
  12015. MOV ESP, EBP
  12016. POP EBP
  12017. JMP [_GetClassInfoExW]
  12018. end;
  12019. end;
  12020. var
  12021. _GetClassInfoEx: Pointer;
  12022. function GetClassInfoEx;
  12023. begin
  12024. GetProcedureAddress(_GetClassInfoEx, user32, 'GetClassInfoEx' + AWSuffix);
  12025. asm
  12026. MOV ESP, EBP
  12027. POP EBP
  12028. JMP [_GetClassInfoEx]
  12029. end;
  12030. end;
  12031. var
  12032. _CreateWindowExA: Pointer;
  12033. function CreateWindowExA;
  12034. begin
  12035. GetProcedureAddress(_CreateWindowExA, user32, 'CreateWindowExA');
  12036. asm
  12037. MOV ESP, EBP
  12038. POP EBP
  12039. JMP [_CreateWindowExA]
  12040. end;
  12041. end;
  12042. var
  12043. _CreateWindowExW: Pointer;
  12044. function CreateWindowExW;
  12045. begin
  12046. GetProcedureAddress(_CreateWindowExW, user32, 'CreateWindowExW');
  12047. asm
  12048. MOV ESP, EBP
  12049. POP EBP
  12050. JMP [_CreateWindowExW]
  12051. end;
  12052. end;
  12053. var
  12054. _CreateWindowEx: Pointer;
  12055. function CreateWindowEx;
  12056. begin
  12057. GetProcedureAddress(_CreateWindowEx, user32, 'CreateWindowEx' + AWSuffix);
  12058. asm
  12059. MOV ESP, EBP
  12060. POP EBP
  12061. JMP [_CreateWindowEx]
  12062. end;
  12063. end;
  12064. var
  12065. _IsWindow: Pointer;
  12066. function IsWindow;
  12067. begin
  12068. GetProcedureAddress(_IsWindow, user32, 'IsWindow');
  12069. asm
  12070. MOV ESP, EBP
  12071. POP EBP
  12072. JMP [_IsWindow]
  12073. end;
  12074. end;
  12075. var
  12076. _IsMenu: Pointer;
  12077. function IsMenu;
  12078. begin
  12079. GetProcedureAddress(_IsMenu, user32, 'IsMenu');
  12080. asm
  12081. MOV ESP, EBP
  12082. POP EBP
  12083. JMP [_IsMenu]
  12084. end;
  12085. end;
  12086. var
  12087. _IsChild: Pointer;
  12088. function IsChild;
  12089. begin
  12090. GetProcedureAddress(_IsChild, user32, 'IsChild');
  12091. asm
  12092. MOV ESP, EBP
  12093. POP EBP
  12094. JMP [_IsChild]
  12095. end;
  12096. end;
  12097. var
  12098. _DestroyWindow: Pointer;
  12099. function DestroyWindow;
  12100. begin
  12101. GetProcedureAddress(_DestroyWindow, user32, 'DestroyWindow');
  12102. asm
  12103. MOV ESP, EBP
  12104. POP EBP
  12105. JMP [_DestroyWindow]
  12106. end;
  12107. end;
  12108. var
  12109. _ShowWindow: Pointer;
  12110. function ShowWindow;
  12111. begin
  12112. GetProcedureAddress(_ShowWindow, user32, 'ShowWindow');
  12113. asm
  12114. MOV ESP, EBP
  12115. POP EBP
  12116. JMP [_ShowWindow]
  12117. end;
  12118. end;
  12119. var
  12120. _AnimateWindow: Pointer;
  12121. function AnimateWindow;
  12122. begin
  12123. GetProcedureAddress(_AnimateWindow, user32, 'AnimateWindow');
  12124. asm
  12125. MOV ESP, EBP
  12126. POP EBP
  12127. JMP [_AnimateWindow]
  12128. end;
  12129. end;
  12130. var
  12131. _UpdateLayeredWindow: Pointer;
  12132. function UpdateLayeredWindow;
  12133. begin
  12134. GetProcedureAddress(_UpdateLayeredWindow, user32, 'UpdateLayeredWindow');
  12135. asm
  12136. MOV ESP, EBP
  12137. POP EBP
  12138. JMP [_UpdateLayeredWindow]
  12139. end;
  12140. end;
  12141. var
  12142. _GetLayeredWindowAttributes: Pointer;
  12143. function GetLayeredWindowAttributes;
  12144. begin
  12145. GetProcedureAddress(_GetLayeredWindowAttributes, user32, 'GetLayeredWindowAttributes');
  12146. asm
  12147. MOV ESP, EBP
  12148. POP EBP
  12149. JMP [_GetLayeredWindowAttributes]
  12150. end;
  12151. end;
  12152. var
  12153. _PrintWindow: Pointer;
  12154. function PrintWindow;
  12155. begin
  12156. GetProcedureAddress(_PrintWindow, user32, 'PrintWindow');
  12157. asm
  12158. MOV ESP, EBP
  12159. POP EBP
  12160. JMP [_PrintWindow]
  12161. end;
  12162. end;
  12163. var
  12164. _SetLayeredWindowAttributes: Pointer;
  12165. function SetLayeredWindowAttributes;
  12166. begin
  12167. GetProcedureAddress(_SetLayeredWindowAttributes, user32, 'SetLayeredWindowAttributes');
  12168. asm
  12169. MOV ESP, EBP
  12170. POP EBP
  12171. JMP [_SetLayeredWindowAttributes]
  12172. end;
  12173. end;
  12174. var
  12175. _ShowWindowAsync: Pointer;
  12176. function ShowWindowAsync;
  12177. begin
  12178. GetProcedureAddress(_ShowWindowAsync, user32, 'ShowWindowAsync');
  12179. asm
  12180. MOV ESP, EBP
  12181. POP EBP
  12182. JMP [_ShowWindowAsync]
  12183. end;
  12184. end;
  12185. var
  12186. _FlashWindow: Pointer;
  12187. function FlashWindow;
  12188. begin
  12189. GetProcedureAddress(_FlashWindow, user32, 'FlashWindow');
  12190. asm
  12191. MOV ESP, EBP
  12192. POP EBP
  12193. JMP [_FlashWindow]
  12194. end;
  12195. end;
  12196. var
  12197. _FlashWindowEx: Pointer;
  12198. function FlashWindowEx;
  12199. begin
  12200. GetProcedureAddress(_FlashWindowEx, user32, 'FlashWindowEx');
  12201. asm
  12202. MOV ESP, EBP
  12203. POP EBP
  12204. JMP [_FlashWindowEx]
  12205. end;
  12206. end;
  12207. var
  12208. _ShowOwnedPopups: Pointer;
  12209. function ShowOwnedPopups;
  12210. begin
  12211. GetProcedureAddress(_ShowOwnedPopups, user32, 'ShowOwnedPopups');
  12212. asm
  12213. MOV ESP, EBP
  12214. POP EBP
  12215. JMP [_ShowOwnedPopups]
  12216. end;
  12217. end;
  12218. var
  12219. _OpenIcon: Pointer;
  12220. function OpenIcon;
  12221. begin
  12222. GetProcedureAddress(_OpenIcon, user32, 'OpenIcon');
  12223. asm
  12224. MOV ESP, EBP
  12225. POP EBP
  12226. JMP [_OpenIcon]
  12227. end;
  12228. end;
  12229. var
  12230. _CloseWindow: Pointer;
  12231. function CloseWindow;
  12232. begin
  12233. GetProcedureAddress(_CloseWindow, user32, 'CloseWindow');
  12234. asm
  12235. MOV ESP, EBP
  12236. POP EBP
  12237. JMP [_CloseWindow]
  12238. end;
  12239. end;
  12240. var
  12241. _MoveWindow: Pointer;
  12242. function MoveWindow;
  12243. begin
  12244. GetProcedureAddress(_MoveWindow, user32, 'MoveWindow');
  12245. asm
  12246. MOV ESP, EBP
  12247. POP EBP
  12248. JMP [_MoveWindow]
  12249. end;
  12250. end;
  12251. var
  12252. _SetWindowPos: Pointer;
  12253. function SetWindowPos;
  12254. begin
  12255. GetProcedureAddress(_SetWindowPos, user32, 'SetWindowPos');
  12256. asm
  12257. MOV ESP, EBP
  12258. POP EBP
  12259. JMP [_SetWindowPos]
  12260. end;
  12261. end;
  12262. var
  12263. _GetWindowPlacement: Pointer;
  12264. function GetWindowPlacement;
  12265. begin
  12266. GetProcedureAddress(_GetWindowPlacement, user32, 'GetWindowPlacement');
  12267. asm
  12268. MOV ESP, EBP
  12269. POP EBP
  12270. JMP [_GetWindowPlacement]
  12271. end;
  12272. end;
  12273. var
  12274. _SetWindowPlacement: Pointer;
  12275. function SetWindowPlacement;
  12276. begin
  12277. GetProcedureAddress(_SetWindowPlacement, user32, 'SetWindowPlacement');
  12278. asm
  12279. MOV ESP, EBP
  12280. POP EBP
  12281. JMP [_SetWindowPlacement]
  12282. end;
  12283. end;
  12284. var
  12285. _BeginDeferWindowPos: Pointer;
  12286. function BeginDeferWindowPos;
  12287. begin
  12288. GetProcedureAddress(_BeginDeferWindowPos, user32, 'BeginDeferWindowPos');
  12289. asm
  12290. MOV ESP, EBP
  12291. POP EBP
  12292. JMP [_BeginDeferWindowPos]
  12293. end;
  12294. end;
  12295. var
  12296. _DeferWindowPos: Pointer;
  12297. function DeferWindowPos;
  12298. begin
  12299. GetProcedureAddress(_DeferWindowPos, user32, 'DeferWindowPos');
  12300. asm
  12301. MOV ESP, EBP
  12302. POP EBP
  12303. JMP [_DeferWindowPos]
  12304. end;
  12305. end;
  12306. var
  12307. _EndDeferWindowPos: Pointer;
  12308. function EndDeferWindowPos;
  12309. begin
  12310. GetProcedureAddress(_EndDeferWindowPos, user32, 'EndDeferWindowPos');
  12311. asm
  12312. MOV ESP, EBP
  12313. POP EBP
  12314. JMP [_EndDeferWindowPos]
  12315. end;
  12316. end;
  12317. var
  12318. _IsWindowVisible: Pointer;
  12319. function IsWindowVisible;
  12320. begin
  12321. GetProcedureAddress(_IsWindowVisible, user32, 'IsWindowVisible');
  12322. asm
  12323. MOV ESP, EBP
  12324. POP EBP
  12325. JMP [_IsWindowVisible]
  12326. end;
  12327. end;
  12328. var
  12329. _IsIconic: Pointer;
  12330. function IsIconic;
  12331. begin
  12332. GetProcedureAddress(_IsIconic, user32, 'IsIconic');
  12333. asm
  12334. MOV ESP, EBP
  12335. POP EBP
  12336. JMP [_IsIconic]
  12337. end;
  12338. end;
  12339. var
  12340. _AnyPopup: Pointer;
  12341. function AnyPopup;
  12342. begin
  12343. GetProcedureAddress(_AnyPopup, user32, 'AnyPopup');
  12344. asm
  12345. MOV ESP, EBP
  12346. POP EBP
  12347. JMP [_AnyPopup]
  12348. end;
  12349. end;
  12350. var
  12351. _BringWindowToTop: Pointer;
  12352. function BringWindowToTop;
  12353. begin
  12354. GetProcedureAddress(_BringWindowToTop, user32, 'BringWindowToTop');
  12355. asm
  12356. MOV ESP, EBP
  12357. POP EBP
  12358. JMP [_BringWindowToTop]
  12359. end;
  12360. end;
  12361. var
  12362. _IsZoomed: Pointer;
  12363. function IsZoomed;
  12364. begin
  12365. GetProcedureAddress(_IsZoomed, user32, 'IsZoomed');
  12366. asm
  12367. MOV ESP, EBP
  12368. POP EBP
  12369. JMP [_IsZoomed]
  12370. end;
  12371. end;
  12372. var
  12373. _CreateDialogParamA: Pointer;
  12374. function CreateDialogParamA;
  12375. begin
  12376. GetProcedureAddress(_CreateDialogParamA, user32, 'CreateDialogParamA');
  12377. asm
  12378. MOV ESP, EBP
  12379. POP EBP
  12380. JMP [_CreateDialogParamA]
  12381. end;
  12382. end;
  12383. var
  12384. _CreateDialogParamW: Pointer;
  12385. function CreateDialogParamW;
  12386. begin
  12387. GetProcedureAddress(_CreateDialogParamW, user32, 'CreateDialogParamW');
  12388. asm
  12389. MOV ESP, EBP
  12390. POP EBP
  12391. JMP [_CreateDialogParamW]
  12392. end;
  12393. end;
  12394. var
  12395. _CreateDialogParam: Pointer;
  12396. function CreateDialogParam;
  12397. begin
  12398. GetProcedureAddress(_CreateDialogParam, user32, 'CreateDialogParam' + AWSuffix);
  12399. asm
  12400. MOV ESP, EBP
  12401. POP EBP
  12402. JMP [_CreateDialogParam]
  12403. end;
  12404. end;
  12405. var
  12406. _CreateDialogIndirectParamA: Pointer;
  12407. function CreateDialogIndirectParamA;
  12408. begin
  12409. GetProcedureAddress(_CreateDialogIndirectParamA, user32, 'CreateDialogIndirectParamA');
  12410. asm
  12411. MOV ESP, EBP
  12412. POP EBP
  12413. JMP [_CreateDialogIndirectParamA]
  12414. end;
  12415. end;
  12416. var
  12417. _CreateDialogIndirectParamW: Pointer;
  12418. function CreateDialogIndirectParamW;
  12419. begin
  12420. GetProcedureAddress(_CreateDialogIndirectParamW, user32, 'CreateDialogIndirectParamW');
  12421. asm
  12422. MOV ESP, EBP
  12423. POP EBP
  12424. JMP [_CreateDialogIndirectParamW]
  12425. end;
  12426. end;
  12427. var
  12428. _CreateDialogIndirectParam: Pointer;
  12429. function CreateDialogIndirectParam;
  12430. begin
  12431. GetProcedureAddress(_CreateDialogIndirectParam, user32, 'CreateDialogIndirectParam' + AWSuffix);
  12432. asm
  12433. MOV ESP, EBP
  12434. POP EBP
  12435. JMP [_CreateDialogIndirectParam]
  12436. end;
  12437. end;
  12438. var
  12439. _DialogBoxParamA: Pointer;
  12440. function DialogBoxParamA;
  12441. begin
  12442. GetProcedureAddress(_DialogBoxParamA, user32, 'DialogBoxParamA');
  12443. asm
  12444. MOV ESP, EBP
  12445. POP EBP
  12446. JMP [_DialogBoxParamA]
  12447. end;
  12448. end;
  12449. var
  12450. _DialogBoxParamW: Pointer;
  12451. function DialogBoxParamW;
  12452. begin
  12453. GetProcedureAddress(_DialogBoxParamW, user32, 'DialogBoxParamW');
  12454. asm
  12455. MOV ESP, EBP
  12456. POP EBP
  12457. JMP [_DialogBoxParamW]
  12458. end;
  12459. end;
  12460. var
  12461. _DialogBoxParam: Pointer;
  12462. function DialogBoxParam;
  12463. begin
  12464. GetProcedureAddress(_DialogBoxParam, user32, 'DialogBoxParam' + AWSuffix);
  12465. asm
  12466. MOV ESP, EBP
  12467. POP EBP
  12468. JMP [_DialogBoxParam]
  12469. end;
  12470. end;
  12471. var
  12472. _DialogBoxIndirectParamA: Pointer;
  12473. function DialogBoxIndirectParamA;
  12474. begin
  12475. GetProcedureAddress(_DialogBoxIndirectParamA, user32, 'DialogBoxIndirectParamA');
  12476. asm
  12477. MOV ESP, EBP
  12478. POP EBP
  12479. JMP [_DialogBoxIndirectParamA]
  12480. end;
  12481. end;
  12482. var
  12483. _DialogBoxIndirectParamW: Pointer;
  12484. function DialogBoxIndirectParamW;
  12485. begin
  12486. GetProcedureAddress(_DialogBoxIndirectParamW, user32, 'DialogBoxIndirectParamW');
  12487. asm
  12488. MOV ESP, EBP
  12489. POP EBP
  12490. JMP [_DialogBoxIndirectParamW]
  12491. end;
  12492. end;
  12493. var
  12494. _DialogBoxIndirectParam: Pointer;
  12495. function DialogBoxIndirectParam;
  12496. begin
  12497. GetProcedureAddress(_DialogBoxIndirectParam, user32, 'DialogBoxIndirectParam' + AWSuffix);
  12498. asm
  12499. MOV ESP, EBP
  12500. POP EBP
  12501. JMP [_DialogBoxIndirectParam]
  12502. end;
  12503. end;
  12504. var
  12505. _EndDialog: Pointer;
  12506. function EndDialog;
  12507. begin
  12508. GetProcedureAddress(_EndDialog, user32, 'EndDialog');
  12509. asm
  12510. MOV ESP, EBP
  12511. POP EBP
  12512. JMP [_EndDialog]
  12513. end;
  12514. end;
  12515. var
  12516. _GetDlgItem: Pointer;
  12517. function GetDlgItem;
  12518. begin
  12519. GetProcedureAddress(_GetDlgItem, user32, 'GetDlgItem');
  12520. asm
  12521. MOV ESP, EBP
  12522. POP EBP
  12523. JMP [_GetDlgItem]
  12524. end;
  12525. end;
  12526. var
  12527. _SetDlgItemInt: Pointer;
  12528. function SetDlgItemInt;
  12529. begin
  12530. GetProcedureAddress(_SetDlgItemInt, user32, 'SetDlgItemInt');
  12531. asm
  12532. MOV ESP, EBP
  12533. POP EBP
  12534. JMP [_SetDlgItemInt]
  12535. end;
  12536. end;
  12537. var
  12538. _GetDlgItemInt: Pointer;
  12539. function GetDlgItemInt;
  12540. begin
  12541. GetProcedureAddress(_GetDlgItemInt, user32, 'GetDlgItemInt');
  12542. asm
  12543. MOV ESP, EBP
  12544. POP EBP
  12545. JMP [_GetDlgItemInt]
  12546. end;
  12547. end;
  12548. var
  12549. _SetDlgItemTextA: Pointer;
  12550. function SetDlgItemTextA;
  12551. begin
  12552. GetProcedureAddress(_SetDlgItemTextA, user32, 'SetDlgItemTextA');
  12553. asm
  12554. MOV ESP, EBP
  12555. POP EBP
  12556. JMP [_SetDlgItemTextA]
  12557. end;
  12558. end;
  12559. var
  12560. _SetDlgItemTextW: Pointer;
  12561. function SetDlgItemTextW;
  12562. begin
  12563. GetProcedureAddress(_SetDlgItemTextW, user32, 'SetDlgItemTextW');
  12564. asm
  12565. MOV ESP, EBP
  12566. POP EBP
  12567. JMP [_SetDlgItemTextW]
  12568. end;
  12569. end;
  12570. var
  12571. _SetDlgItemText: Pointer;
  12572. function SetDlgItemText;
  12573. begin
  12574. GetProcedureAddress(_SetDlgItemText, user32, 'SetDlgItemText' + AWSuffix);
  12575. asm
  12576. MOV ESP, EBP
  12577. POP EBP
  12578. JMP [_SetDlgItemText]
  12579. end;
  12580. end;
  12581. var
  12582. _GetDlgItemTextA: Pointer;
  12583. function GetDlgItemTextA;
  12584. begin
  12585. GetProcedureAddress(_GetDlgItemTextA, user32, 'GetDlgItemTextA');
  12586. asm
  12587. MOV ESP, EBP
  12588. POP EBP
  12589. JMP [_GetDlgItemTextA]
  12590. end;
  12591. end;
  12592. var
  12593. _GetDlgItemTextW: Pointer;
  12594. function GetDlgItemTextW;
  12595. begin
  12596. GetProcedureAddress(_GetDlgItemTextW, user32, 'GetDlgItemTextW');
  12597. asm
  12598. MOV ESP, EBP
  12599. POP EBP
  12600. JMP [_GetDlgItemTextW]
  12601. end;
  12602. end;
  12603. var
  12604. _GetDlgItemText: Pointer;
  12605. function GetDlgItemText;
  12606. begin
  12607. GetProcedureAddress(_GetDlgItemText, user32, 'GetDlgItemText' + AWSuffix);
  12608. asm
  12609. MOV ESP, EBP
  12610. POP EBP
  12611. JMP [_GetDlgItemText]
  12612. end;
  12613. end;
  12614. var
  12615. _CheckDlgButton: Pointer;
  12616. function CheckDlgButton;
  12617. begin
  12618. GetProcedureAddress(_CheckDlgButton, user32, 'CheckDlgButton');
  12619. asm
  12620. MOV ESP, EBP
  12621. POP EBP
  12622. JMP [_CheckDlgButton]
  12623. end;
  12624. end;
  12625. var
  12626. _CheckRadioButton: Pointer;
  12627. function CheckRadioButton;
  12628. begin
  12629. GetProcedureAddress(_CheckRadioButton, user32, 'CheckRadioButton');
  12630. asm
  12631. MOV ESP, EBP
  12632. POP EBP
  12633. JMP [_CheckRadioButton]
  12634. end;
  12635. end;
  12636. var
  12637. _IsDlgButtonChecked: Pointer;
  12638. function IsDlgButtonChecked;
  12639. begin
  12640. GetProcedureAddress(_IsDlgButtonChecked, user32, 'IsDlgButtonChecked');
  12641. asm
  12642. MOV ESP, EBP
  12643. POP EBP
  12644. JMP [_IsDlgButtonChecked]
  12645. end;
  12646. end;
  12647. var
  12648. _SendDlgItemMessageA: Pointer;
  12649. function SendDlgItemMessageA;
  12650. begin
  12651. GetProcedureAddress(_SendDlgItemMessageA, user32, 'SendDlgItemMessageA');
  12652. asm
  12653. MOV ESP, EBP
  12654. POP EBP
  12655. JMP [_SendDlgItemMessageA]
  12656. end;
  12657. end;
  12658. var
  12659. _SendDlgItemMessageW: Pointer;
  12660. function SendDlgItemMessageW;
  12661. begin
  12662. GetProcedureAddress(_SendDlgItemMessageW, user32, 'SendDlgItemMessageW');
  12663. asm
  12664. MOV ESP, EBP
  12665. POP EBP
  12666. JMP [_SendDlgItemMessageW]
  12667. end;
  12668. end;
  12669. var
  12670. _SendDlgItemMessage: Pointer;
  12671. function SendDlgItemMessage;
  12672. begin
  12673. GetProcedureAddress(_SendDlgItemMessage, user32, 'SendDlgItemMessage' + AWSuffix);
  12674. asm
  12675. MOV ESP, EBP
  12676. POP EBP
  12677. JMP [_SendDlgItemMessage]
  12678. end;
  12679. end;
  12680. var
  12681. _GetNextDlgGroupItem: Pointer;
  12682. function GetNextDlgGroupItem;
  12683. begin
  12684. GetProcedureAddress(_GetNextDlgGroupItem, user32, 'GetNextDlgGroupItem');
  12685. asm
  12686. MOV ESP, EBP
  12687. POP EBP
  12688. JMP [_GetNextDlgGroupItem]
  12689. end;
  12690. end;
  12691. var
  12692. _GetNextDlgTabItem: Pointer;
  12693. function GetNextDlgTabItem;
  12694. begin
  12695. GetProcedureAddress(_GetNextDlgTabItem, user32, 'GetNextDlgTabItem');
  12696. asm
  12697. MOV ESP, EBP
  12698. POP EBP
  12699. JMP [_GetNextDlgTabItem]
  12700. end;
  12701. end;
  12702. var
  12703. _GetDlgCtrlID: Pointer;
  12704. function GetDlgCtrlID;
  12705. begin
  12706. GetProcedureAddress(_GetDlgCtrlID, user32, 'GetDlgCtrlID');
  12707. asm
  12708. MOV ESP, EBP
  12709. POP EBP
  12710. JMP [_GetDlgCtrlID]
  12711. end;
  12712. end;
  12713. var
  12714. _GetDialogBaseUnits: Pointer;
  12715. function GetDialogBaseUnits;
  12716. begin
  12717. GetProcedureAddress(_GetDialogBaseUnits, user32, 'GetDialogBaseUnits');
  12718. asm
  12719. MOV ESP, EBP
  12720. POP EBP
  12721. JMP [_GetDialogBaseUnits]
  12722. end;
  12723. end;
  12724. var
  12725. _DefDlgProcA: Pointer;
  12726. function DefDlgProcA;
  12727. begin
  12728. GetProcedureAddress(_DefDlgProcA, user32, 'DefDlgProcA');
  12729. asm
  12730. MOV ESP, EBP
  12731. POP EBP
  12732. JMP [_DefDlgProcA]
  12733. end;
  12734. end;
  12735. var
  12736. _DefDlgProcW: Pointer;
  12737. function DefDlgProcW;
  12738. begin
  12739. GetProcedureAddress(_DefDlgProcW, user32, 'DefDlgProcW');
  12740. asm
  12741. MOV ESP, EBP
  12742. POP EBP
  12743. JMP [_DefDlgProcW]
  12744. end;
  12745. end;
  12746. var
  12747. _DefDlgProc: Pointer;
  12748. function DefDlgProc;
  12749. begin
  12750. GetProcedureAddress(_DefDlgProc, user32, 'DefDlgProc' + AWSuffix);
  12751. asm
  12752. MOV ESP, EBP
  12753. POP EBP
  12754. JMP [_DefDlgProc]
  12755. end;
  12756. end;
  12757. var
  12758. _CallMsgFilterA: Pointer;
  12759. function CallMsgFilterA;
  12760. begin
  12761. GetProcedureAddress(_CallMsgFilterA, user32, 'CallMsgFilterA');
  12762. asm
  12763. MOV ESP, EBP
  12764. POP EBP
  12765. JMP [_CallMsgFilterA]
  12766. end;
  12767. end;
  12768. var
  12769. _CallMsgFilterW: Pointer;
  12770. function CallMsgFilterW;
  12771. begin
  12772. GetProcedureAddress(_CallMsgFilterW, user32, 'CallMsgFilterW');
  12773. asm
  12774. MOV ESP, EBP
  12775. POP EBP
  12776. JMP [_CallMsgFilterW]
  12777. end;
  12778. end;
  12779. var
  12780. _CallMsgFilter: Pointer;
  12781. function CallMsgFilter;
  12782. begin
  12783. GetProcedureAddress(_CallMsgFilter, user32, 'CallMsgFilter' + AWSuffix);
  12784. asm
  12785. MOV ESP, EBP
  12786. POP EBP
  12787. JMP [_CallMsgFilter]
  12788. end;
  12789. end;
  12790. var
  12791. _OpenClipboard: Pointer;
  12792. function OpenClipboard;
  12793. begin
  12794. GetProcedureAddress(_OpenClipboard, user32, 'OpenClipboard');
  12795. asm
  12796. MOV ESP, EBP
  12797. POP EBP
  12798. JMP [_OpenClipboard]
  12799. end;
  12800. end;
  12801. var
  12802. _CloseClipboard: Pointer;
  12803. function CloseClipboard;
  12804. begin
  12805. GetProcedureAddress(_CloseClipboard, user32, 'CloseClipboard');
  12806. asm
  12807. MOV ESP, EBP
  12808. POP EBP
  12809. JMP [_CloseClipboard]
  12810. end;
  12811. end;
  12812. var
  12813. _GetClipboardSequenceNumber: Pointer;
  12814. function GetClipboardSequenceNumber;
  12815. begin
  12816. GetProcedureAddress(_GetClipboardSequenceNumber, user32, 'GetClipboardSequenceNumber');
  12817. asm
  12818. MOV ESP, EBP
  12819. POP EBP
  12820. JMP [_GetClipboardSequenceNumber]
  12821. end;
  12822. end;
  12823. var
  12824. _GetClipboardOwner: Pointer;
  12825. function GetClipboardOwner;
  12826. begin
  12827. GetProcedureAddress(_GetClipboardOwner, user32, 'GetClipboardOwner');
  12828. asm
  12829. MOV ESP, EBP
  12830. POP EBP
  12831. JMP [_GetClipboardOwner]
  12832. end;
  12833. end;
  12834. var
  12835. _SetClipboardViewer: Pointer;
  12836. function SetClipboardViewer;
  12837. begin
  12838. GetProcedureAddress(_SetClipboardViewer, user32, 'SetClipboardViewer');
  12839. asm
  12840. MOV ESP, EBP
  12841. POP EBP
  12842. JMP [_SetClipboardViewer]
  12843. end;
  12844. end;
  12845. var
  12846. _GetClipboardViewer: Pointer;
  12847. function GetClipboardViewer;
  12848. begin
  12849. GetProcedureAddress(_GetClipboardViewer, user32, 'GetClipboardViewer');
  12850. asm
  12851. MOV ESP, EBP
  12852. POP EBP
  12853. JMP [_GetClipboardViewer]
  12854. end;
  12855. end;
  12856. var
  12857. _ChangeClipboardChain: Pointer;
  12858. function ChangeClipboardChain;
  12859. begin
  12860. GetProcedureAddress(_ChangeClipboardChain, user32, 'ChangeClipboardChain');
  12861. asm
  12862. MOV ESP, EBP
  12863. POP EBP
  12864. JMP [_ChangeClipboardChain]
  12865. end;
  12866. end;
  12867. var
  12868. _SetClipboardData: Pointer;
  12869. function SetClipboardData;
  12870. begin
  12871. GetProcedureAddress(_SetClipboardData, user32, 'SetClipboardData');
  12872. asm
  12873. MOV ESP, EBP
  12874. POP EBP
  12875. JMP [_SetClipboardData]
  12876. end;
  12877. end;
  12878. var
  12879. _GetClipboardData: Pointer;
  12880. function GetClipboardData;
  12881. begin
  12882. GetProcedureAddress(_GetClipboardData, user32, 'GetClipboardData');
  12883. asm
  12884. MOV ESP, EBP
  12885. POP EBP
  12886. JMP [_GetClipboardData]
  12887. end;
  12888. end;
  12889. var
  12890. _RegisterClipboardFormatA: Pointer;
  12891. function RegisterClipboardFormatA;
  12892. begin
  12893. GetProcedureAddress(_RegisterClipboardFormatA, user32, 'RegisterClipboardFormatA');
  12894. asm
  12895. MOV ESP, EBP
  12896. POP EBP
  12897. JMP [_RegisterClipboardFormatA]
  12898. end;
  12899. end;
  12900. var
  12901. _RegisterClipboardFormatW: Pointer;
  12902. function RegisterClipboardFormatW;
  12903. begin
  12904. GetProcedureAddress(_RegisterClipboardFormatW, user32, 'RegisterClipboardFormatW');
  12905. asm
  12906. MOV ESP, EBP
  12907. POP EBP
  12908. JMP [_RegisterClipboardFormatW]
  12909. end;
  12910. end;
  12911. var
  12912. _RegisterClipboardFormat: Pointer;
  12913. function RegisterClipboardFormat;
  12914. begin
  12915. GetProcedureAddress(_RegisterClipboardFormat, user32, 'RegisterClipboardFormat' + AWSuffix);
  12916. asm
  12917. MOV ESP, EBP
  12918. POP EBP
  12919. JMP [_RegisterClipboardFormat]
  12920. end;
  12921. end;
  12922. var
  12923. _CountClipboardFormats: Pointer;
  12924. function CountClipboardFormats;
  12925. begin
  12926. GetProcedureAddress(_CountClipboardFormats, user32, 'CountClipboardFormats');
  12927. asm
  12928. MOV ESP, EBP
  12929. POP EBP
  12930. JMP [_CountClipboardFormats]
  12931. end;
  12932. end;
  12933. var
  12934. _EnumClipboardFormats: Pointer;
  12935. function EnumClipboardFormats;
  12936. begin
  12937. GetProcedureAddress(_EnumClipboardFormats, user32, 'EnumClipboardFormats');
  12938. asm
  12939. MOV ESP, EBP
  12940. POP EBP
  12941. JMP [_EnumClipboardFormats]
  12942. end;
  12943. end;
  12944. var
  12945. _GetClipboardFormatNameA: Pointer;
  12946. function GetClipboardFormatNameA;
  12947. begin
  12948. GetProcedureAddress(_GetClipboardFormatNameA, user32, 'GetClipboardFormatNameA');
  12949. asm
  12950. MOV ESP, EBP
  12951. POP EBP
  12952. JMP [_GetClipboardFormatNameA]
  12953. end;
  12954. end;
  12955. var
  12956. _GetClipboardFormatNameW: Pointer;
  12957. function GetClipboardFormatNameW;
  12958. begin
  12959. GetProcedureAddress(_GetClipboardFormatNameW, user32, 'GetClipboardFormatNameW');
  12960. asm
  12961. MOV ESP, EBP
  12962. POP EBP
  12963. JMP [_GetClipboardFormatNameW]
  12964. end;
  12965. end;
  12966. var
  12967. _GetClipboardFormatName: Pointer;
  12968. function GetClipboardFormatName;
  12969. begin
  12970. GetProcedureAddress(_GetClipboardFormatName, user32, 'GetClipboardFormatName' + AWSuffix);
  12971. asm
  12972. MOV ESP, EBP
  12973. POP EBP
  12974. JMP [_GetClipboardFormatName]
  12975. end;
  12976. end;
  12977. var
  12978. _EmptyClipboard: Pointer;
  12979. function EmptyClipboard;
  12980. begin
  12981. GetProcedureAddress(_EmptyClipboard, user32, 'EmptyClipboard');
  12982. asm
  12983. MOV ESP, EBP
  12984. POP EBP
  12985. JMP [_EmptyClipboard]
  12986. end;
  12987. end;
  12988. var
  12989. _IsClipboardFormatAvailable: Pointer;
  12990. function IsClipboardFormatAvailable;
  12991. begin
  12992. GetProcedureAddress(_IsClipboardFormatAvailable, user32, 'IsClipboardFormatAvailable');
  12993. asm
  12994. MOV ESP, EBP
  12995. POP EBP
  12996. JMP [_IsClipboardFormatAvailable]
  12997. end;
  12998. end;
  12999. var
  13000. _GetPriorityClipboardFormat: Pointer;
  13001. function GetPriorityClipboardFormat;
  13002. begin
  13003. GetProcedureAddress(_GetPriorityClipboardFormat, user32, 'GetPriorityClipboardFormat');
  13004. asm
  13005. MOV ESP, EBP
  13006. POP EBP
  13007. JMP [_GetPriorityClipboardFormat]
  13008. end;
  13009. end;
  13010. var
  13011. _GetOpenClipboardWindow: Pointer;
  13012. function GetOpenClipboardWindow;
  13013. begin
  13014. GetProcedureAddress(_GetOpenClipboardWindow, user32, 'GetOpenClipboardWindow');
  13015. asm
  13016. MOV ESP, EBP
  13017. POP EBP
  13018. JMP [_GetOpenClipboardWindow]
  13019. end;
  13020. end;
  13021. var
  13022. _CharToOemA: Pointer;
  13023. function CharToOemA;
  13024. begin
  13025. GetProcedureAddress(_CharToOemA, user32, 'CharToOemA');
  13026. asm
  13027. MOV ESP, EBP
  13028. POP EBP
  13029. JMP [_CharToOemA]
  13030. end;
  13031. end;
  13032. var
  13033. _CharToOemW: Pointer;
  13034. function CharToOemW;
  13035. begin
  13036. GetProcedureAddress(_CharToOemW, user32, 'CharToOemW');
  13037. asm
  13038. MOV ESP, EBP
  13039. POP EBP
  13040. JMP [_CharToOemW]
  13041. end;
  13042. end;
  13043. var
  13044. _CharToOem: Pointer;
  13045. function CharToOem;
  13046. begin
  13047. GetProcedureAddress(_CharToOem, user32, 'CharToOem' + AWSuffix);
  13048. asm
  13049. MOV ESP, EBP
  13050. POP EBP
  13051. JMP [_CharToOem]
  13052. end;
  13053. end;
  13054. var
  13055. _OemToCharA: Pointer;
  13056. function OemToCharA;
  13057. begin
  13058. GetProcedureAddress(_OemToCharA, user32, 'OemToCharA');
  13059. asm
  13060. MOV ESP, EBP
  13061. POP EBP
  13062. JMP [_OemToCharA]
  13063. end;
  13064. end;
  13065. var
  13066. _OemToCharW: Pointer;
  13067. function OemToCharW;
  13068. begin
  13069. GetProcedureAddress(_OemToCharW, user32, 'OemToCharW');
  13070. asm
  13071. MOV ESP, EBP
  13072. POP EBP
  13073. JMP [_OemToCharW]
  13074. end;
  13075. end;
  13076. var
  13077. _OemToChar: Pointer;
  13078. function OemToChar;
  13079. begin
  13080. GetProcedureAddress(_OemToChar, user32, 'OemToChar' + AWSuffix);
  13081. asm
  13082. MOV ESP, EBP
  13083. POP EBP
  13084. JMP [_OemToChar]
  13085. end;
  13086. end;
  13087. var
  13088. _CharToOemBuffA: Pointer;
  13089. function CharToOemBuffA;
  13090. begin
  13091. GetProcedureAddress(_CharToOemBuffA, user32, 'CharToOemBuffA');
  13092. asm
  13093. MOV ESP, EBP
  13094. POP EBP
  13095. JMP [_CharToOemBuffA]
  13096. end;
  13097. end;
  13098. var
  13099. _CharToOemBuffW: Pointer;
  13100. function CharToOemBuffW;
  13101. begin
  13102. GetProcedureAddress(_CharToOemBuffW, user32, 'CharToOemBuffW');
  13103. asm
  13104. MOV ESP, EBP
  13105. POP EBP
  13106. JMP [_CharToOemBuffW]
  13107. end;
  13108. end;
  13109. var
  13110. _CharToOemBuff: Pointer;
  13111. function CharToOemBuff;
  13112. begin
  13113. GetProcedureAddress(_CharToOemBuff, user32, 'CharToOemBuff' + AWSuffix);
  13114. asm
  13115. MOV ESP, EBP
  13116. POP EBP
  13117. JMP [_CharToOemBuff]
  13118. end;
  13119. end;
  13120. var
  13121. _OemToCharBuffA: Pointer;
  13122. function OemToCharBuffA;
  13123. begin
  13124. GetProcedureAddress(_OemToCharBuffA, user32, 'OemToCharBuffA');
  13125. asm
  13126. MOV ESP, EBP
  13127. POP EBP
  13128. JMP [_OemToCharBuffA]
  13129. end;
  13130. end;
  13131. var
  13132. _OemToCharBuffW: Pointer;
  13133. function OemToCharBuffW;
  13134. begin
  13135. GetProcedureAddress(_OemToCharBuffW, user32, 'OemToCharBuffW');
  13136. asm
  13137. MOV ESP, EBP
  13138. POP EBP
  13139. JMP [_OemToCharBuffW]
  13140. end;
  13141. end;
  13142. var
  13143. _OemToCharBuff: Pointer;
  13144. function OemToCharBuff;
  13145. begin
  13146. GetProcedureAddress(_OemToCharBuff, user32, 'OemToCharBuff' + AWSuffix);
  13147. asm
  13148. MOV ESP, EBP
  13149. POP EBP
  13150. JMP [_OemToCharBuff]
  13151. end;
  13152. end;
  13153. var
  13154. _CharUpperA: Pointer;
  13155. function CharUpperA;
  13156. begin
  13157. GetProcedureAddress(_CharUpperA, user32, 'CharUpperA');
  13158. asm
  13159. MOV ESP, EBP
  13160. POP EBP
  13161. JMP [_CharUpperA]
  13162. end;
  13163. end;
  13164. var
  13165. _CharUpperW: Pointer;
  13166. function CharUpperW;
  13167. begin
  13168. GetProcedureAddress(_CharUpperW, user32, 'CharUpperW');
  13169. asm
  13170. MOV ESP, EBP
  13171. POP EBP
  13172. JMP [_CharUpperW]
  13173. end;
  13174. end;
  13175. var
  13176. _CharUpper: Pointer;
  13177. function CharUpper;
  13178. begin
  13179. GetProcedureAddress(_CharUpper, user32, 'CharUpper' + AWSuffix);
  13180. asm
  13181. MOV ESP, EBP
  13182. POP EBP
  13183. JMP [_CharUpper]
  13184. end;
  13185. end;
  13186. var
  13187. _CharUpperBuffA: Pointer;
  13188. function CharUpperBuffA;
  13189. begin
  13190. GetProcedureAddress(_CharUpperBuffA, user32, 'CharUpperBuffA');
  13191. asm
  13192. MOV ESP, EBP
  13193. POP EBP
  13194. JMP [_CharUpperBuffA]
  13195. end;
  13196. end;
  13197. var
  13198. _CharUpperBuffW: Pointer;
  13199. function CharUpperBuffW;
  13200. begin
  13201. GetProcedureAddress(_CharUpperBuffW, user32, 'CharUpperBuffW');
  13202. asm
  13203. MOV ESP, EBP
  13204. POP EBP
  13205. JMP [_CharUpperBuffW]
  13206. end;
  13207. end;
  13208. var
  13209. _CharUpperBuff: Pointer;
  13210. function CharUpperBuff;
  13211. begin
  13212. GetProcedureAddress(_CharUpperBuff, user32, 'CharUpperBuff' + AWSuffix);
  13213. asm
  13214. MOV ESP, EBP
  13215. POP EBP
  13216. JMP [_CharUpperBuff]
  13217. end;
  13218. end;
  13219. var
  13220. _CharLowerA: Pointer;
  13221. function CharLowerA;
  13222. begin
  13223. GetProcedureAddress(_CharLowerA, user32, 'CharLowerA');
  13224. asm
  13225. MOV ESP, EBP
  13226. POP EBP
  13227. JMP [_CharLowerA]
  13228. end;
  13229. end;
  13230. var
  13231. _CharLowerW: Pointer;
  13232. function CharLowerW;
  13233. begin
  13234. GetProcedureAddress(_CharLowerW, user32, 'CharLowerW');
  13235. asm
  13236. MOV ESP, EBP
  13237. POP EBP
  13238. JMP [_CharLowerW]
  13239. end;
  13240. end;
  13241. var
  13242. _CharLower: Pointer;
  13243. function CharLower;
  13244. begin
  13245. GetProcedureAddress(_CharLower, user32, 'CharLower' + AWSuffix);
  13246. asm
  13247. MOV ESP, EBP
  13248. POP EBP
  13249. JMP [_CharLower]
  13250. end;
  13251. end;
  13252. var
  13253. _CharLowerBuffA: Pointer;
  13254. function CharLowerBuffA;
  13255. begin
  13256. GetProcedureAddress(_CharLowerBuffA, user32, 'CharLowerBuffA');
  13257. asm
  13258. MOV ESP, EBP
  13259. POP EBP
  13260. JMP [_CharLowerBuffA]
  13261. end;
  13262. end;
  13263. var
  13264. _CharLowerBuffW: Pointer;
  13265. function CharLowerBuffW;
  13266. begin
  13267. GetProcedureAddress(_CharLowerBuffW, user32, 'CharLowerBuffW');
  13268. asm
  13269. MOV ESP, EBP
  13270. POP EBP
  13271. JMP [_CharLowerBuffW]
  13272. end;
  13273. end;
  13274. var
  13275. _CharLowerBuff: Pointer;
  13276. function CharLowerBuff;
  13277. begin
  13278. GetProcedureAddress(_CharLowerBuff, user32, 'CharLowerBuff' + AWSuffix);
  13279. asm
  13280. MOV ESP, EBP
  13281. POP EBP
  13282. JMP [_CharLowerBuff]
  13283. end;
  13284. end;
  13285. var
  13286. _CharNextA: Pointer;
  13287. function CharNextA;
  13288. begin
  13289. GetProcedureAddress(_CharNextA, user32, 'CharNextA');
  13290. asm
  13291. MOV ESP, EBP
  13292. POP EBP
  13293. JMP [_CharNextA]
  13294. end;
  13295. end;
  13296. var
  13297. _CharNextW: Pointer;
  13298. function CharNextW;
  13299. begin
  13300. GetProcedureAddress(_CharNextW, user32, 'CharNextW');
  13301. asm
  13302. MOV ESP, EBP
  13303. POP EBP
  13304. JMP [_CharNextW]
  13305. end;
  13306. end;
  13307. var
  13308. _CharNext: Pointer;
  13309. function CharNext;
  13310. begin
  13311. GetProcedureAddress(_CharNext, user32, 'CharNext' + AWSuffix);
  13312. asm
  13313. MOV ESP, EBP
  13314. POP EBP
  13315. JMP [_CharNext]
  13316. end;
  13317. end;
  13318. var
  13319. _CharPrevA: Pointer;
  13320. function CharPrevA;
  13321. begin
  13322. GetProcedureAddress(_CharPrevA, user32, 'CharPrevA');
  13323. asm
  13324. MOV ESP, EBP
  13325. POP EBP
  13326. JMP [_CharPrevA]
  13327. end;
  13328. end;
  13329. var
  13330. _CharPrevW: Pointer;
  13331. function CharPrevW;
  13332. begin
  13333. GetProcedureAddress(_CharPrevW, user32, 'CharPrevW');
  13334. asm
  13335. MOV ESP, EBP
  13336. POP EBP
  13337. JMP [_CharPrevW]
  13338. end;
  13339. end;
  13340. var
  13341. _CharPrev: Pointer;
  13342. function CharPrev;
  13343. begin
  13344. GetProcedureAddress(_CharPrev, user32, 'CharPrev' + AWSuffix);
  13345. asm
  13346. MOV ESP, EBP
  13347. POP EBP
  13348. JMP [_CharPrev]
  13349. end;
  13350. end;
  13351. var
  13352. _CharNextExA: Pointer;
  13353. function CharNextExA;
  13354. begin
  13355. GetProcedureAddress(_CharNextExA, user32, 'CharNextExA');
  13356. asm
  13357. MOV ESP, EBP
  13358. POP EBP
  13359. JMP [_CharNextExA]
  13360. end;
  13361. end;
  13362. var
  13363. _CharPrevExA: Pointer;
  13364. function CharPrevExA;
  13365. begin
  13366. GetProcedureAddress(_CharPrevExA, user32, 'CharPrevExA');
  13367. asm
  13368. MOV ESP, EBP
  13369. POP EBP
  13370. JMP [_CharPrevExA]
  13371. end;
  13372. end;
  13373. var
  13374. _IsCharAlphaA: Pointer;
  13375. function IsCharAlphaA;
  13376. begin
  13377. GetProcedureAddress(_IsCharAlphaA, user32, 'IsCharAlphaA');
  13378. asm
  13379. MOV ESP, EBP
  13380. POP EBP
  13381. JMP [_IsCharAlphaA]
  13382. end;
  13383. end;
  13384. var
  13385. _IsCharAlphaW: Pointer;
  13386. function IsCharAlphaW;
  13387. begin
  13388. GetProcedureAddress(_IsCharAlphaW, user32, 'IsCharAlphaW');
  13389. asm
  13390. MOV ESP, EBP
  13391. POP EBP
  13392. JMP [_IsCharAlphaW]
  13393. end;
  13394. end;
  13395. var
  13396. _IsCharAlpha: Pointer;
  13397. function IsCharAlpha;
  13398. begin
  13399. GetProcedureAddress(_IsCharAlpha, user32, 'IsCharAlpha' + AWSuffix);
  13400. asm
  13401. MOV ESP, EBP
  13402. POP EBP
  13403. JMP [_IsCharAlpha]
  13404. end;
  13405. end;
  13406. var
  13407. _IsCharAlphaNumericA: Pointer;
  13408. function IsCharAlphaNumericA;
  13409. begin
  13410. GetProcedureAddress(_IsCharAlphaNumericA, user32, 'IsCharAlphaNumericA');
  13411. asm
  13412. MOV ESP, EBP
  13413. POP EBP
  13414. JMP [_IsCharAlphaNumericA]
  13415. end;
  13416. end;
  13417. var
  13418. _IsCharAlphaNumericW: Pointer;
  13419. function IsCharAlphaNumericW;
  13420. begin
  13421. GetProcedureAddress(_IsCharAlphaNumericW, user32, 'IsCharAlphaNumericW');
  13422. asm
  13423. MOV ESP, EBP
  13424. POP EBP
  13425. JMP [_IsCharAlphaNumericW]
  13426. end;
  13427. end;
  13428. var
  13429. _IsCharAlphaNumeric: Pointer;
  13430. function IsCharAlphaNumeric;
  13431. begin
  13432. GetProcedureAddress(_IsCharAlphaNumeric, user32, 'IsCharAlphaNumeric' + AWSuffix);
  13433. asm
  13434. MOV ESP, EBP
  13435. POP EBP
  13436. JMP [_IsCharAlphaNumeric]
  13437. end;
  13438. end;
  13439. var
  13440. _IsCharUpperA: Pointer;
  13441. function IsCharUpperA;
  13442. begin
  13443. GetProcedureAddress(_IsCharUpperA, user32, 'IsCharUpperA');
  13444. asm
  13445. MOV ESP, EBP
  13446. POP EBP
  13447. JMP [_IsCharUpperA]
  13448. end;
  13449. end;
  13450. var
  13451. _IsCharUpperW: Pointer;
  13452. function IsCharUpperW;
  13453. begin
  13454. GetProcedureAddress(_IsCharUpperW, user32, 'IsCharUpperW');
  13455. asm
  13456. MOV ESP, EBP
  13457. POP EBP
  13458. JMP [_IsCharUpperW]
  13459. end;
  13460. end;
  13461. var
  13462. _IsCharUpper: Pointer;
  13463. function IsCharUpper;
  13464. begin
  13465. GetProcedureAddress(_IsCharUpper, user32, 'IsCharUpper' + AWSuffix);
  13466. asm
  13467. MOV ESP, EBP
  13468. POP EBP
  13469. JMP [_IsCharUpper]
  13470. end;
  13471. end;
  13472. var
  13473. _IsCharLowerA: Pointer;
  13474. function IsCharLowerA;
  13475. begin
  13476. GetProcedureAddress(_IsCharLowerA, user32, 'IsCharLowerA');
  13477. asm
  13478. MOV ESP, EBP
  13479. POP EBP
  13480. JMP [_IsCharLowerA]
  13481. end;
  13482. end;
  13483. var
  13484. _IsCharLowerW: Pointer;
  13485. function IsCharLowerW;
  13486. begin
  13487. GetProcedureAddress(_IsCharLowerW, user32, 'IsCharLowerW');
  13488. asm
  13489. MOV ESP, EBP
  13490. POP EBP
  13491. JMP [_IsCharLowerW]
  13492. end;
  13493. end;
  13494. var
  13495. _IsCharLower: Pointer;
  13496. function IsCharLower;
  13497. begin
  13498. GetProcedureAddress(_IsCharLower, user32, 'IsCharLower' + AWSuffix);
  13499. asm
  13500. MOV ESP, EBP
  13501. POP EBP
  13502. JMP [_IsCharLower]
  13503. end;
  13504. end;
  13505. var
  13506. _SetFocus: Pointer;
  13507. function SetFocus;
  13508. begin
  13509. GetProcedureAddress(_SetFocus, user32, 'SetFocus');
  13510. asm
  13511. MOV ESP, EBP
  13512. POP EBP
  13513. JMP [_SetFocus]
  13514. end;
  13515. end;
  13516. var
  13517. _GetActiveWindow: Pointer;
  13518. function GetActiveWindow;
  13519. begin
  13520. GetProcedureAddress(_GetActiveWindow, user32, 'GetActiveWindow');
  13521. asm
  13522. MOV ESP, EBP
  13523. POP EBP
  13524. JMP [_GetActiveWindow]
  13525. end;
  13526. end;
  13527. var
  13528. _GetFocus: Pointer;
  13529. function GetFocus;
  13530. begin
  13531. GetProcedureAddress(_GetFocus, user32, 'GetFocus');
  13532. asm
  13533. MOV ESP, EBP
  13534. POP EBP
  13535. JMP [_GetFocus]
  13536. end;
  13537. end;
  13538. var
  13539. _GetKBCodePage: Pointer;
  13540. function GetKBCodePage;
  13541. begin
  13542. GetProcedureAddress(_GetKBCodePage, user32, 'GetKBCodePage');
  13543. asm
  13544. MOV ESP, EBP
  13545. POP EBP
  13546. JMP [_GetKBCodePage]
  13547. end;
  13548. end;
  13549. var
  13550. _GetKeyState: Pointer;
  13551. function GetKeyState;
  13552. begin
  13553. GetProcedureAddress(_GetKeyState, user32, 'GetKeyState');
  13554. asm
  13555. MOV ESP, EBP
  13556. POP EBP
  13557. JMP [_GetKeyState]
  13558. end;
  13559. end;
  13560. var
  13561. _GetAsyncKeyState: Pointer;
  13562. function GetAsyncKeyState;
  13563. begin
  13564. GetProcedureAddress(_GetAsyncKeyState, user32, 'GetAsyncKeyState');
  13565. asm
  13566. MOV ESP, EBP
  13567. POP EBP
  13568. JMP [_GetAsyncKeyState]
  13569. end;
  13570. end;
  13571. var
  13572. _GetKeyboardState: Pointer;
  13573. function GetKeyboardState;
  13574. begin
  13575. GetProcedureAddress(_GetKeyboardState, user32, 'GetKeyboardState');
  13576. asm
  13577. MOV ESP, EBP
  13578. POP EBP
  13579. JMP [_GetKeyboardState]
  13580. end;
  13581. end;
  13582. var
  13583. _SetKeyboardState: Pointer;
  13584. function SetKeyboardState;
  13585. begin
  13586. GetProcedureAddress(_SetKeyboardState, user32, 'SetKeyboardState');
  13587. asm
  13588. MOV ESP, EBP
  13589. POP EBP
  13590. JMP [_SetKeyboardState]
  13591. end;
  13592. end;
  13593. var
  13594. _GetKeyNameTextA: Pointer;
  13595. function GetKeyNameTextA;
  13596. begin
  13597. GetProcedureAddress(_GetKeyNameTextA, user32, 'GetKeyNameTextA');
  13598. asm
  13599. MOV ESP, EBP
  13600. POP EBP
  13601. JMP [_GetKeyNameTextA]
  13602. end;
  13603. end;
  13604. var
  13605. _GetKeyNameTextW: Pointer;
  13606. function GetKeyNameTextW;
  13607. begin
  13608. GetProcedureAddress(_GetKeyNameTextW, user32, 'GetKeyNameTextW');
  13609. asm
  13610. MOV ESP, EBP
  13611. POP EBP
  13612. JMP [_GetKeyNameTextW]
  13613. end;
  13614. end;
  13615. var
  13616. _GetKeyNameText: Pointer;
  13617. function GetKeyNameText;
  13618. begin
  13619. GetProcedureAddress(_GetKeyNameText, user32, 'GetKeyNameText' + AWSuffix);
  13620. asm
  13621. MOV ESP, EBP
  13622. POP EBP
  13623. JMP [_GetKeyNameText]
  13624. end;
  13625. end;
  13626. var
  13627. _GetKeyboardType: Pointer;
  13628. function GetKeyboardType;
  13629. begin
  13630. GetProcedureAddress(_GetKeyboardType, user32, 'GetKeyboardType');
  13631. asm
  13632. MOV ESP, EBP
  13633. POP EBP
  13634. JMP [_GetKeyboardType]
  13635. end;
  13636. end;
  13637. var
  13638. _ToAscii: Pointer;
  13639. function ToAscii;
  13640. begin
  13641. GetProcedureAddress(_ToAscii, user32, 'ToAscii');
  13642. asm
  13643. MOV ESP, EBP
  13644. POP EBP
  13645. JMP [_ToAscii]
  13646. end;
  13647. end;
  13648. var
  13649. _ToAsciiEx: Pointer;
  13650. function ToAsciiEx;
  13651. begin
  13652. GetProcedureAddress(_ToAsciiEx, user32, 'ToAsciiEx');
  13653. asm
  13654. MOV ESP, EBP
  13655. POP EBP
  13656. JMP [_ToAsciiEx]
  13657. end;
  13658. end;
  13659. var
  13660. _ToUnicode: Pointer;
  13661. function ToUnicode;
  13662. begin
  13663. GetProcedureAddress(_ToUnicode, user32, 'ToUnicode');
  13664. asm
  13665. MOV ESP, EBP
  13666. POP EBP
  13667. JMP [_ToUnicode]
  13668. end;
  13669. end;
  13670. var
  13671. _OemKeyScan: Pointer;
  13672. function OemKeyScan;
  13673. begin
  13674. GetProcedureAddress(_OemKeyScan, user32, 'OemKeyScan');
  13675. asm
  13676. MOV ESP, EBP
  13677. POP EBP
  13678. JMP [_OemKeyScan]
  13679. end;
  13680. end;
  13681. var
  13682. _VkKeyScanA: Pointer;
  13683. function VkKeyScanA;
  13684. begin
  13685. GetProcedureAddress(_VkKeyScanA, user32, 'VkKeyScanA');
  13686. asm
  13687. MOV ESP, EBP
  13688. POP EBP
  13689. JMP [_VkKeyScanA]
  13690. end;
  13691. end;
  13692. var
  13693. _VkKeyScanW: Pointer;
  13694. function VkKeyScanW;
  13695. begin
  13696. GetProcedureAddress(_VkKeyScanW, user32, 'VkKeyScanW');
  13697. asm
  13698. MOV ESP, EBP
  13699. POP EBP
  13700. JMP [_VkKeyScanW]
  13701. end;
  13702. end;
  13703. var
  13704. _VkKeyScan: Pointer;
  13705. function VkKeyScan;
  13706. begin
  13707. GetProcedureAddress(_VkKeyScan, user32, 'VkKeyScan' + AWSuffix);
  13708. asm
  13709. MOV ESP, EBP
  13710. POP EBP
  13711. JMP [_VkKeyScan]
  13712. end;
  13713. end;
  13714. var
  13715. _VkKeyScanExA: Pointer;
  13716. function VkKeyScanExA;
  13717. begin
  13718. GetProcedureAddress(_VkKeyScanExA, user32, 'VkKeyScanExA');
  13719. asm
  13720. MOV ESP, EBP
  13721. POP EBP
  13722. JMP [_VkKeyScanExA]
  13723. end;
  13724. end;
  13725. var
  13726. _VkKeyScanExW: Pointer;
  13727. function VkKeyScanExW;
  13728. begin
  13729. GetProcedureAddress(_VkKeyScanExW, user32, 'VkKeyScanExW');
  13730. asm
  13731. MOV ESP, EBP
  13732. POP EBP
  13733. JMP [_VkKeyScanExW]
  13734. end;
  13735. end;
  13736. var
  13737. _VkKeyScanEx: Pointer;
  13738. function VkKeyScanEx;
  13739. begin
  13740. GetProcedureAddress(_VkKeyScanEx, user32, 'VkKeyScanEx' + AWSuffix);
  13741. asm
  13742. MOV ESP, EBP
  13743. POP EBP
  13744. JMP [_VkKeyScanEx]
  13745. end;
  13746. end;
  13747. var
  13748. _keybd_event: Pointer;
  13749. procedure keybd_event;
  13750. begin
  13751. GetProcedureAddress(_keybd_event, user32, 'keybd_event');
  13752. asm
  13753. MOV ESP, EBP
  13754. POP EBP
  13755. JMP [_keybd_event]
  13756. end;
  13757. end;
  13758. var
  13759. _mouse_event: Pointer;
  13760. procedure mouse_event;
  13761. begin
  13762. GetProcedureAddress(_mouse_event, user32, 'mouse_event');
  13763. asm
  13764. MOV ESP, EBP
  13765. POP EBP
  13766. JMP [_mouse_event]
  13767. end;
  13768. end;
  13769. var
  13770. _SendInput: Pointer;
  13771. function SendInput;
  13772. begin
  13773. GetProcedureAddress(_SendInput, user32, 'SendInput');
  13774. asm
  13775. MOV ESP, EBP
  13776. POP EBP
  13777. JMP [_SendInput]
  13778. end;
  13779. end;
  13780. var
  13781. _GetLastInputInfo: Pointer;
  13782. function GetLastInputInfo;
  13783. begin
  13784. GetProcedureAddress(_GetLastInputInfo, user32, 'GetLastInputInfo');
  13785. asm
  13786. MOV ESP, EBP
  13787. POP EBP
  13788. JMP [_GetLastInputInfo]
  13789. end;
  13790. end;
  13791. var
  13792. _MapVirtualKeyA: Pointer;
  13793. function MapVirtualKeyA;
  13794. begin
  13795. GetProcedureAddress(_MapVirtualKeyA, user32, 'MapVirtualKeyA');
  13796. asm
  13797. MOV ESP, EBP
  13798. POP EBP
  13799. JMP [_MapVirtualKeyA]
  13800. end;
  13801. end;
  13802. var
  13803. _MapVirtualKeyW: Pointer;
  13804. function MapVirtualKeyW;
  13805. begin
  13806. GetProcedureAddress(_MapVirtualKeyW, user32, 'MapVirtualKeyW');
  13807. asm
  13808. MOV ESP, EBP
  13809. POP EBP
  13810. JMP [_MapVirtualKeyW]
  13811. end;
  13812. end;
  13813. var
  13814. _MapVirtualKey: Pointer;
  13815. function MapVirtualKey;
  13816. begin
  13817. GetProcedureAddress(_MapVirtualKey, user32, 'MapVirtualKey' + AWSuffix);
  13818. asm
  13819. MOV ESP, EBP
  13820. POP EBP
  13821. JMP [_MapVirtualKey]
  13822. end;
  13823. end;
  13824. var
  13825. _MapVirtualKeyExA: Pointer;
  13826. function MapVirtualKeyExA;
  13827. begin
  13828. GetProcedureAddress(_MapVirtualKeyExA, user32, 'MapVirtualKeyExA');
  13829. asm
  13830. MOV ESP, EBP
  13831. POP EBP
  13832. JMP [_MapVirtualKeyExA]
  13833. end;
  13834. end;
  13835. var
  13836. _MapVirtualKeyExW: Pointer;
  13837. function MapVirtualKeyExW;
  13838. begin
  13839. GetProcedureAddress(_MapVirtualKeyExW, user32, 'MapVirtualKeyExW');
  13840. asm
  13841. MOV ESP, EBP
  13842. POP EBP
  13843. JMP [_MapVirtualKeyExW]
  13844. end;
  13845. end;
  13846. var
  13847. _MapVirtualKeyEx: Pointer;
  13848. function MapVirtualKeyEx;
  13849. begin
  13850. GetProcedureAddress(_MapVirtualKeyEx, user32, 'MapVirtualKeyEx' + AWSuffix);
  13851. asm
  13852. MOV ESP, EBP
  13853. POP EBP
  13854. JMP [_MapVirtualKeyEx]
  13855. end;
  13856. end;
  13857. var
  13858. _GetInputState: Pointer;
  13859. function GetInputState;
  13860. begin
  13861. GetProcedureAddress(_GetInputState, user32, 'GetInputState');
  13862. asm
  13863. MOV ESP, EBP
  13864. POP EBP
  13865. JMP [_GetInputState]
  13866. end;
  13867. end;
  13868. var
  13869. _GetQueueStatus: Pointer;
  13870. function GetQueueStatus;
  13871. begin
  13872. GetProcedureAddress(_GetQueueStatus, user32, 'GetQueueStatus');
  13873. asm
  13874. MOV ESP, EBP
  13875. POP EBP
  13876. JMP [_GetQueueStatus]
  13877. end;
  13878. end;
  13879. var
  13880. _GetCapture: Pointer;
  13881. function GetCapture;
  13882. begin
  13883. GetProcedureAddress(_GetCapture, user32, 'GetCapture');
  13884. asm
  13885. MOV ESP, EBP
  13886. POP EBP
  13887. JMP [_GetCapture]
  13888. end;
  13889. end;
  13890. var
  13891. _SetCapture: Pointer;
  13892. function SetCapture;
  13893. begin
  13894. GetProcedureAddress(_SetCapture, user32, 'SetCapture');
  13895. asm
  13896. MOV ESP, EBP
  13897. POP EBP
  13898. JMP [_SetCapture]
  13899. end;
  13900. end;
  13901. var
  13902. _ReleaseCapture: Pointer;
  13903. function ReleaseCapture;
  13904. begin
  13905. GetProcedureAddress(_ReleaseCapture, user32, 'ReleaseCapture');
  13906. asm
  13907. MOV ESP, EBP
  13908. POP EBP
  13909. JMP [_ReleaseCapture]
  13910. end;
  13911. end;
  13912. var
  13913. _MsgWaitForMultipleObjects: Pointer;
  13914. function MsgWaitForMultipleObjects;
  13915. begin
  13916. GetProcedureAddress(_MsgWaitForMultipleObjects, user32, 'MsgWaitForMultipleObjects');
  13917. asm
  13918. MOV ESP, EBP
  13919. POP EBP
  13920. JMP [_MsgWaitForMultipleObjects]
  13921. end;
  13922. end;
  13923. var
  13924. _MsgWaitForMultipleObjectsEx: Pointer;
  13925. function MsgWaitForMultipleObjectsEx;
  13926. begin
  13927. GetProcedureAddress(_MsgWaitForMultipleObjectsEx, user32, 'MsgWaitForMultipleObjectsEx');
  13928. asm
  13929. MOV ESP, EBP
  13930. POP EBP
  13931. JMP [_MsgWaitForMultipleObjectsEx]
  13932. end;
  13933. end;
  13934. var
  13935. _SetTimer: Pointer;
  13936. function SetTimer;
  13937. begin
  13938. GetProcedureAddress(_SetTimer, user32, 'SetTimer');
  13939. asm
  13940. MOV ESP, EBP
  13941. POP EBP
  13942. JMP [_SetTimer]
  13943. end;
  13944. end;
  13945. var
  13946. _KillTimer: Pointer;
  13947. function KillTimer;
  13948. begin
  13949. GetProcedureAddress(_KillTimer, user32, 'KillTimer');
  13950. asm
  13951. MOV ESP, EBP
  13952. POP EBP
  13953. JMP [_KillTimer]
  13954. end;
  13955. end;
  13956. var
  13957. _IsWindowUnicode: Pointer;
  13958. function IsWindowUnicode;
  13959. begin
  13960. GetProcedureAddress(_IsWindowUnicode, user32, 'IsWindowUnicode');
  13961. asm
  13962. MOV ESP, EBP
  13963. POP EBP
  13964. JMP [_IsWindowUnicode]
  13965. end;
  13966. end;
  13967. var
  13968. _EnableWindow: Pointer;
  13969. function EnableWindow;
  13970. begin
  13971. GetProcedureAddress(_EnableWindow, user32, 'EnableWindow');
  13972. asm
  13973. MOV ESP, EBP
  13974. POP EBP
  13975. JMP [_EnableWindow]
  13976. end;
  13977. end;
  13978. var
  13979. _IsWindowEnabled: Pointer;
  13980. function IsWindowEnabled;
  13981. begin
  13982. GetProcedureAddress(_IsWindowEnabled, user32, 'IsWindowEnabled');
  13983. asm
  13984. MOV ESP, EBP
  13985. POP EBP
  13986. JMP [_IsWindowEnabled]
  13987. end;
  13988. end;
  13989. var
  13990. _LoadAcceleratorsA: Pointer;
  13991. function LoadAcceleratorsA;
  13992. begin
  13993. GetProcedureAddress(_LoadAcceleratorsA, user32, 'LoadAcceleratorsA');
  13994. asm
  13995. MOV ESP, EBP
  13996. POP EBP
  13997. JMP [_LoadAcceleratorsA]
  13998. end;
  13999. end;
  14000. var
  14001. _LoadAcceleratorsW: Pointer;
  14002. function LoadAcceleratorsW;
  14003. begin
  14004. GetProcedureAddress(_LoadAcceleratorsW, user32, 'LoadAcceleratorsW');
  14005. asm
  14006. MOV ESP, EBP
  14007. POP EBP
  14008. JMP [_LoadAcceleratorsW]
  14009. end;
  14010. end;
  14011. var
  14012. _LoadAccelerators: Pointer;
  14013. function LoadAccelerators;
  14014. begin
  14015. GetProcedureAddress(_LoadAccelerators, user32, 'LoadAccelerators' + AWSuffix);
  14016. asm
  14017. MOV ESP, EBP
  14018. POP EBP
  14019. JMP [_LoadAccelerators]
  14020. end;
  14021. end;
  14022. var
  14023. _CreateAcceleratorTableA: Pointer;
  14024. function CreateAcceleratorTableA;
  14025. begin
  14026. GetProcedureAddress(_CreateAcceleratorTableA, user32, 'CreateAcceleratorTableA');
  14027. asm
  14028. MOV ESP, EBP
  14029. POP EBP
  14030. JMP [_CreateAcceleratorTableA]
  14031. end;
  14032. end;
  14033. var
  14034. _CreateAcceleratorTableW: Pointer;
  14035. function CreateAcceleratorTableW;
  14036. begin
  14037. GetProcedureAddress(_CreateAcceleratorTableW, user32, 'CreateAcceleratorTableW');
  14038. asm
  14039. MOV ESP, EBP
  14040. POP EBP
  14041. JMP [_CreateAcceleratorTableW]
  14042. end;
  14043. end;
  14044. var
  14045. _CreateAcceleratorTable: Pointer;
  14046. function CreateAcceleratorTable;
  14047. begin
  14048. GetProcedureAddress(_CreateAcceleratorTable, user32, 'CreateAcceleratorTable' + AWSuffix);
  14049. asm
  14050. MOV ESP, EBP
  14051. POP EBP
  14052. JMP [_CreateAcceleratorTable]
  14053. end;
  14054. end;
  14055. var
  14056. _DestroyAcceleratorTable: Pointer;
  14057. function DestroyAcceleratorTable;
  14058. begin
  14059. GetProcedureAddress(_DestroyAcceleratorTable, user32, 'DestroyAcceleratorTable');
  14060. asm
  14061. MOV ESP, EBP
  14062. POP EBP
  14063. JMP [_DestroyAcceleratorTable]
  14064. end;
  14065. end;
  14066. var
  14067. _CopyAcceleratorTableA: Pointer;
  14068. function CopyAcceleratorTableA;
  14069. begin
  14070. GetProcedureAddress(_CopyAcceleratorTableA, user32, 'CopyAcceleratorTableA');
  14071. asm
  14072. MOV ESP, EBP
  14073. POP EBP
  14074. JMP [_CopyAcceleratorTableA]
  14075. end;
  14076. end;
  14077. var
  14078. _CopyAcceleratorTableW: Pointer;
  14079. function CopyAcceleratorTableW;
  14080. begin
  14081. GetProcedureAddress(_CopyAcceleratorTableW, user32, 'CopyAcceleratorTableW');
  14082. asm
  14083. MOV ESP, EBP
  14084. POP EBP
  14085. JMP [_CopyAcceleratorTableW]
  14086. end;
  14087. end;
  14088. var
  14089. _CopyAcceleratorTable: Pointer;
  14090. function CopyAcceleratorTable;
  14091. begin
  14092. GetProcedureAddress(_CopyAcceleratorTable, user32, 'CopyAcceleratorTable' + AWSuffix);
  14093. asm
  14094. MOV ESP, EBP
  14095. POP EBP
  14096. JMP [_CopyAcceleratorTable]
  14097. end;
  14098. end;
  14099. var
  14100. _TranslateAcceleratorA: Pointer;
  14101. function TranslateAcceleratorA;
  14102. begin
  14103. GetProcedureAddress(_TranslateAcceleratorA, user32, 'TranslateAcceleratorA');
  14104. asm
  14105. MOV ESP, EBP
  14106. POP EBP
  14107. JMP [_TranslateAcceleratorA]
  14108. end;
  14109. end;
  14110. var
  14111. _TranslateAcceleratorW: Pointer;
  14112. function TranslateAcceleratorW;
  14113. begin
  14114. GetProcedureAddress(_TranslateAcceleratorW, user32, 'TranslateAcceleratorW');
  14115. asm
  14116. MOV ESP, EBP
  14117. POP EBP
  14118. JMP [_TranslateAcceleratorW]
  14119. end;
  14120. end;
  14121. var
  14122. _TranslateAccelerator: Pointer;
  14123. function TranslateAccelerator;
  14124. begin
  14125. GetProcedureAddress(_TranslateAccelerator, user32, 'TranslateAccelerator' + AWSuffix);
  14126. asm
  14127. MOV ESP, EBP
  14128. POP EBP
  14129. JMP [_TranslateAccelerator]
  14130. end;
  14131. end;
  14132. var
  14133. _GetSystemMetrics: Pointer;
  14134. function GetSystemMetrics;
  14135. begin
  14136. GetProcedureAddress(_GetSystemMetrics, user32, 'GetSystemMetrics');
  14137. asm
  14138. MOV ESP, EBP
  14139. POP EBP
  14140. JMP [_GetSystemMetrics]
  14141. end;
  14142. end;
  14143. var
  14144. _LoadMenuA: Pointer;
  14145. function LoadMenuA;
  14146. begin
  14147. GetProcedureAddress(_LoadMenuA, user32, 'LoadMenuAA');
  14148. asm
  14149. MOV ESP, EBP
  14150. POP EBP
  14151. JMP [_LoadMenuA]
  14152. end;
  14153. end;
  14154. var
  14155. _LoadMenuW: Pointer;
  14156. function LoadMenuW;
  14157. begin
  14158. GetProcedureAddress(_LoadMenuW, user32, 'LoadMenuWA');
  14159. asm
  14160. MOV ESP, EBP
  14161. POP EBP
  14162. JMP [_LoadMenuW]
  14163. end;
  14164. end;
  14165. var
  14166. _LoadMenu: Pointer;
  14167. function LoadMenu;
  14168. begin
  14169. GetProcedureAddress(_LoadMenu, user32, 'LoadMenu' + AWSuffix);
  14170. asm
  14171. MOV ESP, EBP
  14172. POP EBP
  14173. JMP [_LoadMenu]
  14174. end;
  14175. end;
  14176. var
  14177. _LoadMenuIndirectA: Pointer;
  14178. function LoadMenuIndirectA;
  14179. begin
  14180. GetProcedureAddress(_LoadMenuIndirectA, user32, 'LoadMenuIndirectA');
  14181. asm
  14182. MOV ESP, EBP
  14183. POP EBP
  14184. JMP [_LoadMenuIndirectA]
  14185. end;
  14186. end;
  14187. var
  14188. _LoadMenuIndirectW: Pointer;
  14189. function LoadMenuIndirectW;
  14190. begin
  14191. GetProcedureAddress(_LoadMenuIndirectW, user32, 'LoadMenuIndirectW');
  14192. asm
  14193. MOV ESP, EBP
  14194. POP EBP
  14195. JMP [_LoadMenuIndirectW]
  14196. end;
  14197. end;
  14198. var
  14199. _LoadMenuIndirect: Pointer;
  14200. function LoadMenuIndirect;
  14201. begin
  14202. GetProcedureAddress(_LoadMenuIndirect, user32, 'LoadMenuIndirect' + AWSuffix);
  14203. asm
  14204. MOV ESP, EBP
  14205. POP EBP
  14206. JMP [_LoadMenuIndirect]
  14207. end;
  14208. end;
  14209. var
  14210. _GetMenu: Pointer;
  14211. function GetMenu;
  14212. begin
  14213. GetProcedureAddress(_GetMenu, user32, 'GetMenu');
  14214. asm
  14215. MOV ESP, EBP
  14216. POP EBP
  14217. JMP [_GetMenu]
  14218. end;
  14219. end;
  14220. var
  14221. _SetMenu: Pointer;
  14222. function SetMenu;
  14223. begin
  14224. GetProcedureAddress(_SetMenu, user32, 'SetMenu');
  14225. asm
  14226. MOV ESP, EBP
  14227. POP EBP
  14228. JMP [_SetMenu]
  14229. end;
  14230. end;
  14231. var
  14232. _ChangeMenuA: Pointer;
  14233. function ChangeMenuA;
  14234. begin
  14235. GetProcedureAddress(_ChangeMenuA, user32, 'ChangeMenuA');
  14236. asm
  14237. MOV ESP, EBP
  14238. POP EBP
  14239. JMP [_ChangeMenuA]
  14240. end;
  14241. end;
  14242. var
  14243. _ChangeMenuW: Pointer;
  14244. function ChangeMenuW;
  14245. begin
  14246. GetProcedureAddress(_ChangeMenuW, user32, 'ChangeMenuW');
  14247. asm
  14248. MOV ESP, EBP
  14249. POP EBP
  14250. JMP [_ChangeMenuW]
  14251. end;
  14252. end;
  14253. var
  14254. _ChangeMenu: Pointer;
  14255. function ChangeMenu;
  14256. begin
  14257. GetProcedureAddress(_ChangeMenu, user32, 'ChangeMenu' + AWSuffix);
  14258. asm
  14259. MOV ESP, EBP
  14260. POP EBP
  14261. JMP [_ChangeMenu]
  14262. end;
  14263. end;
  14264. var
  14265. _HiliteMenuItem: Pointer;
  14266. function HiliteMenuItem;
  14267. begin
  14268. GetProcedureAddress(_HiliteMenuItem, user32, 'HiliteMenuItem');
  14269. asm
  14270. MOV ESP, EBP
  14271. POP EBP
  14272. JMP [_HiliteMenuItem]
  14273. end;
  14274. end;
  14275. var
  14276. _GetMenuStringA: Pointer;
  14277. function GetMenuStringA;
  14278. begin
  14279. GetProcedureAddress(_GetMenuStringA, user32, 'GetMenuStringA');
  14280. asm
  14281. MOV ESP, EBP
  14282. POP EBP
  14283. JMP [_GetMenuStringA]
  14284. end;
  14285. end;
  14286. var
  14287. _GetMenuStringW: Pointer;
  14288. function GetMenuStringW;
  14289. begin
  14290. GetProcedureAddress(_GetMenuStringW, user32, 'GetMenuStringW');
  14291. asm
  14292. MOV ESP, EBP
  14293. POP EBP
  14294. JMP [_GetMenuStringW]
  14295. end;
  14296. end;
  14297. var
  14298. _GetMenuString: Pointer;
  14299. function GetMenuString;
  14300. begin
  14301. GetProcedureAddress(_GetMenuString, user32, 'GetMenuString' + AWSuffix);
  14302. asm
  14303. MOV ESP, EBP
  14304. POP EBP
  14305. JMP [_GetMenuString]
  14306. end;
  14307. end;
  14308. var
  14309. _GetMenuState: Pointer;
  14310. function GetMenuState;
  14311. begin
  14312. GetProcedureAddress(_GetMenuState, user32, 'GetMenuState');
  14313. asm
  14314. MOV ESP, EBP
  14315. POP EBP
  14316. JMP [_GetMenuState]
  14317. end;
  14318. end;
  14319. var
  14320. _DrawMenuBar: Pointer;
  14321. function DrawMenuBar;
  14322. begin
  14323. GetProcedureAddress(_DrawMenuBar, user32, 'DrawMenuBar');
  14324. asm
  14325. MOV ESP, EBP
  14326. POP EBP
  14327. JMP [_DrawMenuBar]
  14328. end;
  14329. end;
  14330. var
  14331. _GetSystemMenu: Pointer;
  14332. function GetSystemMenu;
  14333. begin
  14334. GetProcedureAddress(_GetSystemMenu, user32, 'GetSystemMenu');
  14335. asm
  14336. MOV ESP, EBP
  14337. POP EBP
  14338. JMP [_GetSystemMenu]
  14339. end;
  14340. end;
  14341. var
  14342. _CreateMenu: Pointer;
  14343. function CreateMenu;
  14344. begin
  14345. GetProcedureAddress(_CreateMenu, user32, 'CreateMenu');
  14346. asm
  14347. MOV ESP, EBP
  14348. POP EBP
  14349. JMP [_CreateMenu]
  14350. end;
  14351. end;
  14352. var
  14353. _CreatePopupMenu: Pointer;
  14354. function CreatePopupMenu;
  14355. begin
  14356. GetProcedureAddress(_CreatePopupMenu, user32, 'CreatePopupMenu');
  14357. asm
  14358. MOV ESP, EBP
  14359. POP EBP
  14360. JMP [_CreatePopupMenu]
  14361. end;
  14362. end;
  14363. var
  14364. _DestroyMenu: Pointer;
  14365. function DestroyMenu;
  14366. begin
  14367. GetProcedureAddress(_DestroyMenu, user32, 'DestroyMenu');
  14368. asm
  14369. MOV ESP, EBP
  14370. POP EBP
  14371. JMP [_DestroyMenu]
  14372. end;
  14373. end;
  14374. var
  14375. _CheckMenuItem: Pointer;
  14376. function CheckMenuItem;
  14377. begin
  14378. GetProcedureAddress(_CheckMenuItem, user32, 'CheckMenuItem');
  14379. asm
  14380. MOV ESP, EBP
  14381. POP EBP
  14382. JMP [_CheckMenuItem]
  14383. end;
  14384. end;
  14385. var
  14386. _EnableMenuItem: Pointer;
  14387. function EnableMenuItem;
  14388. begin
  14389. GetProcedureAddress(_EnableMenuItem, user32, 'EnableMenuItem');
  14390. asm
  14391. MOV ESP, EBP
  14392. POP EBP
  14393. JMP [_EnableMenuItem]
  14394. end;
  14395. end;
  14396. var
  14397. _GetSubMenu: Pointer;
  14398. function GetSubMenu;
  14399. begin
  14400. GetProcedureAddress(_GetSubMenu, user32, 'GetSubMenu');
  14401. asm
  14402. MOV ESP, EBP
  14403. POP EBP
  14404. JMP [_GetSubMenu]
  14405. end;
  14406. end;
  14407. var
  14408. _GetMenuItemID: Pointer;
  14409. function GetMenuItemID;
  14410. begin
  14411. GetProcedureAddress(_GetMenuItemID, user32, 'GetMenuItemID');
  14412. asm
  14413. MOV ESP, EBP
  14414. POP EBP
  14415. JMP [_GetMenuItemID]
  14416. end;
  14417. end;
  14418. var
  14419. _GetMenuItemCount: Pointer;
  14420. function GetMenuItemCount;
  14421. begin
  14422. GetProcedureAddress(_GetMenuItemCount, user32, 'GetMenuItemCount');
  14423. asm
  14424. MOV ESP, EBP
  14425. POP EBP
  14426. JMP [_GetMenuItemCount]
  14427. end;
  14428. end;
  14429. var
  14430. _InsertMenuA: Pointer;
  14431. function InsertMenuA;
  14432. begin
  14433. GetProcedureAddress(_InsertMenuA, user32, 'InsertMenuA');
  14434. asm
  14435. MOV ESP, EBP
  14436. POP EBP
  14437. JMP [_InsertMenuA]
  14438. end;
  14439. end;
  14440. var
  14441. _InsertMenuW: Pointer;
  14442. function InsertMenuW;
  14443. begin
  14444. GetProcedureAddress(_InsertMenuW, user32, 'InsertMenuW');
  14445. asm
  14446. MOV ESP, EBP
  14447. POP EBP
  14448. JMP [_InsertMenuW]
  14449. end;
  14450. end;
  14451. var
  14452. _InsertMenu: Pointer;
  14453. function InsertMenu;
  14454. begin
  14455. GetProcedureAddress(_InsertMenu, user32, 'InsertMenu' + AWSuffix);
  14456. asm
  14457. MOV ESP, EBP
  14458. POP EBP
  14459. JMP [_InsertMenu]
  14460. end;
  14461. end;
  14462. var
  14463. _AppendMenuA: Pointer;
  14464. function AppendMenuA;
  14465. begin
  14466. GetProcedureAddress(_AppendMenuA, user32, 'AppendMenuA');
  14467. asm
  14468. MOV ESP, EBP
  14469. POP EBP
  14470. JMP [_AppendMenuA]
  14471. end;
  14472. end;
  14473. var
  14474. _AppendMenuW: Pointer;
  14475. function AppendMenuW;
  14476. begin
  14477. GetProcedureAddress(_AppendMenuW, user32, 'AppendMenuW');
  14478. asm
  14479. MOV ESP, EBP
  14480. POP EBP
  14481. JMP [_AppendMenuW]
  14482. end;
  14483. end;
  14484. var
  14485. _AppendMenu: Pointer;
  14486. function AppendMenu;
  14487. begin
  14488. GetProcedureAddress(_AppendMenu, user32, 'AppendMenu' + AWSuffix);
  14489. asm
  14490. MOV ESP, EBP
  14491. POP EBP
  14492. JMP [_AppendMenu]
  14493. end;
  14494. end;
  14495. var
  14496. _ModifyMenuA: Pointer;
  14497. function ModifyMenuA;
  14498. begin
  14499. GetProcedureAddress(_ModifyMenuA, user32, 'ModifyMenuA');
  14500. asm
  14501. MOV ESP, EBP
  14502. POP EBP
  14503. JMP [_ModifyMenuA]
  14504. end;
  14505. end;
  14506. var
  14507. _ModifyMenuW: Pointer;
  14508. function ModifyMenuW;
  14509. begin
  14510. GetProcedureAddress(_ModifyMenuW, user32, 'ModifyMenuW');
  14511. asm
  14512. MOV ESP, EBP
  14513. POP EBP
  14514. JMP [_ModifyMenuW]
  14515. end;
  14516. end;
  14517. var
  14518. _ModifyMenu: Pointer;
  14519. function ModifyMenu;
  14520. begin
  14521. GetProcedureAddress(_ModifyMenu, user32, 'ModifyMenu' + AWSuffix);
  14522. asm
  14523. MOV ESP, EBP
  14524. POP EBP
  14525. JMP [_ModifyMenu]
  14526. end;
  14527. end;
  14528. var
  14529. _RemoveMenu: Pointer;
  14530. function RemoveMenu;
  14531. begin
  14532. GetProcedureAddress(_RemoveMenu, user32, 'RemoveMenu');
  14533. asm
  14534. MOV ESP, EBP
  14535. POP EBP
  14536. JMP [_RemoveMenu]
  14537. end;
  14538. end;
  14539. var
  14540. _DeleteMenu: Pointer;
  14541. function DeleteMenu;
  14542. begin
  14543. GetProcedureAddress(_DeleteMenu, user32, 'DeleteMenu');
  14544. asm
  14545. MOV ESP, EBP
  14546. POP EBP
  14547. JMP [_DeleteMenu]
  14548. end;
  14549. end;
  14550. var
  14551. _SetMenuItemBitmaps: Pointer;
  14552. function SetMenuItemBitmaps;
  14553. begin
  14554. GetProcedureAddress(_SetMenuItemBitmaps, user32, 'SetMenuItemBitmaps');
  14555. asm
  14556. MOV ESP, EBP
  14557. POP EBP
  14558. JMP [_SetMenuItemBitmaps]
  14559. end;
  14560. end;
  14561. var
  14562. _GetMenuCheckMarkDimensions: Pointer;
  14563. function GetMenuCheckMarkDimensions;
  14564. begin
  14565. GetProcedureAddress(_GetMenuCheckMarkDimensions, user32, 'GetMenuCheckMarkDimensions');
  14566. asm
  14567. MOV ESP, EBP
  14568. POP EBP
  14569. JMP [_GetMenuCheckMarkDimensions]
  14570. end;
  14571. end;
  14572. var
  14573. _TrackPopupMenu: Pointer;
  14574. function TrackPopupMenu;
  14575. begin
  14576. GetProcedureAddress(_TrackPopupMenu, user32, 'TrackPopupMenu');
  14577. asm
  14578. MOV ESP, EBP
  14579. POP EBP
  14580. JMP [_TrackPopupMenu]
  14581. end;
  14582. end;
  14583. var
  14584. _TrackPopupMenuEx: Pointer;
  14585. function TrackPopupMenuEx;
  14586. begin
  14587. GetProcedureAddress(_TrackPopupMenuEx, user32, 'TrackPopupMenuEx');
  14588. asm
  14589. MOV ESP, EBP
  14590. POP EBP
  14591. JMP [_TrackPopupMenuEx]
  14592. end;
  14593. end;
  14594. var
  14595. _GetMenuInfo: Pointer;
  14596. function GetMenuInfo;
  14597. begin
  14598. GetProcedureAddress(_GetMenuInfo, user32, 'GetMenuInfo');
  14599. asm
  14600. MOV ESP, EBP
  14601. POP EBP
  14602. JMP [_GetMenuInfo]
  14603. end;
  14604. end;
  14605. var
  14606. _SetMenuInfo: Pointer;
  14607. function SetMenuInfo;
  14608. begin
  14609. GetProcedureAddress(_SetMenuInfo, user32, 'SetMenuInfo');
  14610. asm
  14611. MOV ESP, EBP
  14612. POP EBP
  14613. JMP [_SetMenuInfo]
  14614. end;
  14615. end;
  14616. var
  14617. _EndMenu: Pointer;
  14618. function EndMenu;
  14619. begin
  14620. GetProcedureAddress(_EndMenu, user32, 'EndMenu');
  14621. asm
  14622. MOV ESP, EBP
  14623. POP EBP
  14624. JMP [_EndMenu]
  14625. end;
  14626. end;
  14627. var
  14628. _InsertMenuItemA: Pointer;
  14629. function InsertMenuItemA;
  14630. begin
  14631. GetProcedureAddress(_InsertMenuItemA, user32, 'InsertMenuItemA');
  14632. asm
  14633. MOV ESP, EBP
  14634. POP EBP
  14635. JMP [_InsertMenuItemA]
  14636. end;
  14637. end;
  14638. var
  14639. _InsertMenuItemW: Pointer;
  14640. function InsertMenuItemW;
  14641. begin
  14642. GetProcedureAddress(_InsertMenuItemW, user32, 'InsertMenuItemW');
  14643. asm
  14644. MOV ESP, EBP
  14645. POP EBP
  14646. JMP [_InsertMenuItemW]
  14647. end;
  14648. end;
  14649. var
  14650. _InsertMenuItem: Pointer;
  14651. function InsertMenuItem;
  14652. begin
  14653. GetProcedureAddress(_InsertMenuItem, user32, 'InsertMenuItem' + AWSuffix);
  14654. asm
  14655. MOV ESP, EBP
  14656. POP EBP
  14657. JMP [_InsertMenuItem]
  14658. end;
  14659. end;
  14660. var
  14661. _GetMenuItemInfoA: Pointer;
  14662. function GetMenuItemInfoA;
  14663. begin
  14664. GetProcedureAddress(_GetMenuItemInfoA, user32, 'GetMenuItemInfoA');
  14665. asm
  14666. MOV ESP, EBP
  14667. POP EBP
  14668. JMP [_GetMenuItemInfoA]
  14669. end;
  14670. end;
  14671. var
  14672. _GetMenuItemInfoW: Pointer;
  14673. function GetMenuItemInfoW;
  14674. begin
  14675. GetProcedureAddress(_GetMenuItemInfoW, user32, 'GetMenuItemInfoW');
  14676. asm
  14677. MOV ESP, EBP
  14678. POP EBP
  14679. JMP [_GetMenuItemInfoW]
  14680. end;
  14681. end;
  14682. var
  14683. _GetMenuItemInfo: Pointer;
  14684. function GetMenuItemInfo;
  14685. begin
  14686. GetProcedureAddress(_GetMenuItemInfo, user32, 'GetMenuItemInfo' + AWSuffix);
  14687. asm
  14688. MOV ESP, EBP
  14689. POP EBP
  14690. JMP [_GetMenuItemInfo]
  14691. end;
  14692. end;
  14693. var
  14694. _SetMenuItemInfoA: Pointer;
  14695. function SetMenuItemInfoA;
  14696. begin
  14697. GetProcedureAddress(_SetMenuItemInfoA, user32, 'SetMenuItemInfoA');
  14698. asm
  14699. MOV ESP, EBP
  14700. POP EBP
  14701. JMP [_SetMenuItemInfoA]
  14702. end;
  14703. end;
  14704. var
  14705. _SetMenuItemInfoW: Pointer;
  14706. function SetMenuItemInfoW;
  14707. begin
  14708. GetProcedureAddress(_SetMenuItemInfoW, user32, 'SetMenuItemInfoW');
  14709. asm
  14710. MOV ESP, EBP
  14711. POP EBP
  14712. JMP [_SetMenuItemInfoW]
  14713. end;
  14714. end;
  14715. var
  14716. _SetMenuItemInfo: Pointer;
  14717. function SetMenuItemInfo;
  14718. begin
  14719. GetProcedureAddress(_SetMenuItemInfo, user32, 'SetMenuItemInfo' + AWSuffix);
  14720. asm
  14721. MOV ESP, EBP
  14722. POP EBP
  14723. JMP [_SetMenuItemInfo]
  14724. end;
  14725. end;
  14726. var
  14727. _GetMenuDefaultItem: Pointer;
  14728. function GetMenuDefaultItem;
  14729. begin
  14730. GetProcedureAddress(_GetMenuDefaultItem, user32, 'GetMenuDefaultItem');
  14731. asm
  14732. MOV ESP, EBP
  14733. POP EBP
  14734. JMP [_GetMenuDefaultItem]
  14735. end;
  14736. end;
  14737. var
  14738. _SetMenuDefaultItem: Pointer;
  14739. function SetMenuDefaultItem;
  14740. begin
  14741. GetProcedureAddress(_SetMenuDefaultItem, user32, 'SetMenuDefaultItem');
  14742. asm
  14743. MOV ESP, EBP
  14744. POP EBP
  14745. JMP [_SetMenuDefaultItem]
  14746. end;
  14747. end;
  14748. var
  14749. _GetMenuItemRect: Pointer;
  14750. function GetMenuItemRect;
  14751. begin
  14752. GetProcedureAddress(_GetMenuItemRect, user32, 'GetMenuItemRect');
  14753. asm
  14754. MOV ESP, EBP
  14755. POP EBP
  14756. JMP [_GetMenuItemRect]
  14757. end;
  14758. end;
  14759. var
  14760. _MenuItemFromPoint: Pointer;
  14761. function MenuItemFromPoint;
  14762. begin
  14763. GetProcedureAddress(_MenuItemFromPoint, user32, 'MenuItemFromPoint');
  14764. asm
  14765. MOV ESP, EBP
  14766. POP EBP
  14767. JMP [_MenuItemFromPoint]
  14768. end;
  14769. end;
  14770. var
  14771. _DragObject: Pointer;
  14772. function DragObject;
  14773. begin
  14774. GetProcedureAddress(_DragObject, user32, 'DragObject');
  14775. asm
  14776. MOV ESP, EBP
  14777. POP EBP
  14778. JMP [_DragObject]
  14779. end;
  14780. end;
  14781. var
  14782. _DragDetect: Pointer;
  14783. function DragDetect;
  14784. begin
  14785. GetProcedureAddress(_DragDetect, user32, 'DragDetect');
  14786. asm
  14787. MOV ESP, EBP
  14788. POP EBP
  14789. JMP [_DragDetect]
  14790. end;
  14791. end;
  14792. var
  14793. _DrawIcon: Pointer;
  14794. function DrawIcon;
  14795. begin
  14796. GetProcedureAddress(_DrawIcon, user32, 'DrawIcon');
  14797. asm
  14798. MOV ESP, EBP
  14799. POP EBP
  14800. JMP [_DrawIcon]
  14801. end;
  14802. end;
  14803. var
  14804. _DrawTextA: Pointer;
  14805. function DrawTextA;
  14806. begin
  14807. GetProcedureAddress(_DrawTextA, user32, 'DrawTextA');
  14808. asm
  14809. MOV ESP, EBP
  14810. POP EBP
  14811. JMP [_DrawTextA]
  14812. end;
  14813. end;
  14814. var
  14815. _DrawTextW: Pointer;
  14816. function DrawTextW;
  14817. begin
  14818. GetProcedureAddress(_DrawTextW, user32, 'DrawTextW');
  14819. asm
  14820. MOV ESP, EBP
  14821. POP EBP
  14822. JMP [_DrawTextW]
  14823. end;
  14824. end;
  14825. var
  14826. _DrawText: Pointer;
  14827. function DrawText;
  14828. begin
  14829. GetProcedureAddress(_DrawText, user32, 'DrawText' + AWSuffix);
  14830. asm
  14831. MOV ESP, EBP
  14832. POP EBP
  14833. JMP [_DrawText]
  14834. end;
  14835. end;
  14836. var
  14837. _DrawTextExA: Pointer;
  14838. function DrawTextExA;
  14839. begin
  14840. GetProcedureAddress(_DrawTextExA, user32, 'DrawTextExA');
  14841. asm
  14842. MOV ESP, EBP
  14843. POP EBP
  14844. JMP [_DrawTextExA]
  14845. end;
  14846. end;
  14847. var
  14848. _DrawTextExW: Pointer;
  14849. function DrawTextExW;
  14850. begin
  14851. GetProcedureAddress(_DrawTextExW, user32, 'DrawTextExW');
  14852. asm
  14853. MOV ESP, EBP
  14854. POP EBP
  14855. JMP [_DrawTextExW]
  14856. end;
  14857. end;
  14858. var
  14859. _DrawTextEx: Pointer;
  14860. function DrawTextEx;
  14861. begin
  14862. GetProcedureAddress(_DrawTextEx, user32, 'DrawTextEx' + AWSuffix);
  14863. asm
  14864. MOV ESP, EBP
  14865. POP EBP
  14866. JMP [_DrawTextEx]
  14867. end;
  14868. end;
  14869. var
  14870. _GrayStringA: Pointer;
  14871. function GrayStringA;
  14872. begin
  14873. GetProcedureAddress(_GrayStringA, user32, 'GrayStringA');
  14874. asm
  14875. MOV ESP, EBP
  14876. POP EBP
  14877. JMP [_GrayStringA]
  14878. end;
  14879. end;
  14880. var
  14881. _GrayStringW: Pointer;
  14882. function GrayStringW;
  14883. begin
  14884. GetProcedureAddress(_GrayStringW, user32, 'GrayStringW');
  14885. asm
  14886. MOV ESP, EBP
  14887. POP EBP
  14888. JMP [_GrayStringW]
  14889. end;
  14890. end;
  14891. var
  14892. _GrayString: Pointer;
  14893. function GrayString;
  14894. begin
  14895. GetProcedureAddress(_GrayString, user32, 'GrayString' + AWSuffix);
  14896. asm
  14897. MOV ESP, EBP
  14898. POP EBP
  14899. JMP [_GrayString]
  14900. end;
  14901. end;
  14902. var
  14903. _DrawStateA: Pointer;
  14904. function DrawStateA;
  14905. begin
  14906. GetProcedureAddress(_DrawStateA, user32, 'DrawStateA');
  14907. asm
  14908. MOV ESP, EBP
  14909. POP EBP
  14910. JMP [_DrawStateA]
  14911. end;
  14912. end;
  14913. var
  14914. _DrawStateW: Pointer;
  14915. function DrawStateW;
  14916. begin
  14917. GetProcedureAddress(_DrawStateW, user32, 'DrawStateW');
  14918. asm
  14919. MOV ESP, EBP
  14920. POP EBP
  14921. JMP [_DrawStateW]
  14922. end;
  14923. end;
  14924. var
  14925. _DrawState: Pointer;
  14926. function DrawState;
  14927. begin
  14928. GetProcedureAddress(_DrawState, user32, 'DrawState' + AWSuffix);
  14929. asm
  14930. MOV ESP, EBP
  14931. POP EBP
  14932. JMP [_DrawState]
  14933. end;
  14934. end;
  14935. var
  14936. _TabbedTextOutA: Pointer;
  14937. function TabbedTextOutA;
  14938. begin
  14939. GetProcedureAddress(_TabbedTextOutA, user32, 'TabbedTextOutA');
  14940. asm
  14941. MOV ESP, EBP
  14942. POP EBP
  14943. JMP [_TabbedTextOutA]
  14944. end;
  14945. end;
  14946. var
  14947. _TabbedTextOutW: Pointer;
  14948. function TabbedTextOutW;
  14949. begin
  14950. GetProcedureAddress(_TabbedTextOutW, user32, 'TabbedTextOutW');
  14951. asm
  14952. MOV ESP, EBP
  14953. POP EBP
  14954. JMP [_TabbedTextOutW]
  14955. end;
  14956. end;
  14957. var
  14958. _TabbedTextOut: Pointer;
  14959. function TabbedTextOut;
  14960. begin
  14961. GetProcedureAddress(_TabbedTextOut, user32, 'TabbedTextOut' + AWSuffix);
  14962. asm
  14963. MOV ESP, EBP
  14964. POP EBP
  14965. JMP [_TabbedTextOut]
  14966. end;
  14967. end;
  14968. var
  14969. _GetTabbedTextExtentA: Pointer;
  14970. function GetTabbedTextExtentA;
  14971. begin
  14972. GetProcedureAddress(_GetTabbedTextExtentA, user32, 'GetTabbedTextExtentA');
  14973. asm
  14974. MOV ESP, EBP
  14975. POP EBP
  14976. JMP [_GetTabbedTextExtentA]
  14977. end;
  14978. end;
  14979. var
  14980. _GetTabbedTextExtentW: Pointer;
  14981. function GetTabbedTextExtentW;
  14982. begin
  14983. GetProcedureAddress(_GetTabbedTextExtentW, user32, 'GetTabbedTextExtentW');
  14984. asm
  14985. MOV ESP, EBP
  14986. POP EBP
  14987. JMP [_GetTabbedTextExtentW]
  14988. end;
  14989. end;
  14990. var
  14991. _GetTabbedTextExtent: Pointer;
  14992. function GetTabbedTextExtent;
  14993. begin
  14994. GetProcedureAddress(_GetTabbedTextExtent, user32, 'GetTabbedTextExtent' + AWSuffix);
  14995. asm
  14996. MOV ESP, EBP
  14997. POP EBP
  14998. JMP [_GetTabbedTextExtent]
  14999. end;
  15000. end;
  15001. var
  15002. _UpdateWindow: Pointer;
  15003. function UpdateWindow;
  15004. begin
  15005. GetProcedureAddress(_UpdateWindow, user32, 'UpdateWindow');
  15006. asm
  15007. MOV ESP, EBP
  15008. POP EBP
  15009. JMP [_UpdateWindow]
  15010. end;
  15011. end;
  15012. var
  15013. _SetActiveWindow: Pointer;
  15014. function SetActiveWindow;
  15015. begin
  15016. GetProcedureAddress(_SetActiveWindow, user32, 'SetActiveWindow');
  15017. asm
  15018. MOV ESP, EBP
  15019. POP EBP
  15020. JMP [_SetActiveWindow]
  15021. end;
  15022. end;
  15023. var
  15024. _GetForegroundWindow: Pointer;
  15025. function GetForegroundWindow;
  15026. begin
  15027. GetProcedureAddress(_GetForegroundWindow, user32, 'GetForegroundWindow');
  15028. asm
  15029. MOV ESP, EBP
  15030. POP EBP
  15031. JMP [_GetForegroundWindow]
  15032. end;
  15033. end;
  15034. var
  15035. _PaintDesktop: Pointer;
  15036. function PaintDesktop;
  15037. begin
  15038. GetProcedureAddress(_PaintDesktop, user32, 'PaintDesktop');
  15039. asm
  15040. MOV ESP, EBP
  15041. POP EBP
  15042. JMP [_PaintDesktop]
  15043. end;
  15044. end;
  15045. var
  15046. _SwitchToThisWindow: Pointer;
  15047. procedure SwitchToThisWindow;
  15048. begin
  15049. GetProcedureAddress(_SwitchToThisWindow, user32, 'SwitchToThisWindow');
  15050. asm
  15051. MOV ESP, EBP
  15052. POP EBP
  15053. JMP [_SwitchToThisWindow]
  15054. end;
  15055. end;
  15056. var
  15057. _SetForegroundWindow: Pointer;
  15058. function SetForegroundWindow;
  15059. begin
  15060. GetProcedureAddress(_SetForegroundWindow, user32, 'SetForegroundWindow');
  15061. asm
  15062. MOV ESP, EBP
  15063. POP EBP
  15064. JMP [_SetForegroundWindow]
  15065. end;
  15066. end;
  15067. var
  15068. _AllowSetForegroundWindow: Pointer;
  15069. function AllowSetForegroundWindow;
  15070. begin
  15071. GetProcedureAddress(_AllowSetForegroundWindow, user32, 'AllowSetForegroundWindow');
  15072. asm
  15073. MOV ESP, EBP
  15074. POP EBP
  15075. JMP [_AllowSetForegroundWindow]
  15076. end;
  15077. end;
  15078. var
  15079. _LockSetForegroundWindow: Pointer;
  15080. function LockSetForegroundWindow;
  15081. begin
  15082. GetProcedureAddress(_LockSetForegroundWindow, user32, 'LockSetForegroundWindow');
  15083. asm
  15084. MOV ESP, EBP
  15085. POP EBP
  15086. JMP [_LockSetForegroundWindow]
  15087. end;
  15088. end;
  15089. var
  15090. _WindowFromDC: Pointer;
  15091. function WindowFromDC;
  15092. begin
  15093. GetProcedureAddress(_WindowFromDC, user32, 'WindowFromDC');
  15094. asm
  15095. MOV ESP, EBP
  15096. POP EBP
  15097. JMP [_WindowFromDC]
  15098. end;
  15099. end;
  15100. var
  15101. _GetDC: Pointer;
  15102. function GetDC;
  15103. begin
  15104. GetProcedureAddress(_GetDC, user32, 'GetDC');
  15105. asm
  15106. MOV ESP, EBP
  15107. POP EBP
  15108. JMP [_GetDC]
  15109. end;
  15110. end;
  15111. var
  15112. _GetDCEx: Pointer;
  15113. function GetDCEx;
  15114. begin
  15115. GetProcedureAddress(_GetDCEx, user32, 'GetDCEx');
  15116. asm
  15117. MOV ESP, EBP
  15118. POP EBP
  15119. JMP [_GetDCEx]
  15120. end;
  15121. end;
  15122. var
  15123. _GetWindowDC: Pointer;
  15124. function GetWindowDC;
  15125. begin
  15126. GetProcedureAddress(_GetWindowDC, user32, 'GetWindowDC');
  15127. asm
  15128. MOV ESP, EBP
  15129. POP EBP
  15130. JMP [_GetWindowDC]
  15131. end;
  15132. end;
  15133. var
  15134. _ReleaseDC: Pointer;
  15135. function ReleaseDC;
  15136. begin
  15137. GetProcedureAddress(_ReleaseDC, user32, 'ReleaseDC');
  15138. asm
  15139. MOV ESP, EBP
  15140. POP EBP
  15141. JMP [_ReleaseDC]
  15142. end;
  15143. end;
  15144. var
  15145. _BeginPaint: Pointer;
  15146. function BeginPaint;
  15147. begin
  15148. GetProcedureAddress(_BeginPaint, user32, 'BeginPaint');
  15149. asm
  15150. MOV ESP, EBP
  15151. POP EBP
  15152. JMP [_BeginPaint]
  15153. end;
  15154. end;
  15155. var
  15156. _EndPaint: Pointer;
  15157. function EndPaint;
  15158. begin
  15159. GetProcedureAddress(_EndPaint, user32, 'EndPaint');
  15160. asm
  15161. MOV ESP, EBP
  15162. POP EBP
  15163. JMP [_EndPaint]
  15164. end;
  15165. end;
  15166. var
  15167. _GetUpdateRect: Pointer;
  15168. function GetUpdateRect;
  15169. begin
  15170. GetProcedureAddress(_GetUpdateRect, user32, 'GetUpdateRect');
  15171. asm
  15172. MOV ESP, EBP
  15173. POP EBP
  15174. JMP [_GetUpdateRect]
  15175. end;
  15176. end;
  15177. var
  15178. _GetUpdateRgn: Pointer;
  15179. function GetUpdateRgn;
  15180. begin
  15181. GetProcedureAddress(_GetUpdateRgn, user32, 'GetUpdateRgn');
  15182. asm
  15183. MOV ESP, EBP
  15184. POP EBP
  15185. JMP [_GetUpdateRgn]
  15186. end;
  15187. end;
  15188. var
  15189. _SetWindowRgn: Pointer;
  15190. function SetWindowRgn;
  15191. begin
  15192. GetProcedureAddress(_SetWindowRgn, user32, 'SetWindowRgn');
  15193. asm
  15194. MOV ESP, EBP
  15195. POP EBP
  15196. JMP [_SetWindowRgn]
  15197. end;
  15198. end;
  15199. var
  15200. _GetWindowRgn: Pointer;
  15201. function GetWindowRgn;
  15202. begin
  15203. GetProcedureAddress(_GetWindowRgn, user32, 'GetWindowRgn');
  15204. asm
  15205. MOV ESP, EBP
  15206. POP EBP
  15207. JMP [_GetWindowRgn]
  15208. end;
  15209. end;
  15210. var
  15211. _GetWindowRgnBox: Pointer;
  15212. function GetWindowRgnBox;
  15213. begin
  15214. GetProcedureAddress(_GetWindowRgnBox, user32, 'GetWindowRgnBox');
  15215. asm
  15216. MOV ESP, EBP
  15217. POP EBP
  15218. JMP [_GetWindowRgnBox]
  15219. end;
  15220. end;
  15221. var
  15222. _ExcludeUpdateRgn: Pointer;
  15223. function ExcludeUpdateRgn;
  15224. begin
  15225. GetProcedureAddress(_ExcludeUpdateRgn, user32, 'ExcludeUpdateRgn');
  15226. asm
  15227. MOV ESP, EBP
  15228. POP EBP
  15229. JMP [_ExcludeUpdateRgn]
  15230. end;
  15231. end;
  15232. var
  15233. _InvalidateRect: Pointer;
  15234. function InvalidateRect;
  15235. begin
  15236. GetProcedureAddress(_InvalidateRect, user32, 'InvalidateRect');
  15237. asm
  15238. MOV ESP, EBP
  15239. POP EBP
  15240. JMP [_InvalidateRect]
  15241. end;
  15242. end;
  15243. var
  15244. _ValidateRect: Pointer;
  15245. function ValidateRect;
  15246. begin
  15247. GetProcedureAddress(_ValidateRect, user32, 'ValidateRect');
  15248. asm
  15249. MOV ESP, EBP
  15250. POP EBP
  15251. JMP [_ValidateRect]
  15252. end;
  15253. end;
  15254. var
  15255. _InvalidateRgn: Pointer;
  15256. function InvalidateRgn;
  15257. begin
  15258. GetProcedureAddress(_InvalidateRgn, user32, 'InvalidateRgn');
  15259. asm
  15260. MOV ESP, EBP
  15261. POP EBP
  15262. JMP [_InvalidateRgn]
  15263. end;
  15264. end;
  15265. var
  15266. _ValidateRgn: Pointer;
  15267. function ValidateRgn;
  15268. begin
  15269. GetProcedureAddress(_ValidateRgn, user32, 'ValidateRgn');
  15270. asm
  15271. MOV ESP, EBP
  15272. POP EBP
  15273. JMP [_ValidateRgn]
  15274. end;
  15275. end;
  15276. var
  15277. _RedrawWindow: Pointer;
  15278. function RedrawWindow;
  15279. begin
  15280. GetProcedureAddress(_RedrawWindow, user32, 'RedrawWindow');
  15281. asm
  15282. MOV ESP, EBP
  15283. POP EBP
  15284. JMP [_RedrawWindow]
  15285. end;
  15286. end;
  15287. var
  15288. _LockWindowUpdate: Pointer;
  15289. function LockWindowUpdate;
  15290. begin
  15291. GetProcedureAddress(_LockWindowUpdate, user32, 'LockWindowUpdate');
  15292. asm
  15293. MOV ESP, EBP
  15294. POP EBP
  15295. JMP [_LockWindowUpdate]
  15296. end;
  15297. end;
  15298. var
  15299. _ScrollWindow: Pointer;
  15300. function ScrollWindow;
  15301. begin
  15302. GetProcedureAddress(_ScrollWindow, user32, 'ScrollWindow');
  15303. asm
  15304. MOV ESP, EBP
  15305. POP EBP
  15306. JMP [_ScrollWindow]
  15307. end;
  15308. end;
  15309. var
  15310. _ScrollDC: Pointer;
  15311. function ScrollDC;
  15312. begin
  15313. GetProcedureAddress(_ScrollDC, user32, 'ScrollDC');
  15314. asm
  15315. MOV ESP, EBP
  15316. POP EBP
  15317. JMP [_ScrollDC]
  15318. end;
  15319. end;
  15320. var
  15321. _ScrollWindowEx: Pointer;
  15322. function ScrollWindowEx;
  15323. begin
  15324. GetProcedureAddress(_ScrollWindowEx, user32, 'ScrollWindowEx');
  15325. asm
  15326. MOV ESP, EBP
  15327. POP EBP
  15328. JMP [_ScrollWindowEx]
  15329. end;
  15330. end;
  15331. var
  15332. _SetScrollPos: Pointer;
  15333. function SetScrollPos;
  15334. begin
  15335. GetProcedureAddress(_SetScrollPos, user32, 'SetScrollPos');
  15336. asm
  15337. MOV ESP, EBP
  15338. POP EBP
  15339. JMP [_SetScrollPos]
  15340. end;
  15341. end;
  15342. var
  15343. _GetScrollPos: Pointer;
  15344. function GetScrollPos;
  15345. begin
  15346. GetProcedureAddress(_GetScrollPos, user32, 'GetScrollPos');
  15347. asm
  15348. MOV ESP, EBP
  15349. POP EBP
  15350. JMP [_GetScrollPos]
  15351. end;
  15352. end;
  15353. var
  15354. _SetScrollRange: Pointer;
  15355. function SetScrollRange;
  15356. begin
  15357. GetProcedureAddress(_SetScrollRange, user32, 'SetScrollRange');
  15358. asm
  15359. MOV ESP, EBP
  15360. POP EBP
  15361. JMP [_SetScrollRange]
  15362. end;
  15363. end;
  15364. var
  15365. _GetScrollRange: Pointer;
  15366. function GetScrollRange;
  15367. begin
  15368. GetProcedureAddress(_GetScrollRange, user32, 'GetScrollRange');
  15369. asm
  15370. MOV ESP, EBP
  15371. POP EBP
  15372. JMP [_GetScrollRange]
  15373. end;
  15374. end;
  15375. var
  15376. _ShowScrollBar: Pointer;
  15377. function ShowScrollBar;
  15378. begin
  15379. GetProcedureAddress(_ShowScrollBar, user32, 'ShowScrollBar');
  15380. asm
  15381. MOV ESP, EBP
  15382. POP EBP
  15383. JMP [_ShowScrollBar]
  15384. end;
  15385. end;
  15386. var
  15387. _EnableScrollBar: Pointer;
  15388. function EnableScrollBar;
  15389. begin
  15390. GetProcedureAddress(_EnableScrollBar, user32, 'EnableScrollBar');
  15391. asm
  15392. MOV ESP, EBP
  15393. POP EBP
  15394. JMP [_EnableScrollBar]
  15395. end;
  15396. end;
  15397. var
  15398. _SetPropA: Pointer;
  15399. function SetPropA;
  15400. begin
  15401. GetProcedureAddress(_SetPropA, user32, 'SetPropA');
  15402. asm
  15403. MOV ESP, EBP
  15404. POP EBP
  15405. JMP [_SetPropA]
  15406. end;
  15407. end;
  15408. var
  15409. _SetPropW: Pointer;
  15410. function SetPropW;
  15411. begin
  15412. GetProcedureAddress(_SetPropW, user32, 'SetPropW');
  15413. asm
  15414. MOV ESP, EBP
  15415. POP EBP
  15416. JMP [_SetPropW]
  15417. end;
  15418. end;
  15419. var
  15420. _SetProp: Pointer;
  15421. function SetProp;
  15422. begin
  15423. GetProcedureAddress(_SetProp, user32, 'SetProp' + AWSuffix);
  15424. asm
  15425. MOV ESP, EBP
  15426. POP EBP
  15427. JMP [_SetProp]
  15428. end;
  15429. end;
  15430. var
  15431. _GetPropA: Pointer;
  15432. function GetPropA;
  15433. begin
  15434. GetProcedureAddress(_GetPropA, user32, 'GetPropA');
  15435. asm
  15436. MOV ESP, EBP
  15437. POP EBP
  15438. JMP [_GetPropA]
  15439. end;
  15440. end;
  15441. var
  15442. _GetPropW: Pointer;
  15443. function GetPropW;
  15444. begin
  15445. GetProcedureAddress(_GetPropW, user32, 'GetPropW');
  15446. asm
  15447. MOV ESP, EBP
  15448. POP EBP
  15449. JMP [_GetPropW]
  15450. end;
  15451. end;
  15452. var
  15453. _GetProp: Pointer;
  15454. function GetProp;
  15455. begin
  15456. GetProcedureAddress(_GetProp, user32, 'GetProp' + AWSuffix);
  15457. asm
  15458. MOV ESP, EBP
  15459. POP EBP
  15460. JMP [_GetProp]
  15461. end;
  15462. end;
  15463. var
  15464. _RemovePropA: Pointer;
  15465. function RemovePropA;
  15466. begin
  15467. GetProcedureAddress(_RemovePropA, user32, 'RemovePropA');
  15468. asm
  15469. MOV ESP, EBP
  15470. POP EBP
  15471. JMP [_RemovePropA]
  15472. end;
  15473. end;
  15474. var
  15475. _RemovePropW: Pointer;
  15476. function RemovePropW;
  15477. begin
  15478. GetProcedureAddress(_RemovePropW, user32, 'RemovePropW');
  15479. asm
  15480. MOV ESP, EBP
  15481. POP EBP
  15482. JMP [_RemovePropW]
  15483. end;
  15484. end;
  15485. var
  15486. _RemoveProp: Pointer;
  15487. function RemoveProp;
  15488. begin
  15489. GetProcedureAddress(_RemoveProp, user32, 'RemoveProp' + AWSuffix);
  15490. asm
  15491. MOV ESP, EBP
  15492. POP EBP
  15493. JMP [_RemoveProp]
  15494. end;
  15495. end;
  15496. var
  15497. _EnumPropsExA: Pointer;
  15498. function EnumPropsExA;
  15499. begin
  15500. GetProcedureAddress(_EnumPropsExA, user32, 'EnumPropsExA');
  15501. asm
  15502. MOV ESP, EBP
  15503. POP EBP
  15504. JMP [_EnumPropsExA]
  15505. end;
  15506. end;
  15507. var
  15508. _EnumPropsExW: Pointer;
  15509. function EnumPropsExW;
  15510. begin
  15511. GetProcedureAddress(_EnumPropsExW, user32, 'EnumPropsExW');
  15512. asm
  15513. MOV ESP, EBP
  15514. POP EBP
  15515. JMP [_EnumPropsExW]
  15516. end;
  15517. end;
  15518. var
  15519. _EnumPropsEx: Pointer;
  15520. function EnumPropsEx;
  15521. begin
  15522. GetProcedureAddress(_EnumPropsEx, user32, 'EnumPropsEx' + AWSuffix);
  15523. asm
  15524. MOV ESP, EBP
  15525. POP EBP
  15526. JMP [_EnumPropsEx]
  15527. end;
  15528. end;
  15529. var
  15530. _EnumPropsA: Pointer;
  15531. function EnumPropsA;
  15532. begin
  15533. GetProcedureAddress(_EnumPropsA, user32, 'EnumPropsA');
  15534. asm
  15535. MOV ESP, EBP
  15536. POP EBP
  15537. JMP [_EnumPropsA]
  15538. end;
  15539. end;
  15540. var
  15541. _EnumPropsW: Pointer;
  15542. function EnumPropsW;
  15543. begin
  15544. GetProcedureAddress(_EnumPropsW, user32, 'EnumPropsW');
  15545. asm
  15546. MOV ESP, EBP
  15547. POP EBP
  15548. JMP [_EnumPropsW]
  15549. end;
  15550. end;
  15551. var
  15552. _EnumProps: Pointer;
  15553. function EnumProps;
  15554. begin
  15555. GetProcedureAddress(_EnumProps, user32, 'EnumProps' + AWSuffix);
  15556. asm
  15557. MOV ESP, EBP
  15558. POP EBP
  15559. JMP [_EnumProps]
  15560. end;
  15561. end;
  15562. var
  15563. _SetWindowTextA: Pointer;
  15564. function SetWindowTextA;
  15565. begin
  15566. GetProcedureAddress(_SetWindowTextA, user32, 'SetWindowTextA');
  15567. asm
  15568. MOV ESP, EBP
  15569. POP EBP
  15570. JMP [_SetWindowTextA]
  15571. end;
  15572. end;
  15573. var
  15574. _SetWindowTextW: Pointer;
  15575. function SetWindowTextW;
  15576. begin
  15577. GetProcedureAddress(_SetWindowTextW, user32, 'SetWindowTextW');
  15578. asm
  15579. MOV ESP, EBP
  15580. POP EBP
  15581. JMP [_SetWindowTextW]
  15582. end;
  15583. end;
  15584. var
  15585. _SetWindowText: Pointer;
  15586. function SetWindowText;
  15587. begin
  15588. GetProcedureAddress(_SetWindowText, user32, 'SetWindowText' + AWSuffix);
  15589. asm
  15590. MOV ESP, EBP
  15591. POP EBP
  15592. JMP [_SetWindowText]
  15593. end;
  15594. end;
  15595. var
  15596. _GetWindowTextA: Pointer;
  15597. function GetWindowTextA;
  15598. begin
  15599. GetProcedureAddress(_GetWindowTextA, user32, 'GetWindowTextA');
  15600. asm
  15601. MOV ESP, EBP
  15602. POP EBP
  15603. JMP [_GetWindowTextA]
  15604. end;
  15605. end;
  15606. var
  15607. _GetWindowTextW: Pointer;
  15608. function GetWindowTextW;
  15609. begin
  15610. GetProcedureAddress(_GetWindowTextW, user32, 'GetWindowTextW');
  15611. asm
  15612. MOV ESP, EBP
  15613. POP EBP
  15614. JMP [_GetWindowTextW]
  15615. end;
  15616. end;
  15617. var
  15618. _GetWindowText: Pointer;
  15619. function GetWindowText;
  15620. begin
  15621. GetProcedureAddress(_GetWindowText, user32, 'GetWindowText' + AWSuffix);
  15622. asm
  15623. MOV ESP, EBP
  15624. POP EBP
  15625. JMP [_GetWindowText]
  15626. end;
  15627. end;
  15628. var
  15629. _GetWindowTextLengthA: Pointer;
  15630. function GetWindowTextLengthA;
  15631. begin
  15632. GetProcedureAddress(_GetWindowTextLengthA, user32, 'GetWindowTextLengthA');
  15633. asm
  15634. MOV ESP, EBP
  15635. POP EBP
  15636. JMP [_GetWindowTextLengthA]
  15637. end;
  15638. end;
  15639. var
  15640. _GetWindowTextLengthW: Pointer;
  15641. function GetWindowTextLengthW;
  15642. begin
  15643. GetProcedureAddress(_GetWindowTextLengthW, user32, 'GetWindowTextLengthW');
  15644. asm
  15645. MOV ESP, EBP
  15646. POP EBP
  15647. JMP [_GetWindowTextLengthW]
  15648. end;
  15649. end;
  15650. var
  15651. _GetWindowTextLength: Pointer;
  15652. function GetWindowTextLength;
  15653. begin
  15654. GetProcedureAddress(_GetWindowTextLength, user32, 'GetWindowTextLength' + AWSuffix);
  15655. asm
  15656. MOV ESP, EBP
  15657. POP EBP
  15658. JMP [_GetWindowTextLength]
  15659. end;
  15660. end;
  15661. var
  15662. _GetClientRect: Pointer;
  15663. function GetClientRect;
  15664. begin
  15665. GetProcedureAddress(_GetClientRect, user32, 'GetClientRect');
  15666. asm
  15667. MOV ESP, EBP
  15668. POP EBP
  15669. JMP [_GetClientRect]
  15670. end;
  15671. end;
  15672. var
  15673. _GetWindowRect: Pointer;
  15674. function GetWindowRect;
  15675. begin
  15676. GetProcedureAddress(_GetWindowRect, user32, 'GetWindowRect');
  15677. asm
  15678. MOV ESP, EBP
  15679. POP EBP
  15680. JMP [_GetWindowRect]
  15681. end;
  15682. end;
  15683. var
  15684. _AdjustWindowRect: Pointer;
  15685. function AdjustWindowRect;
  15686. begin
  15687. GetProcedureAddress(_AdjustWindowRect, user32, 'AdjustWindowRect');
  15688. asm
  15689. MOV ESP, EBP
  15690. POP EBP
  15691. JMP [_AdjustWindowRect]
  15692. end;
  15693. end;
  15694. var
  15695. _AdjustWindowRectEx: Pointer;
  15696. function AdjustWindowRectEx;
  15697. begin
  15698. GetProcedureAddress(_AdjustWindowRectEx, user32, 'AdjustWindowRectEx');
  15699. asm
  15700. MOV ESP, EBP
  15701. POP EBP
  15702. JMP [_AdjustWindowRectEx]
  15703. end;
  15704. end;
  15705. var
  15706. _SetWindowContextHelpId: Pointer;
  15707. function SetWindowContextHelpId;
  15708. begin
  15709. GetProcedureAddress(_SetWindowContextHelpId, user32, 'SetWindowContextHelpId');
  15710. asm
  15711. MOV ESP, EBP
  15712. POP EBP
  15713. JMP [_SetWindowContextHelpId]
  15714. end;
  15715. end;
  15716. var
  15717. _GetWindowContextHelpId: Pointer;
  15718. function GetWindowContextHelpId;
  15719. begin
  15720. GetProcedureAddress(_GetWindowContextHelpId, user32, 'GetWindowContextHelpId');
  15721. asm
  15722. MOV ESP, EBP
  15723. POP EBP
  15724. JMP [_GetWindowContextHelpId]
  15725. end;
  15726. end;
  15727. var
  15728. _SetMenuContextHelpId: Pointer;
  15729. function SetMenuContextHelpId;
  15730. begin
  15731. GetProcedureAddress(_SetMenuContextHelpId, user32, 'SetMenuContextHelpId');
  15732. asm
  15733. MOV ESP, EBP
  15734. POP EBP
  15735. JMP [_SetMenuContextHelpId]
  15736. end;
  15737. end;
  15738. var
  15739. _GetMenuContextHelpId: Pointer;
  15740. function GetMenuContextHelpId;
  15741. begin
  15742. GetProcedureAddress(_GetMenuContextHelpId, user32, 'GetMenuContextHelpId');
  15743. asm
  15744. MOV ESP, EBP
  15745. POP EBP
  15746. JMP [_GetMenuContextHelpId]
  15747. end;
  15748. end;
  15749. var
  15750. _MessageBoxA: Pointer;
  15751. function MessageBoxA;
  15752. begin
  15753. GetProcedureAddress(_MessageBoxA, user32, 'MessageBoxA');
  15754. asm
  15755. MOV ESP, EBP
  15756. POP EBP
  15757. JMP [_MessageBoxA]
  15758. end;
  15759. end;
  15760. var
  15761. _MessageBoxW: Pointer;
  15762. function MessageBoxW;
  15763. begin
  15764. GetProcedureAddress(_MessageBoxW, user32, 'MessageBoxW');
  15765. asm
  15766. MOV ESP, EBP
  15767. POP EBP
  15768. JMP [_MessageBoxW]
  15769. end;
  15770. end;
  15771. var
  15772. _MessageBox: Pointer;
  15773. function MessageBox;
  15774. begin
  15775. GetProcedureAddress(_MessageBox, user32, 'MessageBox' + AWSuffix);
  15776. asm
  15777. MOV ESP, EBP
  15778. POP EBP
  15779. JMP [_MessageBox]
  15780. end;
  15781. end;
  15782. var
  15783. _MessageBoxExA: Pointer;
  15784. function MessageBoxExA;
  15785. begin
  15786. GetProcedureAddress(_MessageBoxExA, user32, 'MessageBoxExA');
  15787. asm
  15788. MOV ESP, EBP
  15789. POP EBP
  15790. JMP [_MessageBoxExA]
  15791. end;
  15792. end;
  15793. var
  15794. _MessageBoxExW: Pointer;
  15795. function MessageBoxExW;
  15796. begin
  15797. GetProcedureAddress(_MessageBoxExW, user32, 'MessageBoxExW');
  15798. asm
  15799. MOV ESP, EBP
  15800. POP EBP
  15801. JMP [_MessageBoxExW]
  15802. end;
  15803. end;
  15804. var
  15805. _MessageBoxEx: Pointer;
  15806. function MessageBoxEx;
  15807. begin
  15808. GetProcedureAddress(_MessageBoxEx, user32, 'MessageBoxEx' + AWSuffix);
  15809. asm
  15810. MOV ESP, EBP
  15811. POP EBP
  15812. JMP [_MessageBoxEx]
  15813. end;
  15814. end;
  15815. var
  15816. _MessageBoxIndirectA: Pointer;
  15817. function MessageBoxIndirectA;
  15818. begin
  15819. GetProcedureAddress(_MessageBoxIndirectA, user32, 'MessageBoxIndirectA');
  15820. asm
  15821. MOV ESP, EBP
  15822. POP EBP
  15823. JMP [_MessageBoxIndirectA]
  15824. end;
  15825. end;
  15826. var
  15827. _MessageBoxIndirectW: Pointer;
  15828. function MessageBoxIndirectW;
  15829. begin
  15830. GetProcedureAddress(_MessageBoxIndirectW, user32, 'MessageBoxIndirectW');
  15831. asm
  15832. MOV ESP, EBP
  15833. POP EBP
  15834. JMP [_MessageBoxIndirectW]
  15835. end;
  15836. end;
  15837. var
  15838. _MessageBoxIndirect: Pointer;
  15839. function MessageBoxIndirect;
  15840. begin
  15841. GetProcedureAddress(_MessageBoxIndirect, user32, 'MessageBoxIndirect' + AWSuffix);
  15842. asm
  15843. MOV ESP, EBP
  15844. POP EBP
  15845. JMP [_MessageBoxIndirect]
  15846. end;
  15847. end;
  15848. var
  15849. _MessageBeep: Pointer;
  15850. function MessageBeep;
  15851. begin
  15852. GetProcedureAddress(_MessageBeep, user32, 'MessageBeep');
  15853. asm
  15854. MOV ESP, EBP
  15855. POP EBP
  15856. JMP [_MessageBeep]
  15857. end;
  15858. end;
  15859. var
  15860. _ShowCursor: Pointer;
  15861. function ShowCursor;
  15862. begin
  15863. GetProcedureAddress(_ShowCursor, user32, 'ShowCursor');
  15864. asm
  15865. MOV ESP, EBP
  15866. POP EBP
  15867. JMP [_ShowCursor]
  15868. end;
  15869. end;
  15870. var
  15871. _SetCursorPos: Pointer;
  15872. function SetCursorPos;
  15873. begin
  15874. GetProcedureAddress(_SetCursorPos, user32, 'SetCursorPos');
  15875. asm
  15876. MOV ESP, EBP
  15877. POP EBP
  15878. JMP [_SetCursorPos]
  15879. end;
  15880. end;
  15881. var
  15882. _SetCursor: Pointer;
  15883. function SetCursor;
  15884. begin
  15885. GetProcedureAddress(_SetCursor, user32, 'SetCursor');
  15886. asm
  15887. MOV ESP, EBP
  15888. POP EBP
  15889. JMP [_SetCursor]
  15890. end;
  15891. end;
  15892. var
  15893. _GetCursorPos: Pointer;
  15894. function GetCursorPos;
  15895. begin
  15896. GetProcedureAddress(_GetCursorPos, user32, 'GetCursorPos');
  15897. asm
  15898. MOV ESP, EBP
  15899. POP EBP
  15900. JMP [_GetCursorPos]
  15901. end;
  15902. end;
  15903. var
  15904. _ClipCursor: Pointer;
  15905. function ClipCursor;
  15906. begin
  15907. GetProcedureAddress(_ClipCursor, user32, 'ClipCursor');
  15908. asm
  15909. MOV ESP, EBP
  15910. POP EBP
  15911. JMP [_ClipCursor]
  15912. end;
  15913. end;
  15914. var
  15915. _GetClipCursor: Pointer;
  15916. function GetClipCursor;
  15917. begin
  15918. GetProcedureAddress(_GetClipCursor, user32, 'GetClipCursor');
  15919. asm
  15920. MOV ESP, EBP
  15921. POP EBP
  15922. JMP [_GetClipCursor]
  15923. end;
  15924. end;
  15925. var
  15926. _GetCursor: Pointer;
  15927. function GetCursor;
  15928. begin
  15929. GetProcedureAddress(_GetCursor, user32, 'GetCursor');
  15930. asm
  15931. MOV ESP, EBP
  15932. POP EBP
  15933. JMP [_GetCursor]
  15934. end;
  15935. end;
  15936. var
  15937. _CreateCaret: Pointer;
  15938. function CreateCaret;
  15939. begin
  15940. GetProcedureAddress(_CreateCaret, user32, 'CreateCaret');
  15941. asm
  15942. MOV ESP, EBP
  15943. POP EBP
  15944. JMP [_CreateCaret]
  15945. end;
  15946. end;
  15947. var
  15948. _GetCaretBlinkTime: Pointer;
  15949. function GetCaretBlinkTime;
  15950. begin
  15951. GetProcedureAddress(_GetCaretBlinkTime, user32, 'GetCaretBlinkTime');
  15952. asm
  15953. MOV ESP, EBP
  15954. POP EBP
  15955. JMP [_GetCaretBlinkTime]
  15956. end;
  15957. end;
  15958. var
  15959. _SetCaretBlinkTime: Pointer;
  15960. function SetCaretBlinkTime;
  15961. begin
  15962. GetProcedureAddress(_SetCaretBlinkTime, user32, 'SetCaretBlinkTime');
  15963. asm
  15964. MOV ESP, EBP
  15965. POP EBP
  15966. JMP [_SetCaretBlinkTime]
  15967. end;
  15968. end;
  15969. var
  15970. _DestroyCaret: Pointer;
  15971. function DestroyCaret;
  15972. begin
  15973. GetProcedureAddress(_DestroyCaret, user32, 'DestroyCaret');
  15974. asm
  15975. MOV ESP, EBP
  15976. POP EBP
  15977. JMP [_DestroyCaret]
  15978. end;
  15979. end;
  15980. var
  15981. _HideCaret: Pointer;
  15982. function HideCaret;
  15983. begin
  15984. GetProcedureAddress(_HideCaret, user32, 'HideCaret');
  15985. asm
  15986. MOV ESP, EBP
  15987. POP EBP
  15988. JMP [_HideCaret]
  15989. end;
  15990. end;
  15991. var
  15992. _ShowCaret: Pointer;
  15993. function ShowCaret;
  15994. begin
  15995. GetProcedureAddress(_ShowCaret, user32, 'ShowCaret');
  15996. asm
  15997. MOV ESP, EBP
  15998. POP EBP
  15999. JMP [_ShowCaret]
  16000. end;
  16001. end;
  16002. var
  16003. _SetCaretPos: Pointer;
  16004. function SetCaretPos;
  16005. begin
  16006. GetProcedureAddress(_SetCaretPos, user32, 'SetCaretPos');
  16007. asm
  16008. MOV ESP, EBP
  16009. POP EBP
  16010. JMP [_SetCaretPos]
  16011. end;
  16012. end;
  16013. var
  16014. _GetCaretPos: Pointer;
  16015. function GetCaretPos;
  16016. begin
  16017. GetProcedureAddress(_GetCaretPos, user32, 'GetCaretPos');
  16018. asm
  16019. MOV ESP, EBP
  16020. POP EBP
  16021. JMP [_GetCaretPos]
  16022. end;
  16023. end;
  16024. var
  16025. _ClientToScreen: Pointer;
  16026. function ClientToScreen;
  16027. begin
  16028. GetProcedureAddress(_ClientToScreen, user32, 'ClientToScreen');
  16029. asm
  16030. MOV ESP, EBP
  16031. POP EBP
  16032. JMP [_ClientToScreen]
  16033. end;
  16034. end;
  16035. var
  16036. _ScreenToClient: Pointer;
  16037. function ScreenToClient;
  16038. begin
  16039. GetProcedureAddress(_ScreenToClient, user32, 'ScreenToClient');
  16040. asm
  16041. MOV ESP, EBP
  16042. POP EBP
  16043. JMP [_ScreenToClient]
  16044. end;
  16045. end;
  16046. var
  16047. _MapWindowPoints: Pointer;
  16048. function MapWindowPoints;
  16049. begin
  16050. GetProcedureAddress(_MapWindowPoints, user32, 'MapWindowPoints');
  16051. asm
  16052. MOV ESP, EBP
  16053. POP EBP
  16054. JMP [_MapWindowPoints]
  16055. end;
  16056. end;
  16057. var
  16058. _WindowFromPoint: Pointer;
  16059. function WindowFromPoint;
  16060. begin
  16061. GetProcedureAddress(_WindowFromPoint, user32, 'WindowFromPoint');
  16062. asm
  16063. MOV ESP, EBP
  16064. POP EBP
  16065. JMP [_WindowFromPoint]
  16066. end;
  16067. end;
  16068. var
  16069. _ChildWindowFromPoint: Pointer;
  16070. function ChildWindowFromPoint;
  16071. begin
  16072. GetProcedureAddress(_ChildWindowFromPoint, user32, 'ChildWindowFromPoint');
  16073. asm
  16074. MOV ESP, EBP
  16075. POP EBP
  16076. JMP [_ChildWindowFromPoint]
  16077. end;
  16078. end;
  16079. var
  16080. _ChildWindowFromPointEx: Pointer;
  16081. function ChildWindowFromPointEx;
  16082. begin
  16083. GetProcedureAddress(_ChildWindowFromPointEx, user32, 'ChildWindowFromPointEx');
  16084. asm
  16085. MOV ESP, EBP
  16086. POP EBP
  16087. JMP [_ChildWindowFromPointEx]
  16088. end;
  16089. end;
  16090. var
  16091. _GetSysColor: Pointer;
  16092. function GetSysColor;
  16093. begin
  16094. GetProcedureAddress(_GetSysColor, user32, 'GetSysColor');
  16095. asm
  16096. MOV ESP, EBP
  16097. POP EBP
  16098. JMP [_GetSysColor]
  16099. end;
  16100. end;
  16101. var
  16102. _GetSysColorBrush: Pointer;
  16103. function GetSysColorBrush;
  16104. begin
  16105. GetProcedureAddress(_GetSysColorBrush, user32, 'GetSysColorBrush');
  16106. asm
  16107. MOV ESP, EBP
  16108. POP EBP
  16109. JMP [_GetSysColorBrush]
  16110. end;
  16111. end;
  16112. var
  16113. _SetSysColors: Pointer;
  16114. function SetSysColors;
  16115. begin
  16116. GetProcedureAddress(_SetSysColors, user32, 'SetSysColors');
  16117. asm
  16118. MOV ESP, EBP
  16119. POP EBP
  16120. JMP [_SetSysColors]
  16121. end;
  16122. end;
  16123. var
  16124. _DrawFocusRect: Pointer;
  16125. function DrawFocusRect;
  16126. begin
  16127. GetProcedureAddress(_DrawFocusRect, user32, 'DrawFocusRect');
  16128. asm
  16129. MOV ESP, EBP
  16130. POP EBP
  16131. JMP [_DrawFocusRect]
  16132. end;
  16133. end;
  16134. var
  16135. _FillRect: Pointer;
  16136. function FillRect;
  16137. begin
  16138. GetProcedureAddress(_FillRect, user32, 'FillRect');
  16139. asm
  16140. MOV ESP, EBP
  16141. POP EBP
  16142. JMP [_FillRect]
  16143. end;
  16144. end;
  16145. var
  16146. _FrameRect: Pointer;
  16147. function FrameRect;
  16148. begin
  16149. GetProcedureAddress(_FrameRect, user32, 'FrameRect');
  16150. asm
  16151. MOV ESP, EBP
  16152. POP EBP
  16153. JMP [_FrameRect]
  16154. end;
  16155. end;
  16156. var
  16157. _InvertRect: Pointer;
  16158. function InvertRect;
  16159. begin
  16160. GetProcedureAddress(_InvertRect, user32, 'InvertRect');
  16161. asm
  16162. MOV ESP, EBP
  16163. POP EBP
  16164. JMP [_InvertRect]
  16165. end;
  16166. end;
  16167. var
  16168. _SetRect: Pointer;
  16169. function SetRect;
  16170. begin
  16171. GetProcedureAddress(_SetRect, user32, 'SetRect');
  16172. asm
  16173. MOV ESP, EBP
  16174. POP EBP
  16175. JMP [_SetRect]
  16176. end;
  16177. end;
  16178. var
  16179. _SetRectEmpty: Pointer;
  16180. function SetRectEmpty;
  16181. begin
  16182. GetProcedureAddress(_SetRectEmpty, user32, 'SetRectEmpty');
  16183. asm
  16184. MOV ESP, EBP
  16185. POP EBP
  16186. JMP [_SetRectEmpty]
  16187. end;
  16188. end;
  16189. var
  16190. _CopyRect: Pointer;
  16191. function CopyRect;
  16192. begin
  16193. GetProcedureAddress(_CopyRect, user32, 'CopyRect');
  16194. asm
  16195. MOV ESP, EBP
  16196. POP EBP
  16197. JMP [_CopyRect]
  16198. end;
  16199. end;
  16200. var
  16201. _InflateRect: Pointer;
  16202. function InflateRect;
  16203. begin
  16204. GetProcedureAddress(_InflateRect, user32, 'InflateRect');
  16205. asm
  16206. MOV ESP, EBP
  16207. POP EBP
  16208. JMP [_InflateRect]
  16209. end;
  16210. end;
  16211. var
  16212. _IntersectRect: Pointer;
  16213. function IntersectRect;
  16214. begin
  16215. GetProcedureAddress(_IntersectRect, user32, 'IntersectRect');
  16216. asm
  16217. MOV ESP, EBP
  16218. POP EBP
  16219. JMP [_IntersectRect]
  16220. end;
  16221. end;
  16222. var
  16223. _UnionRect: Pointer;
  16224. function UnionRect;
  16225. begin
  16226. GetProcedureAddress(_UnionRect, user32, 'UnionRect');
  16227. asm
  16228. MOV ESP, EBP
  16229. POP EBP
  16230. JMP [_UnionRect]
  16231. end;
  16232. end;
  16233. var
  16234. _SubtractRect: Pointer;
  16235. function SubtractRect;
  16236. begin
  16237. GetProcedureAddress(_SubtractRect, user32, 'SubtractRect');
  16238. asm
  16239. MOV ESP, EBP
  16240. POP EBP
  16241. JMP [_SubtractRect]
  16242. end;
  16243. end;
  16244. var
  16245. _OffsetRect: Pointer;
  16246. function OffsetRect;
  16247. begin
  16248. GetProcedureAddress(_OffsetRect, user32, 'OffsetRect');
  16249. asm
  16250. MOV ESP, EBP
  16251. POP EBP
  16252. JMP [_OffsetRect]
  16253. end;
  16254. end;
  16255. var
  16256. _IsRectEmpty: Pointer;
  16257. function IsRectEmpty;
  16258. begin
  16259. GetProcedureAddress(_IsRectEmpty, user32, 'IsRectEmpty');
  16260. asm
  16261. MOV ESP, EBP
  16262. POP EBP
  16263. JMP [_IsRectEmpty]
  16264. end;
  16265. end;
  16266. var
  16267. _EqualRect: Pointer;
  16268. function EqualRect;
  16269. begin
  16270. GetProcedureAddress(_EqualRect, user32, 'EqualRect');
  16271. asm
  16272. MOV ESP, EBP
  16273. POP EBP
  16274. JMP [_EqualRect]
  16275. end;
  16276. end;
  16277. var
  16278. _PtInRect: Pointer;
  16279. function PtInRect;
  16280. begin
  16281. GetProcedureAddress(_PtInRect, user32, 'PtInRect');
  16282. asm
  16283. MOV ESP, EBP
  16284. POP EBP
  16285. JMP [_PtInRect]
  16286. end;
  16287. end;
  16288. var
  16289. _GetWindowWord: Pointer;
  16290. function GetWindowWord;
  16291. begin
  16292. GetProcedureAddress(_GetWindowWord, user32, 'GetWindowWord');
  16293. asm
  16294. MOV ESP, EBP
  16295. POP EBP
  16296. JMP [_GetWindowWord]
  16297. end;
  16298. end;
  16299. var
  16300. _SetWindowWord: Pointer;
  16301. function SetWindowWord;
  16302. begin
  16303. GetProcedureAddress(_SetWindowWord, user32, 'SetWindowWord');
  16304. asm
  16305. MOV ESP, EBP
  16306. POP EBP
  16307. JMP [_SetWindowWord]
  16308. end;
  16309. end;
  16310. var
  16311. _GetWindowLongA: Pointer;
  16312. function GetWindowLongA;
  16313. begin
  16314. GetProcedureAddress(_GetWindowLongA, user32, 'GetWindowLongA');
  16315. asm
  16316. MOV ESP, EBP
  16317. POP EBP
  16318. JMP [_GetWindowLongA]
  16319. end;
  16320. end;
  16321. var
  16322. _GetWindowLongW: Pointer;
  16323. function GetWindowLongW;
  16324. begin
  16325. GetProcedureAddress(_GetWindowLongW, user32, 'GetWindowLongW');
  16326. asm
  16327. MOV ESP, EBP
  16328. POP EBP
  16329. JMP [_GetWindowLongW]
  16330. end;
  16331. end;
  16332. var
  16333. _GetWindowLong: Pointer;
  16334. function GetWindowLong;
  16335. begin
  16336. GetProcedureAddress(_GetWindowLong, user32, 'GetWindowLong' + AWSuffix);
  16337. asm
  16338. MOV ESP, EBP
  16339. POP EBP
  16340. JMP [_GetWindowLong]
  16341. end;
  16342. end;
  16343. var
  16344. _SetWindowLongA: Pointer;
  16345. function SetWindowLongA;
  16346. begin
  16347. GetProcedureAddress(_SetWindowLongA, user32, 'SetWindowLongA');
  16348. asm
  16349. MOV ESP, EBP
  16350. POP EBP
  16351. JMP [_SetWindowLongA]
  16352. end;
  16353. end;
  16354. var
  16355. _SetWindowLongW: Pointer;
  16356. function SetWindowLongW;
  16357. begin
  16358. GetProcedureAddress(_SetWindowLongW, user32, 'SetWindowLongW');
  16359. asm
  16360. MOV ESP, EBP
  16361. POP EBP
  16362. JMP [_SetWindowLongW]
  16363. end;
  16364. end;
  16365. var
  16366. _SetWindowLong: Pointer;
  16367. function SetWindowLong;
  16368. begin
  16369. GetProcedureAddress(_SetWindowLong, user32, 'SetWindowLong' + AWSuffix);
  16370. asm
  16371. MOV ESP, EBP
  16372. POP EBP
  16373. JMP [_SetWindowLong]
  16374. end;
  16375. end;
  16376. var
  16377. _GetClassWord: Pointer;
  16378. function GetClassWord;
  16379. begin
  16380. GetProcedureAddress(_GetClassWord, user32, 'GetClassWord');
  16381. asm
  16382. MOV ESP, EBP
  16383. POP EBP
  16384. JMP [_GetClassWord]
  16385. end;
  16386. end;
  16387. var
  16388. _SetClassWord: Pointer;
  16389. function SetClassWord;
  16390. begin
  16391. GetProcedureAddress(_SetClassWord, user32, 'SetClassWord');
  16392. asm
  16393. MOV ESP, EBP
  16394. POP EBP
  16395. JMP [_SetClassWord]
  16396. end;
  16397. end;
  16398. var
  16399. _GetClassLongA: Pointer;
  16400. function GetClassLongA;
  16401. begin
  16402. GetProcedureAddress(_GetClassLongA, user32, 'GetClassLongA');
  16403. asm
  16404. MOV ESP, EBP
  16405. POP EBP
  16406. JMP [_GetClassLongA]
  16407. end;
  16408. end;
  16409. var
  16410. _GetClassLongW: Pointer;
  16411. function GetClassLongW;
  16412. begin
  16413. GetProcedureAddress(_GetClassLongW, user32, 'GetClassLongW');
  16414. asm
  16415. MOV ESP, EBP
  16416. POP EBP
  16417. JMP [_GetClassLongW]
  16418. end;
  16419. end;
  16420. var
  16421. _GetClassLong: Pointer;
  16422. function GetClassLong;
  16423. begin
  16424. GetProcedureAddress(_GetClassLong, user32, 'GetClassLong' + AWSuffix);
  16425. asm
  16426. MOV ESP, EBP
  16427. POP EBP
  16428. JMP [_GetClassLong]
  16429. end;
  16430. end;
  16431. var
  16432. _SetClassLongA: Pointer;
  16433. function SetClassLongA;
  16434. begin
  16435. GetProcedureAddress(_SetClassLongA, user32, 'SetClassLongA');
  16436. asm
  16437. MOV ESP, EBP
  16438. POP EBP
  16439. JMP [_SetClassLongA]
  16440. end;
  16441. end;
  16442. var
  16443. _SetClassLongW: Pointer;
  16444. function SetClassLongW;
  16445. begin
  16446. GetProcedureAddress(_SetClassLongW, user32, 'SetClassLongW');
  16447. asm
  16448. MOV ESP, EBP
  16449. POP EBP
  16450. JMP [_SetClassLongW]
  16451. end;
  16452. end;
  16453. var
  16454. _SetClassLong: Pointer;
  16455. function SetClassLong;
  16456. begin
  16457. GetProcedureAddress(_SetClassLong, user32, 'SetClassLong' + AWSuffix);
  16458. asm
  16459. MOV ESP, EBP
  16460. POP EBP
  16461. JMP [_SetClassLong]
  16462. end;
  16463. end;
  16464. var
  16465. _GetProcessDefaultLayout: Pointer;
  16466. function GetProcessDefaultLayout;
  16467. begin
  16468. GetProcedureAddress(_GetProcessDefaultLayout, user32, 'GetProcessDefaultLayout');
  16469. asm
  16470. MOV ESP, EBP
  16471. POP EBP
  16472. JMP [_GetProcessDefaultLayout]
  16473. end;
  16474. end;
  16475. var
  16476. _SetProcessDefaultLayout: Pointer;
  16477. function SetProcessDefaultLayout;
  16478. begin
  16479. GetProcedureAddress(_SetProcessDefaultLayout, user32, 'SetProcessDefaultLayout');
  16480. asm
  16481. MOV ESP, EBP
  16482. POP EBP
  16483. JMP [_SetProcessDefaultLayout]
  16484. end;
  16485. end;
  16486. var
  16487. _GetDesktopWindow: Pointer;
  16488. function GetDesktopWindow;
  16489. begin
  16490. GetProcedureAddress(_GetDesktopWindow, user32, 'GetDesktopWindow');
  16491. asm
  16492. MOV ESP, EBP
  16493. POP EBP
  16494. JMP [_GetDesktopWindow]
  16495. end;
  16496. end;
  16497. var
  16498. _GetParent: Pointer;
  16499. function GetParent;
  16500. begin
  16501. GetProcedureAddress(_GetParent, user32, 'GetParent');
  16502. asm
  16503. MOV ESP, EBP
  16504. POP EBP
  16505. JMP [_GetParent]
  16506. end;
  16507. end;
  16508. var
  16509. _SetParent: Pointer;
  16510. function SetParent;
  16511. begin
  16512. GetProcedureAddress(_SetParent, user32, 'SetParent');
  16513. asm
  16514. MOV ESP, EBP
  16515. POP EBP
  16516. JMP [_SetParent]
  16517. end;
  16518. end;
  16519. var
  16520. _EnumChildWindows: Pointer;
  16521. function EnumChildWindows;
  16522. begin
  16523. GetProcedureAddress(_EnumChildWindows, user32, 'EnumChildWindows');
  16524. asm
  16525. MOV ESP, EBP
  16526. POP EBP
  16527. JMP [_EnumChildWindows]
  16528. end;
  16529. end;
  16530. var
  16531. _FindWindowA: Pointer;
  16532. function FindWindowA;
  16533. begin
  16534. GetProcedureAddress(_FindWindowA, user32, 'FindWindowA');
  16535. asm
  16536. MOV ESP, EBP
  16537. POP EBP
  16538. JMP [_FindWindowA]
  16539. end;
  16540. end;
  16541. var
  16542. _FindWindowW: Pointer;
  16543. function FindWindowW;
  16544. begin
  16545. GetProcedureAddress(_FindWindowW, user32, 'FindWindowW');
  16546. asm
  16547. MOV ESP, EBP
  16548. POP EBP
  16549. JMP [_FindWindowW]
  16550. end;
  16551. end;
  16552. var
  16553. _FindWindow: Pointer;
  16554. function FindWindow;
  16555. begin
  16556. GetProcedureAddress(_FindWindow, user32, 'FindWindow' + AWSuffix);
  16557. asm
  16558. MOV ESP, EBP
  16559. POP EBP
  16560. JMP [_FindWindow]
  16561. end;
  16562. end;
  16563. var
  16564. _FindWindowExA: Pointer;
  16565. function FindWindowExA;
  16566. begin
  16567. GetProcedureAddress(_FindWindowExA, user32, 'FindWindowExA');
  16568. asm
  16569. MOV ESP, EBP
  16570. POP EBP
  16571. JMP [_FindWindowExA]
  16572. end;
  16573. end;
  16574. var
  16575. _FindWindowExW: Pointer;
  16576. function FindWindowExW;
  16577. begin
  16578. GetProcedureAddress(_FindWindowExW, user32, 'FindWindowExW');
  16579. asm
  16580. MOV ESP, EBP
  16581. POP EBP
  16582. JMP [_FindWindowExW]
  16583. end;
  16584. end;
  16585. var
  16586. _FindWindowEx: Pointer;
  16587. function FindWindowEx;
  16588. begin
  16589. GetProcedureAddress(_FindWindowEx, user32, 'FindWindowEx' + AWSuffix);
  16590. asm
  16591. MOV ESP, EBP
  16592. POP EBP
  16593. JMP [_FindWindowEx]
  16594. end;
  16595. end;
  16596. var
  16597. _GetShellWindow: Pointer;
  16598. function GetShellWindow;
  16599. begin
  16600. GetProcedureAddress(_GetShellWindow, user32, 'GetShellWindow');
  16601. asm
  16602. MOV ESP, EBP
  16603. POP EBP
  16604. JMP [_GetShellWindow]
  16605. end;
  16606. end;
  16607. var
  16608. _RegisterShellHookWindow: Pointer;
  16609. function RegisterShellHookWindow;
  16610. begin
  16611. GetProcedureAddress(_RegisterShellHookWindow, user32, 'RegisterShellHookWindow');
  16612. asm
  16613. MOV ESP, EBP
  16614. POP EBP
  16615. JMP [_RegisterShellHookWindow]
  16616. end;
  16617. end;
  16618. var
  16619. _DeregisterShellHookWindow: Pointer;
  16620. function DeregisterShellHookWindow;
  16621. begin
  16622. GetProcedureAddress(_DeregisterShellHookWindow, user32, 'DeregisterShellHookWindow');
  16623. asm
  16624. MOV ESP, EBP
  16625. POP EBP
  16626. JMP [_DeregisterShellHookWindow]
  16627. end;
  16628. end;
  16629. var
  16630. _EnumWindows: Pointer;
  16631. function EnumWindows;
  16632. begin
  16633. GetProcedureAddress(_EnumWindows, user32, 'EnumWindows');
  16634. asm
  16635. MOV ESP, EBP
  16636. POP EBP
  16637. JMP [_EnumWindows]
  16638. end;
  16639. end;
  16640. var
  16641. _EnumThreadWindows: Pointer;
  16642. function EnumThreadWindows;
  16643. begin
  16644. GetProcedureAddress(_EnumThreadWindows, user32, 'EnumThreadWindows');
  16645. asm
  16646. MOV ESP, EBP
  16647. POP EBP
  16648. JMP [_EnumThreadWindows]
  16649. end;
  16650. end;
  16651. var
  16652. _GetClassNameA: Pointer;
  16653. function GetClassNameA;
  16654. begin
  16655. GetProcedureAddress(_GetClassNameA, user32, 'GetClassNameA');
  16656. asm
  16657. MOV ESP, EBP
  16658. POP EBP
  16659. JMP [_GetClassNameA]
  16660. end;
  16661. end;
  16662. var
  16663. _GetClassNameW: Pointer;
  16664. function GetClassNameW;
  16665. begin
  16666. GetProcedureAddress(_GetClassNameW, user32, 'GetClassNameW');
  16667. asm
  16668. MOV ESP, EBP
  16669. POP EBP
  16670. JMP [_GetClassNameW]
  16671. end;
  16672. end;
  16673. var
  16674. _GetClassName: Pointer;
  16675. function GetClassName;
  16676. begin
  16677. GetProcedureAddress(_GetClassName, user32, 'GetClassName' + AWSuffix);
  16678. asm
  16679. MOV ESP, EBP
  16680. POP EBP
  16681. JMP [_GetClassName]
  16682. end;
  16683. end;
  16684. var
  16685. _GetTopWindow: Pointer;
  16686. function GetTopWindow;
  16687. begin
  16688. GetProcedureAddress(_GetTopWindow, user32, 'GetTopWindow');
  16689. asm
  16690. MOV ESP, EBP
  16691. POP EBP
  16692. JMP [_GetTopWindow]
  16693. end;
  16694. end;
  16695. var
  16696. _GetWindowThreadProcessId: Pointer;
  16697. function GetWindowThreadProcessId;
  16698. begin
  16699. GetProcedureAddress(_GetWindowThreadProcessId, user32, 'GetWindowThreadProcessId');
  16700. asm
  16701. MOV ESP, EBP
  16702. POP EBP
  16703. JMP [_GetWindowThreadProcessId]
  16704. end;
  16705. end;
  16706. var
  16707. _IsGUIThread: Pointer;
  16708. function IsGUIThread;
  16709. begin
  16710. GetProcedureAddress(_IsGUIThread, user32, 'IsGUIThread');
  16711. asm
  16712. MOV ESP, EBP
  16713. POP EBP
  16714. JMP [_IsGUIThread]
  16715. end;
  16716. end;
  16717. var
  16718. _GetLastActivePopup: Pointer;
  16719. function GetLastActivePopup;
  16720. begin
  16721. GetProcedureAddress(_GetLastActivePopup, user32, 'GetLastActivePopup');
  16722. asm
  16723. MOV ESP, EBP
  16724. POP EBP
  16725. JMP [_GetLastActivePopup]
  16726. end;
  16727. end;
  16728. var
  16729. _GetWindow: Pointer;
  16730. function GetWindow;
  16731. begin
  16732. GetProcedureAddress(_GetWindow, user32, 'GetWindow');
  16733. asm
  16734. MOV ESP, EBP
  16735. POP EBP
  16736. JMP [_GetWindow]
  16737. end;
  16738. end;
  16739. var
  16740. _SetWindowsHookA: Pointer;
  16741. function SetWindowsHookA;
  16742. begin
  16743. GetProcedureAddress(_SetWindowsHookA, user32, 'SetWindowsHookA');
  16744. asm
  16745. MOV ESP, EBP
  16746. POP EBP
  16747. JMP [_SetWindowsHookA]
  16748. end;
  16749. end;
  16750. var
  16751. _SetWindowsHookW: Pointer;
  16752. function SetWindowsHookW;
  16753. begin
  16754. GetProcedureAddress(_SetWindowsHookW, user32, 'SetWindowsHookW');
  16755. asm
  16756. MOV ESP, EBP
  16757. POP EBP
  16758. JMP [_SetWindowsHookW]
  16759. end;
  16760. end;
  16761. var
  16762. _SetWindowsHook: Pointer;
  16763. function SetWindowsHook;
  16764. begin
  16765. GetProcedureAddress(_SetWindowsHook, user32, 'SetWindowsHook' + AWSuffix);
  16766. asm
  16767. MOV ESP, EBP
  16768. POP EBP
  16769. JMP [_SetWindowsHook]
  16770. end;
  16771. end;
  16772. var
  16773. _UnhookWindowsHook: Pointer;
  16774. function UnhookWindowsHook;
  16775. begin
  16776. GetProcedureAddress(_UnhookWindowsHook, user32, 'UnhookWindowsHook');
  16777. asm
  16778. MOV ESP, EBP
  16779. POP EBP
  16780. JMP [_UnhookWindowsHook]
  16781. end;
  16782. end;
  16783. var
  16784. _SetWindowsHookExA: Pointer;
  16785. function SetWindowsHookExA;
  16786. begin
  16787. GetProcedureAddress(_SetWindowsHookExA, user32, 'SetWindowsHookExA');
  16788. asm
  16789. MOV ESP, EBP
  16790. POP EBP
  16791. JMP [_SetWindowsHookExA]
  16792. end;
  16793. end;
  16794. var
  16795. _SetWindowsHookExW: Pointer;
  16796. function SetWindowsHookExW;
  16797. begin
  16798. GetProcedureAddress(_SetWindowsHookExW, user32, 'SetWindowsHookExW');
  16799. asm
  16800. MOV ESP, EBP
  16801. POP EBP
  16802. JMP [_SetWindowsHookExW]
  16803. end;
  16804. end;
  16805. var
  16806. _SetWindowsHookEx: Pointer;
  16807. function SetWindowsHookEx;
  16808. begin
  16809. GetProcedureAddress(_SetWindowsHookEx, user32, 'SetWindowsHookEx' + AWSuffix);
  16810. asm
  16811. MOV ESP, EBP
  16812. POP EBP
  16813. JMP [_SetWindowsHookEx]
  16814. end;
  16815. end;
  16816. var
  16817. _UnhookWindowsHookEx: Pointer;
  16818. function UnhookWindowsHookEx;
  16819. begin
  16820. GetProcedureAddress(_UnhookWindowsHookEx, user32, 'UnhookWindowsHookEx');
  16821. asm
  16822. MOV ESP, EBP
  16823. POP EBP
  16824. JMP [_UnhookWindowsHookEx]
  16825. end;
  16826. end;
  16827. var
  16828. _CallNextHookEx: Pointer;
  16829. function CallNextHookEx;
  16830. begin
  16831. GetProcedureAddress(_CallNextHookEx, user32, 'CallNextHookEx');
  16832. asm
  16833. MOV ESP, EBP
  16834. POP EBP
  16835. JMP [_CallNextHookEx]
  16836. end;
  16837. end;
  16838. var
  16839. _CheckMenuRadioItem: Pointer;
  16840. function CheckMenuRadioItem;
  16841. begin
  16842. GetProcedureAddress(_CheckMenuRadioItem, user32, 'CheckMenuRadioItem');
  16843. asm
  16844. MOV ESP, EBP
  16845. POP EBP
  16846. JMP [_CheckMenuRadioItem]
  16847. end;
  16848. end;
  16849. var
  16850. _LoadBitmapA: Pointer;
  16851. function LoadBitmapA;
  16852. begin
  16853. GetProcedureAddress(_LoadBitmapA, user32, 'LoadBitmapA');
  16854. asm
  16855. MOV ESP, EBP
  16856. POP EBP
  16857. JMP [_LoadBitmapA]
  16858. end;
  16859. end;
  16860. var
  16861. _LoadBitmapW: Pointer;
  16862. function LoadBitmapW;
  16863. begin
  16864. GetProcedureAddress(_LoadBitmapW, user32, 'LoadBitmapW');
  16865. asm
  16866. MOV ESP, EBP
  16867. POP EBP
  16868. JMP [_LoadBitmapW]
  16869. end;
  16870. end;
  16871. var
  16872. _LoadBitmap: Pointer;
  16873. function LoadBitmap;
  16874. begin
  16875. GetProcedureAddress(_LoadBitmap, user32, 'LoadBitmap' + AWSuffix);
  16876. asm
  16877. MOV ESP, EBP
  16878. POP EBP
  16879. JMP [_LoadBitmap]
  16880. end;
  16881. end;
  16882. var
  16883. _LoadCursorA: Pointer;
  16884. function LoadCursorA;
  16885. begin
  16886. GetProcedureAddress(_LoadCursorA, user32, 'LoadCursorA');
  16887. asm
  16888. MOV ESP, EBP
  16889. POP EBP
  16890. JMP [_LoadCursorA]
  16891. end;
  16892. end;
  16893. var
  16894. _LoadCursorW: Pointer;
  16895. function LoadCursorW;
  16896. begin
  16897. GetProcedureAddress(_LoadCursorW, user32, 'LoadCursorW');
  16898. asm
  16899. MOV ESP, EBP
  16900. POP EBP
  16901. JMP [_LoadCursorW]
  16902. end;
  16903. end;
  16904. var
  16905. _LoadCursor: Pointer;
  16906. function LoadCursor;
  16907. begin
  16908. GetProcedureAddress(_LoadCursor, user32, 'LoadCursor' + AWSuffix);
  16909. asm
  16910. MOV ESP, EBP
  16911. POP EBP
  16912. JMP [_LoadCursor]
  16913. end;
  16914. end;
  16915. var
  16916. _LoadCursorFromFileA: Pointer;
  16917. function LoadCursorFromFileA;
  16918. begin
  16919. GetProcedureAddress(_LoadCursorFromFileA, user32, 'LoadCursorFromFileA');
  16920. asm
  16921. MOV ESP, EBP
  16922. POP EBP
  16923. JMP [_LoadCursorFromFileA]
  16924. end;
  16925. end;
  16926. var
  16927. _LoadCursorFromFileW: Pointer;
  16928. function LoadCursorFromFileW;
  16929. begin
  16930. GetProcedureAddress(_LoadCursorFromFileW, user32, 'LoadCursorFromFileW');
  16931. asm
  16932. MOV ESP, EBP
  16933. POP EBP
  16934. JMP [_LoadCursorFromFileW]
  16935. end;
  16936. end;
  16937. var
  16938. _LoadCursorFromFile: Pointer;
  16939. function LoadCursorFromFile;
  16940. begin
  16941. GetProcedureAddress(_LoadCursorFromFile, user32, 'LoadCursorFromFile' + AWSuffix);
  16942. asm
  16943. MOV ESP, EBP
  16944. POP EBP
  16945. JMP [_LoadCursorFromFile]
  16946. end;
  16947. end;
  16948. var
  16949. _CreateCursor: Pointer;
  16950. function CreateCursor;
  16951. begin
  16952. GetProcedureAddress(_CreateCursor, user32, 'CreateCursor');
  16953. asm
  16954. MOV ESP, EBP
  16955. POP EBP
  16956. JMP [_CreateCursor]
  16957. end;
  16958. end;
  16959. var
  16960. _DestroyCursor: Pointer;
  16961. function DestroyCursor;
  16962. begin
  16963. GetProcedureAddress(_DestroyCursor, user32, 'DestroyCursor');
  16964. asm
  16965. MOV ESP, EBP
  16966. POP EBP
  16967. JMP [_DestroyCursor]
  16968. end;
  16969. end;
  16970. var
  16971. _SetSystemCursor: Pointer;
  16972. function SetSystemCursor;
  16973. begin
  16974. GetProcedureAddress(_SetSystemCursor, user32, 'SetSystemCursor');
  16975. asm
  16976. MOV ESP, EBP
  16977. POP EBP
  16978. JMP [_SetSystemCursor]
  16979. end;
  16980. end;
  16981. var
  16982. _LoadIconA: Pointer;
  16983. function LoadIconA;
  16984. begin
  16985. GetProcedureAddress(_LoadIconA, user32, 'LoadIconA');
  16986. asm
  16987. MOV ESP, EBP
  16988. POP EBP
  16989. JMP [_LoadIconA]
  16990. end;
  16991. end;
  16992. var
  16993. _LoadIconW: Pointer;
  16994. function LoadIconW;
  16995. begin
  16996. GetProcedureAddress(_LoadIconW, user32, 'LoadIconW');
  16997. asm
  16998. MOV ESP, EBP
  16999. POP EBP
  17000. JMP [_LoadIconW]
  17001. end;
  17002. end;
  17003. var
  17004. _LoadIcon: Pointer;
  17005. function LoadIcon;
  17006. begin
  17007. GetProcedureAddress(_LoadIcon, user32, 'LoadIcon' + AWSuffix);
  17008. asm
  17009. MOV ESP, EBP
  17010. POP EBP
  17011. JMP [_LoadIcon]
  17012. end;
  17013. end;
  17014. var
  17015. _PrivateExtractIconsA: Pointer;
  17016. function PrivateExtractIconsA;
  17017. begin
  17018. GetProcedureAddress(_PrivateExtractIconsA, user32, 'PrivateExtractIconsA');
  17019. asm
  17020. MOV ESP, EBP
  17021. POP EBP
  17022. JMP [_PrivateExtractIconsA]
  17023. end;
  17024. end;
  17025. var
  17026. _PrivateExtractIconsW: Pointer;
  17027. function PrivateExtractIconsW;
  17028. begin
  17029. GetProcedureAddress(_PrivateExtractIconsW, user32, 'PrivateExtractIconsW');
  17030. asm
  17031. MOV ESP, EBP
  17032. POP EBP
  17033. JMP [_PrivateExtractIconsW]
  17034. end;
  17035. end;
  17036. var
  17037. _PrivateExtractIcons: Pointer;
  17038. function PrivateExtractIcons;
  17039. begin
  17040. GetProcedureAddress(_PrivateExtractIcons, user32, 'PrivateExtractIcons' + AWSuffix);
  17041. asm
  17042. MOV ESP, EBP
  17043. POP EBP
  17044. JMP [_PrivateExtractIcons]
  17045. end;
  17046. end;
  17047. var
  17048. _CreateIcon: Pointer;
  17049. function CreateIcon;
  17050. begin
  17051. GetProcedureAddress(_CreateIcon, user32, 'CreateIcon');
  17052. asm
  17053. MOV ESP, EBP
  17054. POP EBP
  17055. JMP [_CreateIcon]
  17056. end;
  17057. end;
  17058. var
  17059. _DestroyIcon: Pointer;
  17060. function DestroyIcon;
  17061. begin
  17062. GetProcedureAddress(_DestroyIcon, user32, 'DestroyIcon');
  17063. asm
  17064. MOV ESP, EBP
  17065. POP EBP
  17066. JMP [_DestroyIcon]
  17067. end;
  17068. end;
  17069. var
  17070. _LookupIconIdFromDirectory: Pointer;
  17071. function LookupIconIdFromDirectory;
  17072. begin
  17073. GetProcedureAddress(_LookupIconIdFromDirectory, user32, 'LookupIconIdFromDirectory');
  17074. asm
  17075. MOV ESP, EBP
  17076. POP EBP
  17077. JMP [_LookupIconIdFromDirectory]
  17078. end;
  17079. end;
  17080. var
  17081. _LookupIconIdFromDirectoryEx: Pointer;
  17082. function LookupIconIdFromDirectoryEx;
  17083. begin
  17084. GetProcedureAddress(_LookupIconIdFromDirectoryEx, user32, 'LookupIconIdFromDirectoryEx');
  17085. asm
  17086. MOV ESP, EBP
  17087. POP EBP
  17088. JMP [_LookupIconIdFromDirectoryEx]
  17089. end;
  17090. end;
  17091. var
  17092. _CreateIconFromResource: Pointer;
  17093. function CreateIconFromResource;
  17094. begin
  17095. GetProcedureAddress(_CreateIconFromResource, user32, 'CreateIconFromResource');
  17096. asm
  17097. MOV ESP, EBP
  17098. POP EBP
  17099. JMP [_CreateIconFromResource]
  17100. end;
  17101. end;
  17102. var
  17103. _CreateIconFromResourceEx: Pointer;
  17104. function CreateIconFromResourceEx;
  17105. begin
  17106. GetProcedureAddress(_CreateIconFromResourceEx, user32, 'CreateIconFromResourceEx');
  17107. asm
  17108. MOV ESP, EBP
  17109. POP EBP
  17110. JMP [_CreateIconFromResourceEx]
  17111. end;
  17112. end;
  17113. var
  17114. _LoadImageA: Pointer;
  17115. function LoadImageA;
  17116. begin
  17117. GetProcedureAddress(_LoadImageA, user32, 'LoadImageA');
  17118. asm
  17119. MOV ESP, EBP
  17120. POP EBP
  17121. JMP [_LoadImageA]
  17122. end;
  17123. end;
  17124. var
  17125. _LoadImageW: Pointer;
  17126. function LoadImageW;
  17127. begin
  17128. GetProcedureAddress(_LoadImageW, user32, 'LoadImageW');
  17129. asm
  17130. MOV ESP, EBP
  17131. POP EBP
  17132. JMP [_LoadImageW]
  17133. end;
  17134. end;
  17135. var
  17136. _LoadImage: Pointer;
  17137. function LoadImage;
  17138. begin
  17139. GetProcedureAddress(_LoadImage, user32, 'LoadImage' + AWSuffix);
  17140. asm
  17141. MOV ESP, EBP
  17142. POP EBP
  17143. JMP [_LoadImage]
  17144. end;
  17145. end;
  17146. var
  17147. _CopyImage: Pointer;
  17148. function CopyImage;
  17149. begin
  17150. GetProcedureAddress(_CopyImage, user32, 'CopyImage');
  17151. asm
  17152. MOV ESP, EBP
  17153. POP EBP
  17154. JMP [_CopyImage]
  17155. end;
  17156. end;
  17157. var
  17158. _DrawIconEx: Pointer;
  17159. function DrawIconEx;
  17160. begin
  17161. GetProcedureAddress(_DrawIconEx, user32, 'DrawIconEx');
  17162. asm
  17163. MOV ESP, EBP
  17164. POP EBP
  17165. JMP [_DrawIconEx]
  17166. end;
  17167. end;
  17168. var
  17169. _CreateIconIndirect: Pointer;
  17170. function CreateIconIndirect;
  17171. begin
  17172. GetProcedureAddress(_CreateIconIndirect, user32, 'CreateIconIndirect');
  17173. asm
  17174. MOV ESP