PageRenderTime 93ms CodeModel.GetById 35ms RepoModel.GetById 1ms 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

Large files files are truncated, but you can click here to view the full file

  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 lpnLengthN

Large files files are truncated, but you can click here to view the full file