/packages/winunits-jedi/src/jwawinuser.pas
http://github.com/graemeg/freepascal · Pascal · 21916 lines · 14001 code · 2888 blank · 5027 comment · 0 complexity · f213bdf3378ede1a93660d436ac95f3b MD5 · raw file
Large files are truncated click here to view the full file
- {******************************************************************************}
- { }
- { Windows User API interface Unit for Object Pascal }
- { }
- { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
- { Corporation. All Rights Reserved. }
- { }
- { The original file is: winuser.h, released June 2000. The original Pascal }
- { code is: WinUser.pas, released December 2000. The initial developer of the }
- { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
- { }
- { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
- { Marcel van Brakel. All Rights Reserved. }
- { }
- { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
- { }
- { You may retrieve the latest version of this file at the Project JEDI }
- { APILIB home page, located at http://jedi-apilib.sourceforge.net }
- { }
- { The contents of this file are used with permission, subject to the Mozilla }
- { Public License Version 1.1 (the "License"); you may not use this file except }
- { in compliance with the License. You may obtain a copy of the License at }
- { http://www.mozilla.org/MPL/MPL-1.1.html }
- { }
- { Software distributed under the License is distributed on an "AS IS" basis, }
- { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
- { the specific language governing rights and limitations under the License. }
- { }
- { Alternatively, the contents of this file may be used under the terms of the }
- { GNU Lesser General Public License (the "LGPL License"), in which case the }
- { provisions of the LGPL License are applicable instead of those above. }
- { If you wish to allow use of your version of this file only under the terms }
- { of the LGPL License and not to allow others to use your version of this file }
- { under the MPL, indicate your decision by deleting the provisions above and }
- { replace them with the notice and other provisions required by the LGPL }
- { License. If you do not delete the provisions above, a recipient may use }
- { your version of this file under either the MPL or the LGPL License. }
- { }
- { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
- { }
- {******************************************************************************}
- // $Id: JwaWinUser.pas,v 1.19 2007/09/14 06:48:48 marquardt Exp $
- {$IFNDEF JWA_OMIT_SECTIONS}
- unit JwaWinUser;
- {$WEAKPACKAGEUNIT}
- {$ENDIF JWA_OMIT_SECTIONS}
- {$HPPEMIT ''}
- {$HPPEMIT '#include "WinUser.h"'}
- {$HPPEMIT ''}
- {$IFNDEF JWA_OMIT_SECTIONS}
- {$I jediapilib.inc}
- interface
- uses
- JwaWinBase, JwaWinGDI, JwaWinNT, JwaWinType;
- {$ENDIF JWA_OMIT_SECTIONS}
- {$IFNDEF JWA_IMPLEMENTATIONSECTION}
- const
- UINT_MAX = UINT($FFFFFFFF); // from limits.h TODO
- {$EXTERNALSYM UINT_MAX}
- type
- HDWP = HANDLE;
- {$EXTERNALSYM HDWP}
- MENUTEMPLATEA = Pointer;
- {$EXTERNALSYM MENUTEMPLATEA}
- MENUTEMPLATEW = Pointer;
- {$EXTERNALSYM MENUTEMPLATEW}
- {$IFDEF UNICODE}
- MENUTEMPLATE = MENUTEMPLATEW;
- {$EXTERNALSYM MENUTEMPLATE}
- {$ELSE}
- MENUTEMPLATE = MENUTEMPLATEA;
- {$EXTERNALSYM MENUTEMPLATE}
- {$ENDIF UNICODE}
- LPMENUTEMPLATEA = PVOID;
- {$EXTERNALSYM LPMENUTEMPLATEA}
- LPMENUTEMPLATEW = PVOID;
- {$EXTERNALSYM LPMENUTEMPLATEW}
- {$IFDEF UNICODE}
- LPMENUTEMPLATE = LPMENUTEMPLATEW;
- {$EXTERNALSYM LPMENUTEMPLATE}
- {$ELSE}
- LPMENUTEMPLATE = LPMENUTEMPLATEA;
- {$EXTERNALSYM LPMENUTEMPLATE}
- {$ENDIF UNICODE}
- WNDPROC = function(hWnd: HWND; uMsg: UINT; lParam: WPARAM; wParam: LPARAM): LRESULT; stdcall;
- {$EXTERNALSYM WNDPROC}
- DLGPROC = function(hwndDlg: HWND; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): INT_PTR; stdcall;
- {$EXTERNALSYM DLGPROC}
- TIMERPROC = procedure(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD); stdcall;
- {$EXTERNALSYM TIMERPROC}
- GRAYSTRINGPROC = function(hdc: HDC; lpData: LPARAM; cchData: Integer): BOOL; stdcall;
- {$EXTERNALSYM GRAYSTRINGPROC}
- WNDENUMPROC = function(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM WNDENUMPROC}
- HOOKPROC = function(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
- {$EXTERNALSYM HOOKPROC}
- SENDASYNCPROC = procedure(hwnd: HWND; uMsg: UINT; dwData: ULONG_PTR; lResult: LRESULT); stdcall;
- {$EXTERNALSYM SENDASYNCPROC}
- PROPENUMPROCA = function(hwnd: HWND; lpszString: LPCSTR; hData: HANDLE): BOOL; stdcall;
- {$EXTERNALSYM PROPENUMPROCA}
- PROPENUMPROCW = function(hwnd: HWND; lpszString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
- {$EXTERNALSYM PROPENUMPROCW}
- PROPENUMPROCEXA = function(hwnd: HWND; lpszString: LPSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
- {$EXTERNALSYM PROPENUMPROCEXA}
- PROPENUMPROCEXW = function(hwnd: HWND; lpszString: LPWSTR; hData: HANDLE; dwData: ULONG_PTR): BOOL; stdcall;
- {$EXTERNALSYM PROPENUMPROCEXW}
- EDITWORDBREAKPROCA = function(lpch: LPSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
- {$EXTERNALSYM EDITWORDBREAKPROCA}
- EDITWORDBREAKPROCW = function(lpch: LPWSTR; ichCurrent: Integer; cch, code: Integer): Integer; stdcall;
- {$EXTERNALSYM EDITWORDBREAKPROCW}
- DRAWSTATEPROC = function(hdc: HDC; lData: LPARAM; wData: WPARAM; cx, cy: Integer): BOOL; stdcall;
- {$EXTERNALSYM DRAWSTATEPROC}
- {$IFDEF UNICODE}
- PROPENUMPROC = PROPENUMPROCW;
- {$EXTERNALSYM PROPENUMPROC}
- PROPENUMPROCEX = PROPENUMPROCEXW;
- {$EXTERNALSYM PROPENUMPROCEX}
- EDITWORDBREAKPROC = EDITWORDBREAKPROCW;
- {$EXTERNALSYM EDITWORDBREAKPROC}
- {$ELSE}
- PROPENUMPROC = PROPENUMPROCA;
- {$EXTERNALSYM PROPENUMPROC}
- PROPENUMPROCEX = PROPENUMPROCEXA;
- {$EXTERNALSYM PROPENUMPROCEX}
- EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
- {$EXTERNALSYM EDITWORDBREAKPROC}
- {$ENDIF UNICODE}
- NAMEENUMPROCA = function(lpstr: LPSTR; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM NAMEENUMPROCA}
- NAMEENUMPROCW = function(lpstr: LPWSTR; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM NAMEENUMPROCW}
- WINSTAENUMPROCA = NAMEENUMPROCA;
- {$EXTERNALSYM WINSTAENUMPROCA}
- DESKTOPENUMPROCA = NAMEENUMPROCA;
- {$EXTERNALSYM DESKTOPENUMPROCA}
- WINSTAENUMPROCW = NAMEENUMPROCW;
- {$EXTERNALSYM WINSTAENUMPROCW}
- DESKTOPENUMPROCW = NAMEENUMPROCW;
- {$EXTERNALSYM DESKTOPENUMPROCW}
- {$IFDEF UNICODE}
- WINSTAENUMPROC = WINSTAENUMPROCW;
- {$EXTERNALSYM WINSTAENUMPROC}
- DESKTOPENUMPROC = DESKTOPENUMPROCW;
- {$EXTERNALSYM DESKTOPENUMPROC}
- {$ELSE}
- WINSTAENUMPROC = WINSTAENUMPROCA;
- {$EXTERNALSYM WINSTAENUMPROC}
- DESKTOPENUMPROC = DESKTOPENUMPROCA;
- {$EXTERNALSYM DESKTOPENUMPROC}
- {$ENDIF UNICODE}
- function IS_INTRESOURCE(wInteger: WORD): BOOL;
- {$EXTERNALSYM IS_INTRESOURCE}
- type
- MAKEINTRESOURCEA = LPSTR;
- {$EXTERNALSYM MAKEINTRESOURCEA}
- MAKEINTRESOURCEW = LPWSTR;
- {$EXTERNALSYM MAKEINTRESOURCEW}
- {$IFDEF UNICODE}
- MAKEINTRESOURCE = MAKEINTRESOURCEW;
- {$EXTERNALSYM MAKEINTRESOURCE}
- {$ELSE}
- MAKEINTRESOURCE = MAKEINTRESOURCEA;
- {$EXTERNALSYM MAKEINTRESOURCE}
- {$ENDIF UNICODE}
- //
- // Predefined Resource Types
- //
- const
- RT_CURSOR = MAKEINTRESOURCE(1);
- {$EXTERNALSYM RT_CURSOR}
- RT_BITMAP = MAKEINTRESOURCE(2);
- {$EXTERNALSYM RT_BITMAP}
- RT_ICON = MAKEINTRESOURCE(3);
- {$EXTERNALSYM RT_ICON}
- RT_MENU = MAKEINTRESOURCE(4);
- {$EXTERNALSYM RT_MENU}
- RT_DIALOG = MAKEINTRESOURCE(5);
- {$EXTERNALSYM RT_DIALOG}
- RT_STRING = MAKEINTRESOURCE(6);
- {$EXTERNALSYM RT_STRING}
- RT_FONTDIR = MAKEINTRESOURCE(7);
- {$EXTERNALSYM RT_FONTDIR}
- RT_FONT = MAKEINTRESOURCE(8);
- {$EXTERNALSYM RT_FONT}
- RT_ACCELERATOR = MAKEINTRESOURCE(9);
- {$EXTERNALSYM RT_ACCELERATOR}
- RT_RCDATA = MAKEINTRESOURCE(10);
- {$EXTERNALSYM RT_RCDATA}
- RT_MESSAGETABLE = MAKEINTRESOURCE(11);
- {$EXTERNALSYM RT_MESSAGETABLE}
- DIFFERENCE = 11;
- {$EXTERNALSYM DIFFERENCE}
- RT_GROUP_CURSOR = MAKEINTRESOURCE(ULONG_PTR(RT_CURSOR) + DIFFERENCE);
- {$EXTERNALSYM RT_GROUP_CURSOR}
- RT_GROUP_ICON = MAKEINTRESOURCE(ULONG_PTR(RT_ICON) + DIFFERENCE);
- {$EXTERNALSYM RT_GROUP_ICON}
- RT_VERSION = MAKEINTRESOURCE(16);
- {$EXTERNALSYM RT_VERSION}
- RT_DLGINCLUDE = MAKEINTRESOURCE(17);
- {$EXTERNALSYM RT_DLGINCLUDE}
- RT_PLUGPLAY = MAKEINTRESOURCE(19);
- {$EXTERNALSYM RT_PLUGPLAY}
- RT_VXD = MAKEINTRESOURCE(20);
- {$EXTERNALSYM RT_VXD}
- RT_ANICURSOR = MAKEINTRESOURCE(21);
- {$EXTERNALSYM RT_ANICURSOR}
- RT_ANIICON = MAKEINTRESOURCE(22);
- {$EXTERNALSYM RT_ANIICON}
- RT_HTML = MAKEINTRESOURCE(23);
- {$EXTERNALSYM RT_HTML}
- RT_MANIFEST = MAKEINTRESOURCE(24);
- CREATEPROCESS_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1);
- {$EXTERNALSYM CREATEPROCESS_MANIFEST_RESOURCE_ID}
- ISOLATIONAWARE_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(2);
- {$EXTERNALSYM ISOLATIONAWARE_MANIFEST_RESOURCE_ID}
- ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(3);
- {$EXTERNALSYM ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID}
- MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(1{inclusive});
- {$EXTERNALSYM MINIMUM_RESERVED_MANIFEST_RESOURCE_ID}
- MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE(16{inclusive});
- {$EXTERNALSYM MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID}
- type
- va_list = PChar;
- {$EXTERNALSYM va_list}
- function wvsprintfA(Output: LPSTR; Format: LPCSTR; arglist: va_list): Integer; stdcall;
- {$EXTERNALSYM wvsprintfA}
- function wvsprintfW(Output: LPWSTR; Format: LPCWSTR; arglist: va_list): Integer; stdcall;
- {$EXTERNALSYM wvsprintfW}
- function wvsprintf(Output: LPTSTR; Format: LPCTSTR; arglist: va_list): Integer; stdcall;
- {$EXTERNALSYM wvsprintf}
- function wsprintfA(Output: LPSTR; Format: LPCSTR): Integer; stdcall;
- {$EXTERNALSYM wsprintfA}
- function wsprintfW(Output: LPWSTR; Format: LPCWSTR): Integer; stdcall;
- {$EXTERNALSYM wsprintfW}
- function wsprintf(Output: LPTSTR; Format: LPCTSTR): Integer; stdcall;
- {$EXTERNALSYM wsprintf}
- //
- // SPI_SETDESKWALLPAPER defined constants
- //
- const
- SETWALLPAPER_DEFAULT = LPWSTR(-1);
- {$EXTERNALSYM SETWALLPAPER_DEFAULT}
- //
- // Scroll Bar Constants
- //
- SB_HORZ = 0;
- {$EXTERNALSYM SB_HORZ}
- SB_VERT = 1;
- {$EXTERNALSYM SB_VERT}
- SB_CTL = 2;
- {$EXTERNALSYM SB_CTL}
- SB_BOTH = 3;
- {$EXTERNALSYM SB_BOTH}
- //
- // Scroll Bar Commands
- //
- SB_LINEUP = 0;
- {$EXTERNALSYM SB_LINEUP}
- SB_LINELEFT = 0;
- {$EXTERNALSYM SB_LINELEFT}
- SB_LINEDOWN = 1;
- {$EXTERNALSYM SB_LINEDOWN}
- SB_LINERIGHT = 1;
- {$EXTERNALSYM SB_LINERIGHT}
- SB_PAGEUP = 2;
- {$EXTERNALSYM SB_PAGEUP}
- SB_PAGELEFT = 2;
- {$EXTERNALSYM SB_PAGELEFT}
- SB_PAGEDOWN = 3;
- {$EXTERNALSYM SB_PAGEDOWN}
- SB_PAGERIGHT = 3;
- {$EXTERNALSYM SB_PAGERIGHT}
- SB_THUMBPOSITION = 4;
- {$EXTERNALSYM SB_THUMBPOSITION}
- SB_THUMBTRACK = 5;
- {$EXTERNALSYM SB_THUMBTRACK}
- SB_TOP = 6;
- {$EXTERNALSYM SB_TOP}
- SB_LEFT = 6;
- {$EXTERNALSYM SB_LEFT}
- SB_BOTTOM = 7;
- {$EXTERNALSYM SB_BOTTOM}
- SB_RIGHT = 7;
- {$EXTERNALSYM SB_RIGHT}
- SB_ENDSCROLL = 8;
- {$EXTERNALSYM SB_ENDSCROLL}
- //
- // ShowWindow() Commands
- //
- SW_HIDE = 0;
- {$EXTERNALSYM SW_HIDE}
- SW_SHOWNORMAL = 1;
- {$EXTERNALSYM SW_SHOWNORMAL}
- SW_NORMAL = 1;
- {$EXTERNALSYM SW_NORMAL}
- SW_SHOWMINIMIZED = 2;
- {$EXTERNALSYM SW_SHOWMINIMIZED}
- SW_SHOWMAXIMIZED = 3;
- {$EXTERNALSYM SW_SHOWMAXIMIZED}
- SW_MAXIMIZE = 3;
- {$EXTERNALSYM SW_MAXIMIZE}
- SW_SHOWNOACTIVATE = 4;
- {$EXTERNALSYM SW_SHOWNOACTIVATE}
- SW_SHOW = 5;
- {$EXTERNALSYM SW_SHOW}
- SW_MINIMIZE = 6;
- {$EXTERNALSYM SW_MINIMIZE}
- SW_SHOWMINNOACTIVE = 7;
- {$EXTERNALSYM SW_SHOWMINNOACTIVE}
- SW_SHOWNA = 8;
- {$EXTERNALSYM SW_SHOWNA}
- SW_RESTORE = 9;
- {$EXTERNALSYM SW_RESTORE}
- SW_SHOWDEFAULT = 10;
- {$EXTERNALSYM SW_SHOWDEFAULT}
- SW_FORCEMINIMIZE = 11;
- {$EXTERNALSYM SW_FORCEMINIMIZE}
- SW_MAX = 11;
- {$EXTERNALSYM SW_MAX}
- //
- // Old ShowWindow() Commands
- //
- HIDE_WINDOW = 0;
- {$EXTERNALSYM HIDE_WINDOW}
- SHOW_OPENWINDOW = 1;
- {$EXTERNALSYM SHOW_OPENWINDOW}
- SHOW_ICONWINDOW = 2;
- {$EXTERNALSYM SHOW_ICONWINDOW}
- SHOW_FULLSCREEN = 3;
- {$EXTERNALSYM SHOW_FULLSCREEN}
- SHOW_OPENNOACTIVATE = 4;
- {$EXTERNALSYM SHOW_OPENNOACTIVATE}
- //
- // Identifiers for the WM_SHOWWINDOW message
- //
- SW_PARENTCLOSING = 1;
- {$EXTERNALSYM SW_PARENTCLOSING}
- SW_OTHERZOOM = 2;
- {$EXTERNALSYM SW_OTHERZOOM}
- SW_PARENTOPENING = 3;
- {$EXTERNALSYM SW_PARENTOPENING}
- SW_OTHERUNZOOM = 4;
- {$EXTERNALSYM SW_OTHERUNZOOM}
- //
- // AnimateWindow() Commands
- //
- AW_HOR_POSITIVE = $00000001;
- {$EXTERNALSYM AW_HOR_POSITIVE}
- AW_HOR_NEGATIVE = $00000002;
- {$EXTERNALSYM AW_HOR_NEGATIVE}
- AW_VER_POSITIVE = $00000004;
- {$EXTERNALSYM AW_VER_POSITIVE}
- AW_VER_NEGATIVE = $00000008;
- {$EXTERNALSYM AW_VER_NEGATIVE}
- AW_CENTER = $00000010;
- {$EXTERNALSYM AW_CENTER}
- AW_HIDE = $00010000;
- {$EXTERNALSYM AW_HIDE}
- AW_ACTIVATE = $00020000;
- {$EXTERNALSYM AW_ACTIVATE}
- AW_SLIDE = $00040000;
- {$EXTERNALSYM AW_SLIDE}
- AW_BLEND = $00080000;
- {$EXTERNALSYM AW_BLEND}
- //
- // WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
- //
- KF_EXTENDED = $0100;
- {$EXTERNALSYM KF_EXTENDED}
- KF_DLGMODE = $0800;
- {$EXTERNALSYM KF_DLGMODE}
- KF_MENUMODE = $1000;
- {$EXTERNALSYM KF_MENUMODE}
- KF_ALTDOWN = $2000;
- {$EXTERNALSYM KF_ALTDOWN}
- KF_REPEAT = $4000;
- {$EXTERNALSYM KF_REPEAT}
- KF_UP = $8000;
- {$EXTERNALSYM KF_UP}
- //
- // Virtual Keys, Standard Set
- //
- VK_LBUTTON = $01;
- {$EXTERNALSYM VK_LBUTTON}
- VK_RBUTTON = $02;
- {$EXTERNALSYM VK_RBUTTON}
- VK_CANCEL = $03;
- {$EXTERNALSYM VK_CANCEL}
- VK_MBUTTON = $04; // NOT contiguous with L & RBUTTON
- {$EXTERNALSYM VK_MBUTTON}
- {$IFDEF WIN98ME_UP}
- VK_XBUTTON1 = $05; // NOT contiguous with L & RBUTTON
- {$EXTERNALSYM VK_XBUTTON1}
- VK_XBUTTON2 = $06; // NOT contiguous with L & RBUTTON
- {$EXTERNALSYM VK_XBUTTON2}
- {$ENDIF WIN98ME_UP}
- //
- // 0x07 : unassigned
- //
- VK_BACK = $08;
- {$EXTERNALSYM VK_BACK}
- VK_TAB = $09;
- {$EXTERNALSYM VK_TAB}
- //
- // 0x0A - 0x0B : reserved
- //
- VK_CLEAR = $0C;
- {$EXTERNALSYM VK_CLEAR}
- VK_RETURN = $0D;
- {$EXTERNALSYM VK_RETURN}
- VK_SHIFT = $10;
- {$EXTERNALSYM VK_SHIFT}
- VK_CONTROL = $11;
- {$EXTERNALSYM VK_CONTROL}
- VK_MENU = $12;
- {$EXTERNALSYM VK_MENU}
- VK_PAUSE = $13;
- {$EXTERNALSYM VK_PAUSE}
- VK_CAPITAL = $14;
- {$EXTERNALSYM VK_CAPITAL}
- VK_KANA = $15;
- {$EXTERNALSYM VK_KANA}
- VK_HANGEUL = $15; // old name - should be here for compatibility
- {$EXTERNALSYM VK_HANGEUL}
- VK_HANGUL = $15;
- {$EXTERNALSYM VK_HANGUL}
- VK_JUNJA = $17;
- {$EXTERNALSYM VK_JUNJA}
- VK_FINAL = $18;
- {$EXTERNALSYM VK_FINAL}
- VK_HANJA = $19;
- {$EXTERNALSYM VK_HANJA}
- VK_KANJI = $19;
- {$EXTERNALSYM VK_KANJI}
- VK_ESCAPE = $1B;
- {$EXTERNALSYM VK_ESCAPE}
- VK_CONVERT = $1C;
- {$EXTERNALSYM VK_CONVERT}
- VK_NONCONVERT = $1D;
- {$EXTERNALSYM VK_NONCONVERT}
- VK_ACCEPT = $1E;
- {$EXTERNALSYM VK_ACCEPT}
- VK_MODECHANGE = $1F;
- {$EXTERNALSYM VK_MODECHANGE}
- VK_SPACE = $20;
- {$EXTERNALSYM VK_SPACE}
- VK_PRIOR = $21;
- {$EXTERNALSYM VK_PRIOR}
- VK_NEXT = $22;
- {$EXTERNALSYM VK_NEXT}
- VK_END = $23;
- {$EXTERNALSYM VK_END}
- VK_HOME = $24;
- {$EXTERNALSYM VK_HOME}
- VK_LEFT = $25;
- {$EXTERNALSYM VK_LEFT}
- VK_UP = $26;
- {$EXTERNALSYM VK_UP}
- VK_RIGHT = $27;
- {$EXTERNALSYM VK_RIGHT}
- VK_DOWN = $28;
- {$EXTERNALSYM VK_DOWN}
- VK_SELECT = $29;
- {$EXTERNALSYM VK_SELECT}
- VK_PRINT = $2A;
- {$EXTERNALSYM VK_PRINT}
- VK_EXECUTE = $2B;
- {$EXTERNALSYM VK_EXECUTE}
- VK_SNAPSHOT = $2C;
- {$EXTERNALSYM VK_SNAPSHOT}
- VK_INSERT = $2D;
- {$EXTERNALSYM VK_INSERT}
- VK_DELETE = $2E;
- {$EXTERNALSYM VK_DELETE}
- VK_HELP = $2F;
- {$EXTERNALSYM VK_HELP}
- //
- // VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
- // 0x40 : unassigned
- // VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
- //
- VK_LWIN = $5B;
- {$EXTERNALSYM VK_LWIN}
- VK_RWIN = $5C;
- {$EXTERNALSYM VK_RWIN}
- VK_APPS = $5D;
- {$EXTERNALSYM VK_APPS}
- //
- // 0x5E : reserved
- //
- VK_SLEEP = $5F;
- {$EXTERNALSYM VK_SLEEP}
- VK_NUMPAD0 = $60;
- {$EXTERNALSYM VK_NUMPAD0}
- VK_NUMPAD1 = $61;
- {$EXTERNALSYM VK_NUMPAD1}
- VK_NUMPAD2 = $62;
- {$EXTERNALSYM VK_NUMPAD2}
- VK_NUMPAD3 = $63;
- {$EXTERNALSYM VK_NUMPAD3}
- VK_NUMPAD4 = $64;
- {$EXTERNALSYM VK_NUMPAD4}
- VK_NUMPAD5 = $65;
- {$EXTERNALSYM VK_NUMPAD5}
- VK_NUMPAD6 = $66;
- {$EXTERNALSYM VK_NUMPAD6}
- VK_NUMPAD7 = $67;
- {$EXTERNALSYM VK_NUMPAD7}
- VK_NUMPAD8 = $68;
- {$EXTERNALSYM VK_NUMPAD8}
- VK_NUMPAD9 = $69;
- {$EXTERNALSYM VK_NUMPAD9}
- VK_MULTIPLY = $6A;
- {$EXTERNALSYM VK_MULTIPLY}
- VK_ADD = $6B;
- {$EXTERNALSYM VK_ADD}
- VK_SEPARATOR = $6C;
- {$EXTERNALSYM VK_SEPARATOR}
- VK_SUBTRACT = $6D;
- {$EXTERNALSYM VK_SUBTRACT}
- VK_DECIMAL = $6E;
- {$EXTERNALSYM VK_DECIMAL}
- VK_DIVIDE = $6F;
- {$EXTERNALSYM VK_DIVIDE}
- VK_F1 = $70;
- {$EXTERNALSYM VK_F1}
- VK_F2 = $71;
- {$EXTERNALSYM VK_F2}
- VK_F3 = $72;
- {$EXTERNALSYM VK_F3}
- VK_F4 = $73;
- {$EXTERNALSYM VK_F4}
- VK_F5 = $74;
- {$EXTERNALSYM VK_F5}
- VK_F6 = $75;
- {$EXTERNALSYM VK_F6}
- VK_F7 = $76;
- {$EXTERNALSYM VK_F7}
- VK_F8 = $77;
- {$EXTERNALSYM VK_F8}
- VK_F9 = $78;
- {$EXTERNALSYM VK_F9}
- VK_F10 = $79;
- {$EXTERNALSYM VK_F10}
- VK_F11 = $7A;
- {$EXTERNALSYM VK_F11}
- VK_F12 = $7B;
- {$EXTERNALSYM VK_F12}
- VK_F13 = $7C;
- {$EXTERNALSYM VK_F13}
- VK_F14 = $7D;
- {$EXTERNALSYM VK_F14}
- VK_F15 = $7E;
- {$EXTERNALSYM VK_F15}
- VK_F16 = $7F;
- {$EXTERNALSYM VK_F16}
- VK_F17 = $80;
- {$EXTERNALSYM VK_F17}
- VK_F18 = $81;
- {$EXTERNALSYM VK_F18}
- VK_F19 = $82;
- {$EXTERNALSYM VK_F19}
- VK_F20 = $83;
- {$EXTERNALSYM VK_F20}
- VK_F21 = $84;
- {$EXTERNALSYM VK_F21}
- VK_F22 = $85;
- {$EXTERNALSYM VK_F22}
- VK_F23 = $86;
- {$EXTERNALSYM VK_F23}
- VK_F24 = $87;
- {$EXTERNALSYM VK_F24}
- //
- // 0x88 - 0x8F : unassigned
- //
- VK_NUMLOCK = $90;
- {$EXTERNALSYM VK_NUMLOCK}
- VK_SCROLL = $91;
- {$EXTERNALSYM VK_SCROLL}
- //
- // NEC PC-9800 kbd definitions
- //
- VK_OEM_NEC_EQUAL = $92; // '=' key on numpad
- {$EXTERNALSYM VK_OEM_NEC_EQUAL}
- //
- // Fujitsu/OASYS kbd definitions
- //
- VK_OEM_FJ_JISHO = $92; // 'Dictionary' key
- {$EXTERNALSYM VK_OEM_FJ_JISHO}
- VK_OEM_FJ_MASSHOU = $93; // 'Unregister word' key
- {$EXTERNALSYM VK_OEM_FJ_MASSHOU}
- VK_OEM_FJ_TOUROKU = $94; // 'Register word' key
- {$EXTERNALSYM VK_OEM_FJ_TOUROKU}
- VK_OEM_FJ_LOYA = $95; // 'Left OYAYUBI' key
- {$EXTERNALSYM VK_OEM_FJ_LOYA}
- VK_OEM_FJ_ROYA = $96; // 'Right OYAYUBI' key
- {$EXTERNALSYM VK_OEM_FJ_ROYA}
- //
- // 0x97 - 0x9F : unassigned
- //
- //
- // VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
- // Used only as parameters to GetAsyncKeyState() and GetKeyState().
- // No other API or message will distinguish left and right keys in this way.
- //
- VK_LSHIFT = $A0;
- {$EXTERNALSYM VK_LSHIFT}
- VK_RSHIFT = $A1;
- {$EXTERNALSYM VK_RSHIFT}
- VK_LCONTROL = $A2;
- {$EXTERNALSYM VK_LCONTROL}
- VK_RCONTROL = $A3;
- {$EXTERNALSYM VK_RCONTROL}
- VK_LMENU = $A4;
- {$EXTERNALSYM VK_LMENU}
- VK_RMENU = $A5;
- {$EXTERNALSYM VK_RMENU}
- {$IFDEF WIN98ME_UP}
- VK_BROWSER_BACK = $A6;
- {$EXTERNALSYM VK_BROWSER_BACK}
- VK_BROWSER_FORWARD = $A7;
- {$EXTERNALSYM VK_BROWSER_FORWARD}
- VK_BROWSER_REFRESH = $A8;
- {$EXTERNALSYM VK_BROWSER_REFRESH}
- VK_BROWSER_STOP = $A9;
- {$EXTERNALSYM VK_BROWSER_STOP}
- VK_BROWSER_SEARCH = $AA;
- {$EXTERNALSYM VK_BROWSER_SEARCH}
- VK_BROWSER_FAVORITES = $AB;
- {$EXTERNALSYM VK_BROWSER_FAVORITES}
- VK_BROWSER_HOME = $AC;
- {$EXTERNALSYM VK_BROWSER_HOME}
- VK_VOLUME_MUTE = $AD;
- {$EXTERNALSYM VK_VOLUME_MUTE}
- VK_VOLUME_DOWN = $AE;
- {$EXTERNALSYM VK_VOLUME_DOWN}
- VK_VOLUME_UP = $AF;
- {$EXTERNALSYM VK_VOLUME_UP}
- VK_MEDIA_NEXT_TRACK = $B0;
- {$EXTERNALSYM VK_MEDIA_NEXT_TRACK}
- VK_MEDIA_PREV_TRACK = $B1;
- {$EXTERNALSYM VK_MEDIA_PREV_TRACK}
- VK_MEDIA_STOP = $B2;
- {$EXTERNALSYM VK_MEDIA_STOP}
- VK_MEDIA_PLAY_PAUSE = $B3;
- {$EXTERNALSYM VK_MEDIA_PLAY_PAUSE}
- VK_LAUNCH_MAIL = $B4;
- {$EXTERNALSYM VK_LAUNCH_MAIL}
- VK_LAUNCH_MEDIA_SELECT = $B5;
- {$EXTERNALSYM VK_LAUNCH_MEDIA_SELECT}
- VK_LAUNCH_APP1 = $B6;
- {$EXTERNALSYM VK_LAUNCH_APP1}
- VK_LAUNCH_APP2 = $B7;
- {$EXTERNALSYM VK_LAUNCH_APP2}
- {$ENDIF WIN98ME_UP}
- //
- // 0xB8 - 0xB9 : reserved
- //
- VK_OEM_1 = $BA; // ';:' for US
- {$EXTERNALSYM VK_OEM_1}
- VK_OEM_PLUS = $BB; // '+' any country
- {$EXTERNALSYM VK_OEM_PLUS}
- VK_OEM_COMMA = $BC; // ',' any country
- {$EXTERNALSYM VK_OEM_COMMA}
- VK_OEM_MINUS = $BD; // '-' any country
- {$EXTERNALSYM VK_OEM_MINUS}
- VK_OEM_PERIOD = $BE; // '.' any country
- {$EXTERNALSYM VK_OEM_PERIOD}
- VK_OEM_2 = $BF; // '/?' for US
- {$EXTERNALSYM VK_OEM_2}
- VK_OEM_3 = $C0; // '`~' for US
- {$EXTERNALSYM VK_OEM_3}
- //
- // 0xC1 - 0xD7 : reserved
- //
- //
- // 0xD8 - 0xDA : unassigned
- //
- VK_OEM_4 = $DB; // '[{' for US
- {$EXTERNALSYM VK_OEM_4}
- VK_OEM_5 = $DC; // '\|' for US
- {$EXTERNALSYM VK_OEM_5}
- VK_OEM_6 = $DD; // ']}' for US
- {$EXTERNALSYM VK_OEM_6}
- VK_OEM_7 = $DE; // ''"' for US
- {$EXTERNALSYM VK_OEM_7}
- VK_OEM_8 = $DF;
- {$EXTERNALSYM VK_OEM_8}
- //
- // 0xE0 : reserved
- //
- //
- // Various extended or enhanced keyboards
- //
- VK_OEM_AX = $E1; // 'AX' key on Japanese AX kbd
- {$EXTERNALSYM VK_OEM_AX}
- VK_OEM_102 = $E2; // "<>" or "\|" on RT 102-key kbd.
- {$EXTERNALSYM VK_OEM_102}
- VK_ICO_HELP = $E3; // Help key on ICO
- {$EXTERNALSYM VK_ICO_HELP}
- VK_ICO_00 = $E4; // 00 key on ICO
- {$EXTERNALSYM VK_ICO_00}
- VK_PROCESSKEY = $E5;
- {$EXTERNALSYM VK_PROCESSKEY}
- VK_ICO_CLEAR = $E6;
- {$EXTERNALSYM VK_ICO_CLEAR}
- {$IFDEF WIN98ME_UP}
- VK_PACKET = $E7;
- {$EXTERNALSYM VK_PACKET}
- {$ENDIF WIN98ME_UP}
- //
- // 0xE8 : unassigned
- //
- //
- // Nokia/Ericsson definitions
- //
- VK_OEM_RESET = $E9;
- {$EXTERNALSYM VK_OEM_RESET}
- VK_OEM_JUMP = $EA;
- {$EXTERNALSYM VK_OEM_JUMP}
- VK_OEM_PA1 = $EB;
- {$EXTERNALSYM VK_OEM_PA1}
- VK_OEM_PA2 = $EC;
- {$EXTERNALSYM VK_OEM_PA2}
- VK_OEM_PA3 = $ED;
- {$EXTERNALSYM VK_OEM_PA3}
- VK_OEM_WSCTRL = $EE;
- {$EXTERNALSYM VK_OEM_WSCTRL}
- VK_OEM_CUSEL = $EF;
- {$EXTERNALSYM VK_OEM_CUSEL}
- VK_OEM_ATTN = $F0;
- {$EXTERNALSYM VK_OEM_ATTN}
- VK_OEM_FINISH = $F1;
- {$EXTERNALSYM VK_OEM_FINISH}
- VK_OEM_COPY = $F2;
- {$EXTERNALSYM VK_OEM_COPY}
- VK_OEM_AUTO = $F3;
- {$EXTERNALSYM VK_OEM_AUTO}
- VK_OEM_ENLW = $F4;
- {$EXTERNALSYM VK_OEM_ENLW}
- VK_OEM_BACKTAB = $F5;
- {$EXTERNALSYM VK_OEM_BACKTAB}
- VK_ATTN = $F6;
- {$EXTERNALSYM VK_ATTN}
- VK_CRSEL = $F7;
- {$EXTERNALSYM VK_CRSEL}
- VK_EXSEL = $F8;
- {$EXTERNALSYM VK_EXSEL}
- VK_EREOF = $F9;
- {$EXTERNALSYM VK_EREOF}
- VK_PLAY = $FA;
- {$EXTERNALSYM VK_PLAY}
- VK_ZOOM = $FB;
- {$EXTERNALSYM VK_ZOOM}
- VK_NONAME = $FC;
- {$EXTERNALSYM VK_NONAME}
- VK_PA1 = $FD;
- {$EXTERNALSYM VK_PA1}
- VK_OEM_CLEAR = $FE;
- {$EXTERNALSYM VK_OEM_CLEAR}
- //
- // 0xFF : reserved
- //
- //
- // SetWindowsHook() codes
- //
- WH_MIN = DWORD(-1);
- {$EXTERNALSYM WH_MIN}
- WH_MSGFILTER = DWORD(-1);
- {$EXTERNALSYM WH_MSGFILTER}
- WH_JOURNALRECORD = 0;
- {$EXTERNALSYM WH_JOURNALRECORD}
- WH_JOURNALPLAYBACK = 1;
- {$EXTERNALSYM WH_JOURNALPLAYBACK}
- WH_KEYBOARD = 2;
- {$EXTERNALSYM WH_KEYBOARD}
- WH_GETMESSAGE = 3;
- {$EXTERNALSYM WH_GETMESSAGE}
- WH_CALLWNDPROC = 4;
- {$EXTERNALSYM WH_CALLWNDPROC}
- WH_CBT = 5;
- {$EXTERNALSYM WH_CBT}
- WH_SYSMSGFILTER = 6;
- {$EXTERNALSYM WH_SYSMSGFILTER}
- WH_MOUSE = 7;
- {$EXTERNALSYM WH_MOUSE}
- WH_HARDWARE = 8;
- {$EXTERNALSYM WH_HARDWARE}
- WH_DEBUG = 9;
- {$EXTERNALSYM WH_DEBUG}
- WH_SHELL = 10;
- {$EXTERNALSYM WH_SHELL}
- WH_FOREGROUNDIDLE = 11;
- {$EXTERNALSYM WH_FOREGROUNDIDLE}
- WH_CALLWNDPROCRET = 12;
- {$EXTERNALSYM WH_CALLWNDPROCRET}
- {$IFDEF WINNT4_UP}
- WH_KEYBOARD_LL = 13;
- {$EXTERNALSYM WH_KEYBOARD_LL}
- WH_MOUSE_LL = 14;
- {$EXTERNALSYM WH_MOUSE_LL}
- {$ENDIF WINNT4_UP}
- {$IFDEF WINNT4_UP}
- WH_MAX = 14;
- {$EXTERNALSYM WH_MAX}
- {$ELSE}
- WH_MAX = 12;
- {$EXTERNALSYM WH_MAX}
- {$ENDIF WINNT4_UP}
- WH_MINHOOK = WH_MIN;
- {$EXTERNALSYM WH_MINHOOK}
- WH_MAXHOOK = WH_MAX;
- {$EXTERNALSYM WH_MAXHOOK}
- //
- // Hook Codes
- //
- HC_ACTION = 0;
- {$EXTERNALSYM HC_ACTION}
- HC_GETNEXT = 1;
- {$EXTERNALSYM HC_GETNEXT}
- HC_SKIP = 2;
- {$EXTERNALSYM HC_SKIP}
- HC_NOREMOVE = 3;
- {$EXTERNALSYM HC_NOREMOVE}
- HC_NOREM = HC_NOREMOVE;
- {$EXTERNALSYM HC_NOREM}
- HC_SYSMODALON = 4;
- {$EXTERNALSYM HC_SYSMODALON}
- HC_SYSMODALOFF = 5;
- {$EXTERNALSYM HC_SYSMODALOFF}
- //
- // CBT Hook Codes
- //
- HCBT_MOVESIZE = 0;
- {$EXTERNALSYM HCBT_MOVESIZE}
- HCBT_MINMAX = 1;
- {$EXTERNALSYM HCBT_MINMAX}
- HCBT_QS = 2;
- {$EXTERNALSYM HCBT_QS}
- HCBT_CREATEWND = 3;
- {$EXTERNALSYM HCBT_CREATEWND}
- HCBT_DESTROYWND = 4;
- {$EXTERNALSYM HCBT_DESTROYWND}
- HCBT_ACTIVATE = 5;
- {$EXTERNALSYM HCBT_ACTIVATE}
- HCBT_CLICKSKIPPED = 6;
- {$EXTERNALSYM HCBT_CLICKSKIPPED}
- HCBT_KEYSKIPPED = 7;
- {$EXTERNALSYM HCBT_KEYSKIPPED}
- HCBT_SYSCOMMAND = 8;
- {$EXTERNALSYM HCBT_SYSCOMMAND}
- HCBT_SETFOCUS = 9;
- {$EXTERNALSYM HCBT_SETFOCUS}
- //
- // HCBT_ACTIVATE structure pointed to by lParam
- //
- type
- LPCBTACTIVATESTRUCT = ^CBTACTIVATESTRUCT;
- {$EXTERNALSYM LPCBTACTIVATESTRUCT}
- tagCBTACTIVATESTRUCT = record
- fMouse: BOOL;
- hWndActive: HWND;
- end;
- {$EXTERNALSYM tagCBTACTIVATESTRUCT}
- CBTACTIVATESTRUCT = tagCBTACTIVATESTRUCT;
- {$EXTERNALSYM CBTACTIVATESTRUCT}
- TCbtActivateStruct = CBTACTIVATESTRUCT;
- PCbtActivateStruct = LPCBTACTIVATESTRUCT;
- {$IFDEF WINXP_UP}
- //
- // WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE
- //
- tagWTSSESSION_NOTIFICATION = record
- cbSize: DWORD;
- dwSessionId: DWORD;
- end;
- {$EXTERNALSYM tagWTSSESSION_NOTIFICATION}
- WTSSESSION_NOTIFICATION = tagWTSSESSION_NOTIFICATION;
- {$EXTERNALSYM WTSSESSION_NOTIFICATION}
- PWTSSESSION_NOTIFICATION = ^WTSSESSION_NOTIFICATION;
- {$EXTERNALSYM PWTSSESSION_NOTIFICATION}
- TWtsSessionNotification = WTSSESSION_NOTIFICATION;
- PWtsSessionNotification = PWTSSESSION_NOTIFICATION;
- //
- // codes passed in WPARAM for WM_WTSSESSION_CHANGE
- //
- const
- WTS_CONSOLE_CONNECT = $1;
- {$EXTERNALSYM WTS_CONSOLE_CONNECT}
- WTS_CONSOLE_DISCONNECT = $2;
- {$EXTERNALSYM WTS_CONSOLE_DISCONNECT}
- WTS_REMOTE_CONNECT = $3;
- {$EXTERNALSYM WTS_REMOTE_CONNECT}
- WTS_REMOTE_DISCONNECT = $4;
- {$EXTERNALSYM WTS_REMOTE_DISCONNECT}
- WTS_SESSION_LOGON = $5;
- {$EXTERNALSYM WTS_SESSION_LOGON}
- WTS_SESSION_LOGOFF = $6;
- {$EXTERNALSYM WTS_SESSION_LOGOFF}
- WTS_SESSION_LOCK = $7;
- {$EXTERNALSYM WTS_SESSION_LOCK}
- WTS_SESSION_UNLOCK = $8;
- {$EXTERNALSYM WTS_SESSION_UNLOCK}
- WTS_SESSION_REMOTE_CONTROL = $9;
- {$EXTERNALSYM WTS_SESSION_REMOTE_CONTROL}
- {$ENDIF WINXP_UP}
- //
- // WH_MSGFILTER Filter Proc Codes
- //
- const
- MSGF_DIALOGBOX = 0;
- {$EXTERNALSYM MSGF_DIALOGBOX}
- MSGF_MESSAGEBOX = 1;
- {$EXTERNALSYM MSGF_MESSAGEBOX}
- MSGF_MENU = 2;
- {$EXTERNALSYM MSGF_MENU}
- MSGF_SCROLLBAR = 5;
- {$EXTERNALSYM MSGF_SCROLLBAR}
- MSGF_NEXTWINDOW = 6;
- {$EXTERNALSYM MSGF_NEXTWINDOW}
- MSGF_MAX = 8; // unused
- {$EXTERNALSYM MSGF_MAX}
- MSGF_USER = 4096;
- {$EXTERNALSYM MSGF_USER}
- //
- // Shell support
- //
- HSHELL_WINDOWCREATED = 1;
- {$EXTERNALSYM HSHELL_WINDOWCREATED}
- HSHELL_WINDOWDESTROYED = 2;
- {$EXTERNALSYM HSHELL_WINDOWDESTROYED}
- HSHELL_ACTIVATESHELLWINDOW = 3;
- {$EXTERNALSYM HSHELL_ACTIVATESHELLWINDOW}
- HSHELL_WINDOWACTIVATED = 4;
- {$EXTERNALSYM HSHELL_WINDOWACTIVATED}
- HSHELL_GETMINRECT = 5;
- {$EXTERNALSYM HSHELL_GETMINRECT}
- HSHELL_REDRAW = 6;
- {$EXTERNALSYM HSHELL_REDRAW}
- HSHELL_TASKMAN = 7;
- {$EXTERNALSYM HSHELL_TASKMAN}
- HSHELL_LANGUAGE = 8;
- {$EXTERNALSYM HSHELL_LANGUAGE}
- HSHELL_SYSMENU = 9;
- {$EXTERNALSYM HSHELL_SYSMENU}
- HSHELL_ENDTASK = 10;
- {$EXTERNALSYM HSHELL_ENDTASK}
- {$IFDEF WIN2000_UP}
- HSHELL_ACCESSIBILITYSTATE = 11;
- {$EXTERNALSYM HSHELL_ACCESSIBILITYSTATE}
- HSHELL_APPCOMMAND = 12;
- {$EXTERNALSYM HSHELL_APPCOMMAND}
- {$ENDIF WIN2000_UP}
- {$IFDEF WINXP_UP}
- HSHELL_WINDOWREPLACED = 13;
- {$EXTERNALSYM HSHELL_WINDOWREPLACED}
- {$ENDIF WINXP_UP}
- HSHELL_WINDOWREPLACING = 14;
- {$EXTERNALSYM HSHELL_WINDOWREPLACING}
- HSHELL_HIGHBIT = $8000;
- {$EXTERNALSYM HSHELL_HIGHBIT}
- HSHELL_FLASH = HSHELL_REDRAW or HSHELL_HIGHBIT;
- {$EXTERNALSYM HSHELL_FLASH}
- HSHELL_RUDEAPPACTIVATED = HSHELL_WINDOWACTIVATED or HSHELL_HIGHBIT;
- {$EXTERNALSYM HSHELL_RUDEAPPACTIVATED}
- {$IFDEF WIN2000_UP}
- // wparam for HSHELL_ACCESSIBILITYSTATE//
- ACCESS_STICKYKEYS = $0001;
- {$EXTERNALSYM ACCESS_STICKYKEYS}
- ACCESS_FILTERKEYS = $0002;
- {$EXTERNALSYM ACCESS_FILTERKEYS}
- ACCESS_MOUSEKEYS = $0003;
- {$EXTERNALSYM ACCESS_MOUSEKEYS}
- // cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND//
- APPCOMMAND_BROWSER_BACKWARD = 1;
- {$EXTERNALSYM APPCOMMAND_BROWSER_BACKWARD}
- APPCOMMAND_BROWSER_FORWARD = 2;
- {$EXTERNALSYM APPCOMMAND_BROWSER_FORWARD}
- APPCOMMAND_BROWSER_REFRESH = 3;
- {$EXTERNALSYM APPCOMMAND_BROWSER_REFRESH}
- APPCOMMAND_BROWSER_STOP = 4;
- {$EXTERNALSYM APPCOMMAND_BROWSER_STOP}
- APPCOMMAND_BROWSER_SEARCH = 5;
- {$EXTERNALSYM APPCOMMAND_BROWSER_SEARCH}
- APPCOMMAND_BROWSER_FAVORITES = 6;
- {$EXTERNALSYM APPCOMMAND_BROWSER_FAVORITES}
- APPCOMMAND_BROWSER_HOME = 7;
- {$EXTERNALSYM APPCOMMAND_BROWSER_HOME}
- APPCOMMAND_VOLUME_MUTE = 8;
- {$EXTERNALSYM APPCOMMAND_VOLUME_MUTE}
- APPCOMMAND_VOLUME_DOWN = 9;
- {$EXTERNALSYM APPCOMMAND_VOLUME_DOWN}
- APPCOMMAND_VOLUME_UP = 10;
- {$EXTERNALSYM APPCOMMAND_VOLUME_UP}
- APPCOMMAND_MEDIA_NEXTTRACK = 11;
- {$EXTERNALSYM APPCOMMAND_MEDIA_NEXTTRACK}
- APPCOMMAND_MEDIA_PREVIOUSTRACK = 12;
- {$EXTERNALSYM APPCOMMAND_MEDIA_PREVIOUSTRACK}
- APPCOMMAND_MEDIA_STOP = 13;
- {$EXTERNALSYM APPCOMMAND_MEDIA_STOP}
- APPCOMMAND_MEDIA_PLAY_PAUSE = 14;
- {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY_PAUSE}
- APPCOMMAND_LAUNCH_MAIL = 15;
- {$EXTERNALSYM APPCOMMAND_LAUNCH_MAIL}
- APPCOMMAND_LAUNCH_MEDIA_SELECT = 16;
- {$EXTERNALSYM APPCOMMAND_LAUNCH_MEDIA_SELECT}
- APPCOMMAND_LAUNCH_APP1 = 17;
- {$EXTERNALSYM APPCOMMAND_LAUNCH_APP1}
- APPCOMMAND_LAUNCH_APP2 = 18;
- {$EXTERNALSYM APPCOMMAND_LAUNCH_APP2}
- APPCOMMAND_BASS_DOWN = 19;
- {$EXTERNALSYM APPCOMMAND_BASS_DOWN}
- APPCOMMAND_BASS_BOOST = 20;
- {$EXTERNALSYM APPCOMMAND_BASS_BOOST}
- APPCOMMAND_BASS_UP = 21;
- {$EXTERNALSYM APPCOMMAND_BASS_UP}
- APPCOMMAND_TREBLE_DOWN = 22;
- {$EXTERNALSYM APPCOMMAND_TREBLE_DOWN}
- APPCOMMAND_TREBLE_UP = 23;
- {$EXTERNALSYM APPCOMMAND_TREBLE_UP}
- {$IFDEF WINXP_UP}
- APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24;
- {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_MUTE}
- APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25;
- {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_DOWN}
- APPCOMMAND_MICROPHONE_VOLUME_UP = 26;
- {$EXTERNALSYM APPCOMMAND_MICROPHONE_VOLUME_UP}
- APPCOMMAND_HELP = 27;
- {$EXTERNALSYM APPCOMMAND_HELP}
- APPCOMMAND_FIND = 28;
- {$EXTERNALSYM APPCOMMAND_FIND}
- APPCOMMAND_NEW = 29;
- {$EXTERNALSYM APPCOMMAND_NEW}
- APPCOMMAND_OPEN = 30;
- {$EXTERNALSYM APPCOMMAND_OPEN}
- APPCOMMAND_CLOSE = 31;
- {$EXTERNALSYM APPCOMMAND_CLOSE}
- APPCOMMAND_SAVE = 32;
- {$EXTERNALSYM APPCOMMAND_SAVE}
- APPCOMMAND_PRINT = 33;
- {$EXTERNALSYM APPCOMMAND_PRINT}
- APPCOMMAND_UNDO = 34;
- {$EXTERNALSYM APPCOMMAND_UNDO}
- APPCOMMAND_REDO = 35;
- {$EXTERNALSYM APPCOMMAND_REDO}
- APPCOMMAND_COPY = 36;
- {$EXTERNALSYM APPCOMMAND_COPY}
- APPCOMMAND_CUT = 37;
- {$EXTERNALSYM APPCOMMAND_CUT}
- APPCOMMAND_PASTE = 38;
- {$EXTERNALSYM APPCOMMAND_PASTE}
- APPCOMMAND_REPLY_TO_MAIL = 39;
- {$EXTERNALSYM APPCOMMAND_REPLY_TO_MAIL}
- APPCOMMAND_FORWARD_MAIL = 40;
- {$EXTERNALSYM APPCOMMAND_FORWARD_MAIL}
- APPCOMMAND_SEND_MAIL = 41;
- {$EXTERNALSYM APPCOMMAND_SEND_MAIL}
- APPCOMMAND_SPELL_CHECK = 42;
- {$EXTERNALSYM APPCOMMAND_SPELL_CHECK}
- APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43;
- {$EXTERNALSYM APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE}
- APPCOMMAND_MIC_ON_OFF_TOGGLE = 44;
- {$EXTERNALSYM APPCOMMAND_MIC_ON_OFF_TOGGLE}
- APPCOMMAND_CORRECTION_LIST = 45;
- {$EXTERNALSYM APPCOMMAND_CORRECTION_LIST}
- {$ENDIF WINXP_UP}
- APPCOMMAND_MEDIA_PLAY = 46;
- {$EXTERNALSYM APPCOMMAND_MEDIA_PLAY}
- APPCOMMAND_MEDIA_PAUSE = 47;
- {$EXTERNALSYM APPCOMMAND_MEDIA_PAUSE}
- APPCOMMAND_MEDIA_RECORD = 48;
- {$EXTERNALSYM APPCOMMAND_MEDIA_RECORD}
- APPCOMMAND_MEDIA_FAST_FORWARD = 49;
- {$EXTERNALSYM APPCOMMAND_MEDIA_FAST_FORWARD}
- APPCOMMAND_MEDIA_REWIND = 50;
- {$EXTERNALSYM APPCOMMAND_MEDIA_REWIND}
- APPCOMMAND_MEDIA_CHANNEL_UP = 51;
- {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_UP}
- APPCOMMAND_MEDIA_CHANNEL_DOWN = 52;
- {$EXTERNALSYM APPCOMMAND_MEDIA_CHANNEL_DOWN}
- FAPPCOMMAND_MOUSE = $8000;
- {$EXTERNALSYM FAPPCOMMAND_MOUSE}
- FAPPCOMMAND_KEY = 0;
- {$EXTERNALSYM FAPPCOMMAND_KEY}
- FAPPCOMMAND_OEM = $1000;
- {$EXTERNALSYM FAPPCOMMAND_OEM}
- FAPPCOMMAND_MASK = $F000;
- {$EXTERNALSYM FAPPCOMMAND_MASK}
- function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
- {$EXTERNALSYM GET_APPCOMMAND_LPARAM}
- function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
- {$EXTERNALSYM GET_DEVICE_LPARAM}
- function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
- {$EXTERNALSYM GET_MOUSEORKEY_LPARAM}
- function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
- {$EXTERNALSYM GET_FLAGS_LPARAM}
- function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
- {$EXTERNALSYM GET_KEYSTATE_LPARAM}
- {$ENDIF WIN2000_UP}
- type
- SHELLHOOKINFO = record
- hwnd: HWND;
- rc: RECT;
- end;
- {$EXTERNALSYM SHELLHOOKINFO}
- LPSHELLHOOKINFO = ^SHELLHOOKINFO;
- {$EXTERNALSYM LPSHELLHOOKINFO}
- TShellHookInfo = SHELLHOOKINFO;
- PShellHookInfo = LPSHELLHOOKINFO;
- //
- // Message Structure used in Journaling
- //
- type
- LPEVENTMSG = ^EVENTMSG;
- {$EXTERNALSYM LPEVENTMSG}
- tagEVENTMSG = record
- message_: UINT;
- paramL: UINT;
- paramH: UINT;
- time: DWORD;
- hwnd: HWND;
- end;
- {$EXTERNALSYM tagEVENTMSG}
- EVENTMSG = tagEVENTMSG;
- {$EXTERNALSYM EVENTMSG}
- LPEVENTMSGMSG = ^EVENTMSG;
- {$EXTERNALSYM LPEVENTMSGMSG}
- PEVENTMSGMSG = ^EVENTMSG;
- {$EXTERNALSYM PEVENTMSGMSG}
- NPEVENTMSG = ^EVENTMSG;
- {$EXTERNALSYM NPEVENTMSG}
- NPEVENTMSGMSG = ^EVENTMSG;
- {$EXTERNALSYM NPEVENTMSGMSG}
- TEventMsg = EVENTMSG;
- PEventMsg = LPEVENTMSG;
- //
- // Message structure used by WH_CALLWNDPROC
- //
- LPCWPSTRUCT = ^CWPSTRUCT;
- {$EXTERNALSYM LPCWPSTRUCT}
- tagCWPSTRUCT = record
- lParam: LPARAM;
- wParam: WPARAM;
- message: UINT;
- hwnd: HWND;
- end;
- {$EXTERNALSYM tagCWPSTRUCT}
- CWPSTRUCT = tagCWPSTRUCT;
- {$EXTERNALSYM CWPSTRUCT}
- NPCWPSTRUCT = ^CWPSTRUCT;
- {$EXTERNALSYM NPCWPSTRUCT}
- TCwpStruct = CWPSTRUCT;
- PCwpStruct = LPCWPSTRUCT;
- //
- // Message structure used by WH_CALLWNDPROCRET
- //
- LPCWPRETSTRUCT = ^CWPRETSTRUCT;
- {$EXTERNALSYM LPCWPRETSTRUCT}
- tagCWPRETSTRUCT = record
- lResult: LRESULT;
- lParam: LPARAM;
- wParam: WPARAM;
- message: UINT;
- hwnd: HWND;
- end;
- {$EXTERNALSYM tagCWPRETSTRUCT}
- CWPRETSTRUCT = tagCWPRETSTRUCT;
- {$EXTERNALSYM CWPRETSTRUCT}
- NPCWPRETSTRUCT = ^CWPRETSTRUCT;
- {$EXTERNALSYM NPCWPRETSTRUCT}
- TCwpRetStruct = CWPRETSTRUCT;
- PCwpRetStruct = LPCWPRETSTRUCT;
- //
- // Low level hook flags
- //
- const
- LLKHF_EXTENDED = KF_EXTENDED shr 8;
- {$EXTERNALSYM LLKHF_EXTENDED}
- LLKHF_INJECTED = $00000010;
- {$EXTERNALSYM LLKHF_INJECTED}
- LLKHF_ALTDOWN = KF_ALTDOWN shr 8;
- {$EXTERNALSYM LLKHF_ALTDOWN}
- LLKHF_UP = KF_UP shr 8;
- {$EXTERNALSYM LLKHF_UP}
- LLMHF_INJECTED = $00000001;
- {$EXTERNALSYM LLMHF_INJECTED}
- //
- // Structure used by WH_KEYBOARD_LL
- //
- type
- LPKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
- {$EXTERNALSYM LPKBDLLHOOKSTRUCT}
- tagKBDLLHOOKSTRUCT = record
- vkCode: DWORD;
- scanCode: DWORD;
- flags: DWORD;
- time: DWORD;
- dwExtraInfo: ULONG_PTR;
- end;
- {$EXTERNALSYM tagKBDLLHOOKSTRUCT}
- KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
- {$EXTERNALSYM KBDLLHOOKSTRUCT}
- TKbDllHookStruct = KBDLLHOOKSTRUCT;
- PKbDllHookStruct = LPKBDLLHOOKSTRUCT;
- //
- // Structure used by WH_MOUSE_LL
- //
- LPMSLLHOOKSTRUCT = ^MSLLHOOKSTRUCT;
- {$EXTERNALSYM LPMSLLHOOKSTRUCT}
- tagMSLLHOOKSTRUCT = record
- pt: POINT;
- mouseData: DWORD;
- flags: DWORD;
- time: DWORD;
- dwExtraInfo: ULONG_PTR;
- end;
- {$EXTERNALSYM tagMSLLHOOKSTRUCT}
- MSLLHOOKSTRUCT = tagMSLLHOOKSTRUCT;
- {$EXTERNALSYM MSLLHOOKSTRUCT}
- TMsllHookStruct = MSLLHOOKSTRUCT;
- PMsllHookStruct = LPMSLLHOOKSTRUCT;
- //
- // Structure used by WH_DEBUG
- //
- LPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
- {$EXTERNALSYM LPDEBUGHOOKINFO}
- tagDEBUGHOOKINFO = record
- idThread: DWORD;
- idThreadInstaller: DWORD;
- lParam: LPARAM;
- wParam: WPARAM;
- code: Integer;
- end;
- {$EXTERNALSYM tagDEBUGHOOKINFO}
- DEBUGHOOKINFO = tagDEBUGHOOKINFO;
- {$EXTERNALSYM DEBUGHOOKINFO}
- NPDEBUGHOOKINFO = ^DEBUGHOOKINFO;
- {$EXTERNALSYM NPDEBUGHOOKINFO}
- TDebugHookInfo = DEBUGHOOKINFO;
- PDebugHookInfo = LPDEBUGHOOKINFO;
- //
- // Structure used by WH_MOUSE
- //
- LPMOUSEHOOKSTRUCT = ^MOUSEHOOKSTRUCT;
- {$EXTERNALSYM LPMOUSEHOOKSTRUCT}
- tagMOUSEHOOKSTRUCT = record
- pt: POINT;
- hwnd: HWND;
- wHitTestCode: UINT;
- dwExtraInfo: ULONG_PTR;
- end;
- {$EXTERNALSYM tagMOUSEHOOKSTRUCT}
- MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
- {$EXTERNALSYM MOUSEHOOKSTRUCT}
- TMouseHookStruct = MOUSEHOOKSTRUCT;
- PMouseHookStruct = LPMOUSEHOOKSTRUCT;
- LPMOUSEHOOKSTRUCTEX = ^MOUSEHOOKSTRUCTEX;
- {$EXTERNALSYM LPMOUSEHOOKSTRUCTEX}
- tagMOUSEHOOKSTRUCTEX = record
- mhs: MOUSEHOOKSTRUCT;
- mouseData: DWORD;
- end;
- {$EXTERNALSYM tagMOUSEHOOKSTRUCTEX}
- MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
- {$EXTERNALSYM MOUSEHOOKSTRUCTEX}
- TMouseHookStructEx = MOUSEHOOKSTRUCTEX;
- PMouseHookStructEx = LPMOUSEHOOKSTRUCTEX;
- //
- // Structure used by WH_HARDWARE
- //
- LPHARDWAREHOOKSTRUCT = ^HARDWAREHOOKSTRUCT;
- {$EXTERNALSYM LPHARDWAREHOOKSTRUCT}
- tagHARDWAREHOOKSTRUCT = record
- hwnd: HWND;
- message: UINT;
- wParam: WPARAM;
- lParam: LPARAM;
- end;
- {$EXTERNALSYM tagHARDWAREHOOKSTRUCT}
- HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
- {$EXTERNALSYM HARDWAREHOOKSTRUCT}
- THardwareHookStruct = HARDWAREHOOKSTRUCT;
- PHardwareHookStruct = LPHARDWAREHOOKSTRUCT;
- //
- // Keyboard Layout API
- //
- const
- HKL_PREV = 0;
- {$EXTERNALSYM HKL_PREV}
- HKL_NEXT = 1;
- {$EXTERNALSYM HKL_NEXT}
- KLF_ACTIVATE = $00000001;
- {$EXTERNALSYM KLF_ACTIVATE}
- KLF_SUBSTITUTE_OK = $00000002;
- {$EXTERNALSYM KLF_SUBSTITUTE_OK}
- KLF_REORDER = $00000008;
- {$EXTERNALSYM KLF_REORDER}
- KLF_REPLACELANG = $00000010;
- {$EXTERNALSYM KLF_REPLACELANG}
- KLF_NOTELLSHELL = $00000080;
- {$EXTERNALSYM KLF_NOTELLSHELL}
- KLF_SETFORPROCESS = $00000100;
- {$EXTERNALSYM KLF_SETFORPROCESS}
- KLF_SHIFTLOCK = $00010000;
- {$EXTERNALSYM KLF_SHIFTLOCK}
- KLF_RESET = $40000000;
- {$EXTERNALSYM KLF_RESET}
- //
- // Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
- //
- INPUTLANGCHANGE_SYSCHARSET = $0001;
- {$EXTERNALSYM INPUTLANGCHANGE_SYSCHARSET}
- INPUTLANGCHANGE_FORWARD = $0002;
- {$EXTERNALSYM INPUTLANGCHANGE_FORWARD}
- INPUTLANGCHANGE_BACKWARD = $0004;
- {$EXTERNALSYM INPUTLANGCHANGE_BACKWARD}
- //
- // Size of KeyboardLayoutName (number of characters), including nul terminator
- //
- KL_NAMELENGTH = 9;
- {$EXTERNALSYM KL_NAMELENGTH}
- function LoadKeyboardLayoutA(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
- {$EXTERNALSYM LoadKeyboardLayoutA}
- function LoadKeyboardLayoutW(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
- {$EXTERNALSYM LoadKeyboardLayoutW}
- function LoadKeyboardLayout(pwszKLID: LPCTSTR; Flags: UINT): HKL; stdcall;
- {$EXTERNALSYM LoadKeyboardLayout}
- function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): HKL; stdcall;
- {$EXTERNALSYM ActivateKeyboardLayout}
- function ToUnicodeEx(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE;
- pwszBuff: LPWSTR; cchBuff: Integer; wFlags: UINT; dwhkl: HKL): Integer; stdcall;
- {$EXTERNALSYM ToUnicodeEx}
- function UnloadKeyboardLayout(hkl: HKL): BOOL; stdcall;
- {$EXTERNALSYM UnloadKeyboardLayout}
- function GetKeyboardLayoutNameA(pwszKLID: LPSTR): BOOL; stdcall;
- {$EXTERNALSYM GetKeyboardLayoutNameA}
- function GetKeyboardLayoutNameW(pwszKLID: LPWSTR): BOOL; stdcall;
- {$EXTERNALSYM GetKeyboardLayoutNameW}
- function GetKeyboardLayoutName(pwszKLID: LPTSTR): BOOL; stdcall;
- {$EXTERNALSYM GetKeyboardLayoutName}
- function GetKeyboardLayoutList(nBuff: Integer; lpList: PHKL): Integer; stdcall;
- {$EXTERNALSYM GetKeyboardLayoutList}
- function GetKeyboardLayout(idThread: DWORD): HKL; stdcall;
- {$EXTERNALSYM GetKeyboardLayout}
- type
- LPMOUSEMOVEPOINT = ^MOUSEMOVEPOINT;
- {$EXTERNALSYM LPMOUSEMOVEPOINT}
- tagMOUSEMOVEPOINT = record
- x: Integer;
- y: Integer;
- time: DWORD;
- dwExtraInfo: ULONG_PTR;
- end;
- {$EXTERNALSYM tagMOUSEMOVEPOINT}
- MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
- {$EXTERNALSYM MOUSEMOVEPOINT}
- TMouseMovePoint = MOUSEMOVEPOINT;
- PMouseMovePoint = LPMOUSEMOVEPOINT;
- //
- // Values for resolution parameter of GetMouseMovePointsEx
- //
- const
- GMMP_USE_DISPLAY_POINTS = 1;
- {$EXTERNALSYM GMMP_USE_DISPLAY_POINTS}
- GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
- {$EXTERNALSYM GMMP_USE_HIGH_RESOLUTION_POINTS}
- function GetMouseMovePointsEx(cbSize: UINT; lppt, lpptBuf: LPMOUSEMOVEPOINT;
- nBufPoints: Integer; resolution: DWORD): Integer; stdcall;
- {$EXTERNALSYM GetMouseMovePointsEx}
- //
- // Desktop-specific access flags
- //
- const
- DESKTOP_READOBJECTS = $0001;
- {$EXTERNALSYM DESKTOP_READOBJECTS}
- DESKTOP_CREATEWINDOW = $0002;
- {$EXTERNALSYM DESKTOP_CREATEWINDOW}
- DESKTOP_CREATEMENU = $0004;
- {$EXTERNALSYM DESKTOP_CREATEMENU}
- DESKTOP_HOOKCONTROL = $0008;
- {$EXTERNALSYM DESKTOP_HOOKCONTROL}
- DESKTOP_JOURNALRECORD = $0010;
- {$EXTERNALSYM DESKTOP_JOURNALRECORD}
- DESKTOP_JOURNALPLAYBACK = $0020;
- {$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
- DESKTOP_ENUMERATE = $0040;
- {$EXTERNALSYM DESKTOP_ENUMERATE}
- DESKTOP_WRITEOBJECTS = $0080;
- {$EXTERNALSYM DESKTOP_WRITEOBJECTS}
- DESKTOP_SWITCHDESKTOP = $0100;
- {$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
- //
- // Desktop-specific control flags
- //
- DF_ALLOWOTHERACCOUNTHOOK = $0001;
- {$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
- function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
- dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
- {$EXTERNALSYM CreateDesktopA}
- function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
- dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
- {$EXTERNALSYM CreateDesktopW}
- function CreateDesktop(lpszDesktop, lpszDevice: LPCTSTR; pDevmode: LPDEVMODE;
- dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
- {$EXTERNALSYM CreateDesktop}
- function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
- {$EXTERNALSYM OpenDesktopA}
- function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
- {$EXTERNALSYM OpenDesktopW}
- function OpenDesktop(lpszDesktop: LPCTSTR; dwFlags: DWORD; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
- {$EXTERNALSYM OpenDesktop}
- function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
- {$EXTERNALSYM OpenInputDesktop}
- function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
- lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumDesktopsA}
- function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
- lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumDesktopsW}
- function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROC;
- lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumDesktops}
- function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumDesktopWindows}
- function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
- {$EXTERNALSYM SwitchDesktop}
- function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
- {$EXTERNALSYM SetThreadDesktop}
- function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
- {$EXTERNALSYM CloseDesktop}
- function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
- {$EXTERNALSYM GetThreadDesktop}
- //
- // Windowstation-specific access flags
- //
- const
- WINSTA_ENUMDESKTOPS = $0001;
- {$EXTERNALSYM WINSTA_ENUMDESKTOPS}
- WINSTA_READATTRIBUTES = $0002;
- {$EXTERNALSYM WINSTA_READATTRIBUTES}
- WINSTA_ACCESSCLIPBOARD = $0004;
- {$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
- WINSTA_CREATEDESKTOP = $0008;
- {$EXTERNALSYM WINSTA_CREATEDESKTOP}
- WINSTA_WRITEATTRIBUTES = $0010;
- {$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
- WINSTA_ACCESSGLOBALATOMS = $0020;
- {$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
- WINSTA_EXITWINDOWS = $0040;
- {$EXTERNALSYM WINSTA_EXITWINDOWS}
- WINSTA_ENUMERATE = $0100;
- {$EXTERNALSYM WINSTA_ENUMERATE}
- WINSTA_READSCREEN = $0200;
- {$EXTERNALSYM WINSTA_READSCREEN}
- WINSTA_ALL_ACCESS = (WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or
- WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or
- WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN);
- {$EXTERNALSYM WINSTA_ALL_ACCESS}
- //
- // Windowstation creation flags.
- //
- CWF_CREATE_ONLY = $0001;
- {$EXTERNALSYM CWF_CREATE_ONLY}
- //
- // Windowstation-specific attribute flags
- //
- WSF_VISIBLE = $0001;
- {$EXTERNALSYM WSF_VISIBLE}
- function CreateWindowStationA(lpwinsta: LPCSTR; dwFlags: DWORD;
- dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
- {$EXTERNALSYM CreateWindowStationA}
- function CreateWindowStationW(lpwinsta: LPCWSTR; dwFlags: DWORD;
- dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
- {$EXTERNALSYM CreateWindowStationW}
- function CreateWindowStation(lpwinsta: LPCTSTR; dwFlags: DWORD;
- dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
- {$EXTERNALSYM CreateWindowStation}
- function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
- {$EXTERNALSYM OpenWindowStationA}
- function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
- {$EXTERNALSYM OpenWindowStationW}
- function OpenWindowStation(lpszWinSta: LPCTSTR; fInherit: BOOL;
- dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
- {$EXTERNALSYM OpenWindowStation}
- function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumWindowStationsA}
- function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumWindowStationsW}
- function EnumWindowStations(lpEnumFunc: WINSTAENUMPROC; lParam: LPARAM): BOOL; stdcall;
- {$EXTERNALSYM EnumWindowStations}
- function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
- {$EXTERNALSYM CloseWindowStation}
- function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
- {$EXTERNALSYM SetProcessWindowStation}
- function GetProcessWindowStation: HWINSTA; stdcall;
- {$EXTERNALSYM GetProcessWindowStation}
- function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
- pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
- {$EXTERNALSYM SetUserObjectSecurity}
- function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
- pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetUserObjectSecurity}
- const
- UOI_FLAGS = 1;
- {$EXTERNALSYM UOI_FLAGS}
- UOI_NAME = 2;
- {$EXTERNALSYM UOI_NAME}
- UOI_TYPE = 3;
- {$EXTERNALSYM UOI_TYPE}
- UOI_USER_SID = 4;
- {$EXTERNALSYM UOI_USER_SID}
- type
- PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
- tagUSEROBJECTFLAGS = record
- fInherit: BOOL;
- fReserved: BOOL;
- dwFlags: DWORD;
- end;
- {$EXTERNALSYM tagUSEROBJECTFLAGS}
- USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
- {$EXTERNALSYM USEROBJECTFLAGS}
- TUserObjectFlags = USEROBJECTFLAGS;
- function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
- nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetUserObjectInformationA}
- function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
- nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetUserObjectInformationW}
- function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
- nLength: DWORD; var lpnLengthN…