mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-25 15:27:45 +00:00
21921 lines
560 KiB
ObjectPascal
21921 lines
560 KiB
ObjectPascal
{******************************************************************************}
|
|
{ }
|
|
{ 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 ..\Includes\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 = PAnsiChar;
|
|
{$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/AnsiChar 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 lpnLengthNeeded: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM GetUserObjectInformation}
|
|
|
|
function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
|
|
nLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetUserObjectInformationA}
|
|
function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
|
|
nLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetUserObjectInformationW}
|
|
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
|
|
nLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetUserObjectInformation}
|
|
|
|
type
|
|
LPWNDCLASSEXA = ^WNDCLASSEXA;
|
|
{$EXTERNALSYM LPWNDCLASSEXA}
|
|
tagWNDCLASSEXA = record
|
|
cbSize: UINT;
|
|
// Win 3.x
|
|
style: UINT;
|
|
lpfnWndProc: WNDPROC;
|
|
cbClsExtra: Integer;
|
|
cbWndExtra: Integer;
|
|
hInstance: HINST;
|
|
hIcon: HICON;
|
|
hCursor: HCURSOR;
|
|
hbrBackground: HBRUSH;
|
|
lpszMenuName: LPCSTR;
|
|
lpszClassName: LPCSTR;
|
|
// Win 4.0
|
|
hIconSm: HICON;
|
|
end;
|
|
{$EXTERNALSYM tagWNDCLASSEXA}
|
|
WNDCLASSEXA = tagWNDCLASSEXA;
|
|
{$EXTERNALSYM WNDCLASSEXA}
|
|
NPWNDCLASSEXA = ^WNDCLASSEXA;
|
|
{$EXTERNALSYM NPWNDCLASSEXA}
|
|
TWndClassExA = WNDCLASSEXA;
|
|
PWndClassExA = LPWNDCLASSEXA;
|
|
|
|
LPWNDCLASSEXW = ^WNDCLASSEXW;
|
|
{$EXTERNALSYM LPWNDCLASSEXW}
|
|
tagWNDCLASSEXW = record
|
|
cbSize: UINT;
|
|
// Win 3.x
|
|
style: UINT;
|
|
lpfnWndProc: WNDPROC;
|
|
cbClsExtra: Integer;
|
|
cbWndExtra: Integer;
|
|
hInstance: HINST;
|
|
hIcon: HICON;
|
|
hCursor: HCURSOR;
|
|
hbrBackground: HBRUSH;
|
|
lpszMenuName: LPCWSTR;
|
|
lpszClassName: LPCWSTR;
|
|
// Win 4.0
|
|
hIconSm: HICON;
|
|
end;
|
|
{$EXTERNALSYM tagWNDCLASSEXW}
|
|
WNDCLASSEXW = tagWNDCLASSEXW;
|
|
{$EXTERNALSYM WNDCLASSEXW}
|
|
NPWNDCLASSEXW = ^WNDCLASSEXW;
|
|
{$EXTERNALSYM NPWNDCLASSEXW}
|
|
TWndClassExW = WNDCLASSEXW;
|
|
PWndClassExW = LPWNDCLASSEXW;
|
|
|
|
{$IFDEF UNICODE}
|
|
WNDCLASSEX = WNDCLASSEXW;
|
|
{$EXTERNALSYM WNDCLASSEX}
|
|
NPWNDCLASSEX = NPWNDCLASSEXW;
|
|
{$EXTERNALSYM NPWNDCLASSEX}
|
|
LPWNDCLASSEX = LPWNDCLASSEXW;
|
|
{$EXTERNALSYM LPWNDCLASSEX}
|
|
TWndClassEx = TWndClassExW;
|
|
PWndClassEx = PWndClassExW;
|
|
{$ELSE}
|
|
WNDCLASSEX = WNDCLASSEXA;
|
|
{$EXTERNALSYM WNDCLASSEX}
|
|
NPWNDCLASSEX = NPWNDCLASSEXA;
|
|
{$EXTERNALSYM NPWNDCLASSEX}
|
|
LPWNDCLASSEX = LPWNDCLASSEXA;
|
|
{$EXTERNALSYM LPWNDCLASSEX}
|
|
TWndClassEx = TWndClassExA;
|
|
PWndClassEx = PWndClassExA;
|
|
{$ENDIF UNICODE}
|
|
|
|
LPWNDCLASSA = ^WNDCLASSA;
|
|
{$EXTERNALSYM LPWNDCLASSA}
|
|
tagWNDCLASSA = record
|
|
style: UINT;
|
|
lpfnWndProc: WNDPROC;
|
|
cbClsExtra: Integer;
|
|
cbWndExtra: Integer;
|
|
hInstance: HINST;
|
|
hIcon: HICON;
|
|
hCursor: HCURSOR;
|
|
hbrBackground: HBRUSH;
|
|
lpszMenuName: LPCSTR;
|
|
lpszClassName: LPCSTR;
|
|
end;
|
|
{$EXTERNALSYM tagWNDCLASSA}
|
|
WNDCLASSA = tagWNDCLASSA;
|
|
{$EXTERNALSYM WNDCLASSA}
|
|
NPWNDCLASSA = ^WNDCLASSA;
|
|
{$EXTERNALSYM NPWNDCLASSA}
|
|
TWndClassA = WNDCLASSA;
|
|
PWndClassA = LPWNDCLASSA;
|
|
|
|
LPWNDCLASSW = ^WNDCLASSW;
|
|
{$EXTERNALSYM LPWNDCLASSW}
|
|
tagWNDCLASSW = record
|
|
style: UINT;
|
|
lpfnWndProc: WNDPROC;
|
|
cbClsExtra: Integer;
|
|
cbWndExtra: Integer;
|
|
hInstance: HINST;
|
|
hIcon: HICON;
|
|
hCursor: HCURSOR;
|
|
hbrBackground: HBRUSH;
|
|
lpszMenuName: LPCWSTR;
|
|
lpszClassName: LPCWSTR;
|
|
end;
|
|
{$EXTERNALSYM tagWNDCLASSW}
|
|
WNDCLASSW = tagWNDCLASSW;
|
|
{$EXTERNALSYM WNDCLASSW}
|
|
NPWNDCLASSW = ^WNDCLASSW;
|
|
{$EXTERNALSYM NPWNDCLASSW}
|
|
TWndClassW = WNDCLASSW;
|
|
PWndClassW = LPWNDCLASSW;
|
|
|
|
{$IFDEF UNICODE}
|
|
WNDCLASS = WNDCLASSW;
|
|
{$EXTERNALSYM WNDCLASS}
|
|
NPWNDCLASS = NPWNDCLASSW;
|
|
{$EXTERNALSYM NPWNDCLASS}
|
|
LPWNDCLASS = LPWNDCLASSW;
|
|
{$EXTERNALSYM LPWNDCLASS}
|
|
TWndClass = TWndClassW;
|
|
PWndClass = PWndClassW;
|
|
{$ELSE}
|
|
WNDCLASS = WNDCLASSA;
|
|
{$EXTERNALSYM WNDCLASS}
|
|
NPWNDCLASS = NPWNDCLASSA;
|
|
{$EXTERNALSYM NPWNDCLASS}
|
|
LPWNDCLASS = LPWNDCLASSA;
|
|
{$EXTERNALSYM LPWNDCLASS}
|
|
TWndClass = TWndClassA;
|
|
PWndClass = PWndClassA;
|
|
{$ENDIF UNICODE}
|
|
|
|
function IsHungAppWindow(hwnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsHungAppWindow}
|
|
|
|
procedure DisableProcessWindowsGhosting; stdcall;
|
|
{$EXTERNALSYM DisableProcessWindowsGhosting}
|
|
|
|
//
|
|
// Message structure
|
|
//
|
|
|
|
type
|
|
LPMSG = ^MSG;
|
|
{$EXTERNALSYM LPMSG}
|
|
tagMSG = record
|
|
hwnd: HWND;
|
|
message: UINT;
|
|
wParam: WPARAM;
|
|
lParam: LPARAM;
|
|
time: DWORD;
|
|
pt: POINT;
|
|
end;
|
|
{$EXTERNALSYM tagMSG}
|
|
MSG = tagMSG;
|
|
{$EXTERNALSYM MSG}
|
|
NPMSG = ^MSG;
|
|
{$EXTERNALSYM NPMSG}
|
|
TMsg = MSG;
|
|
PMsg = LPMSG;
|
|
|
|
function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
|
|
{$EXTERNALSYM MAKEWPARAM}
|
|
|
|
function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
|
|
{$EXTERNALSYM MAKELPARAM}
|
|
|
|
function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
|
|
{$EXTERNALSYM MAKELRESULT}
|
|
|
|
//
|
|
// Window field offsets for GetWindowLong()
|
|
//
|
|
|
|
const
|
|
GWL_WNDPROC = -4;
|
|
{$EXTERNALSYM GWL_WNDPROC}
|
|
GWL_HINSTANCE = -6;
|
|
{$EXTERNALSYM GWL_HINSTANCE}
|
|
GWL_HWNDPARENT = -8;
|
|
{$EXTERNALSYM GWL_HWNDPARENT}
|
|
GWL_STYLE = -16;
|
|
{$EXTERNALSYM GWL_STYLE}
|
|
GWL_EXSTYLE = -20;
|
|
{$EXTERNALSYM GWL_EXSTYLE}
|
|
GWL_USERDATA = -21;
|
|
{$EXTERNALSYM GWL_USERDATA}
|
|
GWL_ID = -12;
|
|
{$EXTERNALSYM GWL_ID}
|
|
|
|
GWLP_WNDPROC = -4;
|
|
{$EXTERNALSYM GWLP_WNDPROC}
|
|
GWLP_HINSTANCE = -6;
|
|
{$EXTERNALSYM GWLP_HINSTANCE}
|
|
GWLP_HWNDPARENT = -8;
|
|
{$EXTERNALSYM GWLP_HWNDPARENT}
|
|
GWLP_USERDATA = -21;
|
|
{$EXTERNALSYM GWLP_USERDATA}
|
|
GWLP_ID = -12;
|
|
{$EXTERNALSYM GWLP_ID}
|
|
|
|
//
|
|
// Class field offsets for GetClassLong()
|
|
//
|
|
|
|
GCL_MENUNAME = DWORD(-8);
|
|
{$EXTERNALSYM GCL_MENUNAME}
|
|
GCL_HBRBACKGROUND = DWORD(-10);
|
|
{$EXTERNALSYM GCL_HBRBACKGROUND}
|
|
GCL_HCURSOR = DWORD(-12);
|
|
{$EXTERNALSYM GCL_HCURSOR}
|
|
GCL_HICON = DWORD(-14);
|
|
{$EXTERNALSYM GCL_HICON}
|
|
GCL_HMODULE = DWORD(-16);
|
|
{$EXTERNALSYM GCL_HMODULE}
|
|
GCL_CBWNDEXTRA = DWORD(-18);
|
|
{$EXTERNALSYM GCL_CBWNDEXTRA}
|
|
GCL_CBCLSEXTRA = DWORD(-20);
|
|
{$EXTERNALSYM GCL_CBCLSEXTRA}
|
|
GCL_WNDPROC = DWORD(-24);
|
|
{$EXTERNALSYM GCL_WNDPROC}
|
|
GCL_STYLE = DWORD(-26);
|
|
{$EXTERNALSYM GCL_STYLE}
|
|
GCW_ATOM = DWORD(-32);
|
|
{$EXTERNALSYM GCW_ATOM}
|
|
|
|
GCL_HICONSM = DWORD(-34);
|
|
{$EXTERNALSYM GCL_HICONSM}
|
|
|
|
GCLP_MENUNAME = DWORD(-8);
|
|
{$EXTERNALSYM GCLP_MENUNAME}
|
|
GCLP_HBRBACKGROUND = DWORD(-10);
|
|
{$EXTERNALSYM GCLP_HBRBACKGROUND}
|
|
GCLP_HCURSOR = DWORD(-12);
|
|
{$EXTERNALSYM GCLP_HCURSOR}
|
|
GCLP_HICON = DWORD(-14);
|
|
{$EXTERNALSYM GCLP_HICON}
|
|
GCLP_HMODULE = DWORD(-16);
|
|
{$EXTERNALSYM GCLP_HMODULE}
|
|
GCLP_WNDPROC = DWORD(-24);
|
|
{$EXTERNALSYM GCLP_WNDPROC}
|
|
GCLP_HICONSM = DWORD(-34);
|
|
{$EXTERNALSYM GCLP_HICONSM}
|
|
|
|
//
|
|
// Window Messages
|
|
//
|
|
|
|
WM_NULL = $0000;
|
|
{$EXTERNALSYM WM_NULL}
|
|
WM_CREATE = $0001;
|
|
{$EXTERNALSYM WM_CREATE}
|
|
WM_DESTROY = $0002;
|
|
{$EXTERNALSYM WM_DESTROY}
|
|
WM_MOVE = $0003;
|
|
{$EXTERNALSYM WM_MOVE}
|
|
WM_SIZE = $0005;
|
|
{$EXTERNALSYM WM_SIZE}
|
|
|
|
WM_ACTIVATE = $0006;
|
|
{$EXTERNALSYM WM_ACTIVATE}
|
|
|
|
//
|
|
// WM_ACTIVATE state values
|
|
//
|
|
|
|
WA_INACTIVE = 0;
|
|
{$EXTERNALSYM WA_INACTIVE}
|
|
WA_ACTIVE = 1;
|
|
{$EXTERNALSYM WA_ACTIVE}
|
|
WA_CLICKACTIVE = 2;
|
|
{$EXTERNALSYM WA_CLICKACTIVE}
|
|
|
|
WM_SETFOCUS = $0007;
|
|
{$EXTERNALSYM WM_SETFOCUS}
|
|
WM_KILLFOCUS = $0008;
|
|
{$EXTERNALSYM WM_KILLFOCUS}
|
|
WM_ENABLE = $000A;
|
|
{$EXTERNALSYM WM_ENABLE}
|
|
WM_SETREDRAW = $000B;
|
|
{$EXTERNALSYM WM_SETREDRAW}
|
|
WM_SETTEXT = $000C;
|
|
{$EXTERNALSYM WM_SETTEXT}
|
|
WM_GETTEXT = $000D;
|
|
{$EXTERNALSYM WM_GETTEXT}
|
|
WM_GETTEXTLENGTH = $000E;
|
|
{$EXTERNALSYM WM_GETTEXTLENGTH}
|
|
WM_PAINT = $000F;
|
|
{$EXTERNALSYM WM_PAINT}
|
|
WM_CLOSE = $0010;
|
|
{$EXTERNALSYM WM_CLOSE}
|
|
WM_QUERYENDSESSION = $0011;
|
|
{$EXTERNALSYM WM_QUERYENDSESSION}
|
|
WM_QUERYOPEN = $0013;
|
|
{$EXTERNALSYM WM_QUERYOPEN}
|
|
WM_ENDSESSION = $0016;
|
|
{$EXTERNALSYM WM_ENDSESSION}
|
|
WM_QUIT = $0012;
|
|
{$EXTERNALSYM WM_QUIT}
|
|
WM_ERASEBKGND = $0014;
|
|
{$EXTERNALSYM WM_ERASEBKGND}
|
|
WM_SYSCOLORCHANGE = $0015;
|
|
{$EXTERNALSYM WM_SYSCOLORCHANGE}
|
|
WM_SHOWWINDOW = $0018;
|
|
{$EXTERNALSYM WM_SHOWWINDOW}
|
|
WM_WININICHANGE = $001A;
|
|
{$EXTERNALSYM WM_WININICHANGE}
|
|
WM_SETTINGCHANGE = WM_WININICHANGE;
|
|
{$EXTERNALSYM WM_SETTINGCHANGE}
|
|
|
|
WM_DEVMODECHANGE = $001B;
|
|
{$EXTERNALSYM WM_DEVMODECHANGE}
|
|
WM_ACTIVATEAPP = $001C;
|
|
{$EXTERNALSYM WM_ACTIVATEAPP}
|
|
WM_FONTCHANGE = $001D;
|
|
{$EXTERNALSYM WM_FONTCHANGE}
|
|
WM_TIMECHANGE = $001E;
|
|
{$EXTERNALSYM WM_TIMECHANGE}
|
|
WM_CANCELMODE = $001F;
|
|
{$EXTERNALSYM WM_CANCELMODE}
|
|
WM_SETCURSOR = $0020;
|
|
{$EXTERNALSYM WM_SETCURSOR}
|
|
WM_MOUSEACTIVATE = $0021;
|
|
{$EXTERNALSYM WM_MOUSEACTIVATE}
|
|
WM_CHILDACTIVATE = $0022;
|
|
{$EXTERNALSYM WM_CHILDACTIVATE}
|
|
WM_QUEUESYNC = $0023;
|
|
{$EXTERNALSYM WM_QUEUESYNC}
|
|
|
|
WM_GETMINMAXINFO = $0024;
|
|
{$EXTERNALSYM WM_GETMINMAXINFO}
|
|
|
|
//
|
|
// Struct pointed to by WM_GETMINMAXINFO lParam
|
|
//
|
|
|
|
type
|
|
LPMINMAXINFO = ^MINMAXINFO;
|
|
{$EXTERNALSYM LPMINMAXINFO}
|
|
tagMINMAXINFO = record
|
|
ptReserved: POINT;
|
|
ptMaxSize: POINT;
|
|
ptMaxPosition: POINT;
|
|
ptMinTrackSize: POINT;
|
|
ptMaxTrackSize: POINT;
|
|
end;
|
|
{$EXTERNALSYM tagMINMAXINFO}
|
|
MINMAXINFO = tagMINMAXINFO;
|
|
{$EXTERNALSYM MINMAXINFO}
|
|
TMinMaxInfo = MINMAXINFO;
|
|
PMinMaxInfo = LPMINMAXINFO;
|
|
|
|
const
|
|
WM_PAINTICON = $0026;
|
|
{$EXTERNALSYM WM_PAINTICON}
|
|
WM_ICONERASEBKGND = $0027;
|
|
{$EXTERNALSYM WM_ICONERASEBKGND}
|
|
WM_NEXTDLGCTL = $0028;
|
|
{$EXTERNALSYM WM_NEXTDLGCTL}
|
|
WM_SPOOLERSTATUS = $002A;
|
|
{$EXTERNALSYM WM_SPOOLERSTATUS}
|
|
WM_DRAWITEM = $002B;
|
|
{$EXTERNALSYM WM_DRAWITEM}
|
|
WM_MEASUREITEM = $002C;
|
|
{$EXTERNALSYM WM_MEASUREITEM}
|
|
WM_DELETEITEM = $002D;
|
|
{$EXTERNALSYM WM_DELETEITEM}
|
|
WM_VKEYTOITEM = $002E;
|
|
{$EXTERNALSYM WM_VKEYTOITEM}
|
|
WM_CHARTOITEM = $002F;
|
|
{$EXTERNALSYM WM_CHARTOITEM}
|
|
WM_SETFONT = $0030;
|
|
{$EXTERNALSYM WM_SETFONT}
|
|
WM_GETFONT = $0031;
|
|
{$EXTERNALSYM WM_GETFONT}
|
|
WM_SETHOTKEY = $0032;
|
|
{$EXTERNALSYM WM_SETHOTKEY}
|
|
WM_GETHOTKEY = $0033;
|
|
{$EXTERNALSYM WM_GETHOTKEY}
|
|
WM_QUERYDRAGICON = $0037;
|
|
{$EXTERNALSYM WM_QUERYDRAGICON}
|
|
WM_COMPAREITEM = $0039;
|
|
{$EXTERNALSYM WM_COMPAREITEM}
|
|
WM_GETOBJECT = $003D;
|
|
{$EXTERNALSYM WM_GETOBJECT}
|
|
WM_COMPACTING = $0041;
|
|
{$EXTERNALSYM WM_COMPACTING}
|
|
WM_COMMNOTIFY = $0044; // no longer suported
|
|
{$EXTERNALSYM WM_COMMNOTIFY}
|
|
WM_WINDOWPOSCHANGING = $0046;
|
|
{$EXTERNALSYM WM_WINDOWPOSCHANGING}
|
|
WM_WINDOWPOSCHANGED = $0047;
|
|
{$EXTERNALSYM WM_WINDOWPOSCHANGED}
|
|
|
|
WM_POWER = $0048;
|
|
{$EXTERNALSYM WM_POWER}
|
|
|
|
//
|
|
// wParam for WM_POWER window message and DRV_POWER driver notification
|
|
//
|
|
|
|
PWR_OK = 1;
|
|
{$EXTERNALSYM PWR_OK}
|
|
PWR_FAIL = DWORD(-1);
|
|
{$EXTERNALSYM PWR_FAIL}
|
|
PWR_SUSPENDREQUEST = 1;
|
|
{$EXTERNALSYM PWR_SUSPENDREQUEST}
|
|
PWR_SUSPENDRESUME = 2;
|
|
{$EXTERNALSYM PWR_SUSPENDRESUME}
|
|
PWR_CRITICALRESUME = 3;
|
|
{$EXTERNALSYM PWR_CRITICALRESUME}
|
|
|
|
WM_COPYDATA = $004A;
|
|
{$EXTERNALSYM WM_COPYDATA}
|
|
WM_CANCELJOURNAL = $004B;
|
|
{$EXTERNALSYM WM_CANCELJOURNAL}
|
|
|
|
//
|
|
// lParam of WM_COPYDATA message points to...
|
|
//
|
|
|
|
type
|
|
PCOPYDATASTRUCT = ^COPYDATASTRUCT;
|
|
tagCOPYDATASTRUCT = record
|
|
dwData: ULONG_PTR;
|
|
cbData: DWORD;
|
|
lpData: PVOID;
|
|
end;
|
|
{$EXTERNALSYM tagCOPYDATASTRUCT}
|
|
COPYDATASTRUCT = tagCOPYDATASTRUCT;
|
|
{$EXTERNALSYM COPYDATASTRUCT}
|
|
TCopyDataStruct = COPYDATASTRUCT;
|
|
|
|
LPMDINEXTMENU = ^MDINEXTMENU;
|
|
{$EXTERNALSYM LPMDINEXTMENU}
|
|
tagMDINEXTMENU = record
|
|
hmenuIn: HMENU;
|
|
hmenuNext: HMENU;
|
|
hwndNext: HWND;
|
|
end;
|
|
{$EXTERNALSYM tagMDINEXTMENU}
|
|
MDINEXTMENU = tagMDINEXTMENU;
|
|
{$EXTERNALSYM MDINEXTMENU}
|
|
TMdiNextMenu = MDINEXTMENU;
|
|
PMdiNextMenu = LPMDINEXTMENU;
|
|
|
|
const
|
|
WM_NOTIFY = $004E;
|
|
{$EXTERNALSYM WM_NOTIFY}
|
|
WM_INPUTLANGCHANGEREQUEST = $0050;
|
|
{$EXTERNALSYM WM_INPUTLANGCHANGEREQUEST}
|
|
WM_INPUTLANGCHANGE = $0051;
|
|
{$EXTERNALSYM WM_INPUTLANGCHANGE}
|
|
WM_TCARD = $0052;
|
|
{$EXTERNALSYM WM_TCARD}
|
|
WM_HELP = $0053;
|
|
{$EXTERNALSYM WM_HELP}
|
|
WM_USERCHANGED = $0054;
|
|
{$EXTERNALSYM WM_USERCHANGED}
|
|
WM_NOTIFYFORMAT = $0055;
|
|
{$EXTERNALSYM WM_NOTIFYFORMAT}
|
|
|
|
NFR_ANSI = 1;
|
|
{$EXTERNALSYM NFR_ANSI}
|
|
NFR_UNICODE = 2;
|
|
{$EXTERNALSYM NFR_UNICODE}
|
|
NF_QUERY = 3;
|
|
{$EXTERNALSYM NF_QUERY}
|
|
NF_REQUERY = 4;
|
|
{$EXTERNALSYM NF_REQUERY}
|
|
|
|
WM_CONTEXTMENU = $007B;
|
|
{$EXTERNALSYM WM_CONTEXTMENU}
|
|
WM_STYLECHANGING = $007C;
|
|
{$EXTERNALSYM WM_STYLECHANGING}
|
|
WM_STYLECHANGED = $007D;
|
|
{$EXTERNALSYM WM_STYLECHANGED}
|
|
WM_DISPLAYCHANGE = $007E;
|
|
{$EXTERNALSYM WM_DISPLAYCHANGE}
|
|
WM_GETICON = $007F;
|
|
{$EXTERNALSYM WM_GETICON}
|
|
WM_SETICON = $0080;
|
|
{$EXTERNALSYM WM_SETICON}
|
|
|
|
WM_NCCREATE = $0081;
|
|
{$EXTERNALSYM WM_NCCREATE}
|
|
WM_NCDESTROY = $0082;
|
|
{$EXTERNALSYM WM_NCDESTROY}
|
|
WM_NCCALCSIZE = $0083;
|
|
{$EXTERNALSYM WM_NCCALCSIZE}
|
|
WM_NCHITTEST = $0084;
|
|
{$EXTERNALSYM WM_NCHITTEST}
|
|
WM_NCPAINT = $0085;
|
|
{$EXTERNALSYM WM_NCPAINT}
|
|
WM_NCACTIVATE = $0086;
|
|
{$EXTERNALSYM WM_NCACTIVATE}
|
|
WM_GETDLGCODE = $0087;
|
|
{$EXTERNALSYM WM_GETDLGCODE}
|
|
WM_SYNCPAINT = $0088;
|
|
{$EXTERNALSYM WM_SYNCPAINT}
|
|
WM_NCMOUSEMOVE = $00A0;
|
|
{$EXTERNALSYM WM_NCMOUSEMOVE}
|
|
WM_NCLBUTTONDOWN = $00A1;
|
|
{$EXTERNALSYM WM_NCLBUTTONDOWN}
|
|
WM_NCLBUTTONUP = $00A2;
|
|
{$EXTERNALSYM WM_NCLBUTTONUP}
|
|
WM_NCLBUTTONDBLCLK = $00A3;
|
|
{$EXTERNALSYM WM_NCLBUTTONDBLCLK}
|
|
WM_NCRBUTTONDOWN = $00A4;
|
|
{$EXTERNALSYM WM_NCRBUTTONDOWN}
|
|
WM_NCRBUTTONUP = $00A5;
|
|
{$EXTERNALSYM WM_NCRBUTTONUP}
|
|
WM_NCRBUTTONDBLCLK = $00A6;
|
|
{$EXTERNALSYM WM_NCRBUTTONDBLCLK}
|
|
WM_NCMBUTTONDOWN = $00A7;
|
|
{$EXTERNALSYM WM_NCMBUTTONDOWN}
|
|
WM_NCMBUTTONUP = $00A8;
|
|
{$EXTERNALSYM WM_NCMBUTTONUP}
|
|
WM_NCMBUTTONDBLCLK = $00A9;
|
|
{$EXTERNALSYM WM_NCMBUTTONDBLCLK}
|
|
|
|
WM_NCXBUTTONDOWN = $00AB;
|
|
{$EXTERNALSYM WM_NCXBUTTONDOWN}
|
|
WM_NCXBUTTONUP = $00AC;
|
|
{$EXTERNALSYM WM_NCXBUTTONUP}
|
|
WM_NCXBUTTONDBLCLK = $00AD;
|
|
{$EXTERNALSYM WM_NCXBUTTONDBLCLK}
|
|
|
|
WM_INPUT = $00FF;
|
|
{$EXTERNALSYM WM_INPUT}
|
|
|
|
WM_KEYFIRST = $0100;
|
|
{$EXTERNALSYM WM_KEYFIRST}
|
|
WM_KEYDOWN = $0100;
|
|
{$EXTERNALSYM WM_KEYDOWN}
|
|
WM_KEYUP = $0101;
|
|
{$EXTERNALSYM WM_KEYUP}
|
|
WM_CHAR = $0102;
|
|
{$EXTERNALSYM WM_CHAR}
|
|
WM_DEADCHAR = $0103;
|
|
{$EXTERNALSYM WM_DEADCHAR}
|
|
WM_SYSKEYDOWN = $0104;
|
|
{$EXTERNALSYM WM_SYSKEYDOWN}
|
|
WM_SYSKEYUP = $0105;
|
|
{$EXTERNALSYM WM_SYSKEYUP}
|
|
WM_SYSCHAR = $0106;
|
|
{$EXTERNALSYM WM_SYSCHAR}
|
|
WM_SYSDEADCHAR = $0107;
|
|
{$EXTERNALSYM WM_SYSDEADCHAR}
|
|
{$IFDEF WINXP_UP}
|
|
WM_UNICHAR = $0109;
|
|
{$EXTERNALSYM WM_UNICHAR}
|
|
WM_KEYLAST = $0109;
|
|
{$EXTERNALSYM WM_KEYLAST}
|
|
UNICODE_NOCHAR = $FFFF;
|
|
{$EXTERNALSYM UNICODE_NOCHAR}
|
|
{$ELSE}
|
|
WM_KEYLAST = $0108;
|
|
{$EXTERNALSYM WM_KEYLAST}
|
|
{$ENDIF WINXP_UP}
|
|
|
|
WM_IME_STARTCOMPOSITION = $010D;
|
|
{$EXTERNALSYM WM_IME_STARTCOMPOSITION}
|
|
WM_IME_ENDCOMPOSITION = $010E;
|
|
{$EXTERNALSYM WM_IME_ENDCOMPOSITION}
|
|
WM_IME_COMPOSITION = $010F;
|
|
{$EXTERNALSYM WM_IME_COMPOSITION}
|
|
WM_IME_KEYLAST = $010F;
|
|
{$EXTERNALSYM WM_IME_KEYLAST}
|
|
|
|
WM_INITDIALOG = $0110;
|
|
{$EXTERNALSYM WM_INITDIALOG}
|
|
WM_COMMAND = $0111;
|
|
{$EXTERNALSYM WM_COMMAND}
|
|
WM_SYSCOMMAND = $0112;
|
|
{$EXTERNALSYM WM_SYSCOMMAND}
|
|
WM_TIMER = $0113;
|
|
{$EXTERNALSYM WM_TIMER}
|
|
WM_HSCROLL = $0114;
|
|
{$EXTERNALSYM WM_HSCROLL}
|
|
WM_VSCROLL = $0115;
|
|
{$EXTERNALSYM WM_VSCROLL}
|
|
WM_INITMENU = $0116;
|
|
{$EXTERNALSYM WM_INITMENU}
|
|
WM_INITMENUPOPUP = $0117;
|
|
{$EXTERNALSYM WM_INITMENUPOPUP}
|
|
WM_MENUSELECT = $011F;
|
|
{$EXTERNALSYM WM_MENUSELECT}
|
|
WM_MENUCHAR = $0120;
|
|
{$EXTERNALSYM WM_MENUCHAR}
|
|
WM_ENTERIDLE = $0121;
|
|
{$EXTERNALSYM WM_ENTERIDLE}
|
|
WM_MENURBUTTONUP = $0122;
|
|
{$EXTERNALSYM WM_MENURBUTTONUP}
|
|
WM_MENUDRAG = $0123;
|
|
{$EXTERNALSYM WM_MENUDRAG}
|
|
WM_MENUGETOBJECT = $0124;
|
|
{$EXTERNALSYM WM_MENUGETOBJECT}
|
|
WM_UNINITMENUPOPUP = $0125;
|
|
{$EXTERNALSYM WM_UNINITMENUPOPUP}
|
|
WM_MENUCOMMAND = $0126;
|
|
{$EXTERNALSYM WM_MENUCOMMAND}
|
|
|
|
WM_CHANGEUISTATE = $0127;
|
|
{$EXTERNALSYM WM_CHANGEUISTATE}
|
|
WM_UPDATEUISTATE = $0128;
|
|
{$EXTERNALSYM WM_UPDATEUISTATE}
|
|
WM_QUERYUISTATE = $0129;
|
|
{$EXTERNALSYM WM_QUERYUISTATE}
|
|
|
|
//
|
|
// LOWORD(wParam) values in WM_*UISTATE*
|
|
//
|
|
|
|
UIS_SET = 1;
|
|
{$EXTERNALSYM UIS_SET}
|
|
UIS_CLEAR = 2;
|
|
{$EXTERNALSYM UIS_CLEAR}
|
|
UIS_INITIALIZE = 3;
|
|
{$EXTERNALSYM UIS_INITIALIZE}
|
|
|
|
//
|
|
// HIWORD(wParam) values in WM_*UISTATE*
|
|
//
|
|
|
|
UISF_HIDEFOCUS = $1;
|
|
{$EXTERNALSYM UISF_HIDEFOCUS}
|
|
UISF_HIDEACCEL = $2;
|
|
{$EXTERNALSYM UISF_HIDEACCEL}
|
|
UISF_ACTIVE = $4;
|
|
{$EXTERNALSYM UISF_ACTIVE}
|
|
|
|
WM_CTLCOLORMSGBOX = $0132;
|
|
{$EXTERNALSYM WM_CTLCOLORMSGBOX}
|
|
WM_CTLCOLOREDIT = $0133;
|
|
{$EXTERNALSYM WM_CTLCOLOREDIT}
|
|
WM_CTLCOLORLISTBOX = $0134;
|
|
{$EXTERNALSYM WM_CTLCOLORLISTBOX}
|
|
WM_CTLCOLORBTN = $0135;
|
|
{$EXTERNALSYM WM_CTLCOLORBTN}
|
|
WM_CTLCOLORDLG = $0136;
|
|
{$EXTERNALSYM WM_CTLCOLORDLG}
|
|
WM_CTLCOLORSCROLLBAR = $0137;
|
|
{$EXTERNALSYM WM_CTLCOLORSCROLLBAR}
|
|
WM_CTLCOLORSTATIC = $0138;
|
|
{$EXTERNALSYM WM_CTLCOLORSTATIC}
|
|
MN_GETHMENU = $01E1;
|
|
{$EXTERNALSYM MN_GETHMENU}
|
|
|
|
WM_MOUSEFIRST = $0200;
|
|
{$EXTERNALSYM WM_MOUSEFIRST}
|
|
WM_MOUSEMOVE = $0200;
|
|
{$EXTERNALSYM WM_MOUSEMOVE}
|
|
WM_LBUTTONDOWN = $0201;
|
|
{$EXTERNALSYM WM_LBUTTONDOWN}
|
|
WM_LBUTTONUP = $0202;
|
|
{$EXTERNALSYM WM_LBUTTONUP}
|
|
WM_LBUTTONDBLCLK = $0203;
|
|
{$EXTERNALSYM WM_LBUTTONDBLCLK}
|
|
WM_RBUTTONDOWN = $0204;
|
|
{$EXTERNALSYM WM_RBUTTONDOWN}
|
|
WM_RBUTTONUP = $0205;
|
|
{$EXTERNALSYM WM_RBUTTONUP}
|
|
WM_RBUTTONDBLCLK = $0206;
|
|
{$EXTERNALSYM WM_RBUTTONDBLCLK}
|
|
WM_MBUTTONDOWN = $0207;
|
|
{$EXTERNALSYM WM_MBUTTONDOWN}
|
|
WM_MBUTTONUP = $0208;
|
|
{$EXTERNALSYM WM_MBUTTONUP}
|
|
WM_MBUTTONDBLCLK = $0209;
|
|
{$EXTERNALSYM WM_MBUTTONDBLCLK}
|
|
WM_MOUSEWHEEL = $020A;
|
|
{$EXTERNALSYM WM_MOUSEWHEEL}
|
|
WM_XBUTTONDOWN = $020B;
|
|
{$EXTERNALSYM WM_XBUTTONDOWN}
|
|
WM_XBUTTONUP = $020C;
|
|
{$EXTERNALSYM WM_XBUTTONUP}
|
|
WM_XBUTTONDBLCLK = $020D;
|
|
{$EXTERNALSYM WM_XBUTTONDBLCLK}
|
|
|
|
{$IFDEF WIN2000_UP}
|
|
WM_MOUSELAST = $020D;
|
|
{$EXTERNALSYM WM_MOUSELAST}
|
|
{$ELSE}
|
|
{$IFDEF WINNT4}
|
|
WM_MOUSELAST = $020A;
|
|
{$EXTERNALSYM WM_MOUSELAST}
|
|
{$ELSE}
|
|
{$IFDEF WIN95_UP}
|
|
WM_MOUSELAST = $020A;
|
|
{$EXTERNALSYM WM_MOUSELAST}
|
|
{$ELSE}
|
|
WM_MOUSELAST = $0209;
|
|
{$EXTERNALSYM WM_MOUSELAST}
|
|
{$ENDIF WIN95_UP}
|
|
{$ENDIF WINNT4}
|
|
{$ENDIF WIN2000_UP}
|
|
|
|
// Value for rolling one detent//
|
|
|
|
WHEEL_DELTA = 120;
|
|
{$EXTERNALSYM WHEEL_DELTA}
|
|
|
|
function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
|
|
{$EXTERNALSYM GET_WHEEL_DELTA_WPARAM(wParam)}
|
|
|
|
// Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES//
|
|
|
|
const
|
|
WHEEL_PAGESCROLL = UINT_MAX;
|
|
{$EXTERNALSYM WHEEL_PAGESCROLL}
|
|
|
|
function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
|
|
{$EXTERNALSYM GET_KEYSTATE_WPARAM}
|
|
function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
|
|
{$EXTERNALSYM GET_NCHITTEST_WPARAM}
|
|
function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
|
|
{$EXTERNALSYM GET_XBUTTON_WPARAM}
|
|
|
|
// XButton values are WORD flags//
|
|
|
|
const
|
|
XBUTTON1 = $0001;
|
|
{$EXTERNALSYM XBUTTON1}
|
|
XBUTTON2 = $0002;
|
|
{$EXTERNALSYM XBUTTON2}
|
|
|
|
// Were there to be an XBUTTON3, it's value would be 0x0004//
|
|
|
|
WM_PARENTNOTIFY = $0210;
|
|
{$EXTERNALSYM WM_PARENTNOTIFY}
|
|
WM_ENTERMENULOOP = $0211;
|
|
{$EXTERNALSYM WM_ENTERMENULOOP}
|
|
WM_EXITMENULOOP = $0212;
|
|
{$EXTERNALSYM WM_EXITMENULOOP}
|
|
|
|
WM_NEXTMENU = $0213;
|
|
{$EXTERNALSYM WM_NEXTMENU}
|
|
WM_SIZING = $0214;
|
|
{$EXTERNALSYM WM_SIZING}
|
|
WM_CAPTURECHANGED = $0215;
|
|
{$EXTERNALSYM WM_CAPTURECHANGED}
|
|
WM_MOVING = $0216;
|
|
{$EXTERNALSYM WM_MOVING}
|
|
|
|
WM_POWERBROADCAST = $0218;
|
|
{$EXTERNALSYM WM_POWERBROADCAST}
|
|
|
|
PBT_APMQUERYSUSPEND = $0000;
|
|
{$EXTERNALSYM PBT_APMQUERYSUSPEND}
|
|
PBT_APMQUERYSTANDBY = $0001;
|
|
{$EXTERNALSYM PBT_APMQUERYSTANDBY}
|
|
|
|
PBT_APMQUERYSUSPENDFAILED = $0002;
|
|
{$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED}
|
|
PBT_APMQUERYSTANDBYFAILED = $0003;
|
|
{$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED}
|
|
|
|
PBT_APMSUSPEND = $0004;
|
|
{$EXTERNALSYM PBT_APMSUSPEND}
|
|
PBT_APMSTANDBY = $0005;
|
|
{$EXTERNALSYM PBT_APMSTANDBY}
|
|
|
|
PBT_APMRESUMECRITICAL = $0006;
|
|
{$EXTERNALSYM PBT_APMRESUMECRITICAL}
|
|
PBT_APMRESUMESUSPEND = $0007;
|
|
{$EXTERNALSYM PBT_APMRESUMESUSPEND}
|
|
PBT_APMRESUMESTANDBY = $0008;
|
|
{$EXTERNALSYM PBT_APMRESUMESTANDBY}
|
|
|
|
PBTF_APMRESUMEFROMFAILURE = $00000001;
|
|
{$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE}
|
|
|
|
PBT_APMBATTERYLOW = $0009;
|
|
{$EXTERNALSYM PBT_APMBATTERYLOW}
|
|
PBT_APMPOWERSTATUSCHANGE = $000A;
|
|
{$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE}
|
|
|
|
PBT_APMOEMEVENT = $000B;
|
|
{$EXTERNALSYM PBT_APMOEMEVENT}
|
|
PBT_APMRESUMEAUTOMATIC = $0012;
|
|
{$EXTERNALSYM PBT_APMRESUMEAUTOMATIC}
|
|
|
|
WM_DEVICECHANGE = $0219;
|
|
{$EXTERNALSYM WM_DEVICECHANGE}
|
|
|
|
WM_MDICREATE = $0220;
|
|
{$EXTERNALSYM WM_MDICREATE}
|
|
WM_MDIDESTROY = $0221;
|
|
{$EXTERNALSYM WM_MDIDESTROY}
|
|
WM_MDIACTIVATE = $0222;
|
|
{$EXTERNALSYM WM_MDIACTIVATE}
|
|
WM_MDIRESTORE = $0223;
|
|
{$EXTERNALSYM WM_MDIRESTORE}
|
|
WM_MDINEXT = $0224;
|
|
{$EXTERNALSYM WM_MDINEXT}
|
|
WM_MDIMAXIMIZE = $0225;
|
|
{$EXTERNALSYM WM_MDIMAXIMIZE}
|
|
WM_MDITILE = $0226;
|
|
{$EXTERNALSYM WM_MDITILE}
|
|
WM_MDICASCADE = $0227;
|
|
{$EXTERNALSYM WM_MDICASCADE}
|
|
WM_MDIICONARRANGE = $0228;
|
|
{$EXTERNALSYM WM_MDIICONARRANGE}
|
|
WM_MDIGETACTIVE = $0229;
|
|
{$EXTERNALSYM WM_MDIGETACTIVE}
|
|
|
|
WM_MDISETMENU = $0230;
|
|
{$EXTERNALSYM WM_MDISETMENU}
|
|
WM_ENTERSIZEMOVE = $0231;
|
|
{$EXTERNALSYM WM_ENTERSIZEMOVE}
|
|
WM_EXITSIZEMOVE = $0232;
|
|
{$EXTERNALSYM WM_EXITSIZEMOVE}
|
|
WM_DROPFILES = $0233;
|
|
{$EXTERNALSYM WM_DROPFILES}
|
|
WM_MDIREFRESHMENU = $0234;
|
|
{$EXTERNALSYM WM_MDIREFRESHMENU}
|
|
|
|
WM_IME_SETCONTEXT = $0281;
|
|
{$EXTERNALSYM WM_IME_SETCONTEXT}
|
|
WM_IME_NOTIFY = $0282;
|
|
{$EXTERNALSYM WM_IME_NOTIFY}
|
|
WM_IME_CONTROL = $0283;
|
|
{$EXTERNALSYM WM_IME_CONTROL}
|
|
WM_IME_COMPOSITIONFULL = $0284;
|
|
{$EXTERNALSYM WM_IME_COMPOSITIONFULL}
|
|
WM_IME_SELECT = $0285;
|
|
{$EXTERNALSYM WM_IME_SELECT}
|
|
WM_IME_CHAR = $0286;
|
|
{$EXTERNALSYM WM_IME_CHAR}
|
|
WM_IME_REQUEST = $0288;
|
|
{$EXTERNALSYM WM_IME_REQUEST}
|
|
WM_IME_KEYDOWN = $0290;
|
|
{$EXTERNALSYM WM_IME_KEYDOWN}
|
|
WM_IME_KEYUP = $0291;
|
|
{$EXTERNALSYM WM_IME_KEYUP}
|
|
|
|
WM_MOUSEHOVER = $02A1;
|
|
{$EXTERNALSYM WM_MOUSEHOVER}
|
|
WM_MOUSELEAVE = $02A3;
|
|
{$EXTERNALSYM WM_MOUSELEAVE}
|
|
WM_NCMOUSEHOVER = $02A0;
|
|
{$EXTERNALSYM WM_NCMOUSEHOVER}
|
|
WM_NCMOUSELEAVE = $02A2;
|
|
{$EXTERNALSYM WM_NCMOUSELEAVE}
|
|
|
|
WM_WTSSESSION_CHANGE = $02B1;
|
|
{$EXTERNALSYM WM_WTSSESSION_CHANGE}
|
|
|
|
WM_TABLET_FIRST = $02c0;
|
|
{$EXTERNALSYM WM_TABLET_FIRST}
|
|
WM_TABLET_LAST = $02df;
|
|
{$EXTERNALSYM WM_TABLET_LAST}
|
|
|
|
WM_CUT = $0300;
|
|
{$EXTERNALSYM WM_CUT}
|
|
WM_COPY = $0301;
|
|
{$EXTERNALSYM WM_COPY}
|
|
WM_PASTE = $0302;
|
|
{$EXTERNALSYM WM_PASTE}
|
|
WM_CLEAR = $0303;
|
|
{$EXTERNALSYM WM_CLEAR}
|
|
WM_UNDO = $0304;
|
|
{$EXTERNALSYM WM_UNDO}
|
|
WM_RENDERFORMAT = $0305;
|
|
{$EXTERNALSYM WM_RENDERFORMAT}
|
|
WM_RENDERALLFORMATS = $0306;
|
|
{$EXTERNALSYM WM_RENDERALLFORMATS}
|
|
WM_DESTROYCLIPBOARD = $0307;
|
|
{$EXTERNALSYM WM_DESTROYCLIPBOARD}
|
|
WM_DRAWCLIPBOARD = $0308;
|
|
{$EXTERNALSYM WM_DRAWCLIPBOARD}
|
|
WM_PAINTCLIPBOARD = $0309;
|
|
{$EXTERNALSYM WM_PAINTCLIPBOARD}
|
|
WM_VSCROLLCLIPBOARD = $030A;
|
|
{$EXTERNALSYM WM_VSCROLLCLIPBOARD}
|
|
WM_SIZECLIPBOARD = $030B;
|
|
{$EXTERNALSYM WM_SIZECLIPBOARD}
|
|
WM_ASKCBFORMATNAME = $030C;
|
|
{$EXTERNALSYM WM_ASKCBFORMATNAME}
|
|
WM_CHANGECBCHAIN = $030D;
|
|
{$EXTERNALSYM WM_CHANGECBCHAIN}
|
|
WM_HSCROLLCLIPBOARD = $030E;
|
|
{$EXTERNALSYM WM_HSCROLLCLIPBOARD}
|
|
WM_QUERYNEWPALETTE = $030F;
|
|
{$EXTERNALSYM WM_QUERYNEWPALETTE}
|
|
WM_PALETTEISCHANGING = $0310;
|
|
{$EXTERNALSYM WM_PALETTEISCHANGING}
|
|
WM_PALETTECHANGED = $0311;
|
|
{$EXTERNALSYM WM_PALETTECHANGED}
|
|
WM_HOTKEY = $0312;
|
|
{$EXTERNALSYM WM_HOTKEY}
|
|
|
|
WM_PRINT = $0317;
|
|
{$EXTERNALSYM WM_PRINT}
|
|
WM_PRINTCLIENT = $0318;
|
|
{$EXTERNALSYM WM_PRINTCLIENT}
|
|
|
|
WM_APPCOMMAND = $0319;
|
|
{$EXTERNALSYM WM_APPCOMMAND}
|
|
|
|
WM_THEMECHANGED = $031A;
|
|
{$EXTERNALSYM WM_THEMECHANGED}
|
|
|
|
WM_HANDHELDFIRST = $0358;
|
|
{$EXTERNALSYM WM_HANDHELDFIRST}
|
|
WM_HANDHELDLAST = $035F;
|
|
{$EXTERNALSYM WM_HANDHELDLAST}
|
|
|
|
WM_AFXFIRST = $0360;
|
|
{$EXTERNALSYM WM_AFXFIRST}
|
|
WM_AFXLAST = $037F;
|
|
{$EXTERNALSYM WM_AFXLAST}
|
|
|
|
WM_PENWINFIRST = $0380;
|
|
{$EXTERNALSYM WM_PENWINFIRST}
|
|
WM_PENWINLAST = $038F;
|
|
{$EXTERNALSYM WM_PENWINLAST}
|
|
|
|
WM_APP = $8000;
|
|
{$EXTERNALSYM WM_APP}
|
|
|
|
//
|
|
// NOTE: All Message Numbers below 0x0400 are RESERVED.
|
|
//
|
|
// Private Window Messages Start Here:
|
|
//
|
|
|
|
WM_USER = $0400;
|
|
{$EXTERNALSYM WM_USER}
|
|
|
|
// wParam for WM_SIZING message
|
|
|
|
WMSZ_LEFT = 1;
|
|
{$EXTERNALSYM WMSZ_LEFT}
|
|
WMSZ_RIGHT = 2;
|
|
{$EXTERNALSYM WMSZ_RIGHT}
|
|
WMSZ_TOP = 3;
|
|
{$EXTERNALSYM WMSZ_TOP}
|
|
WMSZ_TOPLEFT = 4;
|
|
{$EXTERNALSYM WMSZ_TOPLEFT}
|
|
WMSZ_TOPRIGHT = 5;
|
|
{$EXTERNALSYM WMSZ_TOPRIGHT}
|
|
WMSZ_BOTTOM = 6;
|
|
{$EXTERNALSYM WMSZ_BOTTOM}
|
|
WMSZ_BOTTOMLEFT = 7;
|
|
{$EXTERNALSYM WMSZ_BOTTOMLEFT}
|
|
WMSZ_BOTTOMRIGHT = 8;
|
|
{$EXTERNALSYM WMSZ_BOTTOMRIGHT}
|
|
|
|
//
|
|
// WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
|
|
//
|
|
|
|
HTERROR = DWORD(-2);
|
|
{$EXTERNALSYM HTERROR}
|
|
HTTRANSPARENT = DWORD(-1);
|
|
{$EXTERNALSYM HTTRANSPARENT}
|
|
HTNOWHERE = 0;
|
|
{$EXTERNALSYM HTNOWHERE}
|
|
HTCLIENT = 1;
|
|
{$EXTERNALSYM HTCLIENT}
|
|
HTCAPTION = 2;
|
|
{$EXTERNALSYM HTCAPTION}
|
|
HTSYSMENU = 3;
|
|
{$EXTERNALSYM HTSYSMENU}
|
|
HTGROWBOX = 4;
|
|
{$EXTERNALSYM HTGROWBOX}
|
|
HTSIZE = HTGROWBOX;
|
|
{$EXTERNALSYM HTSIZE}
|
|
HTMENU = 5;
|
|
{$EXTERNALSYM HTMENU}
|
|
HTHSCROLL = 6;
|
|
{$EXTERNALSYM HTHSCROLL}
|
|
HTVSCROLL = 7;
|
|
{$EXTERNALSYM HTVSCROLL}
|
|
HTMINBUTTON = 8;
|
|
{$EXTERNALSYM HTMINBUTTON}
|
|
HTMAXBUTTON = 9;
|
|
{$EXTERNALSYM HTMAXBUTTON}
|
|
HTLEFT = 10;
|
|
{$EXTERNALSYM HTLEFT}
|
|
HTRIGHT = 11;
|
|
{$EXTERNALSYM HTRIGHT}
|
|
HTTOP = 12;
|
|
{$EXTERNALSYM HTTOP}
|
|
HTTOPLEFT = 13;
|
|
{$EXTERNALSYM HTTOPLEFT}
|
|
HTTOPRIGHT = 14;
|
|
{$EXTERNALSYM HTTOPRIGHT}
|
|
HTBOTTOM = 15;
|
|
{$EXTERNALSYM HTBOTTOM}
|
|
HTBOTTOMLEFT = 16;
|
|
{$EXTERNALSYM HTBOTTOMLEFT}
|
|
HTBOTTOMRIGHT = 17;
|
|
{$EXTERNALSYM HTBOTTOMRIGHT}
|
|
HTBORDER = 18;
|
|
{$EXTERNALSYM HTBORDER}
|
|
HTREDUCE = HTMINBUTTON;
|
|
{$EXTERNALSYM HTREDUCE}
|
|
HTZOOM = HTMAXBUTTON;
|
|
{$EXTERNALSYM HTZOOM}
|
|
HTSIZEFIRST = HTLEFT;
|
|
{$EXTERNALSYM HTSIZEFIRST}
|
|
HTSIZELAST = HTBOTTOMRIGHT;
|
|
{$EXTERNALSYM HTSIZELAST}
|
|
HTOBJECT = 19;
|
|
{$EXTERNALSYM HTOBJECT}
|
|
HTCLOSE = 20;
|
|
{$EXTERNALSYM HTCLOSE}
|
|
HTHELP = 21;
|
|
{$EXTERNALSYM HTHELP}
|
|
|
|
//
|
|
// SendMessageTimeout values
|
|
//
|
|
|
|
SMTO_NORMAL = $0000;
|
|
{$EXTERNALSYM SMTO_NORMAL}
|
|
SMTO_BLOCK = $0001;
|
|
{$EXTERNALSYM SMTO_BLOCK}
|
|
SMTO_ABORTIFHUNG = $0002;
|
|
{$EXTERNALSYM SMTO_ABORTIFHUNG}
|
|
SMTO_NOTIMEOUTIFNOTHUNG = $0008;
|
|
{$EXTERNALSYM SMTO_NOTIMEOUTIFNOTHUNG}
|
|
|
|
//
|
|
// WM_MOUSEACTIVATE Return Codes
|
|
//
|
|
|
|
MA_ACTIVATE = 1;
|
|
{$EXTERNALSYM MA_ACTIVATE}
|
|
MA_ACTIVATEANDEAT = 2;
|
|
{$EXTERNALSYM MA_ACTIVATEANDEAT}
|
|
MA_NOACTIVATE = 3;
|
|
{$EXTERNALSYM MA_NOACTIVATE}
|
|
MA_NOACTIVATEANDEAT = 4;
|
|
{$EXTERNALSYM MA_NOACTIVATEANDEAT}
|
|
|
|
//
|
|
// WM_SETICON / WM_GETICON Type Codes
|
|
//
|
|
|
|
ICON_SMALL = 0;
|
|
{$EXTERNALSYM ICON_SMALL}
|
|
ICON_BIG = 1;
|
|
{$EXTERNALSYM ICON_BIG}
|
|
ICON_SMALL2 = 2;
|
|
{$EXTERNALSYM ICON_SMALL2}
|
|
|
|
function RegisterWindowMessageA(lpString: LPCSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterWindowMessageA}
|
|
function RegisterWindowMessageW(lpString: LPCWSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterWindowMessageW}
|
|
function RegisterWindowMessage(lpString: LPCTSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterWindowMessage}
|
|
|
|
//
|
|
// WM_SIZE message wParam values
|
|
//
|
|
|
|
const
|
|
SIZE_RESTORED = 0;
|
|
{$EXTERNALSYM SIZE_RESTORED}
|
|
SIZE_MINIMIZED = 1;
|
|
{$EXTERNALSYM SIZE_MINIMIZED}
|
|
SIZE_MAXIMIZED = 2;
|
|
{$EXTERNALSYM SIZE_MAXIMIZED}
|
|
SIZE_MAXSHOW = 3;
|
|
{$EXTERNALSYM SIZE_MAXSHOW}
|
|
SIZE_MAXHIDE = 4;
|
|
{$EXTERNALSYM SIZE_MAXHIDE}
|
|
|
|
//
|
|
// Obsolete constant names
|
|
//
|
|
|
|
SIZENORMAL = SIZE_RESTORED;
|
|
{$EXTERNALSYM SIZENORMAL}
|
|
SIZEICONIC = SIZE_MINIMIZED;
|
|
{$EXTERNALSYM SIZEICONIC}
|
|
SIZEFULLSCREEN = SIZE_MAXIMIZED;
|
|
{$EXTERNALSYM SIZEFULLSCREEN}
|
|
SIZEZOOMSHOW = SIZE_MAXSHOW;
|
|
{$EXTERNALSYM SIZEZOOMSHOW}
|
|
SIZEZOOMHIDE = SIZE_MAXHIDE;
|
|
{$EXTERNALSYM SIZEZOOMHIDE}
|
|
|
|
//
|
|
// WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
|
|
//
|
|
|
|
type
|
|
LPWINDOWPOS = ^WINDOWPOS;
|
|
{$EXTERNALSYM LPWINDOWPOS}
|
|
tagWINDOWPOS = record
|
|
hwnd: HWND;
|
|
hwndInsertAfter: HWND;
|
|
x: Integer;
|
|
y: Integer;
|
|
cx: Integer;
|
|
cy: Integer;
|
|
flags: UINT;
|
|
end;
|
|
{$EXTERNALSYM tagWINDOWPOS}
|
|
WINDOWPOS = tagWINDOWPOS;
|
|
{$EXTERNALSYM WINDOWPOS}
|
|
TWindowPos = WINDOWPOS;
|
|
PWindowPos = LPWINDOWPOS;
|
|
|
|
//
|
|
// WM_NCCALCSIZE parameter structure
|
|
//
|
|
|
|
LPNCCALCSIZE_PARAMS = ^NCCALCSIZE_PARAMS;
|
|
{$EXTERNALSYM LPNCCALCSIZE_PARAMS}
|
|
NCCALCSIZE_PARAMS = record
|
|
rgrc: array [0..2] of RECT;
|
|
lppos: PWINDOWPOS;
|
|
end;
|
|
{$EXTERNALSYM NCCALCSIZE_PARAMS}
|
|
TNcCalcSizeParams = NCCALCSIZE_PARAMS;
|
|
PNcCalcSizeParams = LPNCCALCSIZE_PARAMS;
|
|
|
|
//
|
|
// WM_NCCALCSIZE "window valid rect" return values
|
|
//
|
|
|
|
const
|
|
WVR_ALIGNTOP = $0010;
|
|
{$EXTERNALSYM WVR_ALIGNTOP}
|
|
WVR_ALIGNLEFT = $0020;
|
|
{$EXTERNALSYM WVR_ALIGNLEFT}
|
|
WVR_ALIGNBOTTOM = $0040;
|
|
{$EXTERNALSYM WVR_ALIGNBOTTOM}
|
|
WVR_ALIGNRIGHT = $0080;
|
|
{$EXTERNALSYM WVR_ALIGNRIGHT}
|
|
WVR_HREDRAW = $0100;
|
|
{$EXTERNALSYM WVR_HREDRAW}
|
|
WVR_VREDRAW = $0200;
|
|
{$EXTERNALSYM WVR_VREDRAW}
|
|
WVR_REDRAW = WVR_HREDRAW or WVR_VREDRAW;
|
|
{$EXTERNALSYM WVR_REDRAW}
|
|
WVR_VALIDRECTS = $0400;
|
|
{$EXTERNALSYM WVR_VALIDRECTS}
|
|
|
|
//
|
|
// Key State Masks for Mouse Messages
|
|
//
|
|
|
|
MK_LBUTTON = $0001;
|
|
{$EXTERNALSYM MK_LBUTTON}
|
|
MK_RBUTTON = $0002;
|
|
{$EXTERNALSYM MK_RBUTTON}
|
|
MK_SHIFT = $0004;
|
|
{$EXTERNALSYM MK_SHIFT}
|
|
MK_CONTROL = $0008;
|
|
{$EXTERNALSYM MK_CONTROL}
|
|
MK_MBUTTON = $0010;
|
|
{$EXTERNALSYM MK_MBUTTON}
|
|
MK_XBUTTON1 = $0020;
|
|
{$EXTERNALSYM MK_XBUTTON1}
|
|
MK_XBUTTON2 = $0040;
|
|
{$EXTERNALSYM MK_XBUTTON2}
|
|
|
|
TME_HOVER = $00000001;
|
|
{$EXTERNALSYM TME_HOVER}
|
|
TME_LEAVE = $00000002;
|
|
{$EXTERNALSYM TME_LEAVE}
|
|
TME_NONCLIENT = $00000010;
|
|
{$EXTERNALSYM TME_NONCLIENT}
|
|
TME_QUERY = $40000000;
|
|
{$EXTERNALSYM TME_QUERY}
|
|
TME_CANCEL = $80000000;
|
|
{$EXTERNALSYM TME_CANCEL}
|
|
|
|
HOVER_DEFAULT = $FFFFFFFF;
|
|
{$EXTERNALSYM HOVER_DEFAULT}
|
|
|
|
type
|
|
LPTRACKMOUSEEVENT = ^_TRACKMOUSEEVENT;
|
|
{$EXTERNALSYM LPTRACKMOUSEEVENT}
|
|
_TRACKMOUSEEVENT = record
|
|
cbSize: DWORD;
|
|
dwFlags: DWORD;
|
|
hwndTrack: HWND;
|
|
dwHoverTime: DWORD;
|
|
end;
|
|
//TRACKMOUSEEVENT = _TRACKMOUSEEVENT;
|
|
//{$EXTERNALSYM TRACKMOUSEEVENT}
|
|
TTrackMouseEvent = _TRACKMOUSEEVENT;
|
|
PTrackMouseEvent = LPTRACKMOUSEEVENT;
|
|
|
|
function TrackMouseEvent(var lpEventTrack: TTrackMouseEvent): BOOL; stdcall;
|
|
{$EXTERNALSYM TrackMouseEvent}
|
|
|
|
//
|
|
// Window Styles
|
|
//
|
|
|
|
const
|
|
WS_OVERLAPPED = $00000000;
|
|
{$EXTERNALSYM WS_OVERLAPPED}
|
|
WS_POPUP = $80000000;
|
|
{$EXTERNALSYM WS_POPUP}
|
|
WS_CHILD = $40000000;
|
|
{$EXTERNALSYM WS_CHILD}
|
|
WS_MINIMIZE = $20000000;
|
|
{$EXTERNALSYM WS_MINIMIZE}
|
|
WS_VISIBLE = $10000000;
|
|
{$EXTERNALSYM WS_VISIBLE}
|
|
WS_DISABLED = $08000000;
|
|
{$EXTERNALSYM WS_DISABLED}
|
|
WS_CLIPSIBLINGS = $04000000;
|
|
{$EXTERNALSYM WS_CLIPSIBLINGS}
|
|
WS_CLIPCHILDREN = $02000000;
|
|
{$EXTERNALSYM WS_CLIPCHILDREN}
|
|
WS_MAXIMIZE = $01000000;
|
|
{$EXTERNALSYM WS_MAXIMIZE}
|
|
WS_CAPTION = $00C00000; // WS_BORDER | WS_DLGFRAME
|
|
{$EXTERNALSYM WS_CAPTION}
|
|
WS_BORDER = $00800000;
|
|
{$EXTERNALSYM WS_BORDER}
|
|
WS_DLGFRAME = $00400000;
|
|
{$EXTERNALSYM WS_DLGFRAME}
|
|
WS_VSCROLL = $00200000;
|
|
{$EXTERNALSYM WS_VSCROLL}
|
|
WS_HSCROLL = $00100000;
|
|
{$EXTERNALSYM WS_HSCROLL}
|
|
WS_SYSMENU = $00080000;
|
|
{$EXTERNALSYM WS_SYSMENU}
|
|
WS_THICKFRAME = $00040000;
|
|
{$EXTERNALSYM WS_THICKFRAME}
|
|
WS_GROUP = $00020000;
|
|
{$EXTERNALSYM WS_GROUP}
|
|
WS_TABSTOP = $00010000;
|
|
{$EXTERNALSYM WS_TABSTOP}
|
|
|
|
WS_MINIMIZEBOX = $00020000;
|
|
{$EXTERNALSYM WS_MINIMIZEBOX}
|
|
WS_MAXIMIZEBOX = $00010000;
|
|
{$EXTERNALSYM WS_MAXIMIZEBOX}
|
|
|
|
WS_TILED = WS_OVERLAPPED;
|
|
{$EXTERNALSYM WS_TILED}
|
|
WS_ICONIC = WS_MINIMIZE;
|
|
{$EXTERNALSYM WS_ICONIC}
|
|
WS_SIZEBOX = WS_THICKFRAME;
|
|
{$EXTERNALSYM WS_SIZEBOX}
|
|
|
|
//
|
|
// Common Window Styles
|
|
//
|
|
|
|
WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
|
|
WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
|
|
{$EXTERNALSYM WS_OVERLAPPEDWINDOW}
|
|
|
|
WS_POPUPWINDOW = WS_POPUP or WS_BORDER or WS_SYSMENU;
|
|
{$EXTERNALSYM WS_POPUPWINDOW}
|
|
|
|
WS_CHILDWINDOW = WS_CHILD;
|
|
{$EXTERNALSYM WS_CHILDWINDOW}
|
|
|
|
WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW;
|
|
{$EXTERNALSYM WS_TILEDWINDOW}
|
|
|
|
//
|
|
// Extended Window Styles
|
|
//
|
|
|
|
WS_EX_DLGMODALFRAME = $00000001;
|
|
{$EXTERNALSYM WS_EX_DLGMODALFRAME}
|
|
WS_EX_NOPARENTNOTIFY = $00000004;
|
|
{$EXTERNALSYM WS_EX_NOPARENTNOTIFY}
|
|
WS_EX_TOPMOST = $00000008;
|
|
{$EXTERNALSYM WS_EX_TOPMOST}
|
|
WS_EX_ACCEPTFILES = $00000010;
|
|
{$EXTERNALSYM WS_EX_ACCEPTFILES}
|
|
WS_EX_TRANSPARENT = $00000020;
|
|
{$EXTERNALSYM WS_EX_TRANSPARENT}
|
|
WS_EX_MDICHILD = $00000040;
|
|
{$EXTERNALSYM WS_EX_MDICHILD}
|
|
WS_EX_TOOLWINDOW = $00000080;
|
|
{$EXTERNALSYM WS_EX_TOOLWINDOW}
|
|
WS_EX_WINDOWEDGE = $00000100;
|
|
{$EXTERNALSYM WS_EX_WINDOWEDGE}
|
|
WS_EX_CLIENTEDGE = $00000200;
|
|
{$EXTERNALSYM WS_EX_CLIENTEDGE}
|
|
WS_EX_CONTEXTHELP = $00000400;
|
|
{$EXTERNALSYM WS_EX_CONTEXTHELP}
|
|
|
|
WS_EX_RIGHT = $00001000;
|
|
{$EXTERNALSYM WS_EX_RIGHT}
|
|
WS_EX_LEFT = $00000000;
|
|
{$EXTERNALSYM WS_EX_LEFT}
|
|
WS_EX_RTLREADING = $00002000;
|
|
{$EXTERNALSYM WS_EX_RTLREADING}
|
|
WS_EX_LTRREADING = $00000000;
|
|
{$EXTERNALSYM WS_EX_LTRREADING}
|
|
WS_EX_LEFTSCROLLBAR = $00004000;
|
|
{$EXTERNALSYM WS_EX_LEFTSCROLLBAR}
|
|
WS_EX_RIGHTSCROLLBAR = $00000000;
|
|
{$EXTERNALSYM WS_EX_RIGHTSCROLLBAR}
|
|
WS_EX_CONTROLPARENT = $00010000;
|
|
{$EXTERNALSYM WS_EX_CONTROLPARENT}
|
|
WS_EX_STATICEDGE = $00020000;
|
|
{$EXTERNALSYM WS_EX_STATICEDGE}
|
|
WS_EX_APPWINDOW = $00040000;
|
|
{$EXTERNALSYM WS_EX_APPWINDOW}
|
|
|
|
WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE or WS_EX_CLIENTEDGE;
|
|
{$EXTERNALSYM WS_EX_OVERLAPPEDWINDOW}
|
|
WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE or WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
|
|
{$EXTERNALSYM WS_EX_PALETTEWINDOW}
|
|
|
|
WS_EX_LAYERED = $00080000;
|
|
{$EXTERNALSYM WS_EX_LAYERED}
|
|
|
|
WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
|
|
{$EXTERNALSYM WS_EX_NOINHERITLAYOUT}
|
|
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
|
|
{$EXTERNALSYM WS_EX_LAYOUTRTL}
|
|
|
|
WS_EX_COMPOSITED = $02000000;
|
|
{$EXTERNALSYM WS_EX_COMPOSITED}
|
|
WS_EX_NOACTIVATE = $08000000;
|
|
{$EXTERNALSYM WS_EX_NOACTIVATE}
|
|
|
|
//
|
|
// Class styles
|
|
//
|
|
|
|
CS_VREDRAW = $0001;
|
|
{$EXTERNALSYM CS_VREDRAW}
|
|
CS_HREDRAW = $0002;
|
|
{$EXTERNALSYM CS_HREDRAW}
|
|
CS_DBLCLKS = $0008;
|
|
{$EXTERNALSYM CS_DBLCLKS}
|
|
CS_OWNDC = $0020;
|
|
{$EXTERNALSYM CS_OWNDC}
|
|
CS_CLASSDC = $0040;
|
|
{$EXTERNALSYM CS_CLASSDC}
|
|
CS_PARENTDC = $0080;
|
|
{$EXTERNALSYM CS_PARENTDC}
|
|
CS_NOCLOSE = $0200;
|
|
{$EXTERNALSYM CS_NOCLOSE}
|
|
CS_SAVEBITS = $0800;
|
|
{$EXTERNALSYM CS_SAVEBITS}
|
|
CS_BYTEALIGNCLIENT = $1000;
|
|
{$EXTERNALSYM CS_BYTEALIGNCLIENT}
|
|
CS_BYTEALIGNWINDOW = $2000;
|
|
{$EXTERNALSYM CS_BYTEALIGNWINDOW}
|
|
CS_GLOBALCLASS = $4000;
|
|
{$EXTERNALSYM CS_GLOBALCLASS}
|
|
|
|
CS_IME = $00010000;
|
|
{$EXTERNALSYM CS_IME}
|
|
CS_DROPSHADOW = $00020000;
|
|
{$EXTERNALSYM CS_DROPSHADOW}
|
|
|
|
// WM_PRINT flags//
|
|
|
|
PRF_CHECKVISIBLE = $00000001;
|
|
{$EXTERNALSYM PRF_CHECKVISIBLE}
|
|
PRF_NONCLIENT = $00000002;
|
|
{$EXTERNALSYM PRF_NONCLIENT}
|
|
PRF_CLIENT = $00000004;
|
|
{$EXTERNALSYM PRF_CLIENT}
|
|
PRF_ERASEBKGND = $00000008;
|
|
{$EXTERNALSYM PRF_ERASEBKGND}
|
|
PRF_CHILDREN = $00000010;
|
|
{$EXTERNALSYM PRF_CHILDREN}
|
|
PRF_OWNED = $00000020;
|
|
{$EXTERNALSYM PRF_OWNED}
|
|
|
|
// 3D border styles//
|
|
|
|
BDR_RAISEDOUTER = $0001;
|
|
{$EXTERNALSYM BDR_RAISEDOUTER}
|
|
BDR_SUNKENOUTER = $0002;
|
|
{$EXTERNALSYM BDR_SUNKENOUTER}
|
|
BDR_RAISEDINNER = $0004;
|
|
{$EXTERNALSYM BDR_RAISEDINNER}
|
|
BDR_SUNKENINNER = $0008;
|
|
{$EXTERNALSYM BDR_SUNKENINNER}
|
|
|
|
BDR_OUTER = BDR_RAISEDOUTER or BDR_SUNKENOUTER;
|
|
{$EXTERNALSYM BDR_OUTER}
|
|
BDR_INNER = BDR_RAISEDINNER or BDR_SUNKENINNER;
|
|
{$EXTERNALSYM BDR_INNER}
|
|
BDR_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
|
|
{$EXTERNALSYM BDR_RAISED}
|
|
BDR_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
|
|
{$EXTERNALSYM BDR_SUNKEN}
|
|
|
|
EDGE_RAISED = BDR_RAISEDOUTER or BDR_RAISEDINNER;
|
|
{$EXTERNALSYM EDGE_RAISED}
|
|
EDGE_SUNKEN = BDR_SUNKENOUTER or BDR_SUNKENINNER;
|
|
{$EXTERNALSYM EDGE_SUNKEN}
|
|
EDGE_ETCHED = BDR_SUNKENOUTER or BDR_RAISEDINNER;
|
|
{$EXTERNALSYM EDGE_ETCHED}
|
|
EDGE_BUMP = BDR_RAISEDOUTER or BDR_SUNKENINNER;
|
|
{$EXTERNALSYM EDGE_BUMP}
|
|
|
|
// Border flags//
|
|
|
|
BF_LEFT = $0001;
|
|
{$EXTERNALSYM BF_LEFT}
|
|
BF_TOP = $0002;
|
|
{$EXTERNALSYM BF_TOP}
|
|
BF_RIGHT = $0004;
|
|
{$EXTERNALSYM BF_RIGHT}
|
|
BF_BOTTOM = $0008;
|
|
{$EXTERNALSYM BF_BOTTOM}
|
|
|
|
BF_TOPLEFT = BF_TOP or BF_LEFT;
|
|
{$EXTERNALSYM BF_TOPLEFT}
|
|
BF_TOPRIGHT = BF_TOP or BF_RIGHT;
|
|
{$EXTERNALSYM BF_TOPRIGHT}
|
|
BF_BOTTOMLEFT = BF_BOTTOM or BF_LEFT;
|
|
{$EXTERNALSYM BF_BOTTOMLEFT}
|
|
BF_BOTTOMRIGHT = BF_BOTTOM or BF_RIGHT;
|
|
{$EXTERNALSYM BF_BOTTOMRIGHT}
|
|
BF_RECT = BF_LEFT or BF_TOP or BF_RIGHT or BF_BOTTOM;
|
|
{$EXTERNALSYM BF_RECT}
|
|
|
|
BF_DIAGONAL = $0010;
|
|
{$EXTERNALSYM BF_DIAGONAL}
|
|
|
|
// For diagonal lines, the BF_RECT flags specify the end point of the
|
|
// vector bounded by the rectangle parameter.
|
|
|
|
BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL or BF_TOP or BF_RIGHT;
|
|
{$EXTERNALSYM BF_DIAGONAL_ENDTOPRIGHT}
|
|
BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL or BF_TOP or BF_LEFT;
|
|
{$EXTERNALSYM BF_DIAGONAL_ENDTOPLEFT}
|
|
BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL or BF_BOTTOM or BF_LEFT;
|
|
{$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMLEFT}
|
|
BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL or BF_BOTTOM or BF_RIGHT;
|
|
{$EXTERNALSYM BF_DIAGONAL_ENDBOTTOMRIGHT}
|
|
|
|
BF_MIDDLE = $0800; // Fill in the middle
|
|
{$EXTERNALSYM BF_MIDDLE}
|
|
BF_SOFT = $1000; // For softer buttons
|
|
{$EXTERNALSYM BF_SOFT}
|
|
BF_ADJUST = $2000; // Calculate the space left over
|
|
{$EXTERNALSYM BF_ADJUST}
|
|
BF_FLAT = $4000; // For flat rather than 3D borders
|
|
{$EXTERNALSYM BF_FLAT}
|
|
BF_MONO = $8000; // For monochrome borders
|
|
{$EXTERNALSYM BF_MONO}
|
|
|
|
function DrawEdge(hdc: HDC; var qrc: RECT; edge, grfFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawEdge}
|
|
|
|
// flags for DrawFrameControl//
|
|
|
|
const
|
|
DFC_CAPTION = 1;
|
|
{$EXTERNALSYM DFC_CAPTION}
|
|
DFC_MENU = 2;
|
|
{$EXTERNALSYM DFC_MENU}
|
|
DFC_SCROLL = 3;
|
|
{$EXTERNALSYM DFC_SCROLL}
|
|
DFC_BUTTON = 4;
|
|
{$EXTERNALSYM DFC_BUTTON}
|
|
DFC_POPUPMENU = 5;
|
|
{$EXTERNALSYM DFC_POPUPMENU}
|
|
|
|
DFCS_CAPTIONCLOSE = $0000;
|
|
{$EXTERNALSYM DFCS_CAPTIONCLOSE}
|
|
DFCS_CAPTIONMIN = $0001;
|
|
{$EXTERNALSYM DFCS_CAPTIONMIN}
|
|
DFCS_CAPTIONMAX = $0002;
|
|
{$EXTERNALSYM DFCS_CAPTIONMAX}
|
|
DFCS_CAPTIONRESTORE = $0003;
|
|
{$EXTERNALSYM DFCS_CAPTIONRESTORE}
|
|
DFCS_CAPTIONHELP = $0004;
|
|
{$EXTERNALSYM DFCS_CAPTIONHELP}
|
|
|
|
DFCS_MENUARROW = $0000;
|
|
{$EXTERNALSYM DFCS_MENUARROW}
|
|
DFCS_MENUCHECK = $0001;
|
|
{$EXTERNALSYM DFCS_MENUCHECK}
|
|
DFCS_MENUBULLET = $0002;
|
|
{$EXTERNALSYM DFCS_MENUBULLET}
|
|
DFCS_MENUARROWRIGHT = $0004;
|
|
{$EXTERNALSYM DFCS_MENUARROWRIGHT}
|
|
DFCS_SCROLLUP = $0000;
|
|
{$EXTERNALSYM DFCS_SCROLLUP}
|
|
DFCS_SCROLLDOWN = $0001;
|
|
{$EXTERNALSYM DFCS_SCROLLDOWN}
|
|
DFCS_SCROLLLEFT = $0002;
|
|
{$EXTERNALSYM DFCS_SCROLLLEFT}
|
|
DFCS_SCROLLRIGHT = $0003;
|
|
{$EXTERNALSYM DFCS_SCROLLRIGHT}
|
|
DFCS_SCROLLCOMBOBOX = $0005;
|
|
{$EXTERNALSYM DFCS_SCROLLCOMBOBOX}
|
|
DFCS_SCROLLSIZEGRIP = $0008;
|
|
{$EXTERNALSYM DFCS_SCROLLSIZEGRIP}
|
|
DFCS_SCROLLSIZEGRIPRIGHT = $0010;
|
|
{$EXTERNALSYM DFCS_SCROLLSIZEGRIPRIGHT}
|
|
|
|
DFCS_BUTTONCHECK = $0000;
|
|
{$EXTERNALSYM DFCS_BUTTONCHECK}
|
|
DFCS_BUTTONRADIOIMAGE = $0001;
|
|
{$EXTERNALSYM DFCS_BUTTONRADIOIMAGE}
|
|
DFCS_BUTTONRADIOMASK = $0002;
|
|
{$EXTERNALSYM DFCS_BUTTONRADIOMASK}
|
|
DFCS_BUTTONRADIO = $0004;
|
|
{$EXTERNALSYM DFCS_BUTTONRADIO}
|
|
DFCS_BUTTON3STATE = $0008;
|
|
{$EXTERNALSYM DFCS_BUTTON3STATE}
|
|
DFCS_BUTTONPUSH = $0010;
|
|
{$EXTERNALSYM DFCS_BUTTONPUSH}
|
|
|
|
DFCS_INACTIVE = $0100;
|
|
{$EXTERNALSYM DFCS_INACTIVE}
|
|
DFCS_PUSHED = $0200;
|
|
{$EXTERNALSYM DFCS_PUSHED}
|
|
DFCS_CHECKED = $0400;
|
|
{$EXTERNALSYM DFCS_CHECKED}
|
|
|
|
DFCS_TRANSPARENT = $0800;
|
|
{$EXTERNALSYM DFCS_TRANSPARENT}
|
|
DFCS_HOT = $1000;
|
|
{$EXTERNALSYM DFCS_HOT}
|
|
|
|
DFCS_ADJUSTRECT = $2000;
|
|
{$EXTERNALSYM DFCS_ADJUSTRECT}
|
|
DFCS_FLAT = $4000;
|
|
{$EXTERNALSYM DFCS_FLAT}
|
|
DFCS_MONO = $8000;
|
|
{$EXTERNALSYM DFCS_MONO}
|
|
|
|
function DrawFrameControl(hdc: HDC; const lprc: RECT; uType, uState: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawFrameControl}
|
|
|
|
// flags for DrawCaption//
|
|
|
|
const
|
|
DC_ACTIVE = $0001;
|
|
{$EXTERNALSYM DC_ACTIVE}
|
|
DC_SMALLCAP = $0002;
|
|
{$EXTERNALSYM DC_SMALLCAP}
|
|
DC_ICON = $0004;
|
|
{$EXTERNALSYM DC_ICON}
|
|
DC_TEXT = $0008;
|
|
{$EXTERNALSYM DC_TEXT}
|
|
DC_INBUTTON = $0010;
|
|
{$EXTERNALSYM DC_INBUTTON}
|
|
DC_GRADIENT = $0020;
|
|
{$EXTERNALSYM DC_GRADIENT}
|
|
DC_BUTTONS = $1000;
|
|
{$EXTERNALSYM DC_BUTTONS}
|
|
|
|
function DrawCaption(hwnd: HWND; hdc: HDC; const lprc: RECT; uFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawCaption}
|
|
|
|
const
|
|
IDANI_OPEN = 1;
|
|
{$EXTERNALSYM IDANI_OPEN}
|
|
IDANI_CAPTION = 3;
|
|
{$EXTERNALSYM IDANI_CAPTION}
|
|
|
|
function DrawAnimatedRects(hwnd: HWND; idAni: Integer; const lprcFrom, lprcTo: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawAnimatedRects}
|
|
|
|
//
|
|
// Predefined Clipboard Formats
|
|
//
|
|
|
|
const
|
|
CF_TEXT = 1;
|
|
{$EXTERNALSYM CF_TEXT}
|
|
CF_BITMAP = 2;
|
|
{$EXTERNALSYM CF_BITMAP}
|
|
CF_METAFILEPICT = 3;
|
|
{$EXTERNALSYM CF_METAFILEPICT}
|
|
CF_SYLK = 4;
|
|
{$EXTERNALSYM CF_SYLK}
|
|
CF_DIF = 5;
|
|
{$EXTERNALSYM CF_DIF}
|
|
CF_TIFF = 6;
|
|
{$EXTERNALSYM CF_TIFF}
|
|
CF_OEMTEXT = 7;
|
|
{$EXTERNALSYM CF_OEMTEXT}
|
|
CF_DIB = 8;
|
|
{$EXTERNALSYM CF_DIB}
|
|
CF_PALETTE = 9;
|
|
{$EXTERNALSYM CF_PALETTE}
|
|
CF_PENDATA = 10;
|
|
{$EXTERNALSYM CF_PENDATA}
|
|
CF_RIFF = 11;
|
|
{$EXTERNALSYM CF_RIFF}
|
|
CF_WAVE = 12;
|
|
{$EXTERNALSYM CF_WAVE}
|
|
CF_UNICODETEXT = 13;
|
|
{$EXTERNALSYM CF_UNICODETEXT}
|
|
CF_ENHMETAFILE = 14;
|
|
{$EXTERNALSYM CF_ENHMETAFILE}
|
|
CF_HDROP = 15;
|
|
{$EXTERNALSYM CF_HDROP}
|
|
CF_LOCALE = 16;
|
|
{$EXTERNALSYM CF_LOCALE}
|
|
CF_DIBV5 = 17;
|
|
{$EXTERNALSYM CF_DIBV5}
|
|
|
|
{$IFDEF WIN98ME_UP}
|
|
CF_MAX = 18;
|
|
{$EXTERNALSYM CF_MAX}
|
|
{$ELSE}
|
|
CF_MAX = 17;
|
|
{$EXTERNALSYM CF_MAX}
|
|
{$ENDIF WIN98ME_UP}
|
|
|
|
CF_OWNERDISPLAY = $0080;
|
|
{$EXTERNALSYM CF_OWNERDISPLAY}
|
|
CF_DSPTEXT = $0081;
|
|
{$EXTERNALSYM CF_DSPTEXT}
|
|
CF_DSPBITMAP = $0082;
|
|
{$EXTERNALSYM CF_DSPBITMAP}
|
|
CF_DSPMETAFILEPICT = $0083;
|
|
{$EXTERNALSYM CF_DSPMETAFILEPICT}
|
|
CF_DSPENHMETAFILE = $008E;
|
|
{$EXTERNALSYM CF_DSPENHMETAFILE}
|
|
|
|
//
|
|
// "Private" formats don't get GlobalFree()'d
|
|
//
|
|
|
|
CF_PRIVATEFIRST = $0200;
|
|
{$EXTERNALSYM CF_PRIVATEFIRST}
|
|
CF_PRIVATELAST = $02FF;
|
|
{$EXTERNALSYM CF_PRIVATELAST}
|
|
|
|
//
|
|
// "GDIOBJ" formats do get DeleteObject()'d
|
|
//
|
|
|
|
CF_GDIOBJFIRST = $0300;
|
|
{$EXTERNALSYM CF_GDIOBJFIRST}
|
|
CF_GDIOBJLAST = $03FF;
|
|
{$EXTERNALSYM CF_GDIOBJLAST}
|
|
|
|
//
|
|
// Defines for the fVirt field of the Accelerator table structure.
|
|
//
|
|
|
|
FVIRTKEY = TRUE; // Assumed to be == TRUE
|
|
{$EXTERNALSYM FVIRTKEY}
|
|
FNOINVERT = $02;
|
|
{$EXTERNALSYM FNOINVERT}
|
|
FSHIFT = $04;
|
|
{$EXTERNALSYM FSHIFT}
|
|
FCONTROL = $08;
|
|
{$EXTERNALSYM FCONTROL}
|
|
FALT = $10;
|
|
{$EXTERNALSYM FALT}
|
|
|
|
type
|
|
LPACCEL = ^ACCEL;
|
|
{$EXTERNALSYM LPACCEL}
|
|
tagACCEL = record
|
|
fVirt: BYTE; // Also called the flags field//
|
|
key: WORD;
|
|
cmd: WORD;
|
|
end;
|
|
{$EXTERNALSYM tagACCEL}
|
|
ACCEL = tagACCEL;
|
|
{$EXTERNALSYM ACCEL}
|
|
TAccel = ACCEL;
|
|
PAccel = LPACCEL;
|
|
|
|
LPPAINTSTRUCT = ^PAINTSTRUCT;
|
|
{$EXTERNALSYM LPPAINTSTRUCT}
|
|
tagPAINTSTRUCT = record
|
|
hdc: HDC;
|
|
fErase: BOOL;
|
|
rcPaint: RECT;
|
|
fRestore: BOOL;
|
|
fIncUpdate: BOOL;
|
|
rgbReserved: array [0..31] of BYTE;
|
|
end;
|
|
{$EXTERNALSYM tagPAINTSTRUCT}
|
|
PAINTSTRUCT = tagPAINTSTRUCT;
|
|
{$EXTERNALSYM PAINTSTRUCT}
|
|
NPPAINTSTRUCT = ^PAINTSTRUCT;
|
|
{$EXTERNALSYM NPPAINTSTRUCT}
|
|
TPaintStruct = PAINTSTRUCT;
|
|
PPaintStruct = LPPAINTSTRUCT;
|
|
|
|
LPCREATESTRUCTA = ^CREATESTRUCTA;
|
|
{$EXTERNALSYM LPCREATESTRUCTA}
|
|
tagCREATESTRUCTA = record
|
|
lpCreateParams: LPVOID;
|
|
hInstance: HINST;
|
|
hMenu: HMENU;
|
|
hwndParent: HWND;
|
|
cy: Integer;
|
|
cx: Integer;
|
|
y: Integer;
|
|
x: Integer;
|
|
style: LONG;
|
|
lpszName: LPCSTR;
|
|
lpszClass: LPCSTR;
|
|
dwExStyle: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagCREATESTRUCTA}
|
|
CREATESTRUCTA = tagCREATESTRUCTA;
|
|
{$EXTERNALSYM CREATESTRUCTA}
|
|
TCreateStructA = CREATESTRUCTA;
|
|
PCreateStructA = LPCREATESTRUCTA;
|
|
|
|
LPCREATESTRUCTW = ^CREATESTRUCTW;
|
|
{$EXTERNALSYM LPCREATESTRUCTW}
|
|
tagCREATESTRUCTW = record
|
|
lpCreateParams: LPVOID;
|
|
hInstance: HINST;
|
|
hMenu: HMENU;
|
|
hwndParent: HWND;
|
|
cy: Integer;
|
|
cx: Integer;
|
|
y: Integer;
|
|
x: Integer;
|
|
style: LONG;
|
|
lpszName: LPCWSTR;
|
|
lpszClass: LPCWSTR;
|
|
dwExStyle: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagCREATESTRUCTW}
|
|
CREATESTRUCTW = tagCREATESTRUCTW;
|
|
{$EXTERNALSYM CREATESTRUCTW}
|
|
TCreateStructW = CREATESTRUCTW;
|
|
PCreateStructW = LPCREATESTRUCTW;
|
|
|
|
{$IFDEF UNICODE}
|
|
CREATESTRUCT = CREATESTRUCTW;
|
|
{$EXTERNALSYM CREATESTRUCT}
|
|
LPCREATESTRUCT = LPCREATESTRUCTW;
|
|
{$EXTERNALSYM LPCREATESTRUCT}
|
|
TCreateStruct = TCreateStructW;
|
|
PCreateStruct = PCreateStructW;
|
|
{$ELSE}
|
|
CREATESTRUCT = CREATESTRUCTA;
|
|
{$EXTERNALSYM CREATESTRUCT}
|
|
LPCREATESTRUCT = LPCREATESTRUCTA;
|
|
{$EXTERNALSYM LPCREATESTRUCT}
|
|
TCreateStruct = TCreateStructA;
|
|
PCreateStruct = PCreateStructA;
|
|
{$ENDIF UNICODE}
|
|
|
|
//
|
|
// HCBT_CREATEWND parameters pointed to by lParam
|
|
//
|
|
|
|
type
|
|
LPCBT_CREATEWNDA = ^CBT_CREATEWNDA;
|
|
{$EXTERNALSYM LPCBT_CREATEWNDA}
|
|
tagCBT_CREATEWNDA = record
|
|
lpcs: LPCREATESTRUCTA;
|
|
hwndInsertAfter: HWND;
|
|
end;
|
|
{$EXTERNALSYM tagCBT_CREATEWNDA}
|
|
CBT_CREATEWNDA = tagCBT_CREATEWNDA;
|
|
{$EXTERNALSYM CBT_CREATEWNDA}
|
|
TCbtCreateWndA = CBT_CREATEWNDA;
|
|
PCbtCreateWndA = LPCBT_CREATEWNDA;
|
|
|
|
//
|
|
// HCBT_CREATEWND parameters pointed to by lParam
|
|
//
|
|
|
|
LPCBT_CREATEWNDW = ^CBT_CREATEWNDW;
|
|
{$EXTERNALSYM LPCBT_CREATEWNDW}
|
|
tagCBT_CREATEWNDW = record
|
|
lpcs: LPCREATESTRUCTW;
|
|
hwndInsertAfter: HWND;
|
|
end;
|
|
{$EXTERNALSYM tagCBT_CREATEWNDW}
|
|
CBT_CREATEWNDW = tagCBT_CREATEWNDW;
|
|
{$EXTERNALSYM CBT_CREATEWNDW}
|
|
TCbtCreateWndW = CBT_CREATEWNDW;
|
|
PCbtCreateWndW = LPCBT_CREATEWNDW;
|
|
|
|
{$IFDEF UNICODE}
|
|
CBT_CREATEWND = CBT_CREATEWNDW;
|
|
{$EXTERNALSYM CBT_CREATEWND}
|
|
LPCBT_CREATEWND = LPCBT_CREATEWNDW;
|
|
{$EXTERNALSYM LPCBT_CREATEWND}
|
|
{$ELSE}
|
|
CBT_CREATEWND = CBT_CREATEWNDA;
|
|
{$EXTERNALSYM CBT_CREATEWND}
|
|
LPCBT_CREATEWND = LPCBT_CREATEWNDA;
|
|
{$EXTERNALSYM LPCBT_CREATEWND}
|
|
{$ENDIF UNICODE}
|
|
|
|
LPWINDOWPLACEMENT = ^WINDOWPLACEMENT;
|
|
{$EXTERNALSYM LPWINDOWPLACEMENT}
|
|
tagWINDOWPLACEMENT = record
|
|
length: UINT;
|
|
flags: UINT;
|
|
showCmd: UINT;
|
|
ptMinPosition: POINT;
|
|
ptMaxPosition: POINT;
|
|
rcNormalPosition: RECT;
|
|
end;
|
|
{$EXTERNALSYM tagWINDOWPLACEMENT}
|
|
WINDOWPLACEMENT = tagWINDOWPLACEMENT;
|
|
{$EXTERNALSYM WINDOWPLACEMENT}
|
|
TWindowPlacement = WINDOWPLACEMENT;
|
|
PWindowPlacement = LPWINDOWPLACEMENT;
|
|
|
|
const
|
|
WPF_SETMINPOSITION = $0001;
|
|
{$EXTERNALSYM WPF_SETMINPOSITION}
|
|
WPF_RESTORETOMAXIMIZED = $0002;
|
|
{$EXTERNALSYM WPF_RESTORETOMAXIMIZED}
|
|
WPF_ASYNCWINDOWPLACEMENT = $0004;
|
|
{$EXTERNALSYM WPF_ASYNCWINDOWPLACEMENT}
|
|
|
|
type
|
|
LPNMHDR = ^NMHDR;
|
|
{$EXTERNALSYM LPNMHDR}
|
|
tagNMHDR = record
|
|
hwndFrom: HWND;
|
|
idFrom: UINT_PTR;
|
|
code: UINT; // NM_ code
|
|
end;
|
|
{$EXTERNALSYM tagNMHDR}
|
|
NMHDR = tagNMHDR;
|
|
{$EXTERNALSYM NMHDR}
|
|
TNmHdr = NMHDR;
|
|
PNmHdr = LPNMHDR;
|
|
|
|
LPSTYLESTRUCT = ^STYLESTRUCT;
|
|
{$EXTERNALSYM LPSTYLESTRUCT}
|
|
tagSTYLESTRUCT = record
|
|
styleOld: DWORD;
|
|
styleNew: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagSTYLESTRUCT}
|
|
STYLESTRUCT = tagSTYLESTRUCT;
|
|
{$EXTERNALSYM STYLESTRUCT}
|
|
TStyleStruct = STYLESTRUCT;
|
|
PStyleStruct = LPSTYLESTRUCT;
|
|
|
|
//
|
|
// Owner draw control types
|
|
//
|
|
|
|
const
|
|
ODT_MENU = 1;
|
|
{$EXTERNALSYM ODT_MENU}
|
|
ODT_LISTBOX = 2;
|
|
{$EXTERNALSYM ODT_LISTBOX}
|
|
ODT_COMBOBOX = 3;
|
|
{$EXTERNALSYM ODT_COMBOBOX}
|
|
ODT_BUTTON = 4;
|
|
{$EXTERNALSYM ODT_BUTTON}
|
|
ODT_STATIC = 5;
|
|
{$EXTERNALSYM ODT_STATIC}
|
|
|
|
//
|
|
// Owner draw actions
|
|
//
|
|
|
|
ODA_DRAWENTIRE = $0001;
|
|
{$EXTERNALSYM ODA_DRAWENTIRE}
|
|
ODA_SELECT = $0002;
|
|
{$EXTERNALSYM ODA_SELECT}
|
|
ODA_FOCUS = $0004;
|
|
{$EXTERNALSYM ODA_FOCUS}
|
|
|
|
//
|
|
// Owner draw state
|
|
//
|
|
|
|
ODS_SELECTED = $0001;
|
|
{$EXTERNALSYM ODS_SELECTED}
|
|
ODS_GRAYED = $0002;
|
|
{$EXTERNALSYM ODS_GRAYED}
|
|
ODS_DISABLED = $0004;
|
|
{$EXTERNALSYM ODS_DISABLED}
|
|
ODS_CHECKED = $0008;
|
|
{$EXTERNALSYM ODS_CHECKED}
|
|
ODS_FOCUS = $0010;
|
|
{$EXTERNALSYM ODS_FOCUS}
|
|
ODS_DEFAULT = $0020;
|
|
{$EXTERNALSYM ODS_DEFAULT}
|
|
ODS_COMBOBOXEDIT = $1000;
|
|
{$EXTERNALSYM ODS_COMBOBOXEDIT}
|
|
ODS_HOTLIGHT = $0040;
|
|
{$EXTERNALSYM ODS_HOTLIGHT}
|
|
ODS_INACTIVE = $0080;
|
|
{$EXTERNALSYM ODS_INACTIVE}
|
|
ODS_NOACCEL = $0100;
|
|
{$EXTERNALSYM ODS_NOACCEL}
|
|
ODS_NOFOCUSRECT = $0200;
|
|
{$EXTERNALSYM ODS_NOFOCUSRECT}
|
|
|
|
//
|
|
// MEASUREITEMSTRUCT for ownerdraw
|
|
//
|
|
|
|
type
|
|
LPMEASUREITEMSTRUCT = ^MEASUREITEMSTRUCT;
|
|
{$EXTERNALSYM LPMEASUREITEMSTRUCT}
|
|
tagMEASUREITEMSTRUCT = record
|
|
CtlType: UINT;
|
|
CtlID: UINT;
|
|
itemID: UINT;
|
|
itemWidth: UINT;
|
|
itemHeight: UINT;
|
|
itemData: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM tagMEASUREITEMSTRUCT}
|
|
MEASUREITEMSTRUCT = tagMEASUREITEMSTRUCT;
|
|
{$EXTERNALSYM MEASUREITEMSTRUCT}
|
|
TMeasureItemStruct = MEASUREITEMSTRUCT;
|
|
PMeasureItemStruct = LPMEASUREITEMSTRUCT;
|
|
|
|
//
|
|
// DRAWITEMSTRUCT for ownerdraw
|
|
//
|
|
|
|
LPDRAWITEMSTRUCT = ^DRAWITEMSTRUCT;
|
|
{$EXTERNALSYM LPDRAWITEMSTRUCT}
|
|
tagDRAWITEMSTRUCT = record
|
|
CtlType: UINT;
|
|
CtlID: UINT;
|
|
itemID: UINT;
|
|
itemAction: UINT;
|
|
itemState: UINT;
|
|
hwndItem: HWND;
|
|
hDC: HDC;
|
|
rcItem: RECT;
|
|
itemData: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM tagDRAWITEMSTRUCT}
|
|
DRAWITEMSTRUCT = tagDRAWITEMSTRUCT;
|
|
{$EXTERNALSYM DRAWITEMSTRUCT}
|
|
TDrawItemStruct = DRAWITEMSTRUCT;
|
|
PDrawItemStruct = LPDRAWITEMSTRUCT;
|
|
|
|
//
|
|
// DELETEITEMSTRUCT for ownerdraw
|
|
//
|
|
|
|
LPDELETEITEMSTRUCT = ^DELETEITEMSTRUCT;
|
|
{$EXTERNALSYM LPDELETEITEMSTRUCT}
|
|
tagDELETEITEMSTRUCT = record
|
|
CtlType: UINT;
|
|
CtlID: UINT;
|
|
itemID: UINT;
|
|
hwndItem: HWND;
|
|
itemData: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM tagDELETEITEMSTRUCT}
|
|
DELETEITEMSTRUCT = tagDELETEITEMSTRUCT;
|
|
{$EXTERNALSYM DELETEITEMSTRUCT}
|
|
TDeleteItemStruct = DELETEITEMSTRUCT;
|
|
PDeleteItemStruct = LPDELETEITEMSTRUCT;
|
|
|
|
//
|
|
// COMPAREITEMSTUCT for ownerdraw sorting
|
|
//
|
|
|
|
LPCOMPAREITEMSTRUCT = ^COMPAREITEMSTRUCT;
|
|
{$EXTERNALSYM LPCOMPAREITEMSTRUCT}
|
|
tagCOMPAREITEMSTRUCT = record
|
|
CtlType: UINT;
|
|
CtlID: UINT;
|
|
hwndItem: HWND;
|
|
itemID1: UINT;
|
|
itemData1: ULONG_PTR;
|
|
itemID2: UINT;
|
|
itemData2: ULONG_PTR;
|
|
dwLocaleId: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagCOMPAREITEMSTRUCT}
|
|
COMPAREITEMSTRUCT = tagCOMPAREITEMSTRUCT;
|
|
{$EXTERNALSYM COMPAREITEMSTRUCT}
|
|
TCompareItemStruct = COMPAREITEMSTRUCT;
|
|
PCompareItemStruct = LPCOMPAREITEMSTRUCT;
|
|
|
|
//
|
|
// Message Function Templates
|
|
//
|
|
|
|
function GetMessageA(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMessageA}
|
|
function GetMessageW(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMessageW}
|
|
function GetMessage(lpMsg: LPMSG; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMessage}
|
|
|
|
function TranslateMessage(lpMsg: LPMSG): BOOL; stdcall;
|
|
{$EXTERNALSYM TranslateMessage}
|
|
|
|
function DispatchMessageA(lpMsg: LPMSG): LRESULT; stdcall;
|
|
{$EXTERNALSYM DispatchMessageA}
|
|
function DispatchMessageW(lpMsg: LPMSG): LRESULT; stdcall;
|
|
{$EXTERNALSYM DispatchMessageW}
|
|
function DispatchMessage(lpMsg: LPMSG): LRESULT; stdcall;
|
|
{$EXTERNALSYM DispatchMessage}
|
|
|
|
function SetMessageQueue(cMessagesMax: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMessageQueue}
|
|
|
|
function PeekMessageA(var lpMsg: MSG; hWnd: HWND;
|
|
wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM PeekMessageA}
|
|
function PeekMessageW(var lpMsg: MSG; hWnd: HWND;
|
|
wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM PeekMessageW}
|
|
function PeekMessage(var lpMsg: MSG; hWnd: HWND;
|
|
wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM PeekMessage}
|
|
|
|
//
|
|
// Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
|
|
//
|
|
|
|
const
|
|
QS_KEY = $0001;
|
|
{$EXTERNALSYM QS_KEY}
|
|
QS_MOUSEMOVE = $0002;
|
|
{$EXTERNALSYM QS_MOUSEMOVE}
|
|
QS_MOUSEBUTTON = $0004;
|
|
{$EXTERNALSYM QS_MOUSEBUTTON}
|
|
QS_POSTMESSAGE = $0008;
|
|
{$EXTERNALSYM QS_POSTMESSAGE}
|
|
QS_TIMER = $0010;
|
|
{$EXTERNALSYM QS_TIMER}
|
|
QS_PAINT = $0020;
|
|
{$EXTERNALSYM QS_PAINT}
|
|
QS_SENDMESSAGE = $0040;
|
|
{$EXTERNALSYM QS_SENDMESSAGE}
|
|
QS_HOTKEY = $0080;
|
|
{$EXTERNALSYM QS_HOTKEY}
|
|
QS_ALLPOSTMESSAGE = $0100;
|
|
{$EXTERNALSYM QS_ALLPOSTMESSAGE}
|
|
QS_RAWINPUT = $0400;
|
|
{$EXTERNALSYM QS_RAWINPUT}
|
|
|
|
QS_MOUSE = QS_MOUSEMOVE or QS_MOUSEBUTTON;
|
|
{$EXTERNALSYM QS_MOUSE}
|
|
|
|
QS_INPUT = QS_MOUSE or QS_KEY {$IFDEF WINXP_UP} or QS_RAWINPUT {$ENDIF};
|
|
{$EXTERNALSYM QS_INPUT}
|
|
|
|
QS_ALLEVENTS = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY;
|
|
{$EXTERNALSYM QS_ALLEVENTS}
|
|
|
|
QS_ALLINPUT = (QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or
|
|
QS_HOTKEY or QS_SENDMESSAGE);
|
|
{$EXTERNALSYM QS_ALLINPUT}
|
|
|
|
//
|
|
// PeekMessage() Options
|
|
//
|
|
|
|
const
|
|
PM_NOREMOVE = $0000;
|
|
{$EXTERNALSYM PM_NOREMOVE}
|
|
PM_REMOVE = $0001;
|
|
{$EXTERNALSYM PM_REMOVE}
|
|
PM_NOYIELD = $0002;
|
|
{$EXTERNALSYM PM_NOYIELD}
|
|
PM_QS_INPUT = QS_INPUT shl 16;
|
|
{$EXTERNALSYM PM_QS_INPUT}
|
|
PM_QS_POSTMESSAGE = (QS_POSTMESSAGE or QS_HOTKEY or QS_TIMER) shl 16;
|
|
{$EXTERNALSYM PM_QS_POSTMESSAGE}
|
|
PM_QS_PAINT = QS_PAINT shl 16;
|
|
{$EXTERNALSYM PM_QS_PAINT}
|
|
PM_QS_SENDMESSAGE = QS_SENDMESSAGE shl 16;
|
|
{$EXTERNALSYM PM_QS_SENDMESSAGE}
|
|
|
|
function RegisterHotKey(hWnd: HWND; id: Integer; fsModifiers, vk: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM RegisterHotKey}
|
|
|
|
function UnregisterHotKey(hWnd: HWND; id: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM UnregisterHotKey}
|
|
|
|
const
|
|
MOD_ALT = $0001;
|
|
{$EXTERNALSYM MOD_ALT}
|
|
MOD_CONTROL = $0002;
|
|
{$EXTERNALSYM MOD_CONTROL}
|
|
MOD_SHIFT = $0004;
|
|
{$EXTERNALSYM MOD_SHIFT}
|
|
MOD_WIN = $0008;
|
|
{$EXTERNALSYM MOD_WIN}
|
|
|
|
IDHOT_SNAPWINDOW = DWORD(-1); // SHIFT-PRINTSCRN
|
|
{$EXTERNALSYM IDHOT_SNAPWINDOW}
|
|
IDHOT_SNAPDESKTOP = DWORD(-2); // PRINTSCRN
|
|
{$EXTERNALSYM IDHOT_SNAPDESKTOP}
|
|
|
|
const
|
|
ENDSESSION_LOGOFF = DWORD($80000000);
|
|
{$EXTERNALSYM ENDSESSION_LOGOFF}
|
|
|
|
EWX_LOGOFF = 0;
|
|
{$EXTERNALSYM EWX_LOGOFF}
|
|
EWX_SHUTDOWN = $00000001;
|
|
{$EXTERNALSYM EWX_SHUTDOWN}
|
|
EWX_REBOOT = $00000002;
|
|
{$EXTERNALSYM EWX_REBOOT}
|
|
EWX_FORCE = $00000004;
|
|
{$EXTERNALSYM EWX_FORCE}
|
|
EWX_POWEROFF = $00000008;
|
|
{$EXTERNALSYM EWX_POWEROFF}
|
|
EWX_FORCEIFHUNG = $00000010;
|
|
{$EXTERNALSYM EWX_FORCEIFHUNG}
|
|
EWX_QUICKRESOLVE = $00000020;
|
|
{$EXTERNALSYM EWX_QUICKRESOLVE}
|
|
EWX_RESTARTAPPS = $00000040;
|
|
{$EXTERNALSYM EWX_RESTARTAPPS}
|
|
|
|
function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
|
|
{$EXTERNALSYM ExitWindows}
|
|
|
|
function ExitWindowsEx(uFlags: UINT; dwReason: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM ExitWindowsEx}
|
|
|
|
function SwapMouseButton(fSwap: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM SwapMouseButton}
|
|
|
|
function GetMessagePos: DWORD; stdcall;
|
|
{$EXTERNALSYM GetMessagePos}
|
|
|
|
function GetMessageTime: LONG; stdcall;
|
|
{$EXTERNALSYM GetMessageTime}
|
|
|
|
function GetMessageExtraInfo: LPARAM; stdcall;
|
|
{$EXTERNALSYM GetMessageExtraInfo}
|
|
|
|
function SetMessageExtraInfo(lParam: LPARAM): LPARAM; stdcall;
|
|
{$EXTERNALSYM SetMessageExtraInfo}
|
|
|
|
function SendMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessageA}
|
|
function SendMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessageW}
|
|
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessage}
|
|
|
|
function SendMessageTimeoutA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessageTimeoutA}
|
|
function SendMessageTimeoutW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessageTimeoutW}
|
|
function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
fuFlags, uTimeout: UINT; var lpdwResult: DWORD_PTR): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendMessageTimeout}
|
|
|
|
function SendNotifyMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM SendNotifyMessageA}
|
|
function SendNotifyMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM SendNotifyMessageW}
|
|
function SendNotifyMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM SendNotifyMessage}
|
|
|
|
function SendMessageCallbackA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SendMessageCallbackA}
|
|
function SendMessageCallbackW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SendMessageCallbackW}
|
|
function SendMessageCallback(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM;
|
|
lpResultCallBack: SENDASYNCPROC; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SendMessageCallback}
|
|
|
|
type
|
|
BSMINFO = record
|
|
cbSize: UINT;
|
|
hdesk: HDESK;
|
|
hwnd: HWND;
|
|
luid: LUID;
|
|
end;
|
|
{$EXTERNALSYM BSMINFO}
|
|
PBSMINFO = ^BSMINFO;
|
|
TBsmInfo = BSMINFO;
|
|
|
|
function BroadcastSystemMessageExA(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
|
|
wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessageExA}
|
|
function BroadcastSystemMessageExW(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
|
|
wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessageExW}
|
|
function BroadcastSystemMessageEx(dwFlags: DWORD; lpwRecipients: LPDWORD; uiMessage: UINT;
|
|
wParam: WPARAM; lParam: LPARAM; pBSMInfo: PBSMINFO): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessageEx}
|
|
|
|
function BroadcastSystemMessageA(dwFlags: DWORD; lpdwRecipients: LPDWORD;
|
|
uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessageA}
|
|
function BroadcastSystemMessageW(dwFlags: DWORD; lpdwRecipients: LPDWORD;
|
|
uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessageW}
|
|
function BroadcastSystemMessage(dwFlags: DWORD; lpdwRecipients: LPDWORD;
|
|
uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
|
|
{$EXTERNALSYM BroadcastSystemMessage}
|
|
|
|
//Broadcast Special Message Recipient list
|
|
|
|
const
|
|
BSM_ALLCOMPONENTS = $00000000;
|
|
{$EXTERNALSYM BSM_ALLCOMPONENTS}
|
|
BSM_VXDS = $00000001;
|
|
{$EXTERNALSYM BSM_VXDS}
|
|
BSM_NETDRIVER = $00000002;
|
|
{$EXTERNALSYM BSM_NETDRIVER}
|
|
BSM_INSTALLABLEDRIVERS = $00000004;
|
|
{$EXTERNALSYM BSM_INSTALLABLEDRIVERS}
|
|
BSM_APPLICATIONS = $00000008;
|
|
{$EXTERNALSYM BSM_APPLICATIONS}
|
|
BSM_ALLDESKTOPS = $00000010;
|
|
{$EXTERNALSYM BSM_ALLDESKTOPS}
|
|
|
|
//Broadcast Special Message Flags
|
|
|
|
BSF_QUERY = $00000001;
|
|
{$EXTERNALSYM BSF_QUERY}
|
|
BSF_IGNORECURRENTTASK = $00000002;
|
|
{$EXTERNALSYM BSF_IGNORECURRENTTASK}
|
|
BSF_FLUSHDISK = $00000004;
|
|
{$EXTERNALSYM BSF_FLUSHDISK}
|
|
BSF_NOHANG = $00000008;
|
|
{$EXTERNALSYM BSF_NOHANG}
|
|
BSF_POSTMESSAGE = $00000010;
|
|
{$EXTERNALSYM BSF_POSTMESSAGE}
|
|
BSF_FORCEIFHUNG = $00000020;
|
|
{$EXTERNALSYM BSF_FORCEIFHUNG}
|
|
BSF_NOTIMEOUTIFNOTHUNG = $00000040;
|
|
{$EXTERNALSYM BSF_NOTIMEOUTIFNOTHUNG}
|
|
BSF_ALLOWSFW = $00000080;
|
|
{$EXTERNALSYM BSF_ALLOWSFW}
|
|
BSF_SENDNOTIFYMESSAGE = $00000100;
|
|
{$EXTERNALSYM BSF_SENDNOTIFYMESSAGE}
|
|
|
|
BSF_RETURNHDESK = $00000200;
|
|
{$EXTERNALSYM BSF_RETURNHDESK}
|
|
BSF_LUID = $00000400;
|
|
{$EXTERNALSYM BSF_LUID}
|
|
|
|
BROADCAST_QUERY_DENY = $424D5144; // Return this value to deny a query.
|
|
{$EXTERNALSYM BROADCAST_QUERY_DENY}
|
|
|
|
// RegisterDeviceNotification
|
|
|
|
type
|
|
HDEVNOTIFY = PVOID;
|
|
{$EXTERNALSYM HDEVNOTIFY}
|
|
PHDEVNOTIFY = ^HDEVNOTIFY;
|
|
{$EXTERNALSYM PHDEVNOTIFY}
|
|
|
|
const
|
|
DEVICE_NOTIFY_WINDOW_HANDLE = $00000000;
|
|
{$EXTERNALSYM DEVICE_NOTIFY_WINDOW_HANDLE}
|
|
DEVICE_NOTIFY_SERVICE_HANDLE = $00000001;
|
|
{$EXTERNALSYM DEVICE_NOTIFY_SERVICE_HANDLE}
|
|
DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = $00000004;
|
|
{$EXTERNALSYM DEVICE_NOTIFY_ALL_INTERFACE_CLASSES}
|
|
|
|
function RegisterDeviceNotificationA(hRecipient: HANDLE; NotificationFilter: LPVOID;
|
|
Flags: DWORD): HDEVNOTIFY; stdcall;
|
|
{$EXTERNALSYM RegisterDeviceNotificationA}
|
|
function RegisterDeviceNotificationW(hRecipient: HANDLE; NotificationFilter: LPVOID;
|
|
Flags: DWORD): HDEVNOTIFY; stdcall;
|
|
{$EXTERNALSYM RegisterDeviceNotificationW}
|
|
function RegisterDeviceNotification(hRecipient: HANDLE; NotificationFilter: LPVOID;
|
|
Flags: DWORD): HDEVNOTIFY; stdcall;
|
|
{$EXTERNALSYM RegisterDeviceNotification}
|
|
|
|
function UnregisterDeviceNotification(Handle: HDEVNOTIFY): BOOL; stdcall;
|
|
{$EXTERNALSYM UnregisterDeviceNotification}
|
|
|
|
function PostMessageA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostMessageA}
|
|
function PostMessageW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostMessageW}
|
|
function PostMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostMessage}
|
|
|
|
function PostThreadMessageA(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostThreadMessageA}
|
|
function PostThreadMessageW(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostThreadMessageW}
|
|
function PostThreadMessage(idThread: DWORD; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM PostThreadMessage}
|
|
|
|
function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
{$EXTERNALSYM PostAppMessageA}
|
|
function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
{$EXTERNALSYM PostAppMessageW}
|
|
function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
{$EXTERNALSYM PostAppMessage}
|
|
|
|
//
|
|
// Special HWND value for use with PostMessage() and SendMessage()
|
|
//
|
|
|
|
const
|
|
HWND_BROADCAST = HWND($ffff);
|
|
{$EXTERNALSYM HWND_BROADCAST}
|
|
|
|
HWND_MESSAGE = HWND(-3);
|
|
{$EXTERNALSYM HWND_MESSAGE}
|
|
|
|
function AttachThreadInput(idAttach, idAttachTo: DWORD; fAttach: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM AttachThreadInput}
|
|
|
|
function ReplyMessage(lResult: LRESULT): BOOL; stdcall;
|
|
{$EXTERNALSYM ReplyMessage}
|
|
|
|
function WaitMessage: BOOL; stdcall;
|
|
{$EXTERNALSYM WaitMessage}
|
|
|
|
function WaitForInputIdle(hProcess: HANDLE; dwMilliseconds: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM WaitForInputIdle}
|
|
|
|
function DefWindowProcA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefWindowProcA}
|
|
function DefWindowProcW(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefWindowProcW}
|
|
function DefWindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefWindowProc}
|
|
|
|
procedure PostQuitMessage(nExitCode: Integer); stdcall;
|
|
{$EXTERNALSYM PostQuitMessage}
|
|
|
|
function CallWindowProcA(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM CallWindowProcA}
|
|
function CallWindowProcW(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM CallWindowProcW}
|
|
function CallWindowProc(lpPrevWndFunc: WNDPROC; hWnd: HWND; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM CallWindowProc}
|
|
|
|
function InSendMessage: BOOL; stdcall;
|
|
{$EXTERNALSYM InSendMessage}
|
|
|
|
function InSendMessageEx(lpReserved: LPVOID): DWORD; stdcall;
|
|
{$EXTERNALSYM InSendMessageEx}
|
|
|
|
//
|
|
// InSendMessageEx return value
|
|
//
|
|
|
|
const
|
|
ISMEX_NOSEND = $00000000;
|
|
{$EXTERNALSYM ISMEX_NOSEND}
|
|
ISMEX_SEND = $00000001;
|
|
{$EXTERNALSYM ISMEX_SEND}
|
|
ISMEX_NOTIFY = $00000002;
|
|
{$EXTERNALSYM ISMEX_NOTIFY}
|
|
ISMEX_CALLBACK = $00000004;
|
|
{$EXTERNALSYM ISMEX_CALLBACK}
|
|
ISMEX_REPLIED = $00000008;
|
|
{$EXTERNALSYM ISMEX_REPLIED}
|
|
|
|
function GetDoubleClickTime: UINT; stdcall;
|
|
{$EXTERNALSYM GetDoubleClickTime}
|
|
|
|
function SetDoubleClickTime(uInterval: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetDoubleClickTime}
|
|
|
|
function RegisterClassA(const lpWndClass: WNDCLASSA): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClassA}
|
|
function RegisterClassW(const lpWndClass: WNDCLASSW): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClassW}
|
|
function RegisterClass(const lpWndClass: WNDCLASS): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClass}
|
|
|
|
function UnregisterClassA(lpClassName: LPCSTR; hInstance: HINST): BOOL; stdcall;
|
|
{$EXTERNALSYM UnregisterClassA}
|
|
function UnregisterClassW(lpClassName: LPCWSTR; hInstance: HINST): BOOL; stdcall;
|
|
{$EXTERNALSYM UnregisterClassW}
|
|
function UnregisterClass(lpClassName: LPCTSTR; hInstance: HINST): BOOL; stdcall;
|
|
{$EXTERNALSYM UnregisterClass}
|
|
|
|
function GetClassInfoA(hInstance: HINST; lpClassName: LPCSTR;
|
|
var lpWndClass: WNDCLASSA): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfoA}
|
|
function GetClassInfoW(hInstance: HINST; lpClassName: LPCWSTR;
|
|
var lpWndClass: WNDCLASSW): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfoW}
|
|
function GetClassInfo(hInstance: HINST; lpClassName: LPCTSTR;
|
|
var lpWndClass: WNDCLASS): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfo}
|
|
|
|
function RegisterClassExA(const lpwcx: WNDCLASSEXA): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClassExA}
|
|
function RegisterClassExW(const lpwcx: WNDCLASSEXW): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClassExW}
|
|
function RegisterClassEx(const lpwcx: WNDCLASSEX): ATOM; stdcall;
|
|
{$EXTERNALSYM RegisterClassEx}
|
|
|
|
function GetClassInfoExA(hinst: HINST; lpszClass: LPCSTR; var lpwcx: WNDCLASSEXA): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfoExA}
|
|
function GetClassInfoExW(hinst: HINST; lpszClass: LPCWSTR; var lpwcx: WNDCLASSEXW): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfoExW}
|
|
function GetClassInfoEx(hinst: HINST; lpszClass: LPCTSTR; var lpwcx: WNDCLASSEX): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClassInfoEx}
|
|
|
|
const
|
|
CW_USEDEFAULT = Integer($80000000);
|
|
{$EXTERNALSYM CW_USEDEFAULT}
|
|
|
|
//
|
|
// Special value for CreateWindow, et al.
|
|
//
|
|
|
|
const
|
|
HWND_DESKTOP = HWND(0);
|
|
{$EXTERNALSYM HWND_DESKTOP}
|
|
|
|
type
|
|
PREGISTERCLASSNAMEW = function(p: LPCWSTR): LongBool; stdcall;
|
|
{$EXTERNALSYM PREGISTERCLASSNAMEW}
|
|
|
|
function CreateWindowExA(dwExStyle: DWORD; lpClassName, lpWindowName: LPCSTR;
|
|
dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
|
|
hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
|
|
{$EXTERNALSYM CreateWindowExA}
|
|
function CreateWindowExW(dwExStyle: DWORD; lpClassName, lpWindowName: LPCWSTR;
|
|
dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
|
|
hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
|
|
{$EXTERNALSYM CreateWindowExW}
|
|
function CreateWindowEx(dwExStyle: DWORD; lpClassName, lpWindowName: LPCTSTR;
|
|
dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
|
|
hMenu: HMENU; hInstance: HINST; lpParam: LPVOID): HWND; stdcall;
|
|
{$EXTERNALSYM CreateWindowEx}
|
|
|
|
function CreateWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
{$EXTERNALSYM CreateWindowA}
|
|
function CreateWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
{$EXTERNALSYM CreateWindowW}
|
|
function CreateWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
{$EXTERNALSYM CreateWindow}
|
|
|
|
function IsWindow(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsWindow}
|
|
|
|
function IsMenu(hMenu: HMENU): BOOL; stdcall;
|
|
{$EXTERNALSYM IsMenu}
|
|
|
|
function IsChild(hWndParent, hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsChild}
|
|
|
|
function DestroyWindow(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyWindow}
|
|
|
|
function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM ShowWindow}
|
|
|
|
function AnimateWindow(hWnd: HWND; dwTime, dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM AnimateWindow}
|
|
|
|
function UpdateLayeredWindow(hWnd: HWND; hdcDst: HDC; pptDst: LPPOINT;
|
|
psize: LPSIZE; hdcSrc: HDC; pptSrc: LPPOINT; crKey: COLORREF;
|
|
pblend: LPBLENDFUNCTION; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM UpdateLayeredWindow}
|
|
|
|
function GetLayeredWindowAttributes(hwnd: HWND; pcrKey: LPCOLORREF; pbAlpha: LPBYTE;
|
|
pdwFlags: LPWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM GetLayeredWindowAttributes}
|
|
|
|
const
|
|
PW_CLIENTONLY = $00000001;
|
|
{$EXTERNALSYM PW_CLIENTONLY}
|
|
|
|
function PrintWindow(hwnd: HWND; hdcBlt: HDC; nFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM PrintWindow}
|
|
|
|
function SetLayeredWindowAttributes(hwnd: HWND; crKey: COLORREF; bAlpha: BYTE;
|
|
dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetLayeredWindowAttributes}
|
|
|
|
const
|
|
LWA_COLORKEY = $00000001;
|
|
{$EXTERNALSYM LWA_COLORKEY}
|
|
LWA_ALPHA = $00000002;
|
|
{$EXTERNALSYM LWA_ALPHA}
|
|
|
|
ULW_COLORKEY = $00000001;
|
|
{$EXTERNALSYM ULW_COLORKEY}
|
|
ULW_ALPHA = $00000002;
|
|
{$EXTERNALSYM ULW_ALPHA}
|
|
ULW_OPAQUE = $00000004;
|
|
{$EXTERNALSYM ULW_OPAQUE}
|
|
|
|
function ShowWindowAsync(hWnd: HWND; nCmdShow: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM ShowWindowAsync}
|
|
|
|
function FlashWindow(hWnd: HWND; bInvert: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM FlashWindow}
|
|
|
|
type
|
|
PFLASH_INFO = ^FLASH_INFO;
|
|
{$EXTERNALSYM PFLASH_INFO}
|
|
FLASH_INFO = record
|
|
cbSize: UINT;
|
|
hwnd: HWND;
|
|
dwFlags: DWORD;
|
|
uCount: UINT;
|
|
dwTimeout: DWORD;
|
|
end;
|
|
{$EXTERNALSYM FLASH_INFO}
|
|
TFlashInfo = FLASH_INFO;
|
|
PFlashInfo = PFLASH_INFO;
|
|
|
|
function FlashWindowEx(var pfwi: FLASH_INFO): BOOL; stdcall;
|
|
{$EXTERNALSYM FlashWindowEx}
|
|
|
|
const
|
|
FLASHW_STOP = 0;
|
|
{$EXTERNALSYM FLASHW_STOP}
|
|
FLASHW_CAPTION = $00000001;
|
|
{$EXTERNALSYM FLASHW_CAPTION}
|
|
FLASHW_TRAY = $00000002;
|
|
{$EXTERNALSYM FLASHW_TRAY}
|
|
FLASHW_ALL = FLASHW_CAPTION or FLASHW_TRAY;
|
|
{$EXTERNALSYM FLASHW_ALL}
|
|
FLASHW_TIMER = $00000004;
|
|
{$EXTERNALSYM FLASHW_TIMER}
|
|
FLASHW_TIMERNOFG = $0000000C;
|
|
{$EXTERNALSYM FLASHW_TIMERNOFG}
|
|
|
|
function ShowOwnedPopups(hWnd: HWND; fShow: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM ShowOwnedPopups}
|
|
|
|
function OpenIcon(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM OpenIcon}
|
|
|
|
function CloseWindow(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM CloseWindow}
|
|
|
|
function MoveWindow(hWnd: HWND; X, Y, nWidth, nHeight: Integer; bRepaint: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM MoveWindow}
|
|
|
|
function SetWindowPos(hWnd, hWndInsertAfter: HWND; X, Y, cx, cy: Integer;
|
|
uFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowPos}
|
|
|
|
function GetWindowPlacement(hWnd: HWND; var lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetWindowPlacement}
|
|
|
|
function SetWindowPlacement(hWnd: HWND; const lpwndpl: WINDOWPLACEMENT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowPlacement}
|
|
|
|
function BeginDeferWindowPos(nNumWindows: Integer): HDWP; stdcall;
|
|
{$EXTERNALSYM BeginDeferWindowPos}
|
|
|
|
function DeferWindowPos(hWinPosInfo: HDWP; hWnd, hWndInsertAfter: HWND;
|
|
x, y, cx, cy: Integer; uFlags: UINT): HDWP; stdcall;
|
|
{$EXTERNALSYM DeferWindowPos}
|
|
|
|
function EndDeferWindowPos(hWinPosInfo: HDWP): BOOL; stdcall;
|
|
{$EXTERNALSYM EndDeferWindowPos}
|
|
|
|
function IsWindowVisible(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsWindowVisible}
|
|
|
|
function IsIconic(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsIconic}
|
|
|
|
function AnyPopup: BOOL; stdcall;
|
|
{$EXTERNALSYM AnyPopup}
|
|
|
|
function BringWindowToTop(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM BringWindowToTop}
|
|
|
|
function IsZoomed(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsZoomed}
|
|
|
|
//
|
|
// SetWindowPos Flags
|
|
//
|
|
|
|
const
|
|
SWP_NOSIZE = $0001;
|
|
{$EXTERNALSYM SWP_NOSIZE}
|
|
SWP_NOMOVE = $0002;
|
|
{$EXTERNALSYM SWP_NOMOVE}
|
|
SWP_NOZORDER = $0004;
|
|
{$EXTERNALSYM SWP_NOZORDER}
|
|
SWP_NOREDRAW = $0008;
|
|
{$EXTERNALSYM SWP_NOREDRAW}
|
|
SWP_NOACTIVATE = $0010;
|
|
{$EXTERNALSYM SWP_NOACTIVATE}
|
|
SWP_FRAMECHANGED = $0020; // The frame changed: send WM_NCCALCSIZE
|
|
{$EXTERNALSYM SWP_FRAMECHANGED}
|
|
SWP_SHOWWINDOW = $0040;
|
|
{$EXTERNALSYM SWP_SHOWWINDOW}
|
|
SWP_HIDEWINDOW = $0080;
|
|
{$EXTERNALSYM SWP_HIDEWINDOW}
|
|
SWP_NOCOPYBITS = $0100;
|
|
{$EXTERNALSYM SWP_NOCOPYBITS}
|
|
SWP_NOOWNERZORDER = $0200; // Don't do owner Z ordering
|
|
{$EXTERNALSYM SWP_NOOWNERZORDER}
|
|
SWP_NOSENDCHANGING = $0400; // Don't send WM_WINDOWPOSCHANGING
|
|
{$EXTERNALSYM SWP_NOSENDCHANGING}
|
|
|
|
SWP_DRAWFRAME = SWP_FRAMECHANGED;
|
|
{$EXTERNALSYM SWP_DRAWFRAME}
|
|
SWP_NOREPOSITION = SWP_NOOWNERZORDER;
|
|
{$EXTERNALSYM SWP_NOREPOSITION}
|
|
|
|
SWP_DEFERERASE = $2000;
|
|
{$EXTERNALSYM SWP_DEFERERASE}
|
|
SWP_ASYNCWINDOWPOS = $4000;
|
|
{$EXTERNALSYM SWP_ASYNCWINDOWPOS}
|
|
|
|
HWND_TOP = HWND(0);
|
|
{$EXTERNALSYM HWND_TOP}
|
|
HWND_BOTTOM = HWND(1);
|
|
{$EXTERNALSYM HWND_BOTTOM}
|
|
HWND_TOPMOST = HWND(-1);
|
|
{$EXTERNALSYM HWND_TOPMOST}
|
|
HWND_NOTOPMOST = HWND(-2);
|
|
{$EXTERNALSYM HWND_NOTOPMOST}
|
|
|
|
//
|
|
// WARNING:
|
|
// The following structures must NOT be DWORD padded because they are
|
|
// followed by strings, etc that do not have to be DWORD aligned.
|
|
//
|
|
|
|
// #include <pshpack2.h>
|
|
|
|
//
|
|
// original NT 32 bit dialog template:
|
|
//
|
|
|
|
type
|
|
DLGTEMPLATE = packed record
|
|
style: DWORD;
|
|
dwExtendedStyle: DWORD;
|
|
cdit: WORD;
|
|
x: short;
|
|
y: short;
|
|
cx: short;
|
|
cy: short;
|
|
end;
|
|
{$EXTERNALSYM DLGTEMPLATE}
|
|
TDlgTemplate = DLGTEMPLATE;
|
|
|
|
LPDLGTEMPLATEA = ^DLGTEMPLATE;
|
|
{$EXTERNALSYM LPDLGTEMPLATEA}
|
|
LPDLGTEMPLATEW = ^DLGTEMPLATE;
|
|
{$EXTERNALSYM LPDLGTEMPLATEW}
|
|
|
|
LPCDLGTEMPLATEA = ^DLGTEMPLATE;
|
|
{$EXTERNALSYM LPCDLGTEMPLATEA}
|
|
LPCDLGTEMPLATEW = ^DLGTEMPLATE;
|
|
{$EXTERNALSYM LPCDLGTEMPLATEW}
|
|
|
|
{$IFDEF UNICODE}
|
|
LPDLGTEMPLATE = LPDLGTEMPLATEW;
|
|
{$EXTERNALSYM LPDLGTEMPLATE}
|
|
LPCDLGTEMPLATE = LPCDLGTEMPLATEW;
|
|
{$EXTERNALSYM LPCDLGTEMPLATE}
|
|
{$ELSE}
|
|
LPDLGTEMPLATE = LPDLGTEMPLATEA;
|
|
{$EXTERNALSYM LPDLGTEMPLATE}
|
|
LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
|
|
{$EXTERNALSYM LPCDLGTEMPLATE}
|
|
{$ENDIF UNICODE}
|
|
|
|
//
|
|
// 32 bit Dialog item template.
|
|
//
|
|
|
|
DLGITEMTEMPLATE = packed record
|
|
style: DWORD;
|
|
dwExtendedStyle: DWORD;
|
|
x: short;
|
|
y: short;
|
|
cx: short;
|
|
cy: short;
|
|
id: WORD;
|
|
end;
|
|
{$EXTERNALSYM DLGITEMTEMPLATE}
|
|
TDlgItemTemplate = DLGITEMTEMPLATE;
|
|
|
|
PDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
|
|
{$EXTERNALSYM PDLGITEMTEMPLATE}
|
|
PDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
|
|
{$EXTERNALSYM PDLGITEMTEMPLATE}
|
|
|
|
LPDLGITEMTEMPLATEA = ^DLGITEMTEMPLATE;
|
|
{$EXTERNALSYM LPDLGITEMTEMPLATE}
|
|
LPDLGITEMTEMPLATEW = ^DLGITEMTEMPLATE;
|
|
{$EXTERNALSYM LPDLGITEMTEMPLATE}
|
|
|
|
{$IFDEF UNICODE}
|
|
PDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
|
|
{$EXTERNALSYM PDLGITEMTEMPLATE}
|
|
LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEW;
|
|
{$EXTERNALSYM LPDLGITEMTEMPLATE}
|
|
{$ELSE}
|
|
PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
|
|
{$EXTERNALSYM PDLGITEMTEMPLATE}
|
|
LPDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
|
|
{$EXTERNALSYM LPDLGITEMTEMPLATE}
|
|
{$ENDIF UNICODE}
|
|
|
|
// #include <poppack.h> // Resume normal packing//
|
|
|
|
function CreateDialogParamA(hInstance: HINST; lpTemplateName: LPCSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogParamA}
|
|
function CreateDialogParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogParamW}
|
|
function CreateDialogParam(hInstance: HINST; lpTemplateName: LPCTSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogParam}
|
|
|
|
function CreateDialogIndirectParamA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogIndirectParamA}
|
|
function CreateDialogIndirectParamW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogIndirectParamW}
|
|
function CreateDialogIndirectParam(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateDialogIndirectParam}
|
|
|
|
function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialogA}
|
|
function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialogW}
|
|
function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialog}
|
|
|
|
function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialogIndirectA}
|
|
function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialogIndirectW}
|
|
function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
{$EXTERNALSYM CreateDialogIndirect}
|
|
|
|
function DialogBoxParamA(hInstance: HINST; lpTemplateName: LPCSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxParamA}
|
|
function DialogBoxParamW(hInstance: HINST; lpTemplateName: LPCWSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxParamW}
|
|
function DialogBoxParam(hInstance: HINST; lpTemplateName: LPCTSTR;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC; dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxParam}
|
|
|
|
function DialogBoxIndirectParamA(hInstance: HINST;
|
|
const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
|
|
dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxIndirectParamA}
|
|
function DialogBoxIndirectParamW(hInstance: HINST;
|
|
const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
|
|
dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxIndirectParamW}
|
|
function DialogBoxIndirectParam(hInstance: HINST;
|
|
const hDialogTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC;
|
|
dwInitParam: LPARAM): INT_PTR; stdcall;
|
|
{$EXTERNALSYM DialogBoxIndirectParam}
|
|
|
|
function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBoxA}
|
|
function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBoxW}
|
|
function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND;
|
|
lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBox}
|
|
|
|
function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBoxIndirectA}
|
|
function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBoxIndirectW}
|
|
function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
{$EXTERNALSYM DialogBoxIndirect}
|
|
|
|
function EndDialog(hDlg: HWND; nResult: INT_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM EndDialog}
|
|
|
|
function GetDlgItem(hDlg: HWND; nIDDlgItem: Integer): HWND; stdcall;
|
|
{$EXTERNALSYM GetDlgItem}
|
|
|
|
function SetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; uValue: UINT; bSigned: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM SetDlgItemInt}
|
|
|
|
function GetDlgItemInt(hDlg: HWND; nIDDlgItem: Integer; lpTranslated: LPBOOL;
|
|
bSigned: BOOL): UINT; stdcall;
|
|
{$EXTERNALSYM GetDlgItemInt}
|
|
|
|
function SetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetDlgItemTextA}
|
|
function SetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetDlgItemTextW}
|
|
function SetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPCTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetDlgItemText}
|
|
|
|
function GetDlgItemTextA(hDlg: HWND; nIDDlgItem: Integer; lpString: LPSTR;
|
|
nMaxCount: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM GetDlgItemTextA}
|
|
function GetDlgItemTextW(hDlg: HWND; nIDDlgItem: Integer; lpString: LPWSTR;
|
|
nMaxCount: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM GetDlgItemTextW}
|
|
function GetDlgItemText(hDlg: HWND; nIDDlgItem: Integer; lpString: LPTSTR;
|
|
nMaxCount: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM GetDlgItemText}
|
|
|
|
function CheckDlgButton(hDlg: HWND; nIDButton: Integer; uCheck: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM CheckDlgButton}
|
|
|
|
function CheckRadioButton(hDlg: HWND; nIDFirstButton, nIDLastButton: Integer;
|
|
nIDCheckButton: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM CheckRadioButton}
|
|
|
|
function IsDlgButtonChecked(hDlg: HWND; nIDButton: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM IsDlgButtonChecked}
|
|
|
|
function SendDlgItemMessageA(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendDlgItemMessageA}
|
|
function SendDlgItemMessageW(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendDlgItemMessageW}
|
|
function SendDlgItemMessage(hDlg: HWND; nIDDlgItem: Integer; Msg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM SendDlgItemMessage}
|
|
|
|
function GetNextDlgGroupItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
|
|
{$EXTERNALSYM GetNextDlgGroupItem}
|
|
|
|
function GetNextDlgTabItem(hDlg: HWND; hCtl: HWND; bPrevious: BOOL): HWND; stdcall;
|
|
{$EXTERNALSYM GetNextDlgTabItem}
|
|
|
|
function GetDlgCtrlID(hWnd: HWND): Integer; stdcall;
|
|
{$EXTERNALSYM GetDlgCtrlID}
|
|
|
|
function GetDialogBaseUnits: Longint; stdcall;
|
|
{$EXTERNALSYM GetDialogBaseUnits(VOID v)}
|
|
|
|
function DefDlgProcA(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefDlgProcA}
|
|
function DefDlgProcW(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefDlgProcW}
|
|
function DefDlgProc(hDlg: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefDlgProc}
|
|
|
|
//
|
|
// Window extra byted needed for private dialog classes.
|
|
//
|
|
|
|
const
|
|
DLGWINDOWEXTRA = 30;
|
|
{$EXTERNALSYM DLGWINDOWEXTRA}
|
|
|
|
function CallMsgFilterA(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM CallMsgFilterA}
|
|
function CallMsgFilterW(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM CallMsgFilterW}
|
|
function CallMsgFilter(lpMsg: LPMSG; nCode: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM CallMsgFilter}
|
|
|
|
//
|
|
// Clipboard Manager Functions
|
|
//
|
|
|
|
function OpenClipboard(hWndNewOwner: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM OpenClipboard}
|
|
|
|
function CloseClipboard: BOOL; stdcall;
|
|
{$EXTERNALSYM CloseClipboard}
|
|
|
|
function GetClipboardSequenceNumber: DWORD; stdcall;
|
|
{$EXTERNALSYM GetClipboardSequenceNumber}
|
|
|
|
function GetClipboardOwner: HWND; stdcall;
|
|
{$EXTERNALSYM GetClipboardOwner}
|
|
|
|
function SetClipboardViewer(hWndNewViewer: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM SetClipboardViewer}
|
|
|
|
function GetClipboardViewer: HWND; stdcall;
|
|
{$EXTERNALSYM GetClipboardViewer}
|
|
|
|
function ChangeClipboardChain(hWndRemove, hWndNewNext: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM ChangeClipboardChain}
|
|
|
|
function SetClipboardData(uFormat: UINT; hMem: HANDLE): HANDLE; stdcall;
|
|
{$EXTERNALSYM SetClipboardData}
|
|
|
|
function GetClipboardData(uFormat: UINT): HANDLE; stdcall;
|
|
{$EXTERNALSYM GetClipboardData}
|
|
|
|
function RegisterClipboardFormatA(lpszFormat: LPCSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterClipboardFormatA}
|
|
function RegisterClipboardFormatW(lpszFormat: LPCWSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterClipboardFormatW}
|
|
function RegisterClipboardFormat(lpszFormat: LPCTSTR): UINT; stdcall;
|
|
{$EXTERNALSYM RegisterClipboardFormat}
|
|
|
|
function CountClipboardFormats: Integer; stdcall;
|
|
{$EXTERNALSYM CountClipboardFormats}
|
|
|
|
function EnumClipboardFormats(format: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM EnumClipboardFormats}
|
|
|
|
function GetClipboardFormatNameA(format: UINT; lpszFormatName: LPSTR;
|
|
cchMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClipboardFormatNameA}
|
|
function GetClipboardFormatNameW(format: UINT; lpszFormatName: LPWSTR;
|
|
cchMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClipboardFormatNameW}
|
|
function GetClipboardFormatName(format: UINT; lpszFormatName: LPTSTR;
|
|
cchMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClipboardFormatName}
|
|
|
|
function EmptyClipboard: BOOL; stdcall;
|
|
{$EXTERNALSYM EmptyClipboard}
|
|
|
|
function IsClipboardFormatAvailable(format: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM IsClipboardFormatAvailable}
|
|
|
|
function GetPriorityClipboardFormat(paFormatPriorityList: PUINT; cFormats: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetPriorityClipboardFormat}
|
|
|
|
function GetOpenClipboardWindow: HWND; stdcall;
|
|
{$EXTERNALSYM GetOpenClipboardWindow}
|
|
|
|
//
|
|
// Character Translation Routines
|
|
//
|
|
|
|
function CharToOemA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOemA}
|
|
function CharToOemW(lpszSrc: LPCWSTR; lpszDst: LPSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOemW}
|
|
function CharToOem(lpszSrc: LPCTSTR; lpszDst: LPSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOem}
|
|
|
|
function OemToCharA(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToCharA}
|
|
function OemToCharW(lpszSrc: LPCSTR; lpszDst: LPWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToCharW}
|
|
function OemToChar(lpszSrc: LPCSTR; lpszDst: LPTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToChar}
|
|
|
|
function CharToOemBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOemBuffA}
|
|
function CharToOemBuffW(lpszSrc: LPCWSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOemBuffW}
|
|
function CharToOemBuff(lpszSrc: LPCTSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM CharToOemBuff}
|
|
|
|
function OemToCharBuffA(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToCharBuffA}
|
|
function OemToCharBuffW(lpszSrc: LPCSTR; lpszDst: LPWSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToCharBuffW}
|
|
function OemToCharBuff(lpszSrc: LPCSTR; lpszDst: LPTSTR; cchDstLength: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM OemToCharBuff}
|
|
|
|
function CharUpperA(lpsz: LPSTR): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharUpperA}
|
|
function CharUpperW(lpsz: LPWSTR): LPWSTR; stdcall;
|
|
{$EXTERNALSYM CharUpperW}
|
|
function CharUpper(lpsz: LPTSTR): LPTSTR; stdcall;
|
|
{$EXTERNALSYM CharUpper}
|
|
|
|
function CharUpperBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharUpperBuffA}
|
|
function CharUpperBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharUpperBuffW}
|
|
function CharUpperBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharUpperBuff}
|
|
|
|
function CharLowerA(lpsz: LPSTR): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharLowerA}
|
|
function CharLowerW(lpsz: LPWSTR): LPWSTR; stdcall;
|
|
{$EXTERNALSYM CharLowerW}
|
|
function CharLower(lpsz: LPTSTR): LPTSTR; stdcall;
|
|
{$EXTERNALSYM CharLower}
|
|
|
|
function CharLowerBuffA(lpsz: LPSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharLowerBuffA}
|
|
function CharLowerBuffW(lpsz: LPWSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharLowerBuffW}
|
|
function CharLowerBuff(lpsz: LPTSTR; cchLength: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM CharLowerBuff}
|
|
|
|
function CharNextA(lpsz: LPCSTR): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharNextA}
|
|
function CharNextW(lpsz: LPCWSTR): LPWSTR; stdcall;
|
|
{$EXTERNALSYM CharNextW}
|
|
function CharNext(lpsz: LPCTSTR): LPTSTR; stdcall;
|
|
{$EXTERNALSYM CharNext}
|
|
|
|
function CharPrevA(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharPrevA}
|
|
function CharPrevW(lpszStart: LPCWSTR; lpszCurrent: LPCWSTR): LPWSTR; stdcall;
|
|
{$EXTERNALSYM CharPrevW}
|
|
function CharPrev(lpszStart: LPCTSTR; lpszCurrent: LPCTSTR): LPTSTR; stdcall;
|
|
{$EXTERNALSYM CharPrev}
|
|
|
|
function CharNextExA(CodePage: WORD; lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharNextExA}
|
|
|
|
function CharPrevExA(CodePage: WORD; lpStart, lpCurrentChar: LPCSTR; dwFlags: DWORD): LPSTR; stdcall;
|
|
{$EXTERNALSYM CharPrevExA}
|
|
|
|
//
|
|
// Compatibility defines for character translation routines
|
|
//
|
|
|
|
function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
|
|
{$EXTERNALSYM AnsiToOem}
|
|
|
|
function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
|
|
{$EXTERNALSYM OemToAnsi}
|
|
|
|
function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
|
|
{$EXTERNALSYM AnsiToOemBuff}
|
|
|
|
function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
|
|
{$EXTERNALSYM OemToAnsiBuff}
|
|
|
|
function AnsiUpper(lpsz: LPSTR): LPSTR;
|
|
{$EXTERNALSYM AnsiUpper}
|
|
|
|
function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
|
|
{$EXTERNALSYM AnsiUpperBuff}
|
|
|
|
function AnsiLower(lpsz: LPSTR): LPSTR;
|
|
{$EXTERNALSYM AnsiLower}
|
|
|
|
function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
|
|
{$EXTERNALSYM AnsiLowerBuff}
|
|
|
|
function AnsiNext(lpsz: LPCSTR): LPSTR;
|
|
{$EXTERNALSYM AnsiNext}
|
|
|
|
function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
|
|
{$EXTERNALSYM AnsiPrev}
|
|
|
|
//
|
|
// Language dependent Routines
|
|
//
|
|
|
|
function IsCharAlphaA(ch: AnsiChar): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlphaA}
|
|
function IsCharAlphaW(ch: WCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlphaW}
|
|
function IsCharAlpha(ch: TCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlpha}
|
|
|
|
function IsCharAlphaNumericA(ch: AnsiChar): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlphaNumericA}
|
|
function IsCharAlphaNumericW(ch: WCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlphaNumericW}
|
|
function IsCharAlphaNumeric(ch: TCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharAlphaNumeric}
|
|
|
|
function IsCharUpperA(ch: AnsiChar): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharUpperA}
|
|
function IsCharUpperW(ch: WCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharUpperW}
|
|
function IsCharUpper(ch: TCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharUpper}
|
|
|
|
function IsCharLowerA(ch: AnsiChar): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharLowerA}
|
|
function IsCharLowerW(ch: WCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharLowerW}
|
|
function IsCharLower(ch: TCHAR): BOOL; stdcall;
|
|
{$EXTERNALSYM IsCharLower}
|
|
|
|
function SetFocus(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM SetFocus}
|
|
|
|
function GetActiveWindow: HWND; stdcall;
|
|
{$EXTERNALSYM GetActiveWindow}
|
|
|
|
function GetFocus: HWND; stdcall;
|
|
{$EXTERNALSYM GetFocus}
|
|
|
|
function GetKBCodePage: UINT; stdcall;
|
|
{$EXTERNALSYM GetKBCodePage}
|
|
|
|
function GetKeyState(nVirtKey: Integer): SHORT; stdcall;
|
|
{$EXTERNALSYM GetKeyState}
|
|
|
|
function GetAsyncKeyState(vKey: Integer): SHORT; stdcall;
|
|
{$EXTERNALSYM GetAsyncKeyState}
|
|
|
|
function GetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
|
|
{$EXTERNALSYM GetKeyboardState}
|
|
|
|
function SetKeyboardState(lpKeyState: LPBYTE): BOOL; stdcall;
|
|
{$EXTERNALSYM SetKeyboardState}
|
|
|
|
function GetKeyNameTextA(lParam: LONG; lpString: LPSTR; nSize: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetKeyNameTextA}
|
|
function GetKeyNameTextW(lParam: LONG; lpString: LPWSTR; nSize: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetKeyNameTextW}
|
|
function GetKeyNameText(lParam: LONG; lpString: LPTSTR; nSize: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetKeyNameText}
|
|
|
|
function GetKeyboardType(nTypeFlag: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetKeyboardType}
|
|
|
|
function ToAscii(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
|
|
uFlags: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM ToAscii}
|
|
|
|
function ToAsciiEx(uVirtKey, uScanCode: UINT; lpKeyState: PBYTE; lpChar: LPWORD;
|
|
uFlags: UINT; dwhkl: HKL): Integer; stdcall;
|
|
{$EXTERNALSYM ToAsciiEx}
|
|
|
|
function ToUnicode(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE; pwszBuff: LPWSTR;
|
|
cchBuff: Integer; wFlags: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM ToUnicode}
|
|
|
|
function OemKeyScan(wOemChar: WORD): DWORD; stdcall;
|
|
{$EXTERNALSYM OemKeyScan}
|
|
|
|
function VkKeyScanA(ch: AnsiChar): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScanA}
|
|
function VkKeyScanW(ch: WCHAR): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScanW}
|
|
function VkKeyScan(ch: TCHAR): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScan}
|
|
|
|
function VkKeyScanExA(ch: AnsiChar; dwhkl: HKL): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScanExA}
|
|
function VkKeyScanExW(ch: WCHAR; dwhkl: HKL): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScanExW}
|
|
function VkKeyScanEx(ch: TCHAR; dwhkl: HKL): SHORT; stdcall;
|
|
{$EXTERNALSYM VkKeyScanEx}
|
|
|
|
const
|
|
KEYEVENTF_EXTENDEDKEY = $0001;
|
|
{$EXTERNALSYM KEYEVENTF_EXTENDEDKEY}
|
|
KEYEVENTF_KEYUP = $0002;
|
|
{$EXTERNALSYM KEYEVENTF_KEYUP}
|
|
|
|
KEYEVENTF_UNICODE = $0004;
|
|
{$EXTERNALSYM KEYEVENTF_UNICODE}
|
|
KEYEVENTF_SCANCODE = $0008;
|
|
{$EXTERNALSYM KEYEVENTF_SCANCODE}
|
|
|
|
procedure keybd_event(bVk, bScan: BYTE; dwFlags: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
|
|
{$EXTERNALSYM keybd_event}
|
|
|
|
const
|
|
MOUSEEVENTF_MOVE = $0001; // mouse move
|
|
{$EXTERNALSYM MOUSEEVENTF_MOVE}
|
|
MOUSEEVENTF_LEFTDOWN = $0002; // left button down
|
|
{$EXTERNALSYM MOUSEEVENTF_LEFTDOWN}
|
|
MOUSEEVENTF_LEFTUP = $0004; // left button up
|
|
{$EXTERNALSYM MOUSEEVENTF_LEFTUP}
|
|
MOUSEEVENTF_RIGHTDOWN = $0008; // right button down
|
|
{$EXTERNALSYM MOUSEEVENTF_RIGHTDOWN}
|
|
MOUSEEVENTF_RIGHTUP = $0010; // right button up
|
|
{$EXTERNALSYM MOUSEEVENTF_RIGHTUP}
|
|
MOUSEEVENTF_MIDDLEDOWN = $0020; // middle button down
|
|
{$EXTERNALSYM MOUSEEVENTF_MIDDLEDOWN}
|
|
MOUSEEVENTF_MIDDLEUP = $0040; // middle button up
|
|
{$EXTERNALSYM MOUSEEVENTF_MIDDLEUP}
|
|
MOUSEEVENTF_XDOWN = $0080; // x button down
|
|
{$EXTERNALSYM MOUSEEVENTF_XDOWN}
|
|
MOUSEEVENTF_XUP = $0100; // x button down
|
|
{$EXTERNALSYM MOUSEEVENTF_XUP}
|
|
MOUSEEVENTF_WHEEL = $0800; // wheel button rolled
|
|
{$EXTERNALSYM MOUSEEVENTF_WHEEL}
|
|
MOUSEEVENTF_VIRTUALDESK = $4000; // map to entire virtual desktop
|
|
{$EXTERNALSYM MOUSEEVENTF_VIRTUALDESK}
|
|
MOUSEEVENTF_ABSOLUTE = $8000; // absolute move
|
|
{$EXTERNALSYM MOUSEEVENTF_ABSOLUTE}
|
|
|
|
procedure mouse_event(dwFlags, dx, dy, dwData: DWORD; dwExtraInfo: ULONG_PTR); stdcall;
|
|
{$EXTERNALSYM mouse_event}
|
|
|
|
type
|
|
LPMOUSEINPUT = ^MOUSEINPUT;
|
|
{$EXTERNALSYM LPMOUSEINPUT}
|
|
tagMOUSEINPUT = record
|
|
dx: LONG;
|
|
dy: LONG;
|
|
mouseData: DWORD;
|
|
dwFlags: DWORD;
|
|
time: DWORD;
|
|
dwExtraInfo: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM MOUSEINPUT}
|
|
MOUSEINPUT = tagMOUSEINPUT;
|
|
{$EXTERNALSYM MOUSEINPUT}
|
|
TMouseInput = MOUSEINPUT;
|
|
PMouseInput = LPMOUSEINPUT;
|
|
|
|
LPKEYBDINPUT = ^KEYBDINPUT;
|
|
{$EXTERNALSYM LPKEYBDINPUT}
|
|
tagKEYBDINPUT = record
|
|
wVk: WORD;
|
|
wScan: WORD;
|
|
dwFlags: DWORD;
|
|
time: DWORD;
|
|
dwExtraInfo: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM tagKEYBDINPUT}
|
|
KEYBDINPUT = tagKEYBDINPUT;
|
|
{$EXTERNALSYM KEYBDINPUT}
|
|
TKeybdinput = KEYBDINPUT;
|
|
PKeybdInput = LPKEYBDINPUT;
|
|
|
|
LPHARDWAREINPUT = ^HARDWAREINPUT;
|
|
{$EXTERNALSYM LPHARDWAREINPUT}
|
|
tagHARDWAREINPUT = record
|
|
uMsg: DWORD;
|
|
wParamL: WORD;
|
|
wParamH: WORD;
|
|
end;
|
|
{$EXTERNALSYM tagHARDWAREINPUT}
|
|
HARDWAREINPUT = tagHARDWAREINPUT;
|
|
{$EXTERNALSYM HARDWAREINPUT}
|
|
THardwareInput = HARDWAREINPUT;
|
|
PHardwareInput = LPHARDWAREINPUT;
|
|
|
|
const
|
|
INPUT_MOUSE = 0;
|
|
{$EXTERNALSYM INPUT_MOUSE}
|
|
INPUT_KEYBOARD = 1;
|
|
{$EXTERNALSYM INPUT_KEYBOARD}
|
|
INPUT_HARDWARE = 2;
|
|
{$EXTERNALSYM INPUT_HARDWARE}
|
|
|
|
type
|
|
LPINPUT = ^INPUT;
|
|
{$EXTERNALSYM LPINPUT}
|
|
tagINPUT = record
|
|
type_: DWORD;
|
|
case Integer of
|
|
0: (mi: MOUSEINPUT);
|
|
1: (ki: KEYBDINPUT);
|
|
2: (hi: HARDWAREINPUT);
|
|
end;
|
|
{$EXTERNALSYM tagINPUT}
|
|
INPUT = tagINPUT;
|
|
{$EXTERNALSYM INPUT}
|
|
TInput = INPUT;
|
|
PInput = LPINPUT;
|
|
|
|
function SendInput(cInputs: UINT; pInputs: LPINPUT; cbSize: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM SendInput}
|
|
|
|
type
|
|
PLASTINPUTINFO = ^LASTINPUTINFO;
|
|
tagLASTINPUTINFO = record
|
|
cbSize: UINT;
|
|
dwTime: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagLASTINPUTINFO}
|
|
LASTINPUTINFO = tagLASTINPUTINFO;
|
|
{$EXTERNALSYM LASTINPUTINFO}
|
|
TLastInputInfo = LASTINPUTINFO;
|
|
|
|
function GetLastInputInfo(var plii: LASTINPUTINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetLastInputInfo}
|
|
|
|
function MapVirtualKeyA(uCode, uMapType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKeyA}
|
|
function MapVirtualKeyW(uCode, uMapType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKeyW}
|
|
function MapVirtualKey(uCode, uMapType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKey}
|
|
|
|
function MapVirtualKeyExA(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKeyExA}
|
|
function MapVirtualKeyExW(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKeyExW}
|
|
function MapVirtualKeyEx(uCode, uMapType: UINT; dwhkl: HKL): UINT; stdcall;
|
|
{$EXTERNALSYM MapVirtualKeyEx}
|
|
|
|
function GetInputState: BOOL; stdcall;
|
|
{$EXTERNALSYM GetInputState}
|
|
|
|
function GetQueueStatus(flags: UINT): DWORD; stdcall;
|
|
{$EXTERNALSYM GetQueueStatus}
|
|
|
|
function GetCapture: HWND; stdcall;
|
|
{$EXTERNALSYM GetCapture}
|
|
|
|
function SetCapture(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM SetCapture}
|
|
|
|
function ReleaseCapture: BOOL; stdcall;
|
|
{$EXTERNALSYM ReleaseCapture}
|
|
|
|
function MsgWaitForMultipleObjects(nCount: DWORD; pHandles: PHANDLE;
|
|
fWaitAll: BOOL; dwMilliseconds: DWORD; dwWakeMask: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM MsgWaitForMultipleObjects}
|
|
|
|
function MsgWaitForMultipleObjectsEx(nCount: DWORD; pHandles: PHANDLE;
|
|
dwMilliseconds: DWORD; dwWakeMask: DWORD; dwFlags: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM MsgWaitForMultipleObjectsEx}
|
|
|
|
const
|
|
MWMO_WAITALL = $0001;
|
|
{$EXTERNALSYM MWMO_WAITALL}
|
|
MWMO_ALERTABLE = $0002;
|
|
{$EXTERNALSYM MWMO_ALERTABLE}
|
|
MWMO_INPUTAVAILABLE = $0004;
|
|
{$EXTERNALSYM MWMO_INPUTAVAILABLE}
|
|
|
|
//
|
|
// Windows Functions
|
|
//
|
|
|
|
function SetTimer(hWnd: HWND; nIDEvent: UINT_PTR; uElapse: UINT;
|
|
lpTimerFunc: TIMERPROC): UINT_PTR; stdcall;
|
|
{$EXTERNALSYM SetTimer}
|
|
|
|
function KillTimer(hWnd: HWND; uIDEvent: UINT_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM KillTimer}
|
|
|
|
function IsWindowUnicode(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsWindowUnicode}
|
|
|
|
function EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM EnableWindow}
|
|
|
|
function IsWindowEnabled(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM IsWindowEnabled}
|
|
|
|
function LoadAcceleratorsA(hInstance: HINST; lpTableName: LPCSTR): HACCEL; stdcall;
|
|
{$EXTERNALSYM LoadAcceleratorsA}
|
|
function LoadAcceleratorsW(hInstance: HINST; lpTableName: LPCWSTR): HACCEL; stdcall;
|
|
{$EXTERNALSYM LoadAcceleratorsW}
|
|
function LoadAccelerators(hInstance: HINST; lpTableName: LPCTSTR): HACCEL; stdcall;
|
|
{$EXTERNALSYM LoadAccelerators}
|
|
|
|
function CreateAcceleratorTableA(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
|
|
{$EXTERNALSYM CreateAcceleratorTableA}
|
|
function CreateAcceleratorTableW(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
|
|
{$EXTERNALSYM CreateAcceleratorTableW}
|
|
function CreateAcceleratorTable(lpaccl: LPACCEL; cEntries: Integer): HACCEL; stdcall;
|
|
{$EXTERNALSYM CreateAcceleratorTable}
|
|
|
|
function DestroyAcceleratorTable(hAccel: HACCEL): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyAcceleratorTable}
|
|
|
|
function CopyAcceleratorTableA(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
|
|
cAccelEntries: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM CopyAcceleratorTableA}
|
|
function CopyAcceleratorTableW(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
|
|
cAccelEntries: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM CopyAcceleratorTableW}
|
|
function CopyAcceleratorTable(hAccelSrc: HACCEL; lpAccelDst: LPACCEL;
|
|
cAccelEntries: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM CopyAcceleratorTable}
|
|
|
|
function TranslateAcceleratorA(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
|
|
{$EXTERNALSYM TranslateAcceleratorA}
|
|
function TranslateAcceleratorW(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
|
|
{$EXTERNALSYM TranslateAcceleratorW}
|
|
function TranslateAccelerator(hWnd: HWND; hAccTable: HACCEL; lpMsg: LPMSG): Integer; stdcall;
|
|
{$EXTERNALSYM TranslateAccelerator}
|
|
|
|
//
|
|
// GetSystemMetrics() codes
|
|
//
|
|
|
|
const
|
|
SM_CXSCREEN = 0;
|
|
{$EXTERNALSYM SM_CXSCREEN}
|
|
SM_CYSCREEN = 1;
|
|
{$EXTERNALSYM SM_CYSCREEN}
|
|
SM_CXVSCROLL = 2;
|
|
{$EXTERNALSYM SM_CXVSCROLL}
|
|
SM_CYHSCROLL = 3;
|
|
{$EXTERNALSYM SM_CYHSCROLL}
|
|
SM_CYCAPTION = 4;
|
|
{$EXTERNALSYM SM_CYCAPTION}
|
|
SM_CXBORDER = 5;
|
|
{$EXTERNALSYM SM_CXBORDER}
|
|
SM_CYBORDER = 6;
|
|
{$EXTERNALSYM SM_CYBORDER}
|
|
SM_CXDLGFRAME = 7;
|
|
{$EXTERNALSYM SM_CXDLGFRAME}
|
|
SM_CYDLGFRAME = 8;
|
|
{$EXTERNALSYM SM_CYDLGFRAME}
|
|
SM_CYVTHUMB = 9;
|
|
{$EXTERNALSYM SM_CYVTHUMB}
|
|
SM_CXHTHUMB = 10;
|
|
{$EXTERNALSYM SM_CXHTHUMB}
|
|
SM_CXICON = 11;
|
|
{$EXTERNALSYM SM_CXICON}
|
|
SM_CYICON = 12;
|
|
{$EXTERNALSYM SM_CYICON}
|
|
SM_CXCURSOR = 13;
|
|
{$EXTERNALSYM SM_CXCURSOR}
|
|
SM_CYCURSOR = 14;
|
|
{$EXTERNALSYM SM_CYCURSOR}
|
|
SM_CYMENU = 15;
|
|
{$EXTERNALSYM SM_CYMENU}
|
|
SM_CXFULLSCREEN = 16;
|
|
{$EXTERNALSYM SM_CXFULLSCREEN}
|
|
SM_CYFULLSCREEN = 17;
|
|
{$EXTERNALSYM SM_CYFULLSCREEN}
|
|
SM_CYKANJIWINDOW = 18;
|
|
{$EXTERNALSYM SM_CYKANJIWINDOW}
|
|
SM_MOUSEPRESENT = 19;
|
|
{$EXTERNALSYM SM_MOUSEPRESENT}
|
|
SM_CYVSCROLL = 20;
|
|
{$EXTERNALSYM SM_CYVSCROLL}
|
|
SM_CXHSCROLL = 21;
|
|
{$EXTERNALSYM SM_CXHSCROLL}
|
|
SM_DEBUG = 22;
|
|
{$EXTERNALSYM SM_DEBUG}
|
|
SM_SWAPBUTTON = 23;
|
|
{$EXTERNALSYM SM_SWAPBUTTON}
|
|
SM_RESERVED1 = 24;
|
|
{$EXTERNALSYM SM_RESERVED1}
|
|
SM_RESERVED2 = 25;
|
|
{$EXTERNALSYM SM_RESERVED2}
|
|
SM_RESERVED3 = 26;
|
|
{$EXTERNALSYM SM_RESERVED3}
|
|
SM_RESERVED4 = 27;
|
|
{$EXTERNALSYM SM_RESERVED4}
|
|
SM_CXMIN = 28;
|
|
{$EXTERNALSYM SM_CXMIN}
|
|
SM_CYMIN = 29;
|
|
{$EXTERNALSYM SM_CYMIN}
|
|
SM_CXSIZE = 30;
|
|
{$EXTERNALSYM SM_CXSIZE}
|
|
SM_CYSIZE = 31;
|
|
{$EXTERNALSYM SM_CYSIZE}
|
|
SM_CXFRAME = 32;
|
|
{$EXTERNALSYM SM_CXFRAME}
|
|
SM_CYFRAME = 33;
|
|
{$EXTERNALSYM SM_CYFRAME}
|
|
SM_CXMINTRACK = 34;
|
|
{$EXTERNALSYM SM_CXMINTRACK}
|
|
SM_CYMINTRACK = 35;
|
|
{$EXTERNALSYM SM_CYMINTRACK}
|
|
SM_CXDOUBLECLK = 36;
|
|
{$EXTERNALSYM SM_CXDOUBLECLK}
|
|
SM_CYDOUBLECLK = 37;
|
|
{$EXTERNALSYM SM_CYDOUBLECLK}
|
|
SM_CXICONSPACING = 38;
|
|
{$EXTERNALSYM SM_CXICONSPACING}
|
|
SM_CYICONSPACING = 39;
|
|
{$EXTERNALSYM SM_CYICONSPACING}
|
|
SM_MENUDROPALIGNMENT = 40;
|
|
{$EXTERNALSYM SM_MENUDROPALIGNMENT}
|
|
SM_PENWINDOWS = 41;
|
|
{$EXTERNALSYM SM_PENWINDOWS}
|
|
SM_DBCSENABLED = 42;
|
|
{$EXTERNALSYM SM_DBCSENABLED}
|
|
SM_CMOUSEBUTTONS = 43;
|
|
{$EXTERNALSYM SM_CMOUSEBUTTONS}
|
|
|
|
SM_CXFIXEDFRAME = SM_CXDLGFRAME; // ;win40 name change
|
|
{$EXTERNALSYM SM_CXFIXEDFRAME}
|
|
SM_CYFIXEDFRAME = SM_CYDLGFRAME; // ;win40 name change
|
|
{$EXTERNALSYM SM_CYFIXEDFRAME}
|
|
SM_CXSIZEFRAME = SM_CXFRAME; // ;win40 name change
|
|
{$EXTERNALSYM SM_CXSIZEFRAME}
|
|
SM_CYSIZEFRAME = SM_CYFRAME; // ;win40 name change
|
|
{$EXTERNALSYM SM_CYSIZEFRAME}
|
|
|
|
SM_SECURE = 44;
|
|
{$EXTERNALSYM SM_SECURE}
|
|
SM_CXEDGE = 45;
|
|
{$EXTERNALSYM SM_CXEDGE}
|
|
SM_CYEDGE = 46;
|
|
{$EXTERNALSYM SM_CYEDGE}
|
|
SM_CXMINSPACING = 47;
|
|
{$EXTERNALSYM SM_CXMINSPACING}
|
|
SM_CYMINSPACING = 48;
|
|
{$EXTERNALSYM SM_CYMINSPACING}
|
|
SM_CXSMICON = 49;
|
|
{$EXTERNALSYM SM_CXSMICON}
|
|
SM_CYSMICON = 50;
|
|
{$EXTERNALSYM SM_CYSMICON}
|
|
SM_CYSMCAPTION = 51;
|
|
{$EXTERNALSYM SM_CYSMCAPTION}
|
|
SM_CXSMSIZE = 52;
|
|
{$EXTERNALSYM SM_CXSMSIZE}
|
|
SM_CYSMSIZE = 53;
|
|
{$EXTERNALSYM SM_CYSMSIZE}
|
|
SM_CXMENUSIZE = 54;
|
|
{$EXTERNALSYM SM_CXMENUSIZE}
|
|
SM_CYMENUSIZE = 55;
|
|
{$EXTERNALSYM SM_CYMENUSIZE}
|
|
SM_ARRANGE = 56;
|
|
{$EXTERNALSYM SM_ARRANGE}
|
|
SM_CXMINIMIZED = 57;
|
|
{$EXTERNALSYM SM_CXMINIMIZED}
|
|
SM_CYMINIMIZED = 58;
|
|
{$EXTERNALSYM SM_CYMINIMIZED}
|
|
SM_CXMAXTRACK = 59;
|
|
{$EXTERNALSYM SM_CXMAXTRACK}
|
|
SM_CYMAXTRACK = 60;
|
|
{$EXTERNALSYM SM_CYMAXTRACK}
|
|
SM_CXMAXIMIZED = 61;
|
|
{$EXTERNALSYM SM_CXMAXIMIZED}
|
|
SM_CYMAXIMIZED = 62;
|
|
{$EXTERNALSYM SM_CYMAXIMIZED}
|
|
SM_NETWORK = 63;
|
|
{$EXTERNALSYM SM_NETWORK}
|
|
SM_CLEANBOOT = 67;
|
|
{$EXTERNALSYM SM_CLEANBOOT}
|
|
SM_CXDRAG = 68;
|
|
{$EXTERNALSYM SM_CXDRAG}
|
|
SM_CYDRAG = 69;
|
|
{$EXTERNALSYM SM_CYDRAG}
|
|
SM_SHOWSOUNDS = 70;
|
|
{$EXTERNALSYM SM_SHOWSOUNDS}
|
|
SM_CXMENUCHECK = 71; // Use instead of GetMenuCheckMarkDimensions()!
|
|
{$EXTERNALSYM SM_CXMENUCHECK}
|
|
SM_CYMENUCHECK = 72;
|
|
{$EXTERNALSYM SM_CYMENUCHECK}
|
|
SM_SLOWMACHINE = 73;
|
|
{$EXTERNALSYM SM_SLOWMACHINE}
|
|
SM_MIDEASTENABLED = 74;
|
|
{$EXTERNALSYM SM_MIDEASTENABLED}
|
|
|
|
SM_MOUSEWHEELPRESENT = 75;
|
|
{$EXTERNALSYM SM_MOUSEWHEELPRESENT}
|
|
SM_XVIRTUALSCREEN = 76;
|
|
{$EXTERNALSYM SM_XVIRTUALSCREEN}
|
|
SM_YVIRTUALSCREEN = 77;
|
|
{$EXTERNALSYM SM_YVIRTUALSCREEN}
|
|
SM_CXVIRTUALSCREEN = 78;
|
|
{$EXTERNALSYM SM_CXVIRTUALSCREEN}
|
|
SM_CYVIRTUALSCREEN = 79;
|
|
{$EXTERNALSYM SM_CYVIRTUALSCREEN}
|
|
SM_CMONITORS = 80;
|
|
{$EXTERNALSYM SM_CMONITORS}
|
|
SM_SAMEDISPLAYFORMAT = 81;
|
|
{$EXTERNALSYM SM_SAMEDISPLAYFORMAT}
|
|
SM_IMMENABLED = 82;
|
|
{$EXTERNALSYM SM_IMMENABLED}
|
|
SM_CXFOCUSBORDER = 83;
|
|
{$EXTERNALSYM SM_CXFOCUSBORDER}
|
|
SM_CYFOCUSBORDER = 84;
|
|
{$EXTERNALSYM SM_CYFOCUSBORDER}
|
|
|
|
//#if(_WIN32_WINNT >= 0x0501)
|
|
|
|
SM_TABLETPC = 86;
|
|
{$EXTERNALSYM SM_TABLETPC}
|
|
SM_MEDIACENTER = 87;
|
|
{$EXTERNALSYM SM_MEDIACENTER}
|
|
|
|
//#endif /* _WIN32_WINNT >= 0x0501 */
|
|
|
|
const
|
|
{$IFNDEF WIN98ME_UP}
|
|
SM_CMETRICS = 76;
|
|
{$ELSE}
|
|
{$IFDEF WIN98ME}
|
|
SM_CMETRICS = 83;
|
|
{$ELSE}
|
|
SM_CMETRICS = 88;
|
|
{$ENDIF WIN98ME}
|
|
{$ENDIF !WIN98ME_UP}
|
|
{$EXTERNALSYM SM_CMETRICS}
|
|
|
|
SM_REMOTESESSION = $1000;
|
|
{$EXTERNALSYM SM_REMOTESESSION}
|
|
SM_SHUTTINGDOWN = $2000;
|
|
{$EXTERNALSYM SM_SHUTTINGDOWN}
|
|
//#if(WINVER >= 0x0501)
|
|
SM_REMOTECONTROL = $2001;
|
|
{$EXTERNALSYM SM_REMOTECONTROL}
|
|
//#endif /* WINVER >= 0x0501 */
|
|
|
|
function GetSystemMetrics(nIndex: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetSystemMetrics}
|
|
|
|
function LoadMenuA(hInstance: HINST; lpMenuName: LPCSTR): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenuA}
|
|
function LoadMenuW(hInstance: HINST; lpMenuName: LPCWSTR): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenuW}
|
|
function LoadMenu(hInstance: HINST; lpMenuName: LPCTSTR): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenu}
|
|
|
|
function LoadMenuIndirectA(lpMenuTemplate: LPMENUTEMPLATEA): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenuIndirectA}
|
|
function LoadMenuIndirectW(lpMenuTemplate: LPMENUTEMPLATEW): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenuIndirectW}
|
|
function LoadMenuIndirect(lpMenuTemplate: LPMENUTEMPLATE): HMENU; stdcall;
|
|
{$EXTERNALSYM LoadMenuIndirect}
|
|
|
|
function GetMenu(hWnd: HWND): HMENU; stdcall;
|
|
{$EXTERNALSYM GetMenu}
|
|
|
|
function SetMenu(hWnd: HWND; hMenu: HMENU): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenu}
|
|
|
|
function ChangeMenuA(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCSTR;
|
|
cmdInsert: UINT; flags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM ChangeMenuA}
|
|
function ChangeMenuW(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCWSTR;
|
|
cmdInsert: UINT; flags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM ChangeMenuW}
|
|
function ChangeMenu(hMenu: HMENU; cmd: UINT; lpszNewItem: LPCTSTR;
|
|
cmdInsert: UINT; flags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM ChangeMenu}
|
|
|
|
function HiliteMenuItem(hWnd: HWND; hMenu: HMENU; uIDHiliteItem: UINT; uHilite: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM HiliteMenuItem}
|
|
|
|
function GetMenuStringA(hMenu: HMENU; uIDItem: UINT; lpString: LPSTR;
|
|
nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM GetMenuStringA}
|
|
function GetMenuStringW(hMenu: HMENU; uIDItem: UINT; lpString: LPWSTR;
|
|
nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM GetMenuStringW}
|
|
function GetMenuString(hMenu: HMENU; uIDItem: UINT; lpString: LPTSTR;
|
|
nMaxCount: Integer; uFlag: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM GetMenuString}
|
|
|
|
function GetMenuState(hMenu: HMENU; uId, uFlags: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetMenuState}
|
|
|
|
function DrawMenuBar(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawMenuBar}
|
|
|
|
const
|
|
PMB_ACTIVE = $00000001;
|
|
{$EXTERNALSYM PMB_ACTIVE}
|
|
|
|
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; stdcall;
|
|
{$EXTERNALSYM GetSystemMenu}
|
|
|
|
function CreateMenu: HMENU; stdcall;
|
|
{$EXTERNALSYM CreateMenu}
|
|
|
|
function CreatePopupMenu: HMENU; stdcall;
|
|
{$EXTERNALSYM CreatePopupMenu}
|
|
|
|
function DestroyMenu(hMenu: HMENU): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyMenu}
|
|
|
|
function CheckMenuItem(hMenu: HMENU; uIDCheckItem, uCheck: UINT): DWORD; stdcall;
|
|
{$EXTERNALSYM CheckMenuItem}
|
|
|
|
function EnableMenuItem(hMenu: HMENU; uIDEnableItem, uEnable: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM EnableMenuItem}
|
|
|
|
function GetSubMenu(hMenu: HMENU; nPos: Integer): HMENU; stdcall;
|
|
{$EXTERNALSYM GetSubMenu}
|
|
|
|
function GetMenuItemID(hMenu: HMENU; nPos: Integer): UINT; stdcall;
|
|
{$EXTERNALSYM GetMenuItemID}
|
|
|
|
function GetMenuItemCount(hMenu: HMENU): Integer; stdcall;
|
|
{$EXTERNALSYM GetMenuItemCount}
|
|
|
|
function InsertMenuA(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenuA}
|
|
function InsertMenuW(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenuW}
|
|
function InsertMenu(hMenu: HMENU; uPosition, uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenu}
|
|
|
|
function AppendMenuA(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM AppendMenuA}
|
|
function AppendMenuW(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM AppendMenuW}
|
|
function AppendMenu(hMenu: HMENU; uFlags: UINT; uIDNewItem: UINT_PTR;
|
|
lpNewItem: LPCTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM AppendMenu}
|
|
|
|
function ModifyMenuA(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
|
|
uIDNewItem: UINT_PTR; lpNewItem: LPCSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM ModifyMenuA}
|
|
function ModifyMenuW(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
|
|
uIDNewItem: UINT_PTR; lpNewItem: LPCWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM ModifyMenuW}
|
|
function ModifyMenu(hMnu: HMENU; uPosition: UINT; uFlags: UINT;
|
|
uIDNewItem: UINT_PTR; lpNewItem: LPCTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM ModifyMenu}
|
|
|
|
function RemoveMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM RemoveMenu}
|
|
|
|
function DeleteMenu(hMenu: HMENU; uPosition: UINT; uFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DeleteMenu}
|
|
|
|
function SetMenuItemBitmaps(hMenu: HMENU; uPosition: UINT; uFlags: UINT;
|
|
hBitmapUnchecked: HBITMAP; hBitmapChecked: HBITMAP): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuItemBitmaps}
|
|
|
|
function GetMenuCheckMarkDimensions: LONG; stdcall;
|
|
{$EXTERNALSYM GetMenuCheckMarkDimensions}
|
|
|
|
function TrackPopupMenu(hMenu: HMENU; uFlags: UINT; x: Integer; y: Integer;
|
|
nReserved: Integer; hWnd: HWND; prcRect: LPRECT): BOOL; stdcall;
|
|
{$EXTERNALSYM TrackPopupMenu}
|
|
|
|
// return codes for WM_MENUCHAR//
|
|
|
|
const
|
|
MNC_IGNORE = 0;
|
|
{$EXTERNALSYM MNC_IGNORE}
|
|
MNC_CLOSE = 1;
|
|
{$EXTERNALSYM MNC_CLOSE}
|
|
MNC_EXECUTE = 2;
|
|
{$EXTERNALSYM MNC_EXECUTE}
|
|
MNC_SELECT = 3;
|
|
{$EXTERNALSYM MNC_SELECT}
|
|
|
|
type
|
|
LPTPMPARAMS = ^TPMPARAMS;
|
|
{$EXTERNALSYM LPTPMPARAMS}
|
|
tagTPMPARAMS = record
|
|
cbSize: UINT; // Size of structure
|
|
rcExclude: RECT; // Screen coordinates of rectangle to exclude when positioning
|
|
end;
|
|
{$EXTERNALSYM tagTPMPARAMS}
|
|
TPMPARAMS = tagTPMPARAMS;
|
|
{$EXTERNALSYM TPMPARAMS}
|
|
TTPMParams = TPMPARAMS;
|
|
PTPMParams = LPTPMPARAMS;
|
|
|
|
function TrackPopupMenuEx(hmenu: HMENU; fuflags: UINT; x, y: Integer;
|
|
hwnd: HWND; lptpm: LPTPMPARAMS): BOOL; stdcall;
|
|
{$EXTERNALSYM TrackPopupMenuEx}
|
|
|
|
const
|
|
MNS_NOCHECK = $80000000;
|
|
{$EXTERNALSYM MNS_NOCHECK}
|
|
MNS_MODELESS = $40000000;
|
|
{$EXTERNALSYM MNS_MODELESS}
|
|
MNS_DRAGDROP = $20000000;
|
|
{$EXTERNALSYM MNS_DRAGDROP}
|
|
MNS_AUTODISMISS = $10000000;
|
|
{$EXTERNALSYM MNS_AUTODISMISS}
|
|
MNS_NOTIFYBYPOS = $08000000;
|
|
{$EXTERNALSYM MNS_NOTIFYBYPOS}
|
|
MNS_CHECKORBMP = $04000000;
|
|
{$EXTERNALSYM MNS_CHECKORBMP}
|
|
|
|
MIM_MAXHEIGHT = $00000001;
|
|
{$EXTERNALSYM MIM_MAXHEIGHT}
|
|
MIM_BACKGROUND = $00000002;
|
|
{$EXTERNALSYM MIM_BACKGROUND}
|
|
MIM_HELPID = $00000004;
|
|
{$EXTERNALSYM MIM_HELPID}
|
|
MIM_MENUDATA = $00000008;
|
|
{$EXTERNALSYM MIM_MENUDATA}
|
|
MIM_STYLE = $00000010;
|
|
{$EXTERNALSYM MIM_STYLE}
|
|
MIM_APPLYTOSUBMENUS = $80000000;
|
|
{$EXTERNALSYM MIM_APPLYTOSUBMENUS}
|
|
|
|
type
|
|
LPMENUINFO = ^MENUINFO;
|
|
{$EXTERNALSYM LPMENUINFO}
|
|
tagMENUINFO = record
|
|
cbSize: DWORD;
|
|
fMask: DWORD;
|
|
dwStyle: DWORD;
|
|
cyMax: UINT;
|
|
hbrBack: HBRUSH;
|
|
dwContextHelpID: DWORD;
|
|
dwMenuData: ULONG_PTR;
|
|
end;
|
|
{$EXTERNALSYM tagMENUINFO}
|
|
MENUINFO = tagMENUINFO;
|
|
{$EXTERNALSYM MENUINFO}
|
|
TMenuinfo = MENUINFO;
|
|
PMenuinfo = LPMENUINFO;
|
|
|
|
LPCMENUINFO = ^MENUINFO;
|
|
{$EXTERNALSYM LPCMENUINFO}
|
|
|
|
function GetMenuInfo(hmenu: HMENU; var lpcmi: MENUINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuInfo}
|
|
|
|
function SetMenuInfo(hemnu: HMENU; const lpcmi: MENUINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuInfo}
|
|
|
|
function EndMenu: BOOL; stdcall;
|
|
{$EXTERNALSYM EndMenu}
|
|
|
|
//
|
|
// WM_MENUDRAG return values.
|
|
//
|
|
|
|
const
|
|
MND_CONTINUE = 0;
|
|
{$EXTERNALSYM MND_CONTINUE}
|
|
MND_ENDMENU = 1;
|
|
{$EXTERNALSYM MND_ENDMENU}
|
|
|
|
type
|
|
PMENUGETOBJECTINFO = ^MENUGETOBJECTINFO;
|
|
tagMENUGETOBJECTINFO = record
|
|
dwFlags: DWORD;
|
|
uPos: UINT;
|
|
hmenu: HMENU;
|
|
riid: PVOID;
|
|
pvObj: PVOID;
|
|
end;
|
|
{$EXTERNALSYM tagMENUGETOBJECTINFO}
|
|
MENUGETOBJECTINFO = tagMENUGETOBJECTINFO;
|
|
{$EXTERNALSYM MENUGETOBJECTINFO}
|
|
TMenuGetObjectInfo = MENUGETOBJECTINFO;
|
|
|
|
//
|
|
// MENUGETOBJECTINFO dwFlags values
|
|
//
|
|
|
|
const
|
|
MNGOF_TOPGAP = $00000001;
|
|
{$EXTERNALSYM MNGOF_TOPGAP}
|
|
MNGOF_BOTTOMGAP = $00000002;
|
|
{$EXTERNALSYM MNGOF_BOTTOMGAP}
|
|
|
|
//
|
|
// WM_MENUGETOBJECT return values
|
|
//
|
|
|
|
MNGO_NOINTERFACE = $00000000;
|
|
{$EXTERNALSYM MNGO_NOINTERFACE}
|
|
MNGO_NOERROR = $00000001;
|
|
{$EXTERNALSYM MNGO_NOERROR}
|
|
|
|
MIIM_STATE = $00000001;
|
|
{$EXTERNALSYM MIIM_STATE}
|
|
MIIM_ID = $00000002;
|
|
{$EXTERNALSYM MIIM_ID}
|
|
MIIM_SUBMENU = $00000004;
|
|
{$EXTERNALSYM MIIM_SUBMENU}
|
|
MIIM_CHECKMARKS = $00000008;
|
|
{$EXTERNALSYM MIIM_CHECKMARKS}
|
|
MIIM_TYPE = $00000010;
|
|
{$EXTERNALSYM MIIM_TYPE}
|
|
MIIM_DATA = $00000020;
|
|
{$EXTERNALSYM MIIM_DATA}
|
|
|
|
MIIM_STRING = $00000040;
|
|
{$EXTERNALSYM MIIM_STRING}
|
|
MIIM_BITMAP = $00000080;
|
|
{$EXTERNALSYM MIIM_BITMAP}
|
|
MIIM_FTYPE = $00000100;
|
|
{$EXTERNALSYM MIIM_FTYPE}
|
|
|
|
HBMMENU_CALLBACK = HBITMAP(-1);
|
|
{$EXTERNALSYM HBMMENU_CALLBACK}
|
|
HBMMENU_SYSTEM = HBITMAP(1);
|
|
{$EXTERNALSYM HBMMENU_SYSTEM}
|
|
HBMMENU_MBAR_RESTORE = HBITMAP(2);
|
|
{$EXTERNALSYM HBMMENU_MBAR_RESTORE}
|
|
HBMMENU_MBAR_MINIMIZE = HBITMAP(3);
|
|
{$EXTERNALSYM HBMMENU_MBAR_MINIMIZE}
|
|
HBMMENU_MBAR_CLOSE = HBITMAP(5);
|
|
{$EXTERNALSYM HBMMENU_MBAR_CLOSE}
|
|
HBMMENU_MBAR_CLOSE_D = HBITMAP(6);
|
|
{$EXTERNALSYM HBMMENU_MBAR_CLOSE_D}
|
|
HBMMENU_MBAR_MINIMIZE_D = HBITMAP(7);
|
|
{$EXTERNALSYM HBMMENU_MBAR_MINIMIZE_D}
|
|
HBMMENU_POPUP_CLOSE = HBITMAP(8);
|
|
{$EXTERNALSYM HBMMENU_POPUP_CLOSE}
|
|
HBMMENU_POPUP_RESTORE = HBITMAP(9);
|
|
{$EXTERNALSYM HBMMENU_POPUP_RESTORE}
|
|
HBMMENU_POPUP_MAXIMIZE = HBITMAP(10);
|
|
{$EXTERNALSYM HBMMENU_POPUP_MAXIMIZE}
|
|
HBMMENU_POPUP_MINIMIZE = HBITMAP(11);
|
|
{$EXTERNALSYM HBMMENU_POPUP_MINIMIZE}
|
|
|
|
type
|
|
LPMENUITEMINFOA = ^MENUITEMINFOA;
|
|
{$EXTERNALSYM LPMENUITEMINFOA}
|
|
tagMENUITEMINFOA = record
|
|
cbSize: UINT;
|
|
fMask: UINT;
|
|
fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
|
|
fState: UINT; // used if MIIM_STATE
|
|
wID: UINT; // used if MIIM_ID
|
|
hSubMenu: HMENU; // used if MIIM_SUBMENU
|
|
hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
|
|
hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
|
|
dwItemData: ULONG_PTR; // used if MIIM_DATA
|
|
dwTypeData: LPSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
|
|
cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
|
|
{$IFDEF WIN98ME_UP}
|
|
hbmpItem: HBITMAP; // used if MIIM_BITMAP
|
|
{$ENDIF WIN98ME_UP}
|
|
end;
|
|
{$EXTERNALSYM tagMENUITEMINFOA}
|
|
MENUITEMINFOA = tagMENUITEMINFOA;
|
|
{$EXTERNALSYM MENUITEMINFOA}
|
|
TMenuItemInfoA = MENUITEMINFOA;
|
|
PMenuItemInfoA = LPMENUITEMINFOA;
|
|
|
|
LPMENUITEMINFOW = ^MENUITEMINFOW;
|
|
{$EXTERNALSYM LPMENUITEMINFOW}
|
|
tagMENUITEMINFOW = record
|
|
cbSize: UINT;
|
|
fMask: UINT;
|
|
fType: UINT; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0)
|
|
fState: UINT; // used if MIIM_STATE
|
|
wID: UINT; // used if MIIM_ID
|
|
hSubMenu: HMENU; // used if MIIM_SUBMENU
|
|
hbmpChecked: HBITMAP; // used if MIIM_CHECKMARKS
|
|
hbmpUnchecked: HBITMAP; // used if MIIM_CHECKMARKS
|
|
dwItemData: ULONG_PTR; // used if MIIM_DATA
|
|
dwTypeData: LPWSTR; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
|
|
cch: UINT; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0)
|
|
{$IFDEF WIN98ME_UP}
|
|
hbmpItem: HBITMAP; // used if MIIM_BITMAP
|
|
{$ENDIF WIN98ME_UP}
|
|
end;
|
|
{$EXTERNALSYM tagMENUITEMINFOW}
|
|
MENUITEMINFOW = tagMENUITEMINFOW;
|
|
{$EXTERNALSYM MENUITEMINFOW}
|
|
TMenuItemInfoW = MENUITEMINFOW;
|
|
PMenuItemInfoW = LPMENUITEMINFOW;
|
|
|
|
LPCMENUITEMINFOA = ^MENUITEMINFOA;
|
|
{$EXTERNALSYM LPCMENUITEMINFOA}
|
|
LPCMENUITEMINFOW = ^MENUITEMINFOW;
|
|
{$EXTERNALSYM LPCMENUITEMINFOW}
|
|
|
|
{$IFDEF UNICODE}
|
|
MENUITEMINFO = MENUITEMINFOW;
|
|
{$EXTERNALSYM MENUITEMINFO}
|
|
LPMENUITEMINFO = LPMENUITEMINFOW;
|
|
{$EXTERNALSYM LPMENUITEMINFO}
|
|
TMenuItemInfo = TMenuItemInfoW;
|
|
PMenuItemInfo = PMenuItemInfoW;
|
|
LPCMENUITEMINFO = LPCMENUITEMINFOW;
|
|
{$EXTERNALSYM LPCMENUITEMINFO}
|
|
{$ELSE}
|
|
MENUITEMINFO = MENUITEMINFOA;
|
|
{$EXTERNALSYM MENUITEMINFO}
|
|
LPMENUITEMINFO = LPMENUITEMINFOA;
|
|
{$EXTERNALSYM LPMENUITEMINFO}
|
|
TMenuItemInfo = TMenuItemInfoA;
|
|
PMenuItemInfo = PMenuItemInfoA;
|
|
LPCMENUITEMINFO = LPCMENUITEMINFOA;
|
|
{$EXTERNALSYM LPCMENUITEMINFO}
|
|
{$ENDIF UNICODE}
|
|
|
|
function InsertMenuItemA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFOA): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenuItemA}
|
|
function InsertMenuItemW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFOW): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenuItemW}
|
|
function InsertMenuItem(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM InsertMenuItem}
|
|
|
|
function GetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
var lpmii: MENUITEMINFOA): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuItemInfoA}
|
|
function GetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
var lpmii: MENUITEMINFOW): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuItemInfoW}
|
|
function GetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
var lpmii: MENUITEMINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuItemInfo}
|
|
|
|
function SetMenuItemInfoA(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFOA): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuItemInfoA}
|
|
function SetMenuItemInfoW(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFOW): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuItemInfoW}
|
|
function SetMenuItemInfo(hMenu: HMENU; uItem: UINT; fByPosition: BOOL;
|
|
const lpmii: MENUITEMINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuItemInfo}
|
|
|
|
const
|
|
GMDI_USEDISABLED = $0001;
|
|
{$EXTERNALSYM GMDI_USEDISABLED}
|
|
GMDI_GOINTOPOPUPS = $0002;
|
|
{$EXTERNALSYM GMDI_GOINTOPOPUPS}
|
|
|
|
function GetMenuDefaultItem(hMenu: HMENU; fByPos, gmdiFlags: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetMenuDefaultItem}
|
|
|
|
function SetMenuDefaultItem(hMenu: HMENU; uItem, fByPos: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuDefaultItem}
|
|
|
|
function GetMenuItemRect(hWnd: HWND; hMenu: HMENU; uItem: UINT; var lprcItem: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuItemRect}
|
|
|
|
function MenuItemFromPoint(hWnd: HWND; hMenu: HMENU; ptScreen: POINT): Integer; stdcall;
|
|
{$EXTERNALSYM MenuItemFromPoint}
|
|
|
|
//
|
|
// Flags for TrackPopupMenu
|
|
//
|
|
|
|
const
|
|
TPM_LEFTBUTTON = $0000;
|
|
{$EXTERNALSYM TPM_LEFTBUTTON}
|
|
TPM_RIGHTBUTTON = $0002;
|
|
{$EXTERNALSYM TPM_RIGHTBUTTON}
|
|
TPM_LEFTALIGN = $0000;
|
|
{$EXTERNALSYM TPM_LEFTALIGN}
|
|
TPM_CENTERALIGN = $0004;
|
|
{$EXTERNALSYM TPM_CENTERALIGN}
|
|
TPM_RIGHTALIGN = $0008;
|
|
{$EXTERNALSYM TPM_RIGHTALIGN}
|
|
TPM_TOPALIGN = $0000;
|
|
{$EXTERNALSYM TPM_TOPALIGN}
|
|
TPM_VCENTERALIGN = $0010;
|
|
{$EXTERNALSYM TPM_VCENTERALIGN}
|
|
TPM_BOTTOMALIGN = $0020;
|
|
{$EXTERNALSYM TPM_BOTTOMALIGN}
|
|
|
|
TPM_HORIZONTAL = $0000; // Horz alignment matters more
|
|
{$EXTERNALSYM TPM_HORIZONTAL}
|
|
TPM_VERTICAL = $0040; // Vert alignment matters more
|
|
{$EXTERNALSYM TPM_VERTICAL}
|
|
TPM_NONOTIFY = $0080; // Don't send any notification msgs
|
|
{$EXTERNALSYM TPM_NONOTIFY}
|
|
TPM_RETURNCMD = $0100;
|
|
{$EXTERNALSYM TPM_RETURNCMD}
|
|
TPM_RECURSE = $0001;
|
|
{$EXTERNALSYM TPM_RECURSE}
|
|
TPM_HORPOSANIMATION = $0400;
|
|
{$EXTERNALSYM TPM_HORPOSANIMATION}
|
|
TPM_HORNEGANIMATION = $0800;
|
|
{$EXTERNALSYM TPM_HORNEGANIMATION}
|
|
TPM_VERPOSANIMATION = $1000;
|
|
{$EXTERNALSYM TPM_VERPOSANIMATION}
|
|
TPM_VERNEGANIMATION = $2000;
|
|
{$EXTERNALSYM TPM_VERNEGANIMATION}
|
|
TPM_NOANIMATION = $4000;
|
|
{$EXTERNALSYM TPM_NOANIMATION}
|
|
TPM_LAYOUTRTL = $8000;
|
|
{$EXTERNALSYM TPM_LAYOUTRTL}
|
|
|
|
//
|
|
// Drag-and-drop support
|
|
// Obsolete - use OLE instead
|
|
//
|
|
|
|
type
|
|
LPDROPSTRUCT = ^DROPSTRUCT;
|
|
{$EXTERNALSYM LPDROPSTRUCT}
|
|
tagDROPSTRUCT = record
|
|
hwndSource: HWND;
|
|
hwndSink: HWND;
|
|
wFmt: DWORD;
|
|
dwData: ULONG_PTR;
|
|
ptDrop: POINT;
|
|
dwControlData: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagDROPSTRUCT}
|
|
DROPSTRUCT = tagDROPSTRUCT;
|
|
{$EXTERNALSYM DROPSTRUCT}
|
|
TDropStruct = DROPSTRUCT;
|
|
PDropStruct = LPDROPSTRUCT;
|
|
|
|
const
|
|
DOF_EXECUTABLE = $8001; // wFmt flags
|
|
{$EXTERNALSYM DOF_EXECUTABLE}
|
|
DOF_DOCUMENT = $8002;
|
|
{$EXTERNALSYM DOF_DOCUMENT}
|
|
DOF_DIRECTORY = $8003;
|
|
{$EXTERNALSYM DOF_DIRECTORY}
|
|
DOF_MULTIPLE = $8004;
|
|
{$EXTERNALSYM DOF_MULTIPLE}
|
|
DOF_PROGMAN = $0001;
|
|
{$EXTERNALSYM DOF_PROGMAN}
|
|
DOF_SHELLDATA = $0002;
|
|
{$EXTERNALSYM DOF_SHELLDATA}
|
|
|
|
DO_DROPFILE = $454C4946;
|
|
{$EXTERNALSYM DO_DROPFILE}
|
|
DO_PRINTFILE = $544E5250;
|
|
{$EXTERNALSYM DO_PRINTFILE}
|
|
|
|
function DragObject(hwnd1, hwnd2: HWND; i: UINT; u: ULONG_PTR; hcursor: HCURSOR): DWORD; stdcall;
|
|
{$EXTERNALSYM DragObject}
|
|
|
|
function DragDetect(hwnd: HWND; pt: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DragDetect}
|
|
|
|
function DrawIcon(hDC: HDC; X, Y: Integer; hIcon: HICON): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawIcon}
|
|
|
|
//
|
|
// DrawText() Format Flags
|
|
//
|
|
|
|
const
|
|
DT_TOP = $00000000;
|
|
{$EXTERNALSYM DT_TOP}
|
|
DT_LEFT = $00000000;
|
|
{$EXTERNALSYM DT_LEFT}
|
|
DT_CENTER = $00000001;
|
|
{$EXTERNALSYM DT_CENTER}
|
|
DT_RIGHT = $00000002;
|
|
{$EXTERNALSYM DT_RIGHT}
|
|
DT_VCENTER = $00000004;
|
|
{$EXTERNALSYM DT_VCENTER}
|
|
DT_BOTTOM = $00000008;
|
|
{$EXTERNALSYM DT_BOTTOM}
|
|
DT_WORDBREAK = $00000010;
|
|
{$EXTERNALSYM DT_WORDBREAK}
|
|
DT_SINGLELINE = $00000020;
|
|
{$EXTERNALSYM DT_SINGLELINE}
|
|
DT_EXPANDTABS = $00000040;
|
|
{$EXTERNALSYM DT_EXPANDTABS}
|
|
DT_TABSTOP = $00000080;
|
|
{$EXTERNALSYM DT_TABSTOP}
|
|
DT_NOCLIP = $00000100;
|
|
{$EXTERNALSYM DT_NOCLIP}
|
|
DT_EXTERNALLEADING = $00000200;
|
|
{$EXTERNALSYM DT_EXTERNALLEADING}
|
|
DT_CALCRECT = $00000400;
|
|
{$EXTERNALSYM DT_CALCRECT}
|
|
DT_NOPREFIX = $00000800;
|
|
{$EXTERNALSYM DT_NOPREFIX}
|
|
DT_INTERNAL = $00001000;
|
|
{$EXTERNALSYM DT_INTERNAL}
|
|
|
|
DT_EDITCONTROL = $00002000;
|
|
{$EXTERNALSYM DT_EDITCONTROL}
|
|
DT_PATH_ELLIPSIS = $00004000;
|
|
{$EXTERNALSYM DT_PATH_ELLIPSIS}
|
|
DT_END_ELLIPSIS = $00008000;
|
|
{$EXTERNALSYM DT_END_ELLIPSIS}
|
|
DT_MODIFYSTRING = $00010000;
|
|
{$EXTERNALSYM DT_MODIFYSTRING}
|
|
DT_RTLREADING = $00020000;
|
|
{$EXTERNALSYM DT_RTLREADING}
|
|
DT_WORD_ELLIPSIS = $00040000;
|
|
{$EXTERNALSYM DT_WORD_ELLIPSIS}
|
|
DT_NOFULLWIDTHCHARBREAK = $00080000;
|
|
{$EXTERNALSYM DT_NOFULLWIDTHCHARBREAK}
|
|
DT_HIDEPREFIX = $00100000;
|
|
{$EXTERNALSYM DT_HIDEPREFIX}
|
|
DT_PREFIXONLY = $00200000;
|
|
{$EXTERNALSYM DT_PREFIXONLY}
|
|
|
|
type
|
|
LPDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
|
|
{$EXTERNALSYM LPDRAWTEXTPARAMS}
|
|
tagDRAWTEXTPARAMS = record
|
|
cbSize: UINT;
|
|
iTabLength: Integer;
|
|
iLeftMargin: Integer;
|
|
iRightMargin: Integer;
|
|
uiLengthDrawn: UINT;
|
|
end;
|
|
{$EXTERNALSYM tagDRAWTEXTPARAMS}
|
|
DRAWTEXTPARAMS = tagDRAWTEXTPARAMS;
|
|
{$EXTERNALSYM DRAWTEXTPARAMS}
|
|
TDrawTextParams = DRAWTEXTPARAMS;
|
|
PDrawTextParams = LPDRAWTEXTPARAMS;
|
|
|
|
function DrawTextA(hDC: HDC; lpString: LPCSTR; nCount: Integer;
|
|
var lpRect: RECT; uFormat: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DrawTextA}
|
|
function DrawTextW(hDC: HDC; lpString: LPCWSTR; nCount: Integer;
|
|
var lpRect: RECT; uFormat: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DrawTextW}
|
|
function DrawText(hDC: HDC; lpString: LPCTSTR; nCount: Integer;
|
|
var lpRect: RECT; uFormat: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DrawText}
|
|
|
|
function DrawTextExA(hDc: HDC; lpchText: LPSTR; cchText: Integer;
|
|
var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
|
|
{$EXTERNALSYM DrawTextExA}
|
|
function DrawTextExW(hDc: HDC; lpchText: LPWSTR; cchText: Integer;
|
|
var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
|
|
{$EXTERNALSYM DrawTextExW}
|
|
function DrawTextEx(hDc: HDC; lpchText: LPTSTR; cchText: Integer;
|
|
var lprc: RECT; dwDTFormat: UINT; lpDTParams: LPDRAWTEXTPARAMS): Integer; stdcall;
|
|
{$EXTERNALSYM DrawTextEx}
|
|
|
|
function GrayStringA(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
|
|
lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM GrayStringA}
|
|
function GrayStringW(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
|
|
lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM GrayStringW}
|
|
function GrayString(hDC: HDC; hBrush: HBRUSH; lpOutputFunc: GRAYSTRINGPROC;
|
|
lpData: LPARAM; nCount, X, Y, nWidth, nHeight: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM GrayString}
|
|
|
|
// Monolithic state-drawing routine//
|
|
// Image type//
|
|
|
|
const
|
|
DST_COMPLEX = $0000;
|
|
{$EXTERNALSYM DST_COMPLEX}
|
|
DST_TEXT = $0001;
|
|
{$EXTERNALSYM DST_TEXT}
|
|
DST_PREFIXTEXT = $0002;
|
|
{$EXTERNALSYM DST_PREFIXTEXT}
|
|
DST_ICON = $0003;
|
|
{$EXTERNALSYM DST_ICON}
|
|
DST_BITMAP = $0004;
|
|
{$EXTERNALSYM DST_BITMAP}
|
|
|
|
// State type//
|
|
|
|
DSS_NORMAL = $0000;
|
|
{$EXTERNALSYM DSS_NORMAL}
|
|
DSS_UNION = $0010; // Gray string appearance
|
|
{$EXTERNALSYM DSS_UNION}
|
|
DSS_DISABLED = $0020;
|
|
{$EXTERNALSYM DSS_DISABLED}
|
|
DSS_MONO = $0080;
|
|
{$EXTERNALSYM DSS_MONO}
|
|
DSS_HIDEPREFIX = $0200;
|
|
{$EXTERNALSYM DSS_HIDEPREFIX}
|
|
DSS_PREFIXONLY = $0400;
|
|
{$EXTERNALSYM DSS_PREFIXONLY}
|
|
DSS_RIGHT = $8000;
|
|
{$EXTERNALSYM DSS_RIGHT}
|
|
|
|
function DrawStateA(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
|
|
lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawStateA}
|
|
function DrawStateW(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
|
|
lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawStateW}
|
|
function DrawState(hdc: HDC; hbr: HBRUSH; lputputFunc: DRAWSTATEPROC;
|
|
lData: LPARAM; wData: WPARAM; x, y, cx, cy: Integer; fuFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawState}
|
|
|
|
function TabbedTextOutA(hDC: HDC; X, Y: Integer; lpString: LPCSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM TabbedTextOutA}
|
|
function TabbedTextOutW(hDC: HDC; X, Y: Integer; lpString: LPCWSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM TabbedTextOutW}
|
|
function TabbedTextOut(hDC: HDC; X, Y: Integer; lpString: LPCTSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT; nTabOrigin: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM TabbedTextOut}
|
|
|
|
function GetTabbedTextExtentA(hDC: HDC; lpString: LPCSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
|
|
{$EXTERNALSYM GetTabbedTextExtentA}
|
|
function GetTabbedTextExtentW(hDC: HDC; lpString: LPCWSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
|
|
{$EXTERNALSYM GetTabbedTextExtentW}
|
|
function GetTabbedTextExtent(hDC: HDC; lpString: LPCTSTR; nCount,
|
|
nTabPositions: Integer; lpnTabStopPositions: LPINT): DWORD; stdcall;
|
|
{$EXTERNALSYM GetTabbedTextExtent}
|
|
|
|
function UpdateWindow(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM UpdateWindow}
|
|
|
|
function SetActiveWindow(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM SetActiveWindow}
|
|
|
|
function GetForegroundWindow: HWND; stdcall;
|
|
{$EXTERNALSYM GetForegroundWindow}
|
|
|
|
function PaintDesktop(hdc: HDC): BOOL; stdcall;
|
|
{$EXTERNALSYM PaintDesktop}
|
|
|
|
procedure SwitchToThisWindow(hwnd: HWND; fUnknown: BOOL); stdcall;
|
|
{$EXTERNALSYM SwitchToThisWindow}
|
|
|
|
function SetForegroundWindow(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM SetForegroundWindow}
|
|
|
|
function AllowSetForegroundWindow(dwProcessId: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM AllowSetForegroundWindow}
|
|
|
|
const
|
|
ASFW_ANY = DWORD(-1);
|
|
{$EXTERNALSYM ASFW_ANY}
|
|
|
|
function LockSetForegroundWindow(uLockCode: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM LockSetForegroundWindow}
|
|
|
|
const
|
|
LSFW_LOCK = 1;
|
|
{$EXTERNALSYM LSFW_LOCK}
|
|
LSFW_UNLOCK = 2;
|
|
{$EXTERNALSYM LSFW_UNLOCK}
|
|
|
|
function WindowFromDC(hDC: HDC): HWND; stdcall;
|
|
{$EXTERNALSYM WindowFromDC}
|
|
|
|
function GetDC(hWnd: HWND): HDC; stdcall;
|
|
{$EXTERNALSYM GetDC}
|
|
|
|
function GetDCEx(hWnd: HWND; hrgnClip: HRGN; flags: DWORD): HDC; stdcall;
|
|
{$EXTERNALSYM GetDCEx}
|
|
|
|
//
|
|
// GetDCEx() flags
|
|
//
|
|
|
|
const
|
|
DCX_WINDOW = $00000001;
|
|
{$EXTERNALSYM DCX_WINDOW}
|
|
DCX_CACHE = $00000002;
|
|
{$EXTERNALSYM DCX_CACHE}
|
|
DCX_NORESETATTRS = $00000004;
|
|
{$EXTERNALSYM DCX_NORESETATTRS}
|
|
DCX_CLIPCHILDREN = $00000008;
|
|
{$EXTERNALSYM DCX_CLIPCHILDREN}
|
|
DCX_CLIPSIBLINGS = $00000010;
|
|
{$EXTERNALSYM DCX_CLIPSIBLINGS}
|
|
DCX_PARENTCLIP = $00000020;
|
|
{$EXTERNALSYM DCX_PARENTCLIP}
|
|
DCX_EXCLUDERGN = $00000040;
|
|
{$EXTERNALSYM DCX_EXCLUDERGN}
|
|
DCX_INTERSECTRGN = $00000080;
|
|
{$EXTERNALSYM DCX_INTERSECTRGN}
|
|
DCX_EXCLUDEUPDATE = $00000100;
|
|
{$EXTERNALSYM DCX_EXCLUDEUPDATE}
|
|
DCX_INTERSECTUPDATE = $00000200;
|
|
{$EXTERNALSYM DCX_INTERSECTUPDATE}
|
|
DCX_LOCKWINDOWUPDATE = $00000400;
|
|
{$EXTERNALSYM DCX_LOCKWINDOWUPDATE}
|
|
|
|
DCX_VALIDATE = $00200000;
|
|
{$EXTERNALSYM DCX_VALIDATE}
|
|
|
|
function GetWindowDC(hWnd: HWND): HDC; stdcall;
|
|
{$EXTERNALSYM GetWindowDC}
|
|
|
|
function ReleaseDC(hWnd: HWND; hDC: HDC): Integer; stdcall;
|
|
{$EXTERNALSYM ReleaseDC}
|
|
|
|
function BeginPaint(hWnd: HWND; var lpPaint: PAINTSTRUCT): HDC; stdcall;
|
|
{$EXTERNALSYM BeginPaint}
|
|
|
|
function EndPaint(hWnd: HWND; const lpPaint: PAINTSTRUCT): BOOL; stdcall;
|
|
{$EXTERNALSYM EndPaint}
|
|
|
|
function GetUpdateRect(hWnd: HWND; var lpRect: RECT; bErase: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM GetUpdateRect}
|
|
|
|
function GetUpdateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM GetUpdateRgn}
|
|
|
|
function SetWindowRgn(hWnd: HWND; hRgn: HRGN; bRedraw: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM SetWindowRgn}
|
|
|
|
function GetWindowRgn(hWnd: HWND; hRgn: HRGN): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowRgn}
|
|
|
|
function GetWindowRgnBox(hWnd: HWND; var lprc: RECT): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowRgnBox}
|
|
|
|
function ExcludeUpdateRgn(hDC: HDC; hWnd: HWND): Integer; stdcall;
|
|
{$EXTERNALSYM ExcludeUpdateRgn}
|
|
|
|
function InvalidateRect(hWnd: HWND; lpRect: LPRECT; bErase: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM InvalidateRect}
|
|
|
|
function ValidateRect(hWnd: HWND; lpRect: LPRECT): BOOL; stdcall;
|
|
{$EXTERNALSYM ValidateRect}
|
|
|
|
function InvalidateRgn(hWnd: HWND; hRgn: HRGN; bErase: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM InvalidateRgn}
|
|
|
|
function ValidateRgn(hWnd: HWND; hRgn: HRGN): BOOL; stdcall;
|
|
{$EXTERNALSYM ValidateRgn}
|
|
|
|
function RedrawWindow(hWnd: HWND; lprcUpdate: LPRECT; hrgnUpdate: HRGN; flags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM RedrawWindow}
|
|
|
|
//
|
|
// RedrawWindow() flags
|
|
//
|
|
|
|
const
|
|
RDW_INVALIDATE = $0001;
|
|
{$EXTERNALSYM RDW_INVALIDATE}
|
|
RDW_INTERNALPAINT = $0002;
|
|
{$EXTERNALSYM RDW_INTERNALPAINT}
|
|
RDW_ERASE = $0004;
|
|
{$EXTERNALSYM RDW_ERASE}
|
|
|
|
RDW_VALIDATE = $0008;
|
|
{$EXTERNALSYM RDW_VALIDATE}
|
|
RDW_NOINTERNALPAINT = $0010;
|
|
{$EXTERNALSYM RDW_NOINTERNALPAINT}
|
|
RDW_NOERASE = $0020;
|
|
{$EXTERNALSYM RDW_NOERASE}
|
|
|
|
RDW_NOCHILDREN = $0040;
|
|
{$EXTERNALSYM RDW_NOCHILDREN}
|
|
RDW_ALLCHILDREN = $0080;
|
|
{$EXTERNALSYM RDW_ALLCHILDREN}
|
|
|
|
RDW_UPDATENOW = $0100;
|
|
{$EXTERNALSYM RDW_UPDATENOW}
|
|
RDW_ERASENOW = $0200;
|
|
{$EXTERNALSYM RDW_ERASENOW}
|
|
|
|
RDW_FRAME = $0400;
|
|
{$EXTERNALSYM RDW_FRAME}
|
|
RDW_NOFRAME = $0800;
|
|
{$EXTERNALSYM RDW_NOFRAME}
|
|
|
|
//
|
|
// LockWindowUpdate API
|
|
//
|
|
|
|
function LockWindowUpdate(hWndLock: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM LockWindowUpdate}
|
|
|
|
function ScrollWindow(hWnd: HWND; XAmount, YAmount: Integer; lpRect, lpClipRect: LPRECT): BOOL; stdcall;
|
|
{$EXTERNALSYM ScrollWindow}
|
|
|
|
function ScrollDC(hDC: HDC; dx, dy: Integer; lprcScroll, lprcClip: LPRECT;
|
|
hrgnUpdate: HRGN; lprcUpdate: LPRECT): BOOL; stdcall;
|
|
{$EXTERNALSYM ScrollDC}
|
|
|
|
function ScrollWindowEx(hWnd: HWND; dx, dy: Integer; prcScroll, prcClip: LPRECT;
|
|
hrgnUpdate: HRGN; prcUpdate: LPRECT; flags: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM ScrollWindowEx}
|
|
|
|
const
|
|
SW_SCROLLCHILDREN = $0001; // Scroll children within *lprcScroll.
|
|
{$EXTERNALSYM SW_SCROLLCHILDREN}
|
|
SW_INVALIDATE = $0002; // Invalidate after scrolling
|
|
{$EXTERNALSYM SW_INVALIDATE}
|
|
SW_ERASE = $0004; // If SW_INVALIDATE, don't send WM_ERASEBACKGROUND
|
|
{$EXTERNALSYM SW_ERASE}
|
|
SW_SMOOTHSCROLL = $0010; // Use smooth scrolling
|
|
{$EXTERNALSYM SW_SMOOTHSCROLL}
|
|
|
|
function SetScrollPos(hWnd: HWND; nBar, nPos: Integer; bRedraw: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM SetScrollPos}
|
|
|
|
function GetScrollPos(hWnd: HWND; nBar: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetScrollPos}
|
|
|
|
function SetScrollRange(hWnd: HWND; nBar, nMinPos, nMaxPos: Integer; bRedraw: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM SetScrollRange}
|
|
|
|
function GetScrollRange(hWnd: HWND; nBar: Integer; var lpMinPos, lpMaxPos: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM GetScrollRange}
|
|
|
|
function ShowScrollBar(hWnd: HWND; wBar: Integer; bShow: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM ShowScrollBar}
|
|
|
|
function EnableScrollBar(hWnd: HWND; wSBflags, wArrows: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM EnableScrollBar}
|
|
|
|
//
|
|
// EnableScrollBar() flags
|
|
//
|
|
|
|
const
|
|
ESB_ENABLE_BOTH = $0000;
|
|
{$EXTERNALSYM ESB_ENABLE_BOTH}
|
|
ESB_DISABLE_BOTH = $0003;
|
|
{$EXTERNALSYM ESB_DISABLE_BOTH}
|
|
|
|
ESB_DISABLE_LEFT = $0001;
|
|
{$EXTERNALSYM ESB_DISABLE_LEFT}
|
|
ESB_DISABLE_RIGHT = $0002;
|
|
{$EXTERNALSYM ESB_DISABLE_RIGHT}
|
|
|
|
ESB_DISABLE_UP = $0001;
|
|
{$EXTERNALSYM ESB_DISABLE_UP}
|
|
ESB_DISABLE_DOWN = $0002;
|
|
{$EXTERNALSYM ESB_DISABLE_DOWN}
|
|
|
|
ESB_DISABLE_LTUP = ESB_DISABLE_LEFT;
|
|
{$EXTERNALSYM ESB_DISABLE_LTUP}
|
|
ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT;
|
|
{$EXTERNALSYM ESB_DISABLE_RTDN}
|
|
|
|
function SetPropA(hWnd: HWND; lpString: LPCSTR; hData: HANDLE): BOOL; stdcall;
|
|
{$EXTERNALSYM SetPropA}
|
|
function SetPropW(hWnd: HWND; lpString: LPCWSTR; hData: HANDLE): BOOL; stdcall;
|
|
{$EXTERNALSYM SetPropW}
|
|
function SetProp(hWnd: HWND; lpString: LPCTSTR; hData: HANDLE): BOOL; stdcall;
|
|
{$EXTERNALSYM SetProp}
|
|
|
|
function GetPropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM GetPropA}
|
|
function GetPropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM GetPropW}
|
|
function GetProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM GetProp}
|
|
|
|
function RemovePropA(hWnd: HWND; lpString: LPCSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM RemovePropA}
|
|
function RemovePropW(hWnd: HWND; lpString: LPCWSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM RemovePropW}
|
|
function RemoveProp(hWnd: HWND; lpString: LPCTSTR): HANDLE; stdcall;
|
|
{$EXTERNALSYM RemoveProp}
|
|
|
|
function EnumPropsExA(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXA; lParam: LPARAM): Integer; stdcall;
|
|
{$EXTERNALSYM EnumPropsExA}
|
|
function EnumPropsExW(hWnd: HWND; lpEnumFunc: PROPENUMPROCEXW; lParam: LPARAM): Integer; stdcall;
|
|
{$EXTERNALSYM EnumPropsExW}
|
|
function EnumPropsEx(hWnd: HWND; lpEnumFunc: PROPENUMPROCEX; lParam: LPARAM): Integer; stdcall;
|
|
{$EXTERNALSYM EnumPropsEx}
|
|
|
|
function EnumPropsA(hWnd: HWND; lpEnumFunc: PROPENUMPROCA): Integer; stdcall;
|
|
{$EXTERNALSYM EnumPropsA}
|
|
function EnumPropsW(hWnd: HWND; lpEnumFunc: PROPENUMPROCW): Integer; stdcall;
|
|
{$EXTERNALSYM EnumPropsW}
|
|
function EnumProps(hWnd: HWND; lpEnumFunc: PROPENUMPROC): Integer; stdcall;
|
|
{$EXTERNALSYM EnumProps}
|
|
|
|
function SetWindowTextA(hWnd: HWND; lpString: LPCSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowTextA}
|
|
function SetWindowTextW(hWnd: HWND; lpString: LPCWSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowTextW}
|
|
function SetWindowText(hWnd: HWND; lpString: LPCTSTR): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowText}
|
|
|
|
function GetWindowTextA(hWnd: HWND; lpString: LPSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowTextA}
|
|
function GetWindowTextW(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowTextW}
|
|
function GetWindowText(hWnd: HWND; lpString: LPTSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowText}
|
|
|
|
function GetWindowTextLengthA(hWnd: HWND): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowTextLengthA}
|
|
function GetWindowTextLengthW(hWnd: HWND): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowTextLengthW}
|
|
function GetWindowTextLength(hWnd: HWND): Integer; stdcall;
|
|
{$EXTERNALSYM GetWindowTextLength}
|
|
|
|
function GetClientRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClientRect}
|
|
|
|
function GetWindowRect(hWnd: HWND; var lpRect: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetWindowRect}
|
|
|
|
function AdjustWindowRect(var lpRect: RECT; dwStyle: DWORD; bMenu: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM AdjustWindowRect}
|
|
|
|
function AdjustWindowRectEx(var lpRect: RECT; dwStyle: DWORD;
|
|
bMenu: BOOL; dwExStyle: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM AdjustWindowRectEx}
|
|
|
|
const
|
|
HELPINFO_WINDOW = $0001;
|
|
{$EXTERNALSYM HELPINFO_WINDOW}
|
|
HELPINFO_MENUITEM = $0002;
|
|
{$EXTERNALSYM HELPINFO_MENUITEM}
|
|
|
|
type
|
|
LPHELPINFO = ^HELPINFO;
|
|
{$EXTERNALSYM LPHELPINFO}
|
|
tagHELPINFO = record // Structure pointed to by lParam of WM_HELP//
|
|
cbSize: UINT; // Size in bytes of this struct //
|
|
iContextType: Integer; // Either HELPINFO_WINDOW or HELPINFO_MENUITEM//
|
|
iCtrlId: Integer; // Control Id or a Menu item Id.//
|
|
hItemHandle: HANDLE; // hWnd of control or hMenu. //
|
|
dwContextId: DWORD_PTR; // Context Id associated with this item//
|
|
MousePos: POINT; // Mouse Position in screen co-ordinates//
|
|
end;
|
|
{$EXTERNALSYM tagHELPINFO}
|
|
HELPINFO = tagHELPINFO;
|
|
{$EXTERNALSYM HELPINFO}
|
|
THelpInfo = HELPINFO;
|
|
PHelpInfo = LPHELPINFO;
|
|
|
|
function SetWindowContextHelpId(hwnd: HWND; dwContextHelpId: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetWindowContextHelpId}
|
|
|
|
function GetWindowContextHelpId(hwnd: HWND): DWORD; stdcall;
|
|
{$EXTERNALSYM GetWindowContextHelpId}
|
|
|
|
function SetMenuContextHelpId(hmenu: HMENU; dwContextHelpId: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetMenuContextHelpId}
|
|
|
|
function GetMenuContextHelpId(hmenu: HMENU): DWORD; stdcall;
|
|
{$EXTERNALSYM GetMenuContextHelpId}
|
|
|
|
//
|
|
// MessageBox() Flags
|
|
//
|
|
|
|
const
|
|
MB_OK = $00000000;
|
|
{$EXTERNALSYM MB_OK}
|
|
MB_OKCANCEL = $00000001;
|
|
{$EXTERNALSYM MB_OKCANCEL}
|
|
MB_ABORTRETRYIGNORE = $00000002;
|
|
{$EXTERNALSYM MB_ABORTRETRYIGNORE}
|
|
MB_YESNOCANCEL = $00000003;
|
|
{$EXTERNALSYM MB_YESNOCANCEL}
|
|
MB_YESNO = $00000004;
|
|
{$EXTERNALSYM MB_YESNO}
|
|
MB_RETRYCANCEL = $00000005;
|
|
{$EXTERNALSYM MB_RETRYCANCEL}
|
|
MB_CANCELTRYCONTINUE = $00000006;
|
|
{$EXTERNALSYM MB_CANCELTRYCONTINUE}
|
|
|
|
MB_ICONHAND = $00000010;
|
|
{$EXTERNALSYM MB_ICONHAND}
|
|
MB_ICONQUESTION = $00000020;
|
|
{$EXTERNALSYM MB_ICONQUESTION}
|
|
MB_ICONEXCLAMATION = $00000030;
|
|
{$EXTERNALSYM MB_ICONEXCLAMATION}
|
|
MB_ICONASTERISK = $00000040;
|
|
{$EXTERNALSYM MB_ICONASTERISK}
|
|
|
|
MB_USERICON = $00000080;
|
|
{$EXTERNALSYM MB_USERICON}
|
|
MB_ICONWARNING = MB_ICONEXCLAMATION;
|
|
{$EXTERNALSYM MB_ICONWARNING}
|
|
MB_ICONERROR = MB_ICONHAND;
|
|
{$EXTERNALSYM MB_ICONERROR}
|
|
|
|
MB_ICONINFORMATION = MB_ICONASTERISK;
|
|
{$EXTERNALSYM MB_ICONINFORMATION}
|
|
MB_ICONSTOP = MB_ICONHAND;
|
|
{$EXTERNALSYM MB_ICONSTOP}
|
|
|
|
MB_DEFBUTTON1 = $00000000;
|
|
{$EXTERNALSYM MB_DEFBUTTON1}
|
|
MB_DEFBUTTON2 = $00000100;
|
|
{$EXTERNALSYM MB_DEFBUTTON2}
|
|
MB_DEFBUTTON3 = $00000200;
|
|
{$EXTERNALSYM MB_DEFBUTTON3}
|
|
MB_DEFBUTTON4 = $00000300;
|
|
{$EXTERNALSYM MB_DEFBUTTON4}
|
|
|
|
MB_APPLMODAL = $00000000;
|
|
{$EXTERNALSYM MB_APPLMODAL}
|
|
MB_SYSTEMMODAL = $00001000;
|
|
{$EXTERNALSYM MB_SYSTEMMODAL}
|
|
MB_TASKMODAL = $00002000;
|
|
{$EXTERNALSYM MB_TASKMODAL}
|
|
MB_HELP = $00004000; // Help Button
|
|
{$EXTERNALSYM MB_HELP}
|
|
|
|
MB_NOFOCUS = $00008000;
|
|
{$EXTERNALSYM MB_NOFOCUS}
|
|
MB_SETFOREGROUND = $00010000;
|
|
{$EXTERNALSYM MB_SETFOREGROUND}
|
|
MB_DEFAULT_DESKTOP_ONLY = $00020000;
|
|
{$EXTERNALSYM MB_DEFAULT_DESKTOP_ONLY}
|
|
|
|
MB_TOPMOST = $00040000;
|
|
{$EXTERNALSYM MB_TOPMOST}
|
|
MB_RIGHT = $00080000;
|
|
{$EXTERNALSYM MB_RIGHT}
|
|
MB_RTLREADING = $00100000;
|
|
{$EXTERNALSYM MB_RTLREADING}
|
|
|
|
const
|
|
{$IFDEF WINNT4_UP}
|
|
MB_SERVICE_NOTIFICATION = $00200000;
|
|
{$EXTERNALSYM MB_SERVICE_NOTIFICATION}
|
|
{$ELSE}
|
|
MB_SERVICE_NOTIFICATION = $00040000;
|
|
{$EXTERNALSYM MB_SERVICE_NOTIFICATION}
|
|
{$ENDIF WINNT4_UP}
|
|
|
|
MB_TYPEMASK = $0000000F;
|
|
{$EXTERNALSYM MB_TYPEMASK}
|
|
MB_ICONMASK = $000000F0;
|
|
{$EXTERNALSYM MB_ICONMASK}
|
|
MB_DEFMASK = $00000F00;
|
|
{$EXTERNALSYM MB_DEFMASK}
|
|
MB_MODEMASK = $00003000;
|
|
{$EXTERNALSYM MB_MODEMASK}
|
|
MB_MISCMASK = $0000C000;
|
|
{$EXTERNALSYM MB_MISCMASK}
|
|
|
|
function MessageBoxA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxA}
|
|
function MessageBoxW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxW}
|
|
function MessageBox(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBox}
|
|
|
|
function MessageBoxExA(hWnd: HWND; lpText, lpCaption: LPCSTR; uType: UINT;
|
|
wLanguageId: WORD): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxExA}
|
|
function MessageBoxExW(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT;
|
|
wLanguageId: WORD): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxExW}
|
|
function MessageBoxEx(hWnd: HWND; lpText, lpCaption: LPCTSTR; uType: UINT;
|
|
wLanguageId: WORD): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxEx}
|
|
|
|
type
|
|
MSGBOXCALLBACK = procedure(var lpHelpInfo: HELPINFO); stdcall;
|
|
{$EXTERNALSYM MSGBOXCALLBACK}
|
|
TMsgBoxCallback = MSGBOXCALLBACK;
|
|
|
|
LPMSGBOXPARAMSA = ^MSGBOXPARAMSA;
|
|
{$EXTERNALSYM LPMSGBOXPARAMSA}
|
|
tagMSGBOXPARAMSA = record
|
|
cbSize: UINT;
|
|
hwndOwner: HWND;
|
|
hInstance: HINST;
|
|
lpszText: LPCSTR;
|
|
lpszCaption: LPCSTR;
|
|
dwStyle: DWORD;
|
|
lpszIcon: LPCSTR;
|
|
dwContextHelpId: DWORD_PTR;
|
|
lpfnMsgBoxCallback: MSGBOXCALLBACK;
|
|
dwLanguageId: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagMSGBOXPARAMSA}
|
|
MSGBOXPARAMSA = tagMSGBOXPARAMSA;
|
|
{$EXTERNALSYM MSGBOXPARAMSA}
|
|
TMsgBoxParamsA = MSGBOXPARAMSA;
|
|
PMsgBoxParamsA = LPMSGBOXPARAMSA;
|
|
|
|
LPMSGBOXPARAMSW = ^MSGBOXPARAMSW;
|
|
{$EXTERNALSYM LPMSGBOXPARAMSW}
|
|
tagMSGBOXPARAMSW = record
|
|
cbSize: UINT;
|
|
hwndOwner: HWND;
|
|
hInstance: HINST;
|
|
lpszText: LPCWSTR;
|
|
lpszCaption: LPCWSTR;
|
|
dwStyle: DWORD;
|
|
lpszIcon: LPCWSTR;
|
|
dwContextHelpId: DWORD_PTR;
|
|
lpfnMsgBoxCallback: MSGBOXCALLBACK;
|
|
dwLanguageId: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagMSGBOXPARAMSW}
|
|
MSGBOXPARAMSW = tagMSGBOXPARAMSW;
|
|
{$EXTERNALSYM MSGBOXPARAMSW}
|
|
TMsgBoxParamsW = MSGBOXPARAMSW;
|
|
PMsgBoxParamsW = LPMSGBOXPARAMSW;
|
|
|
|
{$IFDEF UNICODE}
|
|
MSGBOXPARAMS = MSGBOXPARAMSW;
|
|
{$EXTERNALSYM MSGBOXPARAMS}
|
|
LPMSGBOXPARAMS = LPMSGBOXPARAMSW;
|
|
{$EXTERNALSYM LPMSGBOXPARAMS}
|
|
TMsgBoxParams = TMsgBoxParamsW;
|
|
PMsgBoxParams = PMsgBoxParamsW;
|
|
{$ELSE}
|
|
MSGBOXPARAMS = MSGBOXPARAMSA;
|
|
{$EXTERNALSYM MSGBOXPARAMS}
|
|
LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
|
|
{$EXTERNALSYM LPMSGBOXPARAMS}
|
|
TMsgBoxParams = TMsgBoxParamsA;
|
|
PMsgBoxParams = PMsgBoxParamsA;
|
|
{$ENDIF UNICODE}
|
|
|
|
function MessageBoxIndirectA(const lpMsgBoxParams: MSGBOXPARAMSA): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxIndirectA}
|
|
function MessageBoxIndirectW(const lpMsgBoxParams: MSGBOXPARAMSW): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxIndirectW}
|
|
function MessageBoxIndirect(const lpMsgBoxParams: MSGBOXPARAMS): Integer; stdcall;
|
|
{$EXTERNALSYM MessageBoxIndirect}
|
|
|
|
function MessageBeep(uType: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM MessageBeep}
|
|
|
|
function ShowCursor(bShow: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM ShowCursor}
|
|
|
|
function SetCursorPos(X, Y: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM SetCursorPos}
|
|
|
|
function SetCursor(hCursor: HCURSOR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM SetCursor}
|
|
|
|
function GetCursorPos(var lpPoint: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetCursorPos}
|
|
|
|
function ClipCursor(lpRect: LPRECT): BOOL; stdcall;
|
|
{$EXTERNALSYM ClipCursor}
|
|
|
|
function GetClipCursor(var lpRect: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetClipCursor}
|
|
|
|
function GetCursor: HCURSOR; stdcall;
|
|
{$EXTERNALSYM GetCursor}
|
|
|
|
function CreateCaret(hWnd: HWND; hBitmap: HBITMAP; nWidth, nHeight: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM CreateCaret}
|
|
|
|
function GetCaretBlinkTime: UINT; stdcall;
|
|
{$EXTERNALSYM GetCaretBlinkTime}
|
|
|
|
function SetCaretBlinkTime(uMSeconds: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetCaretBlinkTime}
|
|
|
|
function DestroyCaret: BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyCaret}
|
|
|
|
function HideCaret(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM HideCaret}
|
|
|
|
function ShowCaret(hWnd: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM ShowCaret}
|
|
|
|
function SetCaretPos(X, Y: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM SetCaretPos}
|
|
|
|
function GetCaretPos(var lpPoint: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetCaretPos}
|
|
|
|
function ClientToScreen(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM ClientToScreen}
|
|
|
|
function ScreenToClient(hWnd: HWND; var lpPoint: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM ScreenToClient}
|
|
|
|
function MapWindowPoints(hWndFrom, hWndTo: HWND; lpPoints: LPPOINT; cPoints: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM MapWindowPoints}
|
|
|
|
function WindowFromPoint(Point: POINT): HWND; stdcall;
|
|
{$EXTERNALSYM WindowFromPoint}
|
|
|
|
function ChildWindowFromPoint(hWndParent: HWND; Point: POINT): HWND; stdcall;
|
|
{$EXTERNALSYM ChildWindowFromPoint}
|
|
|
|
const
|
|
CWP_ALL = $0000;
|
|
{$EXTERNALSYM CWP_ALL}
|
|
CWP_SKIPINVISIBLE = $0001;
|
|
{$EXTERNALSYM CWP_SKIPINVISIBLE}
|
|
CWP_SKIPDISABLED = $0002;
|
|
{$EXTERNALSYM CWP_SKIPDISABLED}
|
|
CWP_SKIPTRANSPARENT = $0004;
|
|
{$EXTERNALSYM CWP_SKIPTRANSPARENT}
|
|
|
|
function ChildWindowFromPointEx(hwndParent: HWND; pt: POINT; uFlags: UINT): HWND; stdcall;
|
|
{$EXTERNALSYM ChildWindowFromPointEx}
|
|
|
|
//
|
|
// Color Types
|
|
//
|
|
|
|
const
|
|
CTLCOLOR_MSGBOX = 0;
|
|
{$EXTERNALSYM CTLCOLOR_MSGBOX}
|
|
CTLCOLOR_EDIT = 1;
|
|
{$EXTERNALSYM CTLCOLOR_EDIT}
|
|
CTLCOLOR_LISTBOX = 2;
|
|
{$EXTERNALSYM CTLCOLOR_LISTBOX}
|
|
CTLCOLOR_BTN = 3;
|
|
{$EXTERNALSYM CTLCOLOR_BTN}
|
|
CTLCOLOR_DLG = 4;
|
|
{$EXTERNALSYM CTLCOLOR_DLG}
|
|
CTLCOLOR_SCROLLBAR = 5;
|
|
{$EXTERNALSYM CTLCOLOR_SCROLLBAR}
|
|
CTLCOLOR_STATIC = 6;
|
|
{$EXTERNALSYM CTLCOLOR_STATIC}
|
|
CTLCOLOR_MAX = 7;
|
|
{$EXTERNALSYM CTLCOLOR_MAX}
|
|
|
|
COLOR_SCROLLBAR = 0;
|
|
{$EXTERNALSYM COLOR_SCROLLBAR}
|
|
COLOR_BACKGROUND = 1;
|
|
{$EXTERNALSYM COLOR_BACKGROUND}
|
|
COLOR_ACTIVECAPTION = 2;
|
|
{$EXTERNALSYM COLOR_ACTIVECAPTION}
|
|
COLOR_INACTIVECAPTION = 3;
|
|
{$EXTERNALSYM COLOR_INACTIVECAPTION}
|
|
COLOR_MENU = 4;
|
|
{$EXTERNALSYM COLOR_MENU}
|
|
COLOR_WINDOW = 5;
|
|
{$EXTERNALSYM COLOR_WINDOW}
|
|
COLOR_WINDOWFRAME = 6;
|
|
{$EXTERNALSYM COLOR_WINDOWFRAME}
|
|
COLOR_MENUTEXT = 7;
|
|
{$EXTERNALSYM COLOR_MENUTEXT}
|
|
COLOR_WINDOWTEXT = 8;
|
|
{$EXTERNALSYM COLOR_WINDOWTEXT}
|
|
COLOR_CAPTIONTEXT = 9;
|
|
{$EXTERNALSYM COLOR_CAPTIONTEXT}
|
|
COLOR_ACTIVEBORDER = 10;
|
|
{$EXTERNALSYM COLOR_ACTIVEBORDER}
|
|
COLOR_INACTIVEBORDER = 11;
|
|
{$EXTERNALSYM COLOR_INACTIVEBORDER}
|
|
COLOR_APPWORKSPACE = 12;
|
|
{$EXTERNALSYM COLOR_APPWORKSPACE}
|
|
COLOR_HIGHLIGHT = 13;
|
|
{$EXTERNALSYM COLOR_HIGHLIGHT}
|
|
COLOR_HIGHLIGHTTEXT = 14;
|
|
{$EXTERNALSYM COLOR_HIGHLIGHTTEXT}
|
|
COLOR_BTNFACE = 15;
|
|
{$EXTERNALSYM COLOR_BTNFACE}
|
|
COLOR_BTNSHADOW = 16;
|
|
{$EXTERNALSYM COLOR_BTNSHADOW}
|
|
COLOR_GRAYTEXT = 17;
|
|
{$EXTERNALSYM COLOR_GRAYTEXT}
|
|
COLOR_BTNTEXT = 18;
|
|
{$EXTERNALSYM COLOR_BTNTEXT}
|
|
COLOR_INACTIVECAPTIONTEXT = 19;
|
|
{$EXTERNALSYM COLOR_INACTIVECAPTIONTEXT}
|
|
COLOR_BTNHIGHLIGHT = 20;
|
|
{$EXTERNALSYM COLOR_BTNHIGHLIGHT}
|
|
|
|
COLOR_3DDKSHADOW = 21;
|
|
{$EXTERNALSYM COLOR_3DDKSHADOW}
|
|
COLOR_3DLIGHT = 22;
|
|
{$EXTERNALSYM COLOR_3DLIGHT}
|
|
COLOR_INFOTEXT = 23;
|
|
{$EXTERNALSYM COLOR_INFOTEXT}
|
|
COLOR_INFOBK = 24;
|
|
{$EXTERNALSYM COLOR_INFOBK}
|
|
|
|
COLOR_HOTLIGHT = 26;
|
|
{$EXTERNALSYM COLOR_HOTLIGHT}
|
|
COLOR_GRADIENTACTIVECAPTION = 27;
|
|
{$EXTERNALSYM COLOR_GRADIENTACTIVECAPTION}
|
|
COLOR_GRADIENTINACTIVECAPTION = 28;
|
|
{$EXTERNALSYM COLOR_GRADIENTINACTIVECAPTION}
|
|
COLOR_MENUHILIGHT = 29;
|
|
{$EXTERNALSYM COLOR_MENUHILIGHT}
|
|
COLOR_MENUBAR = 30;
|
|
{$EXTERNALSYM COLOR_MENUBAR}
|
|
|
|
COLOR_DESKTOP = COLOR_BACKGROUND;
|
|
{$EXTERNALSYM COLOR_DESKTOP}
|
|
COLOR_3DFACE = COLOR_BTNFACE;
|
|
{$EXTERNALSYM COLOR_3DFACE}
|
|
COLOR_3DSHADOW = COLOR_BTNSHADOW;
|
|
{$EXTERNALSYM COLOR_3DSHADOW}
|
|
COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT;
|
|
{$EXTERNALSYM COLOR_3DHIGHLIGHT}
|
|
COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT;
|
|
{$EXTERNALSYM COLOR_3DHILIGHT}
|
|
COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT;
|
|
{$EXTERNALSYM COLOR_BTNHILIGHT}
|
|
|
|
function GetSysColor(nIndex: Integer): DWORD; stdcall;
|
|
{$EXTERNALSYM GetSysColor}
|
|
|
|
function GetSysColorBrush(nIndex: Integer): HBRUSH; stdcall;
|
|
{$EXTERNALSYM GetSysColorBrush}
|
|
|
|
function SetSysColors(cElements: Integer; lpaElements: LPINT;
|
|
lpaRgbValues: LPCOLORREF): BOOL; stdcall;
|
|
{$EXTERNALSYM SetSysColors}
|
|
|
|
function DrawFocusRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawFocusRect}
|
|
|
|
function FillRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
|
|
{$EXTERNALSYM FillRect}
|
|
|
|
function FrameRect(hDC: HDC; const lprc: RECT; hbr: HBRUSH): Integer; stdcall;
|
|
{$EXTERNALSYM FrameRect}
|
|
|
|
function InvertRect(hDC: HDC; const lprc: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM InvertRect}
|
|
|
|
function SetRect(var lprc: RECT; xLeft, yTop, xRight, yBottom: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM SetRect}
|
|
|
|
function SetRectEmpty(var lprc: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM SetRectEmpty}
|
|
|
|
function CopyRect(var lprcDst: RECT; const lprcSrc: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM CopyRect}
|
|
|
|
function InflateRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM InflateRect}
|
|
|
|
function IntersectRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM IntersectRect}
|
|
|
|
function UnionRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM UnionRect}
|
|
|
|
function SubtractRect(var lprcDst: RECT; const lprcSrc1, lprcSrc2: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM SubtractRect}
|
|
|
|
function OffsetRect(var lprc: RECT; dx, dy: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM OffsetRect}
|
|
|
|
function IsRectEmpty(const lprc: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM IsRectEmpty}
|
|
|
|
function EqualRect(const lprc1, lprc2: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM EqualRect}
|
|
|
|
function PtInRect(const lprc: RECT; pt: POINT): BOOL; stdcall;
|
|
{$EXTERNALSYM PtInRect}
|
|
|
|
function GetWindowWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
|
|
{$EXTERNALSYM GetWindowWord}
|
|
|
|
function SetWindowWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
|
|
{$EXTERNALSYM SetWindowWord}
|
|
|
|
function GetWindowLongA(hWnd: HWND; nIndex: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM GetWindowLongA}
|
|
function GetWindowLongW(hWnd: HWND; nIndex: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM GetWindowLongW}
|
|
function GetWindowLong(hWnd: HWND; nIndex: Integer): LONG; stdcall;
|
|
{$EXTERNALSYM GetWindowLong}
|
|
|
|
function SetWindowLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
|
|
{$EXTERNALSYM SetWindowLongA}
|
|
function SetWindowLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
|
|
{$EXTERNALSYM SetWindowLongW}
|
|
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): LONG; stdcall;
|
|
{$EXTERNALSYM SetWindowLong}
|
|
|
|
function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
{$EXTERNALSYM GetWindowLongPtrA}
|
|
function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
{$EXTERNALSYM GetWindowLongPtrW}
|
|
function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
{$EXTERNALSYM GetWindowLongPtr}
|
|
|
|
function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
{$EXTERNALSYM SetWindowLongPtrA}
|
|
function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
{$EXTERNALSYM SetWindowLongPtrW}
|
|
function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
{$EXTERNALSYM SetWindowLongPtr}
|
|
|
|
function GetClassWord(hWnd: HWND; nIndex: Integer): WORD; stdcall;
|
|
{$EXTERNALSYM GetClassWord}
|
|
|
|
function SetClassWord(hWnd: HWND; nIndex: Integer; wNewWord: WORD): WORD; stdcall;
|
|
{$EXTERNALSYM SetClassWord}
|
|
|
|
function GetClassLongA(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
|
|
{$EXTERNALSYM GetClassLongA}
|
|
function GetClassLongW(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
|
|
{$EXTERNALSYM GetClassLongW}
|
|
function GetClassLong(hWnd: HWND; nIndex: Integer): DWORD; stdcall;
|
|
{$EXTERNALSYM GetClassLong}
|
|
|
|
function SetClassLongA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
|
|
{$EXTERNALSYM SetClassLongA}
|
|
function SetClassLongW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
|
|
{$EXTERNALSYM SetClassLongW}
|
|
function SetClassLong(hWnd: HWND; nIndex: Integer; dwNewLong: LONG): DWORD; stdcall;
|
|
{$EXTERNALSYM SetClassLong}
|
|
|
|
function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
{$EXTERNALSYM GetClassLongPtrA}
|
|
function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
{$EXTERNALSYM GetClassLongPtrW}
|
|
function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
{$EXTERNALSYM GetClassLongPtr}
|
|
|
|
function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
{$EXTERNALSYM SetClassLongPtrA}
|
|
function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
{$EXTERNALSYM SetClassLongPtrW}
|
|
function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
{$EXTERNALSYM SetClassLongPtr}
|
|
|
|
function GetProcessDefaultLayout(var pdwDefaultLayout: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM GetProcessDefaultLayout}
|
|
|
|
function SetProcessDefaultLayout(dwDefaultLayout: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetProcessDefaultLayout}
|
|
|
|
function GetDesktopWindow: HWND; stdcall;
|
|
{$EXTERNALSYM GetDesktopWindow}
|
|
|
|
function GetParent(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM GetParent}
|
|
|
|
function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM SetParent}
|
|
|
|
function EnumChildWindows(hWndParent: HWND; lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumChildWindows}
|
|
|
|
function FindWindowA(lpClassName, lpWindowName: LPCSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindowA}
|
|
function FindWindowW(lpClassName, lpWindowName: LPCWSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindowW}
|
|
function FindWindow(lpClassName, lpWindowName: LPCTSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindow}
|
|
|
|
function FindWindowExA(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindowExA}
|
|
function FindWindowExW(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCWSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindowExW}
|
|
function FindWindowEx(hwndParent, hwndChildAfter: HWND; lpszClass, lpszWindow: LPCTSTR): HWND; stdcall;
|
|
{$EXTERNALSYM FindWindowEx}
|
|
|
|
function GetShellWindow: HWND; stdcall;
|
|
{$EXTERNALSYM GetShellWindow}
|
|
|
|
function RegisterShellHookWindow(h: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM RegisterShellHookWindow}
|
|
|
|
function DeregisterShellHookWindow(h: HWND): BOOL; stdcall;
|
|
{$EXTERNALSYM DeregisterShellHookWindow}
|
|
|
|
function EnumWindows(lpEnumFunc: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumWindows}
|
|
|
|
function EnumThreadWindows(dwThreadId: DWORD; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumThreadWindows}
|
|
|
|
function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
|
|
{$EXTERNALSYM EnumTaskWindows}
|
|
|
|
function GetClassNameA(hWnd: HWND; lpClassName: LPSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClassNameA}
|
|
function GetClassNameW(hWnd: HWND; lpClassName: LPWSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClassNameW}
|
|
function GetClassName(hWnd: HWND; lpClassName: LPTSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM GetClassName}
|
|
|
|
function GetTopWindow(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM GetTopWindow}
|
|
|
|
function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
|
|
{$EXTERNALSYM GetNextWindow}
|
|
|
|
function GetWindowThreadProcessId(hWnd: HWND; lpdwProcessId: LPDWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM GetWindowThreadProcessId}
|
|
|
|
function IsGUIThread(bConvert: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM IsGUIThread}
|
|
|
|
function GetWindowTask(hWnd: HWND): HANDLE;
|
|
{$EXTERNALSYM GetWindowTask}
|
|
|
|
function GetLastActivePopup(hWnd: HWND): HWND; stdcall;
|
|
{$EXTERNALSYM GetLastActivePopup}
|
|
|
|
//
|
|
// GetWindow() Constants
|
|
//
|
|
|
|
const
|
|
GW_HWNDFIRST = 0;
|
|
{$EXTERNALSYM GW_HWNDFIRST}
|
|
GW_HWNDLAST = 1;
|
|
{$EXTERNALSYM GW_HWNDLAST}
|
|
GW_HWNDNEXT = 2;
|
|
{$EXTERNALSYM GW_HWNDNEXT}
|
|
GW_HWNDPREV = 3;
|
|
{$EXTERNALSYM GW_HWNDPREV}
|
|
GW_OWNER = 4;
|
|
{$EXTERNALSYM GW_OWNER}
|
|
GW_CHILD = 5;
|
|
{$EXTERNALSYM GW_CHILD}
|
|
{$IFNDEF WIN98_UP} // #if(WINVER <= 0x0400)
|
|
GW_MAX = 5;
|
|
{$EXTERNALSYM GW_MAX}
|
|
{$ELSE}
|
|
GW_ENABLEDPOPUP = 6;
|
|
{$EXTERNALSYM GW_ENABLEDPOPUP}
|
|
GW_MAX = 6;
|
|
{$EXTERNALSYM GW_MAX}
|
|
{$ENDIF WIN98ME_UP}
|
|
|
|
function GetWindow(hWnd: HWND; uCmd: UINT): HWND; stdcall;
|
|
{$EXTERNALSYM GetWindow}
|
|
|
|
function SetWindowsHookA(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHookA}
|
|
function SetWindowsHookW(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHookW}
|
|
function SetWindowsHook(nFilterType: Integer; pfnFilterProc: HOOKPROC): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHook}
|
|
|
|
function UnhookWindowsHook(nCode: Integer; pfnFilterProc: HOOKPROC): BOOL; stdcall;
|
|
{$EXTERNALSYM UnhookWindowsHook}
|
|
|
|
function SetWindowsHookExA(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
|
|
dwThreadId: DWORD): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHookExA}
|
|
function SetWindowsHookExW(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
|
|
dwThreadId: DWORD): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHookExW}
|
|
function SetWindowsHookEx(idHook: Integer; lpfn: HOOKPROC; hmod: HINST;
|
|
dwThreadId: DWORD): HHOOK; stdcall;
|
|
{$EXTERNALSYM SetWindowsHookEx}
|
|
|
|
function UnhookWindowsHookEx(hhk: HHOOK): BOOL; stdcall;
|
|
{$EXTERNALSYM UnhookWindowsHookEx}
|
|
|
|
function CallNextHookEx(hhk: HHOOK; nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM CallNextHookEx}
|
|
|
|
//
|
|
// Macros for source-level compatibility with old functions.
|
|
//
|
|
|
|
function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
|
|
{$EXTERNALSYM DefHookProc}
|
|
|
|
// ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags//
|
|
//
|
|
// Menu flags for Add/Check/EnableMenuItem()
|
|
///)
|
|
|
|
const
|
|
MF_INSERT = $00000000;
|
|
{$EXTERNALSYM MF_INSERT}
|
|
MF_CHANGE = $00000080;
|
|
{$EXTERNALSYM MF_CHANGE}
|
|
MF_APPEND = $00000100;
|
|
{$EXTERNALSYM MF_APPEND}
|
|
MF_DELETE = $00000200;
|
|
{$EXTERNALSYM MF_DELETE}
|
|
MF_REMOVE = $00001000;
|
|
{$EXTERNALSYM MF_REMOVE}
|
|
|
|
MF_BYCOMMAND = $00000000;
|
|
{$EXTERNALSYM MF_BYCOMMAND}
|
|
MF_BYPOSITION = $00000400;
|
|
{$EXTERNALSYM MF_BYPOSITION}
|
|
|
|
MF_SEPARATOR = $00000800;
|
|
{$EXTERNALSYM MF_SEPARATOR}
|
|
|
|
MF_ENABLED = $00000000;
|
|
{$EXTERNALSYM MF_ENABLED}
|
|
MF_GRAYED = $00000001;
|
|
{$EXTERNALSYM MF_GRAYED}
|
|
MF_DISABLED = $00000002;
|
|
{$EXTERNALSYM MF_DISABLED}
|
|
|
|
MF_UNCHECKED = $00000000;
|
|
{$EXTERNALSYM MF_UNCHECKED}
|
|
MF_CHECKED = $00000008;
|
|
{$EXTERNALSYM MF_CHECKED}
|
|
MF_USECHECKBITMAPS = $00000200;
|
|
{$EXTERNALSYM MF_USECHECKBITMAPS}
|
|
|
|
MF_STRING = $00000000;
|
|
{$EXTERNALSYM MF_STRING}
|
|
MF_BITMAP = $00000004;
|
|
{$EXTERNALSYM MF_BITMAP}
|
|
MF_OWNERDRAW = $00000100;
|
|
{$EXTERNALSYM MF_OWNERDRAW}
|
|
|
|
MF_POPUP = $00000010;
|
|
{$EXTERNALSYM MF_POPUP}
|
|
MF_MENUBARBREAK = $00000020;
|
|
{$EXTERNALSYM MF_MENUBARBREAK}
|
|
MF_MENUBREAK = $00000040;
|
|
{$EXTERNALSYM MF_MENUBREAK}
|
|
|
|
MF_UNHILITE = $00000000;
|
|
{$EXTERNALSYM MF_UNHILITE}
|
|
MF_HILITE = $00000080;
|
|
{$EXTERNALSYM MF_HILITE}
|
|
|
|
MF_DEFAULT = $00001000;
|
|
{$EXTERNALSYM MF_DEFAULT}
|
|
MF_SYSMENU = $00002000;
|
|
{$EXTERNALSYM MF_SYSMENU}
|
|
MF_HELP = $00004000;
|
|
{$EXTERNALSYM MF_HELP}
|
|
MF_RIGHTJUSTIFY = $00004000;
|
|
{$EXTERNALSYM MF_RIGHTJUSTIFY}
|
|
|
|
MF_MOUSESELECT = $00008000;
|
|
{$EXTERNALSYM MF_MOUSESELECT}
|
|
MF_END = $00000080; // Obsolete -- only used by old RES files
|
|
{$EXTERNALSYM MF_END}
|
|
|
|
MFT_STRING = MF_STRING;
|
|
{$EXTERNALSYM MFT_STRING}
|
|
MFT_BITMAP = MF_BITMAP;
|
|
{$EXTERNALSYM MFT_BITMAP}
|
|
MFT_MENUBARBREAK = MF_MENUBARBREAK;
|
|
{$EXTERNALSYM MFT_MENUBARBREAK}
|
|
MFT_MENUBREAK = MF_MENUBREAK;
|
|
{$EXTERNALSYM MFT_MENUBREAK}
|
|
MFT_OWNERDRAW = MF_OWNERDRAW;
|
|
{$EXTERNALSYM MFT_OWNERDRAW}
|
|
MFT_RADIOCHECK = $00000200;
|
|
{$EXTERNALSYM MFT_RADIOCHECK}
|
|
MFT_SEPARATOR = MF_SEPARATOR;
|
|
{$EXTERNALSYM MFT_SEPARATOR}
|
|
MFT_RIGHTORDER = $00002000;
|
|
{$EXTERNALSYM MFT_RIGHTORDER}
|
|
MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY;
|
|
{$EXTERNALSYM MFT_RIGHTJUSTIFY}
|
|
|
|
// Menu flags for Add/Check/EnableMenuItem()
|
|
|
|
MFS_GRAYED = $00000003;
|
|
{$EXTERNALSYM MFS_GRAYED}
|
|
MFS_DISABLED = MFS_GRAYED;
|
|
{$EXTERNALSYM MFS_DISABLED}
|
|
MFS_CHECKED = MF_CHECKED;
|
|
{$EXTERNALSYM MFS_CHECKED}
|
|
MFS_HILITE = MF_HILITE;
|
|
{$EXTERNALSYM MFS_HILITE}
|
|
MFS_ENABLED = MF_ENABLED;
|
|
{$EXTERNALSYM MFS_ENABLED}
|
|
MFS_UNCHECKED = MF_UNCHECKED;
|
|
{$EXTERNALSYM MFS_UNCHECKED}
|
|
MFS_UNHILITE = MF_UNHILITE;
|
|
{$EXTERNALSYM MFS_UNHILITE}
|
|
MFS_DEFAULT = MF_DEFAULT;
|
|
{$EXTERNALSYM MFS_DEFAULT}
|
|
|
|
function CheckMenuRadioItem(hmenu: HMENU; idFirst, idLast, idCheck, uFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM CheckMenuRadioItem}
|
|
|
|
//
|
|
// Menu item resource format
|
|
//
|
|
|
|
type
|
|
PMENUITEMTEMPLATEHEADER = ^MENUITEMTEMPLATEHEADER;
|
|
MENUITEMTEMPLATEHEADER = record
|
|
versionNumber: WORD;
|
|
offset: WORD;
|
|
end;
|
|
{$EXTERNALSYM MENUITEMTEMPLATEHEADER}
|
|
TMenuItemTemplateHeader = MENUITEMTEMPLATEHEADER;
|
|
|
|
PMENUITEMTEMPLATE = ^MENUITEMTEMPLATE; // version 0
|
|
MENUITEMTEMPLATE = record
|
|
mtOption: WORD;
|
|
mtID: WORD;
|
|
mtString: array [0..0] of WCHAR;
|
|
end;
|
|
{$EXTERNALSYM MENUITEMTEMPLATE}
|
|
TMenuItemTemplate = MENUITEMTEMPLATE;
|
|
|
|
//
|
|
// System Menu Command Values
|
|
//
|
|
|
|
const
|
|
SC_SIZE = $F000;
|
|
{$EXTERNALSYM SC_SIZE}
|
|
SC_MOVE = $F010;
|
|
{$EXTERNALSYM SC_MOVE}
|
|
SC_MINIMIZE = $F020;
|
|
{$EXTERNALSYM SC_MINIMIZE}
|
|
SC_MAXIMIZE = $F030;
|
|
{$EXTERNALSYM SC_MAXIMIZE}
|
|
SC_NEXTWINDOW = $F040;
|
|
{$EXTERNALSYM SC_NEXTWINDOW}
|
|
SC_PREVWINDOW = $F050;
|
|
{$EXTERNALSYM SC_PREVWINDOW}
|
|
SC_CLOSE = $F060;
|
|
{$EXTERNALSYM SC_CLOSE}
|
|
SC_VSCROLL = $F070;
|
|
{$EXTERNALSYM SC_VSCROLL}
|
|
SC_HSCROLL = $F080;
|
|
{$EXTERNALSYM SC_HSCROLL}
|
|
SC_MOUSEMENU = $F090;
|
|
{$EXTERNALSYM SC_MOUSEMENU}
|
|
SC_KEYMENU = $F100;
|
|
{$EXTERNALSYM SC_KEYMENU}
|
|
SC_ARRANGE = $F110;
|
|
{$EXTERNALSYM SC_ARRANGE}
|
|
SC_RESTORE = $F120;
|
|
{$EXTERNALSYM SC_RESTORE}
|
|
SC_TASKLIST = $F130;
|
|
{$EXTERNALSYM SC_TASKLIST}
|
|
SC_SCREENSAVE = $F140;
|
|
{$EXTERNALSYM SC_SCREENSAVE}
|
|
SC_HOTKEY = $F150;
|
|
{$EXTERNALSYM SC_HOTKEY}
|
|
SC_DEFAULT = $F160;
|
|
{$EXTERNALSYM SC_DEFAULT}
|
|
SC_MONITORPOWER = $F170;
|
|
{$EXTERNALSYM SC_MONITORPOWER}
|
|
SC_CONTEXTHELP = $F180;
|
|
{$EXTERNALSYM SC_CONTEXTHELP}
|
|
SC_SEPARATOR = $F00F;
|
|
{$EXTERNALSYM SC_SEPARATOR}
|
|
|
|
//
|
|
// Obsolete names
|
|
//
|
|
|
|
const
|
|
SC_ICON = SC_MINIMIZE;
|
|
{$EXTERNALSYM SC_ICON}
|
|
SC_ZOOM = SC_MAXIMIZE;
|
|
{$EXTERNALSYM SC_ZOOM}
|
|
|
|
//
|
|
// Resource Loading Routines
|
|
//
|
|
|
|
function LoadBitmapA(hInstance: HINST; lpBitmapName: LPCSTR): HBITMAP; stdcall;
|
|
{$EXTERNALSYM LoadBitmapA}
|
|
function LoadBitmapW(hInstance: HINST; lpBitmapName: LPCWSTR): HBITMAP; stdcall;
|
|
{$EXTERNALSYM LoadBitmapW}
|
|
function LoadBitmap(hInstance: HINST; lpBitmapName: LPCTSTR): HBITMAP; stdcall;
|
|
{$EXTERNALSYM LoadBitmap}
|
|
|
|
function LoadCursorA(hInstance: HINST; lpCursorName: LPCSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursorA}
|
|
function LoadCursorW(hInstance: HINST; lpCursorName: LPCWSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursorW}
|
|
function LoadCursor(hInstance: HINST; lpCursorName: LPCTSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursor}
|
|
|
|
function LoadCursorFromFileA(lpFileName: LPCSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursorFromFileA}
|
|
function LoadCursorFromFileW(lpFileName: LPCWSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursorFromFileW}
|
|
function LoadCursorFromFile(lpFileName: LPCTSTR): HCURSOR; stdcall;
|
|
{$EXTERNALSYM LoadCursorFromFile}
|
|
|
|
function CreateCursor(hInst: HINST; xHotSpot, yHotSpot, nWidth, nHeight: Integer;
|
|
pvANDPlane: PVOID; pvXORPlane: PVOID): HCURSOR; stdcall;
|
|
{$EXTERNALSYM CreateCursor}
|
|
|
|
function DestroyCursor(hCursor: HCURSOR): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyCursor}
|
|
|
|
function CopyCursor(pcur: HCURSOR): HCURSOR;
|
|
{$EXTERNALSYM CopyCursor}
|
|
|
|
//
|
|
// Standard Cursor IDs
|
|
//
|
|
|
|
const
|
|
IDC_ARROW = MAKEINTRESOURCE(32512);
|
|
{$EXTERNALSYM IDC_ARROW}
|
|
IDC_IBEAM = MAKEINTRESOURCE(32513);
|
|
{$EXTERNALSYM IDC_IBEAM}
|
|
IDC_WAIT = MAKEINTRESOURCE(32514);
|
|
{$EXTERNALSYM IDC_WAIT}
|
|
IDC_CROSS = MAKEINTRESOURCE(32515);
|
|
{$EXTERNALSYM IDC_CROSS}
|
|
IDC_UPARROW = MAKEINTRESOURCE(32516);
|
|
{$EXTERNALSYM IDC_UPARROW}
|
|
IDC_SIZE = MAKEINTRESOURCE(32640); // OBSOLETE: use IDC_SIZEALL
|
|
{$EXTERNALSYM IDC_SIZE}
|
|
IDC_ICON = MAKEINTRESOURCE(32641); // OBSOLETE: use IDC_ARROW
|
|
{$EXTERNALSYM IDC_ICON}
|
|
IDC_SIZENWSE = MAKEINTRESOURCE(32642);
|
|
{$EXTERNALSYM IDC_SIZENWSE}
|
|
IDC_SIZENESW = MAKEINTRESOURCE(32643);
|
|
{$EXTERNALSYM IDC_SIZENESW}
|
|
IDC_SIZEWE = MAKEINTRESOURCE(32644);
|
|
{$EXTERNALSYM IDC_SIZEWE}
|
|
IDC_SIZENS = MAKEINTRESOURCE(32645);
|
|
{$EXTERNALSYM IDC_SIZENS}
|
|
IDC_SIZEALL = MAKEINTRESOURCE(32646);
|
|
{$EXTERNALSYM IDC_SIZEALL}
|
|
IDC_NO = MAKEINTRESOURCE(32648); // not in win3.1
|
|
{$EXTERNALSYM IDC_NO}
|
|
IDC_HAND = MAKEINTRESOURCE(32649);
|
|
{$EXTERNALSYM IDC_HAND}
|
|
IDC_APPSTARTING = MAKEINTRESOURCE(32650); // not in win3.1
|
|
{$EXTERNALSYM IDC_APPSTARTING}
|
|
IDC_HELP = MAKEINTRESOURCE(32651);
|
|
{$EXTERNALSYM IDC_HELP}
|
|
|
|
function SetSystemCursor(hcur: HCURSOR; id: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM SetSystemCursor}
|
|
|
|
type
|
|
PICONINFO = ^ICONINFO;
|
|
_ICONINFO = record
|
|
fIcon: BOOL;
|
|
xHotspot: DWORD;
|
|
yHotspot: DWORD;
|
|
hbmMask: HBITMAP;
|
|
hbmColor: HBITMAP;
|
|
end;
|
|
{$EXTERNALSYM _ICONINFO}
|
|
ICONINFO = _ICONINFO;
|
|
{$EXTERNALSYM ICONINFO}
|
|
TIconInfo = ICONINFO;
|
|
|
|
function LoadIconA(hInstance: HINST; lpIconName: LPCSTR): HICON; stdcall;
|
|
{$EXTERNALSYM LoadIconA}
|
|
function LoadIconW(hInstance: HINST; lpIconName: LPCWSTR): HICON; stdcall;
|
|
{$EXTERNALSYM LoadIconW}
|
|
function LoadIcon(hInstance: HINST; lpIconName: LPCTSTR): HICON; stdcall;
|
|
{$EXTERNALSYM LoadIcon}
|
|
|
|
function PrivateExtractIconsA(szFileName: LPCSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
|
|
var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM PrivateExtractIconsA}
|
|
function PrivateExtractIconsW(szFileName: LPCWSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
|
|
var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM PrivateExtractIconsW}
|
|
function PrivateExtractIcons(szFileName: LPCTSTR; nIconIndex, cxIcon, cyIcon: Integer; var phicon: HICON;
|
|
var piconid: UINT; nIcons, flags: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM PrivateExtractIcons}
|
|
|
|
function CreateIcon(hInstance: HINST; nWidth, nHeight: Integer; cPlanes,
|
|
cBitsPixel: BYTE; lpbANDbits: LPBYTE; lpbXORbits: LPBYTE): HICON; stdcall;
|
|
{$EXTERNALSYM CreateIcon}
|
|
|
|
function DestroyIcon(hIcon: HICON): BOOL; stdcall;
|
|
{$EXTERNALSYM DestroyIcon}
|
|
|
|
function LookupIconIdFromDirectory(presbits: PBYTE; fIcon: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM LookupIconIdFromDirectory}
|
|
|
|
function LookupIconIdFromDirectoryEx(presbits: PBYTE; fIcon: BOOL;
|
|
cxDesired, cyDesired: Integer; Flags: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM LookupIconIdFromDirectoryEx}
|
|
|
|
function CreateIconFromResource(presbits: PBYTE; dwResSize: DWORD;
|
|
fIcon: BOOL; dwVer: DWORD): HICON; stdcall;
|
|
{$EXTERNALSYM CreateIconFromResource}
|
|
|
|
function CreateIconFromResourceEx(presbits: PBYTE; dwResSize: DWORD; fIcon: BOOL;
|
|
dwVer: DWORD; cxDesired, cyDesired: Integer; Flags: UINT): HICON; stdcall;
|
|
{$EXTERNALSYM CreateIconFromResourceEx}
|
|
|
|
// Icon/Cursor header//
|
|
|
|
type
|
|
LPCURSORSHAPE = ^CURSORSHAPE;
|
|
{$EXTERNALSYM LPCURSORSHAPE}
|
|
tagCURSORSHAPE = record
|
|
xHotSpot: Integer;
|
|
yHotSpot: Integer;
|
|
cx: Integer;
|
|
cy: Integer;
|
|
cbWidth: Integer;
|
|
Planes: BYTE;
|
|
BitsPixel: BYTE;
|
|
end;
|
|
{$EXTERNALSYM tagCURSORSHAPE}
|
|
CURSORSHAPE = tagCURSORSHAPE;
|
|
{$EXTERNALSYM CURSORSHAPE}
|
|
TCursorShape = CURSORSHAPE;
|
|
PCursorShape = LPCURSORSHAPE;
|
|
|
|
const
|
|
IMAGE_BITMAP = 0;
|
|
{$EXTERNALSYM IMAGE_BITMAP}
|
|
IMAGE_ICON = 1;
|
|
{$EXTERNALSYM IMAGE_ICON}
|
|
IMAGE_CURSOR = 2;
|
|
{$EXTERNALSYM IMAGE_CURSOR}
|
|
IMAGE_ENHMETAFILE = 3;
|
|
{$EXTERNALSYM IMAGE_ENHMETAFILE}
|
|
|
|
LR_DEFAULTCOLOR = $0000;
|
|
{$EXTERNALSYM LR_DEFAULTCOLOR}
|
|
LR_MONOCHROME = $0001;
|
|
{$EXTERNALSYM LR_MONOCHROME}
|
|
LR_COLOR = $0002;
|
|
{$EXTERNALSYM LR_COLOR}
|
|
LR_COPYRETURNORG = $0004;
|
|
{$EXTERNALSYM LR_COPYRETURNORG}
|
|
LR_COPYDELETEORG = $0008;
|
|
{$EXTERNALSYM LR_COPYDELETEORG}
|
|
LR_LOADFROMFILE = $0010;
|
|
{$EXTERNALSYM LR_LOADFROMFILE}
|
|
LR_LOADTRANSPARENT = $0020;
|
|
{$EXTERNALSYM LR_LOADTRANSPARENT}
|
|
LR_DEFAULTSIZE = $0040;
|
|
{$EXTERNALSYM LR_DEFAULTSIZE}
|
|
LR_VGACOLOR = $0080;
|
|
{$EXTERNALSYM LR_VGACOLOR}
|
|
LR_LOADMAP3DCOLORS = $1000;
|
|
{$EXTERNALSYM LR_LOADMAP3DCOLORS}
|
|
LR_CREATEDIBSECTION = $2000;
|
|
{$EXTERNALSYM LR_CREATEDIBSECTION}
|
|
LR_COPYFROMRESOURCE = $4000;
|
|
{$EXTERNALSYM LR_COPYFROMRESOURCE}
|
|
LR_SHARED = $8000;
|
|
{$EXTERNALSYM LR_SHARED}
|
|
|
|
function LoadImageA(hinst: HINST; lpszName: LPCSTR; uType: UINT;
|
|
cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
|
|
{$EXTERNALSYM LoadImageA}
|
|
function LoadImageW(hinst: HINST; lpszName: LPCWSTR; uType: UINT;
|
|
cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
|
|
{$EXTERNALSYM LoadImageW}
|
|
function LoadImage(hinst: HINST; lpszName: LPCTSTR; uType: UINT;
|
|
cxDesired, cyDesired: Integer; fuLoad: UINT): HANDLE; stdcall;
|
|
{$EXTERNALSYM LoadImage}
|
|
|
|
function CopyImage(hinst: HANDLE; lpszName: UINT; cxDesired, cyDesired: Integer;
|
|
fuFlags: UINT): HANDLE; stdcall;
|
|
{$EXTERNALSYM CopyImage}
|
|
|
|
const
|
|
DI_MASK = $0001;
|
|
{$EXTERNALSYM DI_MASK}
|
|
DI_IMAGE = $0002;
|
|
{$EXTERNALSYM DI_IMAGE}
|
|
DI_NORMAL = $0003;
|
|
{$EXTERNALSYM DI_NORMAL}
|
|
DI_COMPAT = $0004;
|
|
{$EXTERNALSYM DI_COMPAT}
|
|
DI_DEFAULTSIZE = $0008;
|
|
{$EXTERNALSYM DI_DEFAULTSIZE}
|
|
DI_NOMIRROR = $0010;
|
|
{$EXTERNALSYM DI_NOMIRROR}
|
|
|
|
function DrawIconEx(hdc: HDC; xLeft, yTop: Integer; hIcon: HICON;
|
|
cxWidth, cyWidth: Integer; istepIfAniCur: UINT; hbrFlickerFreeDraw: HBRUSH;
|
|
diFlags: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM DrawIconEx}
|
|
|
|
function CreateIconIndirect(const piconinfo: ICONINFO): HICON; stdcall;
|
|
{$EXTERNALSYM CreateIconIndirect}
|
|
|
|
function CopyIcon(hIcon: HICON): HICON; stdcall;
|
|
{$EXTERNALSYM CopyIcon}
|
|
|
|
function GetIconInfo(hIcon: HICON; var piconinfo: ICONINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetIconInfo}
|
|
|
|
const
|
|
RES_ICON = 1;
|
|
{$EXTERNALSYM RES_ICON}
|
|
RES_CURSOR = 2;
|
|
{$EXTERNALSYM RES_CURSOR}
|
|
|
|
//
|
|
// OEM Resource Ordinal Numbers
|
|
//
|
|
|
|
OBM_CLOSE = 32754;
|
|
{$EXTERNALSYM OBM_CLOSE}
|
|
OBM_UPARROW = 32753;
|
|
{$EXTERNALSYM OBM_UPARROW}
|
|
OBM_DNARROW = 32752;
|
|
{$EXTERNALSYM OBM_DNARROW}
|
|
OBM_RGARROW = 32751;
|
|
{$EXTERNALSYM OBM_RGARROW}
|
|
OBM_LFARROW = 32750;
|
|
{$EXTERNALSYM OBM_LFARROW}
|
|
OBM_REDUCE = 32749;
|
|
{$EXTERNALSYM OBM_REDUCE}
|
|
OBM_ZOOM = 32748;
|
|
{$EXTERNALSYM OBM_ZOOM}
|
|
OBM_RESTORE = 32747;
|
|
{$EXTERNALSYM OBM_RESTORE}
|
|
OBM_REDUCED = 32746;
|
|
{$EXTERNALSYM OBM_REDUCED}
|
|
OBM_ZOOMD = 32745;
|
|
{$EXTERNALSYM OBM_ZOOMD}
|
|
OBM_RESTORED = 32744;
|
|
{$EXTERNALSYM OBM_RESTORED}
|
|
OBM_UPARROWD = 32743;
|
|
{$EXTERNALSYM OBM_UPARROWD}
|
|
OBM_DNARROWD = 32742;
|
|
{$EXTERNALSYM OBM_DNARROWD}
|
|
OBM_RGARROWD = 32741;
|
|
{$EXTERNALSYM OBM_RGARROWD}
|
|
OBM_LFARROWD = 32740;
|
|
{$EXTERNALSYM OBM_LFARROWD}
|
|
OBM_MNARROW = 32739;
|
|
{$EXTERNALSYM OBM_MNARROW}
|
|
OBM_COMBO = 32738;
|
|
{$EXTERNALSYM OBM_COMBO}
|
|
OBM_UPARROWI = 32737;
|
|
{$EXTERNALSYM OBM_UPARROWI}
|
|
OBM_DNARROWI = 32736;
|
|
{$EXTERNALSYM OBM_DNARROWI}
|
|
OBM_RGARROWI = 32735;
|
|
{$EXTERNALSYM OBM_RGARROWI}
|
|
OBM_LFARROWI = 32734;
|
|
{$EXTERNALSYM OBM_LFARROWI}
|
|
|
|
OBM_OLD_CLOSE = 32767;
|
|
{$EXTERNALSYM OBM_OLD_CLOSE}
|
|
OBM_SIZE = 32766;
|
|
{$EXTERNALSYM OBM_SIZE}
|
|
OBM_OLD_UPARROW = 32765;
|
|
{$EXTERNALSYM OBM_OLD_UPARROW}
|
|
OBM_OLD_DNARROW = 32764;
|
|
{$EXTERNALSYM OBM_OLD_DNARROW}
|
|
OBM_OLD_RGARROW = 32763;
|
|
{$EXTERNALSYM OBM_OLD_RGARROW}
|
|
OBM_OLD_LFARROW = 32762;
|
|
{$EXTERNALSYM OBM_OLD_LFARROW}
|
|
OBM_BTSIZE = 32761;
|
|
{$EXTERNALSYM OBM_BTSIZE}
|
|
OBM_CHECK = 32760;
|
|
{$EXTERNALSYM OBM_CHECK}
|
|
OBM_CHECKBOXES = 32759;
|
|
{$EXTERNALSYM OBM_CHECKBOXES}
|
|
OBM_BTNCORNERS = 32758;
|
|
{$EXTERNALSYM OBM_BTNCORNERS}
|
|
OBM_OLD_REDUCE = 32757;
|
|
{$EXTERNALSYM OBM_OLD_REDUCE}
|
|
OBM_OLD_ZOOM = 32756;
|
|
{$EXTERNALSYM OBM_OLD_ZOOM}
|
|
OBM_OLD_RESTORE = 32755;
|
|
{$EXTERNALSYM OBM_OLD_RESTORE}
|
|
|
|
OCR_NORMAL = 32512;
|
|
{$EXTERNALSYM OCR_NORMAL}
|
|
OCR_IBEAM = 32513;
|
|
{$EXTERNALSYM OCR_IBEAM}
|
|
OCR_WAIT = 32514;
|
|
{$EXTERNALSYM OCR_WAIT}
|
|
OCR_CROSS = 32515;
|
|
{$EXTERNALSYM OCR_CROSS}
|
|
OCR_UP = 32516;
|
|
{$EXTERNALSYM OCR_UP}
|
|
OCR_SIZE = 32640; // OBSOLETE: use OCR_SIZEALL
|
|
{$EXTERNALSYM OCR_SIZE}
|
|
OCR_ICON = 32641; // OBSOLETE: use OCR_NORMAL
|
|
{$EXTERNALSYM OCR_ICON}
|
|
OCR_SIZENWSE = 32642;
|
|
{$EXTERNALSYM OCR_SIZENWSE}
|
|
OCR_SIZENESW = 32643;
|
|
{$EXTERNALSYM OCR_SIZENESW}
|
|
OCR_SIZEWE = 32644;
|
|
{$EXTERNALSYM OCR_SIZEWE}
|
|
OCR_SIZENS = 32645;
|
|
{$EXTERNALSYM OCR_SIZENS}
|
|
OCR_SIZEALL = 32646;
|
|
{$EXTERNALSYM OCR_SIZEALL}
|
|
OCR_ICOCUR = 32647; // OBSOLETE: use OIC_WINLOGO
|
|
{$EXTERNALSYM OCR_ICOCUR}
|
|
OCR_NO = 32648;
|
|
{$EXTERNALSYM OCR_NO}
|
|
OCR_HAND = 32649;
|
|
{$EXTERNALSYM OCR_HAND}
|
|
OCR_APPSTARTING = 32650;
|
|
{$EXTERNALSYM OCR_APPSTARTING}
|
|
|
|
OIC_SAMPLE = 32512;
|
|
{$EXTERNALSYM OIC_SAMPLE}
|
|
OIC_HAND = 32513;
|
|
{$EXTERNALSYM OIC_HAND}
|
|
OIC_QUES = 32514;
|
|
{$EXTERNALSYM OIC_QUES}
|
|
OIC_BANG = 32515;
|
|
{$EXTERNALSYM OIC_BANG}
|
|
OIC_NOTE = 32516;
|
|
{$EXTERNALSYM OIC_NOTE}
|
|
OIC_WINLOGO = 32517;
|
|
{$EXTERNALSYM OIC_WINLOGO}
|
|
OIC_WARNING = OIC_BANG;
|
|
{$EXTERNALSYM OIC_WARNING}
|
|
OIC_ERROR = OIC_HAND;
|
|
{$EXTERNALSYM OIC_ERROR}
|
|
OIC_INFORMATION = OIC_NOTE;
|
|
{$EXTERNALSYM OIC_INFORMATION}
|
|
|
|
ORD_LANGDRIVER = 1; // The ordinal number for the entry point of language drivers.
|
|
{$EXTERNALSYM ORD_LANGDRIVER}
|
|
|
|
//
|
|
// Standard Icon IDs
|
|
//
|
|
|
|
IDI_APPLICATION = MAKEINTRESOURCE(32512);
|
|
{$EXTERNALSYM IDI_APPLICATION}
|
|
IDI_HAND = MAKEINTRESOURCE(32513);
|
|
{$EXTERNALSYM IDI_HAND}
|
|
IDI_QUESTION = MAKEINTRESOURCE(32514);
|
|
{$EXTERNALSYM IDI_QUESTION}
|
|
IDI_EXCLAMATION = MAKEINTRESOURCE(32515);
|
|
{$EXTERNALSYM IDI_EXCLAMATION}
|
|
IDI_ASTERISK = MAKEINTRESOURCE(32516);
|
|
{$EXTERNALSYM IDI_ASTERISK}
|
|
IDI_WINLOGO = MAKEINTRESOURCE(32517);
|
|
{$EXTERNALSYM IDI_WINLOGO}
|
|
|
|
IDI_WARNING = IDI_EXCLAMATION;
|
|
{$EXTERNALSYM IDI_WARNING}
|
|
IDI_ERROR = IDI_HAND;
|
|
{$EXTERNALSYM IDI_ERROR}
|
|
IDI_INFORMATION = IDI_ASTERISK;
|
|
{$EXTERNALSYM IDI_INFORMATION}
|
|
|
|
function LoadStringA(hInstance: HINST; uID: UINT; lpBuffer: LPSTR;
|
|
nBufferMax: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM LoadStringA}
|
|
function LoadStringW(hInstance: HINST; uID: UINT; lpBuffer: LPWSTR;
|
|
nBufferMax: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM LoadStringW}
|
|
function LoadString(hInstance: HINST; uID: UINT; lpBuffer: LPTSTR;
|
|
nBufferMax: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM LoadString}
|
|
|
|
//
|
|
// Dialog Box Command IDs
|
|
//
|
|
|
|
const
|
|
IDOK = 1;
|
|
{$EXTERNALSYM IDOK}
|
|
IDCANCEL = 2;
|
|
{$EXTERNALSYM IDCANCEL}
|
|
IDABORT = 3;
|
|
{$EXTERNALSYM IDABORT}
|
|
IDRETRY = 4;
|
|
{$EXTERNALSYM IDRETRY}
|
|
IDIGNORE = 5;
|
|
{$EXTERNALSYM IDIGNORE}
|
|
IDYES = 6;
|
|
{$EXTERNALSYM IDYES}
|
|
IDNO = 7;
|
|
{$EXTERNALSYM IDNO}
|
|
IDCLOSE = 8;
|
|
{$EXTERNALSYM IDCLOSE}
|
|
IDHELP = 9;
|
|
{$EXTERNALSYM IDHELP}
|
|
|
|
IDTRYAGAIN = 10;
|
|
{$EXTERNALSYM IDTRYAGAIN}
|
|
IDCONTINUE = 11;
|
|
{$EXTERNALSYM IDCONTINUE}
|
|
|
|
IDTIMEOUT = 32000;
|
|
{$EXTERNALSYM IDTIMEOUT}
|
|
|
|
//
|
|
// Control Manager Structures and Definitions
|
|
//
|
|
|
|
//
|
|
// Edit Control Styles
|
|
//
|
|
|
|
ES_LEFT = $0000;
|
|
{$EXTERNALSYM ES_LEFT}
|
|
ES_CENTER = $0001;
|
|
{$EXTERNALSYM ES_CENTER}
|
|
ES_RIGHT = $0002;
|
|
{$EXTERNALSYM ES_RIGHT}
|
|
ES_MULTILINE = $0004;
|
|
{$EXTERNALSYM ES_MULTILINE}
|
|
ES_UPPERCASE = $0008;
|
|
{$EXTERNALSYM ES_UPPERCASE}
|
|
ES_LOWERCASE = $0010;
|
|
{$EXTERNALSYM ES_LOWERCASE}
|
|
ES_PASSWORD = $0020;
|
|
{$EXTERNALSYM ES_PASSWORD}
|
|
ES_AUTOVSCROLL = $0040;
|
|
{$EXTERNALSYM ES_AUTOVSCROLL}
|
|
ES_AUTOHSCROLL = $0080;
|
|
{$EXTERNALSYM ES_AUTOHSCROLL}
|
|
ES_NOHIDESEL = $0100;
|
|
{$EXTERNALSYM ES_NOHIDESEL}
|
|
ES_OEMCONVERT = $0400;
|
|
{$EXTERNALSYM ES_OEMCONVERT}
|
|
ES_READONLY = $0800;
|
|
{$EXTERNALSYM ES_READONLY}
|
|
ES_WANTRETURN = $1000;
|
|
{$EXTERNALSYM ES_WANTRETURN}
|
|
ES_NUMBER = $2000;
|
|
{$EXTERNALSYM ES_NUMBER}
|
|
|
|
//
|
|
// Edit Control Notification Codes
|
|
//
|
|
|
|
EN_SETFOCUS = $0100;
|
|
{$EXTERNALSYM EN_SETFOCUS}
|
|
EN_KILLFOCUS = $0200;
|
|
{$EXTERNALSYM EN_KILLFOCUS}
|
|
EN_CHANGE = $0300;
|
|
{$EXTERNALSYM EN_CHANGE}
|
|
EN_UPDATE = $0400;
|
|
{$EXTERNALSYM EN_UPDATE}
|
|
EN_ERRSPACE = $0500;
|
|
{$EXTERNALSYM EN_ERRSPACE}
|
|
EN_MAXTEXT = $0501;
|
|
{$EXTERNALSYM EN_MAXTEXT}
|
|
EN_HSCROLL = $0601;
|
|
{$EXTERNALSYM EN_HSCROLL}
|
|
EN_VSCROLL = $0602;
|
|
{$EXTERNALSYM EN_VSCROLL}
|
|
|
|
EN_ALIGN_LTR_EC = $0700;
|
|
{$EXTERNALSYM EN_ALIGN_LTR_EC}
|
|
EN_ALIGN_RTL_EC = $0701;
|
|
{$EXTERNALSYM EN_ALIGN_RTL_EC}
|
|
|
|
// Edit control EM_SETMARGIN parameters//
|
|
|
|
EC_LEFTMARGIN = $0001;
|
|
{$EXTERNALSYM EC_LEFTMARGIN}
|
|
EC_RIGHTMARGIN = $0002;
|
|
{$EXTERNALSYM EC_RIGHTMARGIN}
|
|
EC_USEFONTINFO = $ffff;
|
|
{$EXTERNALSYM EC_USEFONTINFO}
|
|
|
|
// wParam of EM_GET/SETIMESTATUS //
|
|
|
|
EMSIS_COMPOSITIONSTRING = $0001;
|
|
{$EXTERNALSYM EMSIS_COMPOSITIONSTRING}
|
|
|
|
// lParam for EMSIS_COMPOSITIONSTRING //
|
|
|
|
EIMES_GETCOMPSTRATONCE = $0001;
|
|
{$EXTERNALSYM EIMES_GETCOMPSTRATONCE}
|
|
EIMES_CANCELCOMPSTRINFOCUS = $0002;
|
|
{$EXTERNALSYM EIMES_CANCELCOMPSTRINFOCUS}
|
|
EIMES_COMPLETECOMPSTRKILLFOCUS = $0004;
|
|
{$EXTERNALSYM EIMES_COMPLETECOMPSTRKILLFOCUS}
|
|
|
|
//
|
|
// Edit Control Messages
|
|
//
|
|
|
|
EM_GETSEL = $00B0;
|
|
{$EXTERNALSYM EM_GETSEL}
|
|
EM_SETSEL = $00B1;
|
|
{$EXTERNALSYM EM_SETSEL}
|
|
EM_GETRECT = $00B2;
|
|
{$EXTERNALSYM EM_GETRECT}
|
|
EM_SETRECT = $00B3;
|
|
{$EXTERNALSYM EM_SETRECT}
|
|
EM_SETRECTNP = $00B4;
|
|
{$EXTERNALSYM EM_SETRECTNP}
|
|
EM_SCROLL = $00B5;
|
|
{$EXTERNALSYM EM_SCROLL}
|
|
EM_LINESCROLL = $00B6;
|
|
{$EXTERNALSYM EM_LINESCROLL}
|
|
EM_SCROLLCARET = $00B7;
|
|
{$EXTERNALSYM EM_SCROLLCARET}
|
|
EM_GETMODIFY = $00B8;
|
|
{$EXTERNALSYM EM_GETMODIFY}
|
|
EM_SETMODIFY = $00B9;
|
|
{$EXTERNALSYM EM_SETMODIFY}
|
|
EM_GETLINECOUNT = $00BA;
|
|
{$EXTERNALSYM EM_GETLINECOUNT}
|
|
EM_LINEINDEX = $00BB;
|
|
{$EXTERNALSYM EM_LINEINDEX}
|
|
EM_SETHANDLE = $00BC;
|
|
{$EXTERNALSYM EM_SETHANDLE}
|
|
EM_GETHANDLE = $00BD;
|
|
{$EXTERNALSYM EM_GETHANDLE}
|
|
EM_GETTHUMB = $00BE;
|
|
{$EXTERNALSYM EM_GETTHUMB}
|
|
EM_LINELENGTH = $00C1;
|
|
{$EXTERNALSYM EM_LINELENGTH}
|
|
EM_REPLACESEL = $00C2;
|
|
{$EXTERNALSYM EM_REPLACESEL}
|
|
EM_GETLINE = $00C4;
|
|
{$EXTERNALSYM EM_GETLINE}
|
|
EM_LIMITTEXT = $00C5;
|
|
{$EXTERNALSYM EM_LIMITTEXT}
|
|
EM_CANUNDO = $00C6;
|
|
{$EXTERNALSYM EM_CANUNDO}
|
|
EM_UNDO = $00C7;
|
|
{$EXTERNALSYM EM_UNDO}
|
|
EM_FMTLINES = $00C8;
|
|
{$EXTERNALSYM EM_FMTLINES}
|
|
EM_LINEFROMCHAR = $00C9;
|
|
{$EXTERNALSYM EM_LINEFROMCHAR}
|
|
EM_SETTABSTOPS = $00CB;
|
|
{$EXTERNALSYM EM_SETTABSTOPS}
|
|
EM_SETPASSWORDCHAR = $00CC;
|
|
{$EXTERNALSYM EM_SETPASSWORDCHAR}
|
|
EM_EMPTYUNDOBUFFER = $00CD;
|
|
{$EXTERNALSYM EM_EMPTYUNDOBUFFER}
|
|
EM_GETFIRSTVISIBLELINE = $00CE;
|
|
{$EXTERNALSYM EM_GETFIRSTVISIBLELINE}
|
|
EM_SETREADONLY = $00CF;
|
|
{$EXTERNALSYM EM_SETREADONLY}
|
|
EM_SETWORDBREAKPROC = $00D0;
|
|
{$EXTERNALSYM EM_SETWORDBREAKPROC}
|
|
EM_GETWORDBREAKPROC = $00D1;
|
|
{$EXTERNALSYM EM_GETWORDBREAKPROC}
|
|
EM_GETPASSWORDCHAR = $00D2;
|
|
{$EXTERNALSYM EM_GETPASSWORDCHAR}
|
|
EM_SETMARGINS = $00D3;
|
|
{$EXTERNALSYM EM_SETMARGINS}
|
|
EM_GETMARGINS = $00D4;
|
|
{$EXTERNALSYM EM_GETMARGINS}
|
|
EM_SETLIMITTEXT = EM_LIMITTEXT; // ;win40 Name change
|
|
{$EXTERNALSYM EM_SETLIMITTEXT}
|
|
EM_GETLIMITTEXT = $00D5;
|
|
{$EXTERNALSYM EM_GETLIMITTEXT}
|
|
EM_POSFROMCHAR = $00D6;
|
|
{$EXTERNALSYM EM_POSFROMCHAR}
|
|
EM_CHARFROMPOS = $00D7;
|
|
{$EXTERNALSYM EM_CHARFROMPOS}
|
|
|
|
EM_SETIMESTATUS = $00D8;
|
|
{$EXTERNALSYM EM_SETIMESTATUS}
|
|
EM_GETIMESTATUS = $00D9;
|
|
{$EXTERNALSYM EM_GETIMESTATUS}
|
|
|
|
//
|
|
// EDITWORDBREAKPROC code values
|
|
//
|
|
|
|
WB_LEFT = 0;
|
|
{$EXTERNALSYM WB_LEFT}
|
|
WB_RIGHT = 1;
|
|
{$EXTERNALSYM WB_RIGHT}
|
|
WB_ISDELIMITER = 2;
|
|
{$EXTERNALSYM WB_ISDELIMITER}
|
|
|
|
//
|
|
// Button Control Styles
|
|
//
|
|
|
|
BS_PUSHBUTTON = $00000000;
|
|
{$EXTERNALSYM BS_PUSHBUTTON}
|
|
BS_DEFPUSHBUTTON = $00000001;
|
|
{$EXTERNALSYM BS_DEFPUSHBUTTON}
|
|
BS_CHECKBOX = $00000002;
|
|
{$EXTERNALSYM BS_CHECKBOX}
|
|
BS_AUTOCHECKBOX = $00000003;
|
|
{$EXTERNALSYM BS_AUTOCHECKBOX}
|
|
BS_RADIOBUTTON = $00000004;
|
|
{$EXTERNALSYM BS_RADIOBUTTON}
|
|
BS_3STATE = $00000005;
|
|
{$EXTERNALSYM BS_3STATE}
|
|
BS_AUTO3STATE = $00000006;
|
|
{$EXTERNALSYM BS_AUTO3STATE}
|
|
BS_GROUPBOX = $00000007;
|
|
{$EXTERNALSYM BS_GROUPBOX}
|
|
BS_USERBUTTON = $00000008;
|
|
{$EXTERNALSYM BS_USERBUTTON}
|
|
BS_AUTORADIOBUTTON = $00000009;
|
|
{$EXTERNALSYM BS_AUTORADIOBUTTON}
|
|
BS_PUSHBOX = $0000000A;
|
|
{$EXTERNALSYM BS_PUSHBOX}
|
|
BS_OWNERDRAW = $0000000B;
|
|
{$EXTERNALSYM BS_OWNERDRAW}
|
|
BS_TYPEMASK = $0000000F;
|
|
{$EXTERNALSYM BS_TYPEMASK}
|
|
BS_LEFTTEXT = $00000020;
|
|
{$EXTERNALSYM BS_LEFTTEXT}
|
|
BS_TEXT = $00000000;
|
|
{$EXTERNALSYM BS_TEXT}
|
|
BS_ICON = $00000040;
|
|
{$EXTERNALSYM BS_ICON}
|
|
BS_BITMAP = $00000080;
|
|
{$EXTERNALSYM BS_BITMAP}
|
|
BS_LEFT = $00000100;
|
|
{$EXTERNALSYM BS_LEFT}
|
|
BS_RIGHT = $00000200;
|
|
{$EXTERNALSYM BS_RIGHT}
|
|
BS_CENTER = $00000300;
|
|
{$EXTERNALSYM BS_CENTER}
|
|
BS_TOP = $00000400;
|
|
{$EXTERNALSYM BS_TOP}
|
|
BS_BOTTOM = $00000800;
|
|
{$EXTERNALSYM BS_BOTTOM}
|
|
BS_VCENTER = $00000C00;
|
|
{$EXTERNALSYM BS_VCENTER}
|
|
BS_PUSHLIKE = $00001000;
|
|
{$EXTERNALSYM BS_PUSHLIKE}
|
|
BS_MULTILINE = $00002000;
|
|
{$EXTERNALSYM BS_MULTILINE}
|
|
BS_NOTIFY = $00004000;
|
|
{$EXTERNALSYM BS_NOTIFY}
|
|
BS_FLAT = $00008000;
|
|
{$EXTERNALSYM BS_FLAT}
|
|
BS_RIGHTBUTTON = BS_LEFTTEXT;
|
|
{$EXTERNALSYM BS_RIGHTBUTTON}
|
|
|
|
//
|
|
// User Button Notification Codes
|
|
//
|
|
|
|
BN_CLICKED = 0;
|
|
{$EXTERNALSYM BN_CLICKED}
|
|
BN_PAINT = 1;
|
|
{$EXTERNALSYM BN_PAINT}
|
|
BN_HILITE = 2;
|
|
{$EXTERNALSYM BN_HILITE}
|
|
BN_UNHILITE = 3;
|
|
{$EXTERNALSYM BN_UNHILITE}
|
|
BN_DISABLE = 4;
|
|
{$EXTERNALSYM BN_DISABLE}
|
|
BN_DOUBLECLICKED = 5;
|
|
{$EXTERNALSYM BN_DOUBLECLICKED}
|
|
BN_PUSHED = BN_HILITE;
|
|
{$EXTERNALSYM BN_PUSHED}
|
|
BN_UNPUSHED = BN_UNHILITE;
|
|
{$EXTERNALSYM BN_UNPUSHED}
|
|
BN_DBLCLK = BN_DOUBLECLICKED;
|
|
{$EXTERNALSYM BN_DBLCLK}
|
|
BN_SETFOCUS = 6;
|
|
{$EXTERNALSYM BN_SETFOCUS}
|
|
BN_KILLFOCUS = 7;
|
|
{$EXTERNALSYM BN_KILLFOCUS}
|
|
|
|
//
|
|
// Button Control Messages
|
|
//
|
|
|
|
BM_GETCHECK = $00F0;
|
|
{$EXTERNALSYM BM_GETCHECK}
|
|
BM_SETCHECK = $00F1;
|
|
{$EXTERNALSYM BM_SETCHECK}
|
|
BM_GETSTATE = $00F2;
|
|
{$EXTERNALSYM BM_GETSTATE}
|
|
BM_SETSTATE = $00F3;
|
|
{$EXTERNALSYM BM_SETSTATE}
|
|
BM_SETSTYLE = $00F4;
|
|
{$EXTERNALSYM BM_SETSTYLE}
|
|
BM_CLICK = $00F5;
|
|
{$EXTERNALSYM BM_CLICK}
|
|
BM_GETIMAGE = $00F6;
|
|
{$EXTERNALSYM BM_GETIMAGE}
|
|
BM_SETIMAGE = $00F7;
|
|
{$EXTERNALSYM BM_SETIMAGE}
|
|
|
|
BST_UNCHECKED = $0000;
|
|
{$EXTERNALSYM BST_UNCHECKED}
|
|
BST_CHECKED = $0001;
|
|
{$EXTERNALSYM BST_CHECKED}
|
|
BST_INDETERMINATE = $0002;
|
|
{$EXTERNALSYM BST_INDETERMINATE}
|
|
BST_PUSHED = $0004;
|
|
{$EXTERNALSYM BST_PUSHED}
|
|
BST_FOCUS = $0008;
|
|
{$EXTERNALSYM BST_FOCUS}
|
|
|
|
//
|
|
// Static Control Constants
|
|
//
|
|
|
|
SS_LEFT = $00000000;
|
|
{$EXTERNALSYM SS_LEFT}
|
|
SS_CENTER = $00000001;
|
|
{$EXTERNALSYM SS_CENTER}
|
|
SS_RIGHT = $00000002;
|
|
{$EXTERNALSYM SS_RIGHT}
|
|
SS_ICON = $00000003;
|
|
{$EXTERNALSYM SS_ICON}
|
|
SS_BLACKRECT = $00000004;
|
|
{$EXTERNALSYM SS_BLACKRECT}
|
|
SS_GRAYRECT = $00000005;
|
|
{$EXTERNALSYM SS_GRAYRECT}
|
|
SS_WHITERECT = $00000006;
|
|
{$EXTERNALSYM SS_WHITERECT}
|
|
SS_BLACKFRAME = $00000007;
|
|
{$EXTERNALSYM SS_BLACKFRAME}
|
|
SS_GRAYFRAME = $00000008;
|
|
{$EXTERNALSYM SS_GRAYFRAME}
|
|
SS_WHITEFRAME = $00000009;
|
|
{$EXTERNALSYM SS_WHITEFRAME}
|
|
SS_USERITEM = $0000000A;
|
|
{$EXTERNALSYM SS_USERITEM}
|
|
SS_SIMPLE = $0000000B;
|
|
{$EXTERNALSYM SS_SIMPLE}
|
|
SS_LEFTNOWORDWRAP = $0000000C;
|
|
{$EXTERNALSYM SS_LEFTNOWORDWRAP}
|
|
SS_OWNERDRAW = $0000000D;
|
|
{$EXTERNALSYM SS_OWNERDRAW}
|
|
SS_BITMAP = $0000000E;
|
|
{$EXTERNALSYM SS_BITMAP}
|
|
SS_ENHMETAFILE = $0000000F;
|
|
{$EXTERNALSYM SS_ENHMETAFILE}
|
|
SS_ETCHEDHORZ = $00000010;
|
|
{$EXTERNALSYM SS_ETCHEDHORZ}
|
|
SS_ETCHEDVERT = $00000011;
|
|
{$EXTERNALSYM SS_ETCHEDVERT}
|
|
SS_ETCHEDFRAME = $00000012;
|
|
{$EXTERNALSYM SS_ETCHEDFRAME}
|
|
SS_TYPEMASK = $0000001F;
|
|
{$EXTERNALSYM SS_TYPEMASK}
|
|
SS_REALSIZECONTROL = $00000040;
|
|
{$EXTERNALSYM SS_REALSIZECONTROL}
|
|
SS_NOPREFIX = $00000080; // Don't do "&" character translation
|
|
{$EXTERNALSYM SS_NOPREFIX}
|
|
SS_NOTIFY = $00000100;
|
|
{$EXTERNALSYM SS_NOTIFY}
|
|
SS_CENTERIMAGE = $00000200;
|
|
{$EXTERNALSYM SS_CENTERIMAGE}
|
|
SS_RIGHTJUST = $00000400;
|
|
{$EXTERNALSYM SS_RIGHTJUST}
|
|
SS_REALSIZEIMAGE = $00000800;
|
|
{$EXTERNALSYM SS_REALSIZEIMAGE}
|
|
SS_SUNKEN = $00001000;
|
|
{$EXTERNALSYM SS_SUNKEN}
|
|
SS_EDITCONTROL = $00002000;
|
|
{$EXTERNALSYM SS_EDITCONTROL}
|
|
SS_ENDELLIPSIS = $00004000;
|
|
{$EXTERNALSYM SS_ENDELLIPSIS}
|
|
SS_PATHELLIPSIS = $00008000;
|
|
{$EXTERNALSYM SS_PATHELLIPSIS}
|
|
SS_WORDELLIPSIS = $0000C000;
|
|
{$EXTERNALSYM SS_WORDELLIPSIS}
|
|
SS_ELLIPSISMASK = $0000C000;
|
|
{$EXTERNALSYM SS_ELLIPSISMASK}
|
|
|
|
//
|
|
// Static Control Mesages
|
|
//
|
|
|
|
STM_SETICON = $0170;
|
|
{$EXTERNALSYM STM_SETICON}
|
|
STM_GETICON = $0171;
|
|
{$EXTERNALSYM STM_GETICON}
|
|
STM_SETIMAGE = $0172;
|
|
{$EXTERNALSYM STM_SETIMAGE}
|
|
STM_GETIMAGE = $0173;
|
|
{$EXTERNALSYM STM_GETIMAGE}
|
|
STN_CLICKED = 0;
|
|
{$EXTERNALSYM STN_CLICKED}
|
|
STN_DBLCLK = 1;
|
|
{$EXTERNALSYM STN_DBLCLK}
|
|
STN_ENABLE = 2;
|
|
{$EXTERNALSYM STN_ENABLE}
|
|
STN_DISABLE = 3;
|
|
{$EXTERNALSYM STN_DISABLE}
|
|
STM_MSGMAX = $0174;
|
|
{$EXTERNALSYM STM_MSGMAX}
|
|
|
|
//
|
|
// Dialog window class
|
|
//
|
|
|
|
WC_DIALOG = MAKEINTATOM($8002);
|
|
{$EXTERNALSYM WC_DIALOG}
|
|
|
|
//
|
|
// Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
|
|
//
|
|
|
|
DWL_MSGRESULT = 0;
|
|
{$EXTERNALSYM DWL_MSGRESULT}
|
|
DWL_DLGPROC = 4;
|
|
{$EXTERNALSYM DWL_DLGPROC}
|
|
DWL_USER = 8;
|
|
{$EXTERNALSYM DWL_USER}
|
|
|
|
DWLP_MSGRESULT = 0;
|
|
{$EXTERNALSYM DWLP_MSGRESULT}
|
|
DWLP_DLGPROC = DWLP_MSGRESULT + SizeOf(LRESULT);
|
|
{$EXTERNALSYM DWLP_DLGPROC}
|
|
DWLP_USER = DWLP_DLGPROC + SizeOf(DLGPROC);
|
|
{$EXTERNALSYM DWLP_USER}
|
|
|
|
//
|
|
// Dialog Manager Routines
|
|
//
|
|
|
|
function IsDialogMessageA(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
|
|
{$EXTERNALSYM IsDialogMessageA}
|
|
function IsDialogMessageW(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
|
|
{$EXTERNALSYM IsDialogMessageW}
|
|
function IsDialogMessage(hDlg: HWND; const lpMsg: MSG): BOOL; stdcall;
|
|
{$EXTERNALSYM IsDialogMessage}
|
|
|
|
function MapDialogRect(hDlg: HWND; var lpRect: RECT): BOOL; stdcall;
|
|
{$EXTERNALSYM MapDialogRect}
|
|
|
|
function DlgDirListA(hDlg: HWND; lpPathSpec: LPSTR; nIDListBox: Integer;
|
|
nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirListA}
|
|
function DlgDirListW(hDlg: HWND; lpPathSpec: LPWSTR; nIDListBox: Integer;
|
|
nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirListW}
|
|
function DlgDirList(hDlg: HWND; lpPathSpec: LPTSTR; nIDListBox: Integer;
|
|
nIDStaticPath: Integer; uFileType: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirList}
|
|
|
|
//
|
|
// DlgDirList, DlgDirListComboBox flags values
|
|
//
|
|
|
|
const
|
|
DDL_READWRITE = $0000;
|
|
{$EXTERNALSYM DDL_READWRITE}
|
|
DDL_READONLY = $0001;
|
|
{$EXTERNALSYM DDL_READONLY}
|
|
DDL_HIDDEN = $0002;
|
|
{$EXTERNALSYM DDL_HIDDEN}
|
|
DDL_SYSTEM = $0004;
|
|
{$EXTERNALSYM DDL_SYSTEM}
|
|
DDL_DIRECTORY = $0010;
|
|
{$EXTERNALSYM DDL_DIRECTORY}
|
|
DDL_ARCHIVE = $0020;
|
|
{$EXTERNALSYM DDL_ARCHIVE}
|
|
|
|
DDL_POSTMSGS = $2000;
|
|
{$EXTERNALSYM DDL_POSTMSGS}
|
|
DDL_DRIVES = $4000;
|
|
{$EXTERNALSYM DDL_DRIVES}
|
|
DDL_EXCLUSIVE = $8000;
|
|
{$EXTERNALSYM DDL_EXCLUSIVE}
|
|
|
|
function DlgDirSelectExA(hDlg: HWND; lpString: LPSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectExA}
|
|
function DlgDirSelectExW(hDlg: HWND; lpString: LPWSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectExW}
|
|
function DlgDirSelectEx(hDlg: HWND; lpString: LPTSTR; nCount, nIDListBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectEx}
|
|
|
|
function DlgDirListComboBoxA(hDlg: HWND; lpPathSpec: LPSTR; nIDComboBox: Integer;
|
|
nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirListComboBoxA}
|
|
function DlgDirListComboBoxW(hDlg: HWND; lpPathSpec: LPWSTR; nIDComboBox: Integer;
|
|
nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirListComboBoxW}
|
|
function DlgDirListComboBox(hDlg: HWND; lpPathSpec: LPTSTR; nIDComboBox: Integer;
|
|
nIDStaticPath: Integer; uFiletype: UINT): Integer; stdcall;
|
|
{$EXTERNALSYM DlgDirListComboBox}
|
|
|
|
function DlgDirSelectComboBoxExA(hDlg: HWND; lpString: LPSTR; nCount: Integer;
|
|
nIDComboBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectComboBoxExA}
|
|
function DlgDirSelectComboBoxExW(hDlg: HWND; lpString: LPWSTR; nCount: Integer;
|
|
nIDComboBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectComboBoxExW}
|
|
function DlgDirSelectComboBoxEx(hDlg: HWND; lpString: LPTSTR; nCount: Integer;
|
|
nIDComboBox: Integer): BOOL; stdcall;
|
|
{$EXTERNALSYM DlgDirSelectComboBoxEx}
|
|
|
|
//
|
|
// Dialog Styles
|
|
//
|
|
|
|
const
|
|
DS_ABSALIGN = $01;
|
|
{$EXTERNALSYM DS_ABSALIGN}
|
|
DS_SYSMODAL = $02;
|
|
{$EXTERNALSYM DS_SYSMODAL}
|
|
DS_LOCALEDIT = $20; // Edit items get Local storage.
|
|
{$EXTERNALSYM DS_LOCALEDIT}
|
|
DS_SETFONT = $40; // User specified font for Dlg controls
|
|
{$EXTERNALSYM DS_SETFONT}
|
|
DS_MODALFRAME = $80; // Can be combined with WS_CAPTION
|
|
{$EXTERNALSYM DS_MODALFRAME}
|
|
DS_NOIDLEMSG = $100; // WM_ENTERIDLE message will not be sent
|
|
{$EXTERNALSYM DS_NOIDLEMSG}
|
|
DS_SETFOREGROUND = $200; // not in win3.1
|
|
{$EXTERNALSYM DS_SETFOREGROUND}
|
|
|
|
DS_3DLOOK = $0004;
|
|
{$EXTERNALSYM DS_3DLOOK}
|
|
DS_FIXEDSYS = $0008;
|
|
{$EXTERNALSYM DS_FIXEDSYS}
|
|
DS_NOFAILCREATE = $0010;
|
|
{$EXTERNALSYM DS_NOFAILCREATE}
|
|
DS_CONTROL = $0400;
|
|
{$EXTERNALSYM DS_CONTROL}
|
|
DS_CENTER = $0800;
|
|
{$EXTERNALSYM DS_CENTER}
|
|
DS_CENTERMOUSE = $1000;
|
|
{$EXTERNALSYM DS_CENTERMOUSE}
|
|
DS_CONTEXTHELP = $2000;
|
|
{$EXTERNALSYM DS_CONTEXTHELP}
|
|
|
|
DS_SHELLFONT = DS_SETFONT or DS_FIXEDSYS;
|
|
{$EXTERNALSYM DS_SHELLFONT}
|
|
|
|
//#if(_WIN32_WCE >= 0x0500)
|
|
DS_USEPIXELS = $8000;
|
|
{$EXTERNALSYM DS_USEPIXELS}
|
|
//#endif
|
|
|
|
DM_GETDEFID = WM_USER + 0;
|
|
{$EXTERNALSYM DM_GETDEFID}
|
|
DM_SETDEFID = WM_USER + 1;
|
|
{$EXTERNALSYM DM_SETDEFID}
|
|
|
|
DM_REPOSITION = WM_USER + 2;
|
|
{$EXTERNALSYM DM_REPOSITION}
|
|
|
|
//
|
|
// Returned in HIWORD() of DM_GETDEFID result if msg is supported
|
|
//
|
|
|
|
DC_HASDEFID = $534B;
|
|
{$EXTERNALSYM DC_HASDEFID}
|
|
|
|
//
|
|
// Dialog Codes
|
|
//
|
|
|
|
DLGC_WANTARROWS = $0001; // Control wants arrow keys
|
|
{$EXTERNALSYM DLGC_WANTARROWS}
|
|
DLGC_WANTTAB = $0002; // Control wants tab keys
|
|
{$EXTERNALSYM DLGC_WANTTAB}
|
|
DLGC_WANTALLKEYS = $0004; // Control wants all keys
|
|
{$EXTERNALSYM DLGC_WANTALLKEYS}
|
|
DLGC_WANTMESSAGE = $0004; // Pass message to control
|
|
{$EXTERNALSYM DLGC_WANTMESSAGE}
|
|
DLGC_HASSETSEL = $0008; // Understands EM_SETSEL message
|
|
{$EXTERNALSYM DLGC_HASSETSEL}
|
|
DLGC_DEFPUSHBUTTON = $0010; // Default pushbutton
|
|
{$EXTERNALSYM DLGC_DEFPUSHBUTTON}
|
|
DLGC_UNDEFPUSHBUTTON = $0020; // Non-default pushbutton
|
|
{$EXTERNALSYM DLGC_UNDEFPUSHBUTTON}
|
|
DLGC_RADIOBUTTON = $0040; // Radio button
|
|
{$EXTERNALSYM DLGC_RADIOBUTTON}
|
|
DLGC_WANTCHARS = $0080; // Want WM_CHAR messages
|
|
{$EXTERNALSYM DLGC_WANTCHARS}
|
|
DLGC_STATIC = $0100; // Static item: don't include
|
|
{$EXTERNALSYM DLGC_STATIC}
|
|
DLGC_BUTTON = $2000; // Button item: can be checked
|
|
{$EXTERNALSYM DLGC_BUTTON}
|
|
|
|
LB_CTLCODE = 0;
|
|
{$EXTERNALSYM LB_CTLCODE}
|
|
|
|
//
|
|
// Listbox Return Values
|
|
//
|
|
|
|
LB_OKAY = 0;
|
|
{$EXTERNALSYM LB_OKAY}
|
|
LB_ERR = DWORD(-1);
|
|
{$EXTERNALSYM LB_ERR}
|
|
LB_ERRSPACE = DWORD(-2);
|
|
{$EXTERNALSYM LB_ERRSPACE}
|
|
|
|
//
|
|
// The idStaticPath parameter to DlgDirList can have the following values
|
|
// ORed if the list box should show other details of the files along with
|
|
// the name of the files;
|
|
//
|
|
// all other details also will be returned
|
|
|
|
//
|
|
// Listbox Notification Codes
|
|
//
|
|
|
|
LBN_ERRSPACE = DWORD(-2);
|
|
{$EXTERNALSYM LBN_ERRSPACE}
|
|
LBN_SELCHANGE = 1;
|
|
{$EXTERNALSYM LBN_SELCHANGE}
|
|
LBN_DBLCLK = 2;
|
|
{$EXTERNALSYM LBN_DBLCLK}
|
|
LBN_SELCANCEL = 3;
|
|
{$EXTERNALSYM LBN_SELCANCEL}
|
|
LBN_SETFOCUS = 4;
|
|
{$EXTERNALSYM LBN_SETFOCUS}
|
|
LBN_KILLFOCUS = 5;
|
|
{$EXTERNALSYM LBN_KILLFOCUS}
|
|
|
|
//
|
|
// Listbox messages
|
|
//
|
|
|
|
LB_ADDSTRING = $0180;
|
|
{$EXTERNALSYM LB_ADDSTRING}
|
|
LB_INSERTSTRING = $0181;
|
|
{$EXTERNALSYM LB_INSERTSTRING}
|
|
LB_DELETESTRING = $0182;
|
|
{$EXTERNALSYM LB_DELETESTRING}
|
|
LB_SELITEMRANGEEX = $0183;
|
|
{$EXTERNALSYM LB_SELITEMRANGEEX}
|
|
LB_RESETCONTENT = $0184;
|
|
{$EXTERNALSYM LB_RESETCONTENT}
|
|
LB_SETSEL = $0185;
|
|
{$EXTERNALSYM LB_SETSEL}
|
|
LB_SETCURSEL = $0186;
|
|
{$EXTERNALSYM LB_SETCURSEL}
|
|
LB_GETSEL = $0187;
|
|
{$EXTERNALSYM LB_GETSEL}
|
|
LB_GETCURSEL = $0188;
|
|
{$EXTERNALSYM LB_GETCURSEL}
|
|
LB_GETTEXT = $0189;
|
|
{$EXTERNALSYM LB_GETTEXT}
|
|
LB_GETTEXTLEN = $018A;
|
|
{$EXTERNALSYM LB_GETTEXTLEN}
|
|
LB_GETCOUNT = $018B;
|
|
{$EXTERNALSYM LB_GETCOUNT}
|
|
LB_SELECTSTRING = $018C;
|
|
{$EXTERNALSYM LB_SELECTSTRING}
|
|
LB_DIR = $018D;
|
|
{$EXTERNALSYM LB_DIR}
|
|
LB_GETTOPINDEX = $018E;
|
|
{$EXTERNALSYM LB_GETTOPINDEX}
|
|
LB_FINDSTRING = $018F;
|
|
{$EXTERNALSYM LB_FINDSTRING}
|
|
LB_GETSELCOUNT = $0190;
|
|
{$EXTERNALSYM LB_GETSELCOUNT}
|
|
LB_GETSELITEMS = $0191;
|
|
{$EXTERNALSYM LB_GETSELITEMS}
|
|
LB_SETTABSTOPS = $0192;
|
|
{$EXTERNALSYM LB_SETTABSTOPS}
|
|
LB_GETHORIZONTALEXTENT = $0193;
|
|
{$EXTERNALSYM LB_GETHORIZONTALEXTENT}
|
|
LB_SETHORIZONTALEXTENT = $0194;
|
|
{$EXTERNALSYM LB_SETHORIZONTALEXTENT}
|
|
LB_SETCOLUMNWIDTH = $0195;
|
|
{$EXTERNALSYM LB_SETCOLUMNWIDTH}
|
|
LB_ADDFILE = $0196;
|
|
{$EXTERNALSYM LB_ADDFILE}
|
|
LB_SETTOPINDEX = $0197;
|
|
{$EXTERNALSYM LB_SETTOPINDEX}
|
|
LB_GETITEMRECT = $0198;
|
|
{$EXTERNALSYM LB_GETITEMRECT}
|
|
LB_GETITEMDATA = $0199;
|
|
{$EXTERNALSYM LB_GETITEMDATA}
|
|
LB_SETITEMDATA = $019A;
|
|
{$EXTERNALSYM LB_SETITEMDATA}
|
|
LB_SELITEMRANGE = $019B;
|
|
{$EXTERNALSYM LB_SELITEMRANGE}
|
|
LB_SETANCHORINDEX = $019C;
|
|
{$EXTERNALSYM LB_SETANCHORINDEX}
|
|
LB_GETANCHORINDEX = $019D;
|
|
{$EXTERNALSYM LB_GETANCHORINDEX}
|
|
LB_SETCARETINDEX = $019E;
|
|
{$EXTERNALSYM LB_SETCARETINDEX}
|
|
LB_GETCARETINDEX = $019F;
|
|
{$EXTERNALSYM LB_GETCARETINDEX}
|
|
LB_SETITEMHEIGHT = $01A0;
|
|
{$EXTERNALSYM LB_SETITEMHEIGHT}
|
|
LB_GETITEMHEIGHT = $01A1;
|
|
{$EXTERNALSYM LB_GETITEMHEIGHT}
|
|
LB_FINDSTRINGEXACT = $01A2;
|
|
{$EXTERNALSYM LB_FINDSTRINGEXACT}
|
|
LB_SETLOCALE = $01A5;
|
|
{$EXTERNALSYM LB_SETLOCALE}
|
|
LB_GETLOCALE = $01A6;
|
|
{$EXTERNALSYM LB_GETLOCALE}
|
|
LB_SETCOUNT = $01A7;
|
|
{$EXTERNALSYM LB_SETCOUNT}
|
|
LB_INITSTORAGE = $01A8;
|
|
{$EXTERNALSYM LB_INITSTORAGE}
|
|
LB_ITEMFROMPOINT = $01A9;
|
|
{$EXTERNALSYM LB_ITEMFROMPOINT}
|
|
LB_MULTIPLEADDSTRING = $01B1;
|
|
{$EXTERNALSYM LB_MULTIPLEADDSTRING}
|
|
LB_GETLISTBOXINFO = $01B2;
|
|
{$EXTERNALSYM LB_GETLISTBOXINFO}
|
|
|
|
{$IFDEF WINXP_UP}
|
|
LB_MSGMAX = $01B3;
|
|
{$EXTERNALSYM LB_MSGMAX}
|
|
{$ELSE}
|
|
LB_MSGMAX = $01B0;
|
|
{$EXTERNALSYM LB_MSGMAX}
|
|
{$ENDIF WINXP_UP}
|
|
|
|
//
|
|
// Listbox Styles
|
|
//
|
|
|
|
LBS_NOTIFY = $0001;
|
|
{$EXTERNALSYM LBS_NOTIFY}
|
|
LBS_SORT = $0002;
|
|
{$EXTERNALSYM LBS_SORT}
|
|
LBS_NOREDRAW = $0004;
|
|
{$EXTERNALSYM LBS_NOREDRAW}
|
|
LBS_MULTIPLESEL = $0008;
|
|
{$EXTERNALSYM LBS_MULTIPLESEL}
|
|
LBS_OWNERDRAWFIXED = $0010;
|
|
{$EXTERNALSYM LBS_OWNERDRAWFIXED}
|
|
LBS_OWNERDRAWVARIABLE = $0020;
|
|
{$EXTERNALSYM LBS_OWNERDRAWVARIABLE}
|
|
LBS_HASSTRINGS = $0040;
|
|
{$EXTERNALSYM LBS_HASSTRINGS}
|
|
LBS_USETABSTOPS = $0080;
|
|
{$EXTERNALSYM LBS_USETABSTOPS}
|
|
LBS_NOINTEGRALHEIGHT = $0100;
|
|
{$EXTERNALSYM LBS_NOINTEGRALHEIGHT}
|
|
LBS_MULTICOLUMN = $0200;
|
|
{$EXTERNALSYM LBS_MULTICOLUMN}
|
|
LBS_WANTKEYBOARDINPUT = $0400;
|
|
{$EXTERNALSYM LBS_WANTKEYBOARDINPUT}
|
|
LBS_EXTENDEDSEL = $0800;
|
|
{$EXTERNALSYM LBS_EXTENDEDSEL}
|
|
LBS_DISABLENOSCROLL = $1000;
|
|
{$EXTERNALSYM LBS_DISABLENOSCROLL}
|
|
LBS_NODATA = $2000;
|
|
{$EXTERNALSYM LBS_NODATA}
|
|
LBS_NOSEL = $4000;
|
|
{$EXTERNALSYM LBS_NOSEL}
|
|
LBS_COMBOBOX = $8000;
|
|
{$EXTERNALSYM LBS_COMBOBOX}
|
|
|
|
LBS_STANDARD = LBS_NOTIFY or LBS_SORT or WS_VSCROLL or WS_BORDER;
|
|
{$EXTERNALSYM LBS_STANDARD}
|
|
|
|
//
|
|
// Combo Box return Values
|
|
//
|
|
|
|
CB_OKAY = 0;
|
|
{$EXTERNALSYM CB_OKAY}
|
|
CB_ERR = DWORD(-1);
|
|
{$EXTERNALSYM CB_ERR}
|
|
CB_ERRSPACE = DWORD(-2);
|
|
{$EXTERNALSYM CB_ERRSPACE}
|
|
|
|
//
|
|
// Combo Box Notification Codes
|
|
//
|
|
|
|
CBN_ERRSPACE = DWORD(-1);
|
|
{$EXTERNALSYM CBN_ERRSPACE}
|
|
CBN_SELCHANGE = 1;
|
|
{$EXTERNALSYM CBN_SELCHANGE}
|
|
CBN_DBLCLK = 2;
|
|
{$EXTERNALSYM CBN_DBLCLK}
|
|
CBN_SETFOCUS = 3;
|
|
{$EXTERNALSYM CBN_SETFOCUS}
|
|
CBN_KILLFOCUS = 4;
|
|
{$EXTERNALSYM CBN_KILLFOCUS}
|
|
CBN_EDITCHANGE = 5;
|
|
{$EXTERNALSYM CBN_EDITCHANGE}
|
|
CBN_EDITUPDATE = 6;
|
|
{$EXTERNALSYM CBN_EDITUPDATE}
|
|
CBN_DROPDOWN = 7;
|
|
{$EXTERNALSYM CBN_DROPDOWN}
|
|
CBN_CLOSEUP = 8;
|
|
{$EXTERNALSYM CBN_CLOSEUP}
|
|
CBN_SELENDOK = 9;
|
|
{$EXTERNALSYM CBN_SELENDOK}
|
|
CBN_SELENDCANCEL = 10;
|
|
{$EXTERNALSYM CBN_SELENDCANCEL}
|
|
|
|
//
|
|
// Combo Box styles
|
|
//
|
|
|
|
CBS_SIMPLE = $0001;
|
|
{$EXTERNALSYM CBS_SIMPLE}
|
|
CBS_DROPDOWN = $0002;
|
|
{$EXTERNALSYM CBS_DROPDOWN}
|
|
CBS_DROPDOWNLIST = $0003;
|
|
{$EXTERNALSYM CBS_DROPDOWNLIST}
|
|
CBS_OWNERDRAWFIXED = $0010;
|
|
{$EXTERNALSYM CBS_OWNERDRAWFIXED}
|
|
CBS_OWNERDRAWVARIABLE = $0020;
|
|
{$EXTERNALSYM CBS_OWNERDRAWVARIABLE}
|
|
CBS_AUTOHSCROLL = $0040;
|
|
{$EXTERNALSYM CBS_AUTOHSCROLL}
|
|
CBS_OEMCONVERT = $0080;
|
|
{$EXTERNALSYM CBS_OEMCONVERT}
|
|
CBS_SORT = $0100;
|
|
{$EXTERNALSYM CBS_SORT}
|
|
CBS_HASSTRINGS = $0200;
|
|
{$EXTERNALSYM CBS_HASSTRINGS}
|
|
CBS_NOINTEGRALHEIGHT = $0400;
|
|
{$EXTERNALSYM CBS_NOINTEGRALHEIGHT}
|
|
CBS_DISABLENOSCROLL = $0800;
|
|
{$EXTERNALSYM CBS_DISABLENOSCROLL}
|
|
CBS_UPPERCASE = $2000;
|
|
{$EXTERNALSYM CBS_UPPERCASE}
|
|
CBS_LOWERCASE = $4000;
|
|
{$EXTERNALSYM CBS_LOWERCASE}
|
|
|
|
//
|
|
// Combo Box messages
|
|
//
|
|
|
|
CB_GETEDITSEL = $0140;
|
|
{$EXTERNALSYM CB_GETEDITSEL}
|
|
CB_LIMITTEXT = $0141;
|
|
{$EXTERNALSYM CB_LIMITTEXT}
|
|
CB_SETEDITSEL = $0142;
|
|
{$EXTERNALSYM CB_SETEDITSEL}
|
|
CB_ADDSTRING = $0143;
|
|
{$EXTERNALSYM CB_ADDSTRING}
|
|
CB_DELETESTRING = $0144;
|
|
{$EXTERNALSYM CB_DELETESTRING}
|
|
CB_DIR = $0145;
|
|
{$EXTERNALSYM CB_DIR}
|
|
CB_GETCOUNT = $0146;
|
|
{$EXTERNALSYM CB_GETCOUNT}
|
|
CB_GETCURSEL = $0147;
|
|
{$EXTERNALSYM CB_GETCURSEL}
|
|
CB_GETLBTEXT = $0148;
|
|
{$EXTERNALSYM CB_GETLBTEXT}
|
|
CB_GETLBTEXTLEN = $0149;
|
|
{$EXTERNALSYM CB_GETLBTEXTLEN}
|
|
CB_INSERTSTRING = $014A;
|
|
{$EXTERNALSYM CB_INSERTSTRING}
|
|
CB_RESETCONTENT = $014B;
|
|
{$EXTERNALSYM CB_RESETCONTENT}
|
|
CB_FINDSTRING = $014C;
|
|
{$EXTERNALSYM CB_FINDSTRING}
|
|
CB_SELECTSTRING = $014D;
|
|
{$EXTERNALSYM CB_SELECTSTRING}
|
|
CB_SETCURSEL = $014E;
|
|
{$EXTERNALSYM CB_SETCURSEL}
|
|
CB_SHOWDROPDOWN = $014F;
|
|
{$EXTERNALSYM CB_SHOWDROPDOWN}
|
|
CB_GETITEMDATA = $0150;
|
|
{$EXTERNALSYM CB_GETITEMDATA}
|
|
CB_SETITEMDATA = $0151;
|
|
{$EXTERNALSYM CB_SETITEMDATA}
|
|
CB_GETDROPPEDCONTROLRECT = $0152;
|
|
{$EXTERNALSYM CB_GETDROPPEDCONTROLRECT}
|
|
CB_SETITEMHEIGHT = $0153;
|
|
{$EXTERNALSYM CB_SETITEMHEIGHT}
|
|
CB_GETITEMHEIGHT = $0154;
|
|
{$EXTERNALSYM CB_GETITEMHEIGHT}
|
|
CB_SETEXTENDEDUI = $0155;
|
|
{$EXTERNALSYM CB_SETEXTENDEDUI}
|
|
CB_GETEXTENDEDUI = $0156;
|
|
{$EXTERNALSYM CB_GETEXTENDEDUI}
|
|
CB_GETDROPPEDSTATE = $0157;
|
|
{$EXTERNALSYM CB_GETDROPPEDSTATE}
|
|
CB_FINDSTRINGEXACT = $0158;
|
|
{$EXTERNALSYM CB_FINDSTRINGEXACT}
|
|
CB_SETLOCALE = $0159;
|
|
{$EXTERNALSYM CB_SETLOCALE}
|
|
CB_GETLOCALE = $015A;
|
|
{$EXTERNALSYM CB_GETLOCALE}
|
|
CB_GETTOPINDEX = $015b;
|
|
{$EXTERNALSYM CB_GETTOPINDEX}
|
|
CB_SETTOPINDEX = $015c;
|
|
{$EXTERNALSYM CB_SETTOPINDEX}
|
|
CB_GETHORIZONTALEXTENT = $015d;
|
|
{$EXTERNALSYM CB_GETHORIZONTALEXTENT}
|
|
CB_SETHORIZONTALEXTENT = $015e;
|
|
{$EXTERNALSYM CB_SETHORIZONTALEXTENT}
|
|
CB_GETDROPPEDWIDTH = $015f;
|
|
{$EXTERNALSYM CB_GETDROPPEDWIDTH}
|
|
CB_SETDROPPEDWIDTH = $0160;
|
|
{$EXTERNALSYM CB_SETDROPPEDWIDTH}
|
|
CB_INITSTORAGE = $0161;
|
|
{$EXTERNALSYM CB_INITSTORAGE}
|
|
CB_MULTIPLEADDSTRING = $0163;
|
|
{$EXTERNALSYM CB_MULTIPLEADDSTRING}
|
|
CB_GETCOMBOBOXINFO = $0164;
|
|
{$EXTERNALSYM CB_GETCOMBOBOXINFO}
|
|
|
|
{$IFDEF WINXP_UP}
|
|
CB_MSGMAX = $0165;
|
|
{$EXTERNALSYM CB_MSGMAX}
|
|
{$ELSE}
|
|
CB_MSGMAX = $0162;
|
|
{$EXTERNALSYM CB_MSGMAX}
|
|
{$ENDIF WINXP_UP}
|
|
|
|
//
|
|
// Scroll Bar Styles
|
|
//
|
|
|
|
SBS_HORZ = $0000;
|
|
{$EXTERNALSYM SBS_HORZ}
|
|
SBS_VERT = $0001;
|
|
{$EXTERNALSYM SBS_VERT}
|
|
SBS_TOPALIGN = $0002;
|
|
{$EXTERNALSYM SBS_TOPALIGN}
|
|
SBS_LEFTALIGN = $0002;
|
|
{$EXTERNALSYM SBS_LEFTALIGN}
|
|
SBS_BOTTOMALIGN = $0004;
|
|
{$EXTERNALSYM SBS_BOTTOMALIGN}
|
|
SBS_RIGHTALIGN = $0004;
|
|
{$EXTERNALSYM SBS_RIGHTALIGN}
|
|
SBS_SIZEBOXTOPLEFTALIGN = $0002;
|
|
{$EXTERNALSYM SBS_SIZEBOXTOPLEFTALIGN}
|
|
SBS_SIZEBOXBOTTOMRIGHTALIGN = $0004;
|
|
{$EXTERNALSYM SBS_SIZEBOXBOTTOMRIGHTALIGN}
|
|
SBS_SIZEBOX = $0008;
|
|
{$EXTERNALSYM SBS_SIZEBOX}
|
|
SBS_SIZEGRIP = $0010;
|
|
{$EXTERNALSYM SBS_SIZEGRIP}
|
|
|
|
//
|
|
// Scroll bar messages
|
|
//
|
|
|
|
SBM_SETPOS = $00E0; // not in win3.1
|
|
{$EXTERNALSYM SBM_SETPOS}
|
|
SBM_GETPOS = $00E1; // not in win3.1
|
|
{$EXTERNALSYM SBM_GETPOS}
|
|
SBM_SETRANGE = $00E2; // not in win3.1
|
|
{$EXTERNALSYM SBM_SETRANGE}
|
|
SBM_SETRANGEREDRAW = $00E6; // not in win3.1
|
|
{$EXTERNALSYM SBM_SETRANGEREDRAW}
|
|
SBM_GETRANGE = $00E3; // not in win3.1
|
|
{$EXTERNALSYM SBM_GETRANGE}
|
|
SBM_ENABLE_ARROWS = $00E4; // not in win3.1
|
|
{$EXTERNALSYM SBM_ENABLE_ARROWS}
|
|
SBM_SETSCROLLINFO = $00E9;
|
|
{$EXTERNALSYM SBM_SETSCROLLINFO}
|
|
SBM_GETSCROLLINFO = $00EA;
|
|
{$EXTERNALSYM SBM_GETSCROLLINFO}
|
|
|
|
SBM_GETSCROLLBARINFO = $00EB;
|
|
{$EXTERNALSYM SBM_GETSCROLLBARINFO}
|
|
|
|
SIF_RANGE = $0001;
|
|
{$EXTERNALSYM SIF_RANGE}
|
|
SIF_PAGE = $0002;
|
|
{$EXTERNALSYM SIF_PAGE}
|
|
SIF_POS = $0004;
|
|
{$EXTERNALSYM SIF_POS}
|
|
SIF_DISABLENOSCROLL = $0008;
|
|
{$EXTERNALSYM SIF_DISABLENOSCROLL}
|
|
SIF_TRACKPOS = $0010;
|
|
{$EXTERNALSYM SIF_TRACKPOS}
|
|
SIF_ALL = SIF_RANGE or SIF_PAGE or SIF_POS or SIF_TRACKPOS;
|
|
{$EXTERNALSYM SIF_ALL}
|
|
|
|
type
|
|
LPSCROLLINFO = ^SCROLLINFO;
|
|
{$EXTERNALSYM LPSCROLLINFO}
|
|
tagSCROLLINFO = record
|
|
cbSize: UINT;
|
|
fMask: UINT;
|
|
nMin: Integer;
|
|
nMax: Integer;
|
|
nPage: UINT;
|
|
nPos: Integer;
|
|
nTrackPos: Integer;
|
|
end;
|
|
{$EXTERNALSYM tagSCROLLINFO}
|
|
SCROLLINFO = tagSCROLLINFO;
|
|
{$EXTERNALSYM SCROLLINFO}
|
|
TScrollInfo = SCROLLINFO;
|
|
PScrollInfo = LPSCROLLINFO;
|
|
|
|
function SetScrollInfo(hwnd: HWND; fnBar: Integer; const lpsi: SCROLLINFO;
|
|
fRedraw: BOOL): Integer; stdcall;
|
|
{$EXTERNALSYM SetScrollInfo}
|
|
|
|
function GetScrollInfo(hwnd: HWND; fnBar: Integer; var lpsi: SCROLLINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetScrollInfo}
|
|
|
|
//
|
|
// MDI client style bits
|
|
//
|
|
|
|
const
|
|
MDIS_ALLCHILDSTYLES = $0001;
|
|
{$EXTERNALSYM MDIS_ALLCHILDSTYLES}
|
|
|
|
//
|
|
// wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
|
|
//
|
|
|
|
const
|
|
MDITILE_VERTICAL = $0000; // not in win3.1
|
|
{$EXTERNALSYM MDITILE_VERTICAL}
|
|
MDITILE_HORIZONTAL = $0001; // not in win3.1
|
|
{$EXTERNALSYM MDITILE_HORIZONTAL}
|
|
MDITILE_SKIPDISABLED = $0002; // not in win3.1
|
|
{$EXTERNALSYM MDITILE_SKIPDISABLED}
|
|
MDITILE_ZORDER = $0004;
|
|
{$EXTERNALSYM MDITILE_ZORDER}
|
|
|
|
type
|
|
LPMDICREATESTRUCTA = ^MDICREATESTRUCTA;
|
|
{$EXTERNALSYM LPMDICREATESTRUCTA}
|
|
tagMDICREATESTRUCTA = record
|
|
szClass: LPCSTR;
|
|
szTitle: LPCSTR;
|
|
hOwner: HANDLE;
|
|
x: Integer;
|
|
y: Integer;
|
|
cx: Integer;
|
|
cy: Integer;
|
|
style: DWORD;
|
|
lParam: LPARAM; // app-defined stuff//
|
|
end;
|
|
{$EXTERNALSYM tagMDICREATESTRUCTA}
|
|
MDICREATESTRUCTA = tagMDICREATESTRUCTA;
|
|
{$EXTERNALSYM MDICREATESTRUCTA}
|
|
TMdiCreateStructA = MDICREATESTRUCTA;
|
|
PMdiCreateStructA = LPMDICREATESTRUCTA;
|
|
|
|
LPMDICREATESTRUCTW = ^MDICREATESTRUCTW;
|
|
{$EXTERNALSYM LPMDICREATESTRUCTW}
|
|
tagMDICREATESTRUCTW = record
|
|
szClass: LPCWSTR;
|
|
szTitle: LPCWSTR;
|
|
hOwner: HANDLE;
|
|
x: Integer;
|
|
y: Integer;
|
|
cx: Integer;
|
|
cy: Integer;
|
|
style: DWORD;
|
|
lParam: LPARAM; // app-defined stuff//
|
|
end;
|
|
{$EXTERNALSYM tagMDICREATESTRUCTW}
|
|
MDICREATESTRUCTW = tagMDICREATESTRUCTW;
|
|
{$EXTERNALSYM MDICREATESTRUCTW}
|
|
TMdiCreateStructW = MDICREATESTRUCTW;
|
|
PMdiCreateStructW = LPMDICREATESTRUCTW;
|
|
|
|
{$IFDEF UNICODE}
|
|
MDICREATESTRUCT = MDICREATESTRUCTW;
|
|
{$EXTERNALSYM MDICREATESTRUCT}
|
|
LPMDICREATESTRUCT = LPMDICREATESTRUCTW;
|
|
{$EXTERNALSYM LPMDICREATESTRUCT}
|
|
TMdiCreateStruct = TMdiCreateStructW;
|
|
PMdiCreateStruct = PMdiCreateStructW;
|
|
{$ELSE}
|
|
MDICREATESTRUCT = MDICREATESTRUCTA;
|
|
{$EXTERNALSYM MDICREATESTRUCT}
|
|
LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
|
|
{$EXTERNALSYM LPMDICREATESTRUCT}
|
|
TMdiCreateStruct = TMdiCreateStructA;
|
|
PMdiCreateStruct = PMdiCreateStructA;
|
|
{$ENDIF UNICODE}
|
|
|
|
LPCLIENTCREATESTRUCT = ^CLIENTCREATESTRUCT;
|
|
{$EXTERNALSYM LPCLIENTCREATESTRUCT}
|
|
tagCLIENTCREATESTRUCT = record
|
|
hWindowMenu: HANDLE;
|
|
idFirstChild: UINT;
|
|
end;
|
|
{$EXTERNALSYM tagCLIENTCREATESTRUCT}
|
|
CLIENTCREATESTRUCT = tagCLIENTCREATESTRUCT;
|
|
{$EXTERNALSYM CLIENTCREATESTRUCT}
|
|
TClientCreateStruct = CLIENTCREATESTRUCT;
|
|
PClientCreateStruct = LPCLIENTCREATESTRUCT;
|
|
|
|
function DefFrameProcA(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefFrameProcA}
|
|
function DefFrameProcW(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefFrameProcW}
|
|
function DefFrameProc(hWnd: HWND; hWndMDIClient: HWND; uMsg: UINT;
|
|
wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefFrameProc}
|
|
|
|
function DefMDIChildProcA(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefMDIChildProcA}
|
|
function DefMDIChildProcW(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefMDIChildProcW}
|
|
function DefMDIChildProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefMDIChildProc}
|
|
|
|
function TranslateMDISysAccel(hWndClient: HWND; const lpMsg: MSG): BOOL; stdcall;
|
|
{$EXTERNALSYM TranslateMDISysAccel}
|
|
|
|
function ArrangeIconicWindows(hWnd: HWND): UINT; stdcall;
|
|
{$EXTERNALSYM ArrangeIconicWindows}
|
|
|
|
function CreateMDIWindowA(lpClassName, lpWindowName: LPCSTR; dwStyle: DWORD;
|
|
X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
|
|
lParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateMDIWindowA}
|
|
function CreateMDIWindowW(lpClassName, lpWindowName: LPCWSTR; dwStyle: DWORD;
|
|
X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
|
|
lParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateMDIWindowW}
|
|
function CreateMDIWindow(lpClassName, lpWindowName: LPCTSTR; dwStyle: DWORD;
|
|
X, Y, nWidth, nHeight: Integer; hWndParent: HWND; hInstance: HINST;
|
|
lParam: LPARAM): HWND; stdcall;
|
|
{$EXTERNALSYM CreateMDIWindow}
|
|
|
|
function TileWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT; cKids: UINT;
|
|
hwnd: HWND; lpKids: LPHWND): WORD; stdcall;
|
|
{$EXTERNALSYM TileWindows}
|
|
|
|
function CascadeWindows(hwndParent: HWND; wHow: UINT; lpRect: LPRECT;
|
|
cKids: UINT; lpKids: LPHWND): WORD; stdcall;
|
|
{$EXTERNALSYM CascadeWindows}
|
|
|
|
//***** Help support ********************************************************/
|
|
|
|
type
|
|
HELPPOLY = DWORD;
|
|
{$EXTERNALSYM HELPPOLY}
|
|
|
|
LPMULTIKEYHELPA = ^MULTIKEYHELPA;
|
|
{$EXTERNALSYM LPMULTIKEYHELPA}
|
|
tagMULTIKEYHELPA = record
|
|
mkSize: DWORD;
|
|
mkKeylist: AnsiChar;
|
|
szKeyphrase: array [0..0] of AnsiChar;
|
|
end;
|
|
{$EXTERNALSYM tagMULTIKEYHELPA}
|
|
MULTIKEYHELPA = tagMULTIKEYHELPA;
|
|
{$EXTERNALSYM MULTIKEYHELPA}
|
|
TMultiKeyHelpA = MULTIKEYHELPA;
|
|
PMultiKeyHelpA = LPMULTIKEYHELPA;
|
|
|
|
LPMULTIKEYHELPW = ^MULTIKEYHELPW;
|
|
{$EXTERNALSYM LPMULTIKEYHELPW}
|
|
tagMULTIKEYHELPW = record
|
|
mkSize: DWORD;
|
|
mkKeylist: WCHAR;
|
|
szKeyphrase: array [0..0] of WCHAR;
|
|
end;
|
|
{$EXTERNALSYM tagMULTIKEYHELPW}
|
|
MULTIKEYHELPW = tagMULTIKEYHELPW;
|
|
{$EXTERNALSYM MULTIKEYHELPW}
|
|
TMultiKeyHelpW = MULTIKEYHELPW;
|
|
PMultiKeyHelpW = LPMULTIKEYHELPW;
|
|
|
|
{$IFDEF UNICODE}
|
|
MULTIKEYHELP = MULTIKEYHELPW;
|
|
{$EXTERNALSYM MULTIKEYHELP}
|
|
LPMULTIKEYHELP = LPMULTIKEYHELPW;
|
|
{$EXTERNALSYM LPMULTIKEYHELP}
|
|
TMultiKeyHelp = TMultiKeyHelpW;
|
|
PMultiKeyHelp = PMultiKeyHelpW;
|
|
{$ELSE}
|
|
MULTIKEYHELP = MULTIKEYHELPA;
|
|
{$EXTERNALSYM MULTIKEYHELP}
|
|
LPMULTIKEYHELP = LPMULTIKEYHELPA;
|
|
{$EXTERNALSYM LPMULTIKEYHELP}
|
|
TMultiKeyHelp = TMultiKeyHelpA;
|
|
PMultiKeyHelp = PMultiKeyHelpA;
|
|
{$ENDIF UNICODE}
|
|
|
|
LPHELPWININFOA = ^HELPWININFOA;
|
|
{$EXTERNALSYM LPHELPWININFOA}
|
|
tagHELPWININFOA = record
|
|
wStructSize: Integer;
|
|
x: Integer;
|
|
y: Integer;
|
|
dx: Integer;
|
|
dy: Integer;
|
|
wMax: Integer;
|
|
rgchMember: array [0..1] of AnsiChar;
|
|
end;
|
|
{$EXTERNALSYM tagHELPWININFOA}
|
|
HELPWININFOA = tagHELPWININFOA;
|
|
{$EXTERNALSYM HELPWININFOA}
|
|
THelpWinInfoA = HELPWININFOA;
|
|
PHelpWinInfoA = LPHELPWININFOA;
|
|
|
|
LPHELPWININFOW = ^HELPWININFOW;
|
|
{$EXTERNALSYM LPHELPWININFOW}
|
|
tagHELPWININFOW = record
|
|
wStructSize: Integer;
|
|
x: Integer;
|
|
y: Integer;
|
|
dx: Integer;
|
|
dy: Integer;
|
|
wMax: Integer;
|
|
rgchMember: array [0..1] of WCHAR;
|
|
end;
|
|
{$EXTERNALSYM tagHELPWININFOW}
|
|
HELPWININFOW = tagHELPWININFOW;
|
|
{$EXTERNALSYM HELPWININFOW}
|
|
THelpWinInfoW = HELPWININFOW;
|
|
PHelpWinInfoW = LPHELPWININFOW;
|
|
|
|
{$IFDEF UNICODE}
|
|
HELPWININFO = HELPWININFOW;
|
|
{$EXTERNALSYM HELPWININFO}
|
|
LPHELPWININFO = LPHELPWININFOW;
|
|
{$EXTERNALSYM LPHELPWININFO}
|
|
THelpWinInfo = THelpWinInfoW;
|
|
PHelpWinInfo = PHelpWinInfoW;
|
|
{$ELSE}
|
|
HELPWININFO = HELPWININFOA;
|
|
{$EXTERNALSYM HELPWININFO}
|
|
LPHELPWININFO = LPHELPWININFOA;
|
|
{$EXTERNALSYM LPHELPWININFO}
|
|
THelpWinInfo = THelpWinInfoA;
|
|
PHelpWinInfo = PHelpWinInfoA;
|
|
{$ENDIF UNICODE}
|
|
|
|
//
|
|
// Commands to pass to WinHelp()
|
|
//
|
|
|
|
const
|
|
HELP_CONTEXT = $0001; // Display topic in ulTopic
|
|
{$EXTERNALSYM HELP_CONTEXT}
|
|
HELP_QUIT = $0002; // Terminate help
|
|
{$EXTERNALSYM HELP_QUIT}
|
|
HELP_INDEX = $0003; // Display index
|
|
{$EXTERNALSYM HELP_INDEX}
|
|
HELP_CONTENTS = $0003;
|
|
{$EXTERNALSYM HELP_CONTENTS}
|
|
HELP_HELPONHELP = $0004; // Display help on using help
|
|
{$EXTERNALSYM HELP_HELPONHELP}
|
|
HELP_SETINDEX = $0005; // Set current Index for multi index help
|
|
{$EXTERNALSYM HELP_SETINDEX}
|
|
HELP_SETCONTENTS = $0005;
|
|
{$EXTERNALSYM HELP_SETCONTENTS}
|
|
HELP_CONTEXTPOPUP = $0008;
|
|
{$EXTERNALSYM HELP_CONTEXTPOPUP}
|
|
HELP_FORCEFILE = $0009;
|
|
{$EXTERNALSYM HELP_FORCEFILE}
|
|
HELP_KEY = $0101; // Display topic for keyword in offabData
|
|
{$EXTERNALSYM HELP_KEY}
|
|
HELP_COMMAND = $0102;
|
|
{$EXTERNALSYM HELP_COMMAND}
|
|
HELP_PARTIALKEY = $0105;
|
|
{$EXTERNALSYM HELP_PARTIALKEY}
|
|
HELP_MULTIKEY = $0201;
|
|
{$EXTERNALSYM HELP_MULTIKEY}
|
|
HELP_SETWINPOS = $0203;
|
|
{$EXTERNALSYM HELP_SETWINPOS}
|
|
|
|
HELP_CONTEXTMENU = $000a;
|
|
{$EXTERNALSYM HELP_CONTEXTMENU}
|
|
HELP_FINDER = $000b;
|
|
{$EXTERNALSYM HELP_FINDER}
|
|
HELP_WM_HELP = $000c;
|
|
{$EXTERNALSYM HELP_WM_HELP}
|
|
HELP_SETPOPUP_POS = $000d;
|
|
{$EXTERNALSYM HELP_SETPOPUP_POS}
|
|
|
|
HELP_TCARD = $8000;
|
|
{$EXTERNALSYM HELP_TCARD}
|
|
HELP_TCARD_DATA = $0010;
|
|
{$EXTERNALSYM HELP_TCARD_DATA}
|
|
HELP_TCARD_OTHER_CALLER = $0011;
|
|
{$EXTERNALSYM HELP_TCARD_OTHER_CALLER}
|
|
|
|
// These are in winhelp.h in Win95.
|
|
|
|
IDH_NO_HELP = 28440;
|
|
{$EXTERNALSYM IDH_NO_HELP}
|
|
IDH_MISSING_CONTEXT = 28441; // Control doesn't have matching help context
|
|
{$EXTERNALSYM IDH_MISSING_CONTEXT}
|
|
IDH_GENERIC_HELP_BUTTON = 28442; // Property sheet help button
|
|
{$EXTERNALSYM IDH_GENERIC_HELP_BUTTON}
|
|
IDH_OK = 28443;
|
|
{$EXTERNALSYM IDH_OK}
|
|
IDH_CANCEL = 28444;
|
|
{$EXTERNALSYM IDH_CANCEL}
|
|
IDH_HELP = 28445;
|
|
{$EXTERNALSYM IDH_HELP}
|
|
|
|
function WinHelpA(hWndMain: HWND; lpszHelp: LPCSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM WinHelpA}
|
|
function WinHelpW(hWndMain: HWND; lpszHelp: LPCWSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM WinHelpW}
|
|
function WinHelp(hWndMain: HWND; lpszHelp: LPCTSTR; uCommand: UINT; dwData: ULONG_PTR): BOOL; stdcall;
|
|
{$EXTERNALSYM WinHelp}
|
|
|
|
const
|
|
GR_GDIOBJECTS = 0; // Count of GDI objects
|
|
{$EXTERNALSYM GR_GDIOBJECTS}
|
|
GR_USEROBJECTS = 1; // Count of USER objects
|
|
{$EXTERNALSYM GR_USEROBJECTS}
|
|
|
|
function GetGuiResources(hProcess: HANDLE; uiFlags: DWORD): DWORD; stdcall;
|
|
{$EXTERNALSYM GetGuiResources}
|
|
|
|
//
|
|
// Parameter for SystemParametersInfo()
|
|
//
|
|
|
|
const
|
|
SPI_GETBEEP = 1;
|
|
{$EXTERNALSYM SPI_GETBEEP}
|
|
SPI_SETBEEP = 2;
|
|
{$EXTERNALSYM SPI_SETBEEP}
|
|
SPI_GETMOUSE = 3;
|
|
{$EXTERNALSYM SPI_GETMOUSE}
|
|
SPI_SETMOUSE = 4;
|
|
{$EXTERNALSYM SPI_SETMOUSE}
|
|
SPI_GETBORDER = 5;
|
|
{$EXTERNALSYM SPI_GETBORDER}
|
|
SPI_SETBORDER = 6;
|
|
{$EXTERNALSYM SPI_SETBORDER}
|
|
SPI_GETKEYBOARDSPEED = 10;
|
|
{$EXTERNALSYM SPI_GETKEYBOARDSPEED}
|
|
SPI_SETKEYBOARDSPEED = 11;
|
|
{$EXTERNALSYM SPI_SETKEYBOARDSPEED}
|
|
SPI_LANGDRIVER = 12;
|
|
{$EXTERNALSYM SPI_LANGDRIVER}
|
|
SPI_ICONHORIZONTALSPACING = 13;
|
|
{$EXTERNALSYM SPI_ICONHORIZONTALSPACING}
|
|
SPI_GETSCREENSAVETIMEOUT = 14;
|
|
{$EXTERNALSYM SPI_GETSCREENSAVETIMEOUT}
|
|
SPI_SETSCREENSAVETIMEOUT = 15;
|
|
{$EXTERNALSYM SPI_SETSCREENSAVETIMEOUT}
|
|
SPI_GETSCREENSAVEACTIVE = 16;
|
|
{$EXTERNALSYM SPI_GETSCREENSAVEACTIVE}
|
|
SPI_SETSCREENSAVEACTIVE = 17;
|
|
{$EXTERNALSYM SPI_SETSCREENSAVEACTIVE}
|
|
SPI_GETGRIDGRANULARITY = 18;
|
|
{$EXTERNALSYM SPI_GETGRIDGRANULARITY}
|
|
SPI_SETGRIDGRANULARITY = 19;
|
|
{$EXTERNALSYM SPI_SETGRIDGRANULARITY}
|
|
SPI_SETDESKWALLPAPER = 20;
|
|
{$EXTERNALSYM SPI_SETDESKWALLPAPER}
|
|
SPI_SETDESKPATTERN = 21;
|
|
{$EXTERNALSYM SPI_SETDESKPATTERN}
|
|
SPI_GETKEYBOARDDELAY = 22;
|
|
{$EXTERNALSYM SPI_GETKEYBOARDDELAY}
|
|
SPI_SETKEYBOARDDELAY = 23;
|
|
{$EXTERNALSYM SPI_SETKEYBOARDDELAY}
|
|
SPI_ICONVERTICALSPACING = 24;
|
|
{$EXTERNALSYM SPI_ICONVERTICALSPACING}
|
|
SPI_GETICONTITLEWRAP = 25;
|
|
{$EXTERNALSYM SPI_GETICONTITLEWRAP}
|
|
SPI_SETICONTITLEWRAP = 26;
|
|
{$EXTERNALSYM SPI_SETICONTITLEWRAP}
|
|
SPI_GETMENUDROPALIGNMENT = 27;
|
|
{$EXTERNALSYM SPI_GETMENUDROPALIGNMENT}
|
|
SPI_SETMENUDROPALIGNMENT = 28;
|
|
{$EXTERNALSYM SPI_SETMENUDROPALIGNMENT}
|
|
SPI_SETDOUBLECLKWIDTH = 29;
|
|
{$EXTERNALSYM SPI_SETDOUBLECLKWIDTH}
|
|
SPI_SETDOUBLECLKHEIGHT = 30;
|
|
{$EXTERNALSYM SPI_SETDOUBLECLKHEIGHT}
|
|
SPI_GETICONTITLELOGFONT = 31;
|
|
{$EXTERNALSYM SPI_GETICONTITLELOGFONT}
|
|
SPI_SETDOUBLECLICKTIME = 32;
|
|
{$EXTERNALSYM SPI_SETDOUBLECLICKTIME}
|
|
SPI_SETMOUSEBUTTONSWAP = 33;
|
|
{$EXTERNALSYM SPI_SETMOUSEBUTTONSWAP}
|
|
SPI_SETICONTITLELOGFONT = 34;
|
|
{$EXTERNALSYM SPI_SETICONTITLELOGFONT}
|
|
SPI_GETFASTTASKSWITCH = 35;
|
|
{$EXTERNALSYM SPI_GETFASTTASKSWITCH}
|
|
SPI_SETFASTTASKSWITCH = 36;
|
|
{$EXTERNALSYM SPI_SETFASTTASKSWITCH}
|
|
SPI_SETDRAGFULLWINDOWS = 37;
|
|
{$EXTERNALSYM SPI_SETDRAGFULLWINDOWS}
|
|
SPI_GETDRAGFULLWINDOWS = 38;
|
|
{$EXTERNALSYM SPI_GETDRAGFULLWINDOWS}
|
|
SPI_GETNONCLIENTMETRICS = 41;
|
|
{$EXTERNALSYM SPI_GETNONCLIENTMETRICS}
|
|
SPI_SETNONCLIENTMETRICS = 42;
|
|
{$EXTERNALSYM SPI_SETNONCLIENTMETRICS}
|
|
SPI_GETMINIMIZEDMETRICS = 43;
|
|
{$EXTERNALSYM SPI_GETMINIMIZEDMETRICS}
|
|
SPI_SETMINIMIZEDMETRICS = 44;
|
|
{$EXTERNALSYM SPI_SETMINIMIZEDMETRICS}
|
|
SPI_GETICONMETRICS = 45;
|
|
{$EXTERNALSYM SPI_GETICONMETRICS}
|
|
SPI_SETICONMETRICS = 46;
|
|
{$EXTERNALSYM SPI_SETICONMETRICS}
|
|
SPI_SETWORKAREA = 47;
|
|
{$EXTERNALSYM SPI_SETWORKAREA}
|
|
SPI_GETWORKAREA = 48;
|
|
{$EXTERNALSYM SPI_GETWORKAREA}
|
|
SPI_SETPENWINDOWS = 49;
|
|
{$EXTERNALSYM SPI_SETPENWINDOWS}
|
|
|
|
SPI_GETHIGHCONTRAST = 66;
|
|
{$EXTERNALSYM SPI_GETHIGHCONTRAST}
|
|
SPI_SETHIGHCONTRAST = 67;
|
|
{$EXTERNALSYM SPI_SETHIGHCONTRAST}
|
|
SPI_GETKEYBOARDPREF = 68;
|
|
{$EXTERNALSYM SPI_GETKEYBOARDPREF}
|
|
SPI_SETKEYBOARDPREF = 69;
|
|
{$EXTERNALSYM SPI_SETKEYBOARDPREF}
|
|
SPI_GETSCREENREADER = 70;
|
|
{$EXTERNALSYM SPI_GETSCREENREADER}
|
|
SPI_SETSCREENREADER = 71;
|
|
{$EXTERNALSYM SPI_SETSCREENREADER}
|
|
SPI_GETANIMATION = 72;
|
|
{$EXTERNALSYM SPI_GETANIMATION}
|
|
SPI_SETANIMATION = 73;
|
|
{$EXTERNALSYM SPI_SETANIMATION}
|
|
SPI_GETFONTSMOOTHING = 74;
|
|
{$EXTERNALSYM SPI_GETFONTSMOOTHING}
|
|
SPI_SETFONTSMOOTHING = 75;
|
|
{$EXTERNALSYM SPI_SETFONTSMOOTHING}
|
|
SPI_SETDRAGWIDTH = 76;
|
|
{$EXTERNALSYM SPI_SETDRAGWIDTH}
|
|
SPI_SETDRAGHEIGHT = 77;
|
|
{$EXTERNALSYM SPI_SETDRAGHEIGHT}
|
|
SPI_SETHANDHELD = 78;
|
|
{$EXTERNALSYM SPI_SETHANDHELD}
|
|
SPI_GETLOWPOWERTIMEOUT = 79;
|
|
{$EXTERNALSYM SPI_GETLOWPOWERTIMEOUT}
|
|
SPI_GETPOWEROFFTIMEOUT = 80;
|
|
{$EXTERNALSYM SPI_GETPOWEROFFTIMEOUT}
|
|
SPI_SETLOWPOWERTIMEOUT = 81;
|
|
{$EXTERNALSYM SPI_SETLOWPOWERTIMEOUT}
|
|
SPI_SETPOWEROFFTIMEOUT = 82;
|
|
{$EXTERNALSYM SPI_SETPOWEROFFTIMEOUT}
|
|
SPI_GETLOWPOWERACTIVE = 83;
|
|
{$EXTERNALSYM SPI_GETLOWPOWERACTIVE}
|
|
SPI_GETPOWEROFFACTIVE = 84;
|
|
{$EXTERNALSYM SPI_GETPOWEROFFACTIVE}
|
|
SPI_SETLOWPOWERACTIVE = 85;
|
|
{$EXTERNALSYM SPI_SETLOWPOWERACTIVE}
|
|
SPI_SETPOWEROFFACTIVE = 86;
|
|
{$EXTERNALSYM SPI_SETPOWEROFFACTIVE}
|
|
SPI_SETCURSORS = 87;
|
|
{$EXTERNALSYM SPI_SETCURSORS}
|
|
SPI_SETICONS = 88;
|
|
{$EXTERNALSYM SPI_SETICONS}
|
|
SPI_GETDEFAULTINPUTLANG = 89;
|
|
{$EXTERNALSYM SPI_GETDEFAULTINPUTLANG}
|
|
SPI_SETDEFAULTINPUTLANG = 90;
|
|
{$EXTERNALSYM SPI_SETDEFAULTINPUTLANG}
|
|
SPI_SETLANGTOGGLE = 91;
|
|
{$EXTERNALSYM SPI_SETLANGTOGGLE}
|
|
SPI_GETWINDOWSEXTENSION = 92;
|
|
{$EXTERNALSYM SPI_GETWINDOWSEXTENSION}
|
|
SPI_SETMOUSETRAILS = 93;
|
|
{$EXTERNALSYM SPI_SETMOUSETRAILS}
|
|
SPI_GETMOUSETRAILS = 94;
|
|
{$EXTERNALSYM SPI_GETMOUSETRAILS}
|
|
SPI_SETSCREENSAVERRUNNING = 97;
|
|
{$EXTERNALSYM SPI_SETSCREENSAVERRUNNING}
|
|
SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING;
|
|
{$EXTERNALSYM SPI_SCREENSAVERRUNNING}
|
|
SPI_GETFILTERKEYS = 50;
|
|
{$EXTERNALSYM SPI_GETFILTERKEYS}
|
|
SPI_SETFILTERKEYS = 51;
|
|
{$EXTERNALSYM SPI_SETFILTERKEYS}
|
|
SPI_GETTOGGLEKEYS = 52;
|
|
{$EXTERNALSYM SPI_GETTOGGLEKEYS}
|
|
SPI_SETTOGGLEKEYS = 53;
|
|
{$EXTERNALSYM SPI_SETTOGGLEKEYS}
|
|
SPI_GETMOUSEKEYS = 54;
|
|
{$EXTERNALSYM SPI_GETMOUSEKEYS}
|
|
SPI_SETMOUSEKEYS = 55;
|
|
{$EXTERNALSYM SPI_SETMOUSEKEYS}
|
|
SPI_GETSHOWSOUNDS = 56;
|
|
{$EXTERNALSYM SPI_GETSHOWSOUNDS}
|
|
SPI_SETSHOWSOUNDS = 57;
|
|
{$EXTERNALSYM SPI_SETSHOWSOUNDS}
|
|
SPI_GETSTICKYKEYS = 58;
|
|
{$EXTERNALSYM SPI_GETSTICKYKEYS}
|
|
SPI_SETSTICKYKEYS = 59;
|
|
{$EXTERNALSYM SPI_SETSTICKYKEYS}
|
|
SPI_GETACCESSTIMEOUT = 60;
|
|
{$EXTERNALSYM SPI_GETACCESSTIMEOUT}
|
|
SPI_SETACCESSTIMEOUT = 61;
|
|
{$EXTERNALSYM SPI_SETACCESSTIMEOUT}
|
|
SPI_GETSERIALKEYS = 62;
|
|
{$EXTERNALSYM SPI_GETSERIALKEYS}
|
|
SPI_SETSERIALKEYS = 63;
|
|
{$EXTERNALSYM SPI_SETSERIALKEYS}
|
|
SPI_GETSOUNDSENTRY = 64;
|
|
{$EXTERNALSYM SPI_GETSOUNDSENTRY}
|
|
SPI_SETSOUNDSENTRY = 65;
|
|
{$EXTERNALSYM SPI_SETSOUNDSENTRY}
|
|
SPI_GETSNAPTODEFBUTTON = 95;
|
|
{$EXTERNALSYM SPI_GETSNAPTODEFBUTTON}
|
|
SPI_SETSNAPTODEFBUTTON = 96;
|
|
{$EXTERNALSYM SPI_SETSNAPTODEFBUTTON}
|
|
SPI_GETMOUSEHOVERWIDTH = 98;
|
|
{$EXTERNALSYM SPI_GETMOUSEHOVERWIDTH}
|
|
SPI_SETMOUSEHOVERWIDTH = 99;
|
|
{$EXTERNALSYM SPI_SETMOUSEHOVERWIDTH}
|
|
SPI_GETMOUSEHOVERHEIGHT = 100;
|
|
{$EXTERNALSYM SPI_GETMOUSEHOVERHEIGHT}
|
|
SPI_SETMOUSEHOVERHEIGHT = 101;
|
|
{$EXTERNALSYM SPI_SETMOUSEHOVERHEIGHT}
|
|
SPI_GETMOUSEHOVERTIME = 102;
|
|
{$EXTERNALSYM SPI_GETMOUSEHOVERTIME}
|
|
SPI_SETMOUSEHOVERTIME = 103;
|
|
{$EXTERNALSYM SPI_SETMOUSEHOVERTIME}
|
|
SPI_GETWHEELSCROLLLINES = 104;
|
|
{$EXTERNALSYM SPI_GETWHEELSCROLLLINES}
|
|
SPI_SETWHEELSCROLLLINES = 105;
|
|
{$EXTERNALSYM SPI_SETWHEELSCROLLLINES}
|
|
SPI_GETMENUSHOWDELAY = 106;
|
|
{$EXTERNALSYM SPI_GETMENUSHOWDELAY}
|
|
SPI_SETMENUSHOWDELAY = 107;
|
|
{$EXTERNALSYM SPI_SETMENUSHOWDELAY}
|
|
|
|
SPI_GETSHOWIMEUI = 110;
|
|
{$EXTERNALSYM SPI_GETSHOWIMEUI}
|
|
SPI_SETSHOWIMEUI = 111;
|
|
{$EXTERNALSYM SPI_SETSHOWIMEUI}
|
|
|
|
SPI_GETMOUSESPEED = 112;
|
|
{$EXTERNALSYM SPI_GETMOUSESPEED}
|
|
SPI_SETMOUSESPEED = 113;
|
|
{$EXTERNALSYM SPI_SETMOUSESPEED}
|
|
SPI_GETSCREENSAVERRUNNING = 114;
|
|
{$EXTERNALSYM SPI_GETSCREENSAVERRUNNING}
|
|
SPI_GETDESKWALLPAPER = 115;
|
|
{$EXTERNALSYM SPI_GETDESKWALLPAPER}
|
|
|
|
SPI_GETACTIVEWINDOWTRACKING = $1000;
|
|
{$EXTERNALSYM SPI_GETACTIVEWINDOWTRACKING}
|
|
SPI_SETACTIVEWINDOWTRACKING = $1001;
|
|
{$EXTERNALSYM SPI_SETACTIVEWINDOWTRACKING}
|
|
SPI_GETMENUANIMATION = $1002;
|
|
{$EXTERNALSYM SPI_GETMENUANIMATION}
|
|
SPI_SETMENUANIMATION = $1003;
|
|
{$EXTERNALSYM SPI_SETMENUANIMATION}
|
|
SPI_GETCOMBOBOXANIMATION = $1004;
|
|
{$EXTERNALSYM SPI_GETCOMBOBOXANIMATION}
|
|
SPI_SETCOMBOBOXANIMATION = $1005;
|
|
{$EXTERNALSYM SPI_SETCOMBOBOXANIMATION}
|
|
SPI_GETLISTBOXSMOOTHSCROLLING = $1006;
|
|
{$EXTERNALSYM SPI_GETLISTBOXSMOOTHSCROLLING}
|
|
SPI_SETLISTBOXSMOOTHSCROLLING = $1007;
|
|
{$EXTERNALSYM SPI_SETLISTBOXSMOOTHSCROLLING}
|
|
SPI_GETGRADIENTCAPTIONS = $1008;
|
|
{$EXTERNALSYM SPI_GETGRADIENTCAPTIONS}
|
|
SPI_SETGRADIENTCAPTIONS = $1009;
|
|
{$EXTERNALSYM SPI_SETGRADIENTCAPTIONS}
|
|
SPI_GETKEYBOARDCUES = $100A;
|
|
{$EXTERNALSYM SPI_GETKEYBOARDCUES}
|
|
SPI_SETKEYBOARDCUES = $100B;
|
|
{$EXTERNALSYM SPI_SETKEYBOARDCUES}
|
|
SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES;
|
|
{$EXTERNALSYM SPI_GETMENUUNDERLINES}
|
|
SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES;
|
|
{$EXTERNALSYM SPI_SETMENUUNDERLINES}
|
|
SPI_GETACTIVEWNDTRKZORDER = $100C;
|
|
{$EXTERNALSYM SPI_GETACTIVEWNDTRKZORDER}
|
|
SPI_SETACTIVEWNDTRKZORDER = $100D;
|
|
{$EXTERNALSYM SPI_SETACTIVEWNDTRKZORDER}
|
|
SPI_GETHOTTRACKING = $100E;
|
|
{$EXTERNALSYM SPI_GETHOTTRACKING}
|
|
SPI_SETHOTTRACKING = $100F;
|
|
{$EXTERNALSYM SPI_SETHOTTRACKING}
|
|
SPI_GETMENUFADE = $1012;
|
|
{$EXTERNALSYM SPI_GETMENUFADE}
|
|
SPI_SETMENUFADE = $1013;
|
|
{$EXTERNALSYM SPI_SETMENUFADE}
|
|
SPI_GETSELECTIONFADE = $1014;
|
|
{$EXTERNALSYM SPI_GETSELECTIONFADE}
|
|
SPI_SETSELECTIONFADE = $1015;
|
|
{$EXTERNALSYM SPI_SETSELECTIONFADE}
|
|
SPI_GETTOOLTIPANIMATION = $1016;
|
|
{$EXTERNALSYM SPI_GETTOOLTIPANIMATION}
|
|
SPI_SETTOOLTIPANIMATION = $1017;
|
|
{$EXTERNALSYM SPI_SETTOOLTIPANIMATION}
|
|
SPI_GETTOOLTIPFADE = $1018;
|
|
{$EXTERNALSYM SPI_GETTOOLTIPFADE}
|
|
SPI_SETTOOLTIPFADE = $1019;
|
|
{$EXTERNALSYM SPI_SETTOOLTIPFADE}
|
|
SPI_GETCURSORSHADOW = $101A;
|
|
{$EXTERNALSYM SPI_GETCURSORSHADOW}
|
|
SPI_SETCURSORSHADOW = $101B;
|
|
{$EXTERNALSYM SPI_SETCURSORSHADOW}
|
|
|
|
SPI_GETMOUSESONAR = $101C;
|
|
{$EXTERNALSYM SPI_GETMOUSESONAR}
|
|
SPI_SETMOUSESONAR = $101D;
|
|
{$EXTERNALSYM SPI_SETMOUSESONAR}
|
|
SPI_GETMOUSECLICKLOCK = $101E;
|
|
{$EXTERNALSYM SPI_GETMOUSECLICKLOCK}
|
|
SPI_SETMOUSECLICKLOCK = $101F;
|
|
{$EXTERNALSYM SPI_SETMOUSECLICKLOCK}
|
|
SPI_GETMOUSEVANISH = $1020;
|
|
{$EXTERNALSYM SPI_GETMOUSEVANISH}
|
|
SPI_SETMOUSEVANISH = $1021;
|
|
{$EXTERNALSYM SPI_SETMOUSEVANISH}
|
|
SPI_GETFLATMENU = $1022;
|
|
{$EXTERNALSYM SPI_GETFLATMENU}
|
|
SPI_SETFLATMENU = $1023;
|
|
{$EXTERNALSYM SPI_SETFLATMENU}
|
|
SPI_GETDROPSHADOW = $1024;
|
|
{$EXTERNALSYM SPI_GETDROPSHADOW}
|
|
SPI_SETDROPSHADOW = $1025;
|
|
{$EXTERNALSYM SPI_SETDROPSHADOW}
|
|
SPI_GETBLOCKSENDINPUTRESETS = $1026;
|
|
{$EXTERNALSYM SPI_GETBLOCKSENDINPUTRESETS}
|
|
SPI_SETBLOCKSENDINPUTRESETS = $1027;
|
|
{$EXTERNALSYM SPI_SETBLOCKSENDINPUTRESETS}
|
|
|
|
SPI_GETUIEFFECTS = $103E;
|
|
{$EXTERNALSYM SPI_GETUIEFFECTS}
|
|
SPI_SETUIEFFECTS = $103F;
|
|
{$EXTERNALSYM SPI_SETUIEFFECTS}
|
|
|
|
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
|
|
{$EXTERNALSYM SPI_GETFOREGROUNDLOCKTIMEOUT}
|
|
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
|
|
{$EXTERNALSYM SPI_SETFOREGROUNDLOCKTIMEOUT}
|
|
SPI_GETACTIVEWNDTRKTIMEOUT = $2002;
|
|
{$EXTERNALSYM SPI_GETACTIVEWNDTRKTIMEOUT}
|
|
SPI_SETACTIVEWNDTRKTIMEOUT = $2003;
|
|
{$EXTERNALSYM SPI_SETACTIVEWNDTRKTIMEOUT}
|
|
SPI_GETFOREGROUNDFLASHCOUNT = $2004;
|
|
{$EXTERNALSYM SPI_GETFOREGROUNDFLASHCOUNT}
|
|
SPI_SETFOREGROUNDFLASHCOUNT = $2005;
|
|
{$EXTERNALSYM SPI_SETFOREGROUNDFLASHCOUNT}
|
|
SPI_GETCARETWIDTH = $2006;
|
|
{$EXTERNALSYM SPI_GETCARETWIDTH}
|
|
SPI_SETCARETWIDTH = $2007;
|
|
{$EXTERNALSYM SPI_SETCARETWIDTH}
|
|
|
|
SPI_GETMOUSECLICKLOCKTIME = $2008;
|
|
{$EXTERNALSYM SPI_GETMOUSECLICKLOCKTIME}
|
|
SPI_SETMOUSECLICKLOCKTIME = $2009;
|
|
{$EXTERNALSYM SPI_SETMOUSECLICKLOCKTIME}
|
|
SPI_GETFONTSMOOTHINGTYPE = $200A;
|
|
{$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
|
|
SPI_SETFONTSMOOTHINGTYPE = $200B;
|
|
{$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
|
|
|
|
// constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE
|
|
|
|
FE_FONTSMOOTHINGSTANDARD = $0001;
|
|
{$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
|
|
FE_FONTSMOOTHINGCLEARTYPE = $0002;
|
|
{$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
|
|
FE_FONTSMOOTHINGDOCKING = $8000;
|
|
{$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
|
|
|
|
SPI_GETFONTSMOOTHINGCONTRAST = $200C;
|
|
{$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
|
|
SPI_SETFONTSMOOTHINGCONTRAST = $200D;
|
|
{$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
|
|
|
|
SPI_GETFOCUSBORDERWIDTH = $200E;
|
|
{$EXTERNALSYM SPI_GETFOCUSBORDERWIDTH}
|
|
SPI_SETFOCUSBORDERWIDTH = $200F;
|
|
{$EXTERNALSYM SPI_SETFOCUSBORDERWIDTH}
|
|
SPI_GETFOCUSBORDERHEIGHT = $2010;
|
|
{$EXTERNALSYM SPI_GETFOCUSBORDERHEIGHT}
|
|
SPI_SETFOCUSBORDERHEIGHT = $2011;
|
|
{$EXTERNALSYM SPI_SETFOCUSBORDERHEIGHT}
|
|
|
|
SPI_GETFONTSMOOTHINGORIENTATION = $2012;
|
|
{$EXTERNALSYM SPI_GETFONTSMOOTHINGORIENTATION}
|
|
SPI_SETFONTSMOOTHINGORIENTATION = $2013;
|
|
{$EXTERNALSYM SPI_SETFONTSMOOTHINGORIENTATION}
|
|
|
|
// constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION:
|
|
|
|
FE_FONTSMOOTHINGORIENTATIONBGR = $0000;
|
|
{$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONBGR}
|
|
FE_FONTSMOOTHINGORIENTATIONRGB = $0001;
|
|
{$EXTERNALSYM FE_FONTSMOOTHINGORIENTATIONRGB}
|
|
|
|
//
|
|
// Flags
|
|
//
|
|
|
|
SPIF_UPDATEINIFILE = $0001;
|
|
{$EXTERNALSYM SPIF_UPDATEINIFILE}
|
|
SPIF_SENDWININICHANGE = $0002;
|
|
{$EXTERNALSYM SPIF_SENDWININICHANGE}
|
|
SPIF_SENDCHANGE = SPIF_SENDWININICHANGE;
|
|
{$EXTERNALSYM SPIF_SENDCHANGE}
|
|
|
|
METRICS_USEDEFAULT = DWORD(-1);
|
|
{$EXTERNALSYM METRICS_USEDEFAULT}
|
|
|
|
type
|
|
LPNONCLIENTMETRICSA = ^NONCLIENTMETRICSA;
|
|
{$EXTERNALSYM LPNONCLIENTMETRICSA}
|
|
tagNONCLIENTMETRICSA = record
|
|
cbSize: UINT;
|
|
iBorderWidth: Integer;
|
|
iScrollWidth: Integer;
|
|
iScrollHeight: Integer;
|
|
iCaptionWidth: Integer;
|
|
iCaptionHeight: Integer;
|
|
lfCaptionFont: LOGFONTA;
|
|
iSmCaptionWidth: Integer;
|
|
iSmCaptionHeight: Integer;
|
|
lfSmCaptionFont: LOGFONTA;
|
|
iMenuWidth: Integer;
|
|
iMenuHeight: Integer;
|
|
lfMenuFont: LOGFONTA;
|
|
lfStatusFont: LOGFONTA;
|
|
lfMessageFont: LOGFONTA;
|
|
end;
|
|
{$EXTERNALSYM tagNONCLIENTMETRICSA}
|
|
NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
|
|
{$EXTERNALSYM NONCLIENTMETRICSA}
|
|
TNonClientMetricsA = NONCLIENTMETRICSA;
|
|
PNonClientMetricsA = LPNONCLIENTMETRICSA;
|
|
|
|
LPNONCLIENTMETRICSW = ^NONCLIENTMETRICSW;
|
|
{$EXTERNALSYM LPNONCLIENTMETRICSW}
|
|
tagNONCLIENTMETRICSW = record
|
|
cbSize: UINT;
|
|
iBorderWidth: Integer;
|
|
iScrollWidth: Integer;
|
|
iScrollHeight: Integer;
|
|
iCaptionWidth: Integer;
|
|
iCaptionHeight: Integer;
|
|
lfCaptionFont: LOGFONTW;
|
|
iSmCaptionWidth: Integer;
|
|
iSmCaptionHeight: Integer;
|
|
lfSmCaptionFont: LOGFONTW;
|
|
iMenuWidth: Integer;
|
|
iMenuHeight: Integer;
|
|
lfMenuFont: LOGFONTW;
|
|
lfStatusFont: LOGFONTW;
|
|
lfMessageFont: LOGFONTW;
|
|
end;
|
|
{$EXTERNALSYM tagNONCLIENTMETRICSW}
|
|
NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
|
|
{$EXTERNALSYM NONCLIENTMETRICSW}
|
|
TNonClientMetricsW = NONCLIENTMETRICSW;
|
|
PNonClientMetricsW = LPNONCLIENTMETRICSW;
|
|
|
|
{$IFDEF UNICODE}
|
|
NONCLIENTMETRICS = NONCLIENTMETRICSW;
|
|
{$EXTERNALSYM NONCLIENTMETRICS}
|
|
LPNONCLIENTMETRICS = LPNONCLIENTMETRICSW;
|
|
{$EXTERNALSYM LPNONCLIENTMETRICS}
|
|
TNonClientMetrics = TNonClientMetricsW;
|
|
PNonClientMetrics = PNonClientMetricsW;
|
|
{$ELSE}
|
|
NONCLIENTMETRICS = NONCLIENTMETRICSA;
|
|
{$EXTERNALSYM NONCLIENTMETRICS}
|
|
LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
|
|
{$EXTERNALSYM LPNONCLIENTMETRICS}
|
|
TNonClientMetrics = TNonClientMetricsA;
|
|
PNonClientMetrics = PNonClientMetricsA;
|
|
{$ENDIF UNICODE}
|
|
|
|
const
|
|
ARW_BOTTOMLEFT = $0000;
|
|
{$EXTERNALSYM ARW_BOTTOMLEFT}
|
|
ARW_BOTTOMRIGHT = $0001;
|
|
{$EXTERNALSYM ARW_BOTTOMRIGHT}
|
|
ARW_TOPLEFT = $0002;
|
|
{$EXTERNALSYM ARW_TOPLEFT}
|
|
ARW_TOPRIGHT = $0003;
|
|
{$EXTERNALSYM ARW_TOPRIGHT}
|
|
ARW_STARTMASK = $0003;
|
|
{$EXTERNALSYM ARW_STARTMASK}
|
|
ARW_STARTRIGHT = $0001;
|
|
{$EXTERNALSYM ARW_STARTRIGHT}
|
|
ARW_STARTTOP = $0002;
|
|
{$EXTERNALSYM ARW_STARTTOP}
|
|
|
|
ARW_LEFT = $0000;
|
|
{$EXTERNALSYM ARW_LEFT}
|
|
ARW_RIGHT = $0000;
|
|
{$EXTERNALSYM ARW_RIGHT}
|
|
ARW_UP = $0004;
|
|
{$EXTERNALSYM ARW_UP}
|
|
ARW_DOWN = $0004;
|
|
{$EXTERNALSYM ARW_DOWN}
|
|
ARW_HIDE = $0008;
|
|
{$EXTERNALSYM ARW_HIDE}
|
|
|
|
type
|
|
LPMINIMIZEDMETRICS = ^MINIMIZEDMETRICS;
|
|
{$EXTERNALSYM LPMINIMIZEDMETRICS}
|
|
tagMINIMIZEDMETRICS = record
|
|
cbSize: UINT;
|
|
iWidth: Integer;
|
|
iHorzGap: Integer;
|
|
iVertGap: Integer;
|
|
iArrange: Integer;
|
|
end;
|
|
{$EXTERNALSYM tagMINIMIZEDMETRICS}
|
|
MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
|
|
{$EXTERNALSYM MINIMIZEDMETRICS}
|
|
TMinimizedMetrics = MINIMIZEDMETRICS;
|
|
PMinimizedMetrics = LPMINIMIZEDMETRICS;
|
|
|
|
LPICONMETRICSA = ^ICONMETRICSA;
|
|
{$EXTERNALSYM LPICONMETRICSA}
|
|
tagICONMETRICSA = record
|
|
cbSize: UINT;
|
|
iHorzSpacing: Integer;
|
|
iVertSpacing: Integer;
|
|
iTitleWrap: Integer;
|
|
lfFont: LOGFONTA;
|
|
end;
|
|
{$EXTERNALSYM tagICONMETRICSA}
|
|
ICONMETRICSA = tagICONMETRICSA;
|
|
{$EXTERNALSYM ICONMETRICSA}
|
|
TIconMetricsA = ICONMETRICSA;
|
|
PIconMetricsA = LPICONMETRICSA;
|
|
|
|
LPICONMETRICSW = ^ICONMETRICSW;
|
|
{$EXTERNALSYM LPICONMETRICSW}
|
|
tagICONMETRICSW = record
|
|
cbSize: UINT;
|
|
iHorzSpacing: Integer;
|
|
iVertSpacing: Integer;
|
|
iTitleWrap: Integer;
|
|
lfFont: LOGFONTW;
|
|
end;
|
|
{$EXTERNALSYM tagICONMETRICSW}
|
|
ICONMETRICSW = tagICONMETRICSW;
|
|
{$EXTERNALSYM ICONMETRICSW}
|
|
TIconMetricsW = ICONMETRICSW;
|
|
PIconMetricsW = LPICONMETRICSW;
|
|
|
|
{$IFDEF UNICODE}
|
|
ICONMETRICS = ICONMETRICSW;
|
|
{$EXTERNALSYM ICONMETRICS}
|
|
LPICONMETRICS = LPICONMETRICSW;
|
|
{$EXTERNALSYM LPICONMETRICS}
|
|
TIconMetrics = TIconMetricsW;
|
|
PIconMetrics = PIconMetricsW;
|
|
{$ELSE}
|
|
ICONMETRICS = ICONMETRICSA;
|
|
{$EXTERNALSYM ICONMETRICS}
|
|
LPICONMETRICS = LPICONMETRICSA;
|
|
{$EXTERNALSYM LPICONMETRICS}
|
|
TIconMetrics = TIconMetricsA;
|
|
PIconMetrics = PIconMetricsA;
|
|
{$ENDIF UNICODE}
|
|
|
|
LPANIMATIONINFO = ^ANIMATIONINFO;
|
|
{$EXTERNALSYM LPANIMATIONINFO}
|
|
tagANIMATIONINFO = record
|
|
cbSize: UINT;
|
|
iMinAnimate: Integer;
|
|
end;
|
|
{$EXTERNALSYM tagANIMATIONINFO}
|
|
ANIMATIONINFO = tagANIMATIONINFO;
|
|
{$EXTERNALSYM ANIMATIONINFO}
|
|
TAnimationInfo = ANIMATIONINFO;
|
|
PAnimationInfo = LPANIMATIONINFO;
|
|
|
|
LPSERIALKEYSA = ^SERIALKEYSA;
|
|
{$EXTERNALSYM LPSERIALKEYSA}
|
|
tagSERIALKEYSA = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
lpszActivePort: LPSTR;
|
|
lpszPort: LPSTR;
|
|
iBaudRate: UINT;
|
|
iPortState: UINT;
|
|
iActive: UINT;
|
|
end;
|
|
{$EXTERNALSYM tagSERIALKEYSA}
|
|
SERIALKEYSA = tagSERIALKEYSA;
|
|
{$EXTERNALSYM SERIALKEYSA}
|
|
TSerialKeysA = SERIALKEYSA;
|
|
PSerialKeysA = LPSERIALKEYSA;
|
|
|
|
LPSERIALKEYSW = ^SERIALKEYSW;
|
|
{$EXTERNALSYM LPSERIALKEYSW}
|
|
tagSERIALKEYSW = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
lpszActivePort: LPWSTR;
|
|
lpszPort: LPWSTR;
|
|
iBaudRate: UINT;
|
|
iPortState: UINT;
|
|
iActive: UINT;
|
|
end;
|
|
{$EXTERNALSYM tagSERIALKEYSW}
|
|
SERIALKEYSW = tagSERIALKEYSW;
|
|
{$EXTERNALSYM SERIALKEYSW}
|
|
TSerialKeysW = SERIALKEYSW;
|
|
PSerialKeysW = LPSERIALKEYSW;
|
|
|
|
{$IFDEF UNICODE}
|
|
SERIALKEYS = SERIALKEYSW;
|
|
{$EXTERNALSYM SERIALKEYS}
|
|
LPSERIALKEYS = LPSERIALKEYSW;
|
|
{$EXTERNALSYM LPSERIALKEYS}
|
|
TSerialKeys = TSerialKeysW;
|
|
PSerialKeys = PSerialKeysW;
|
|
{$ELSE}
|
|
SERIALKEYS = SERIALKEYSA;
|
|
{$EXTERNALSYM SERIALKEYS}
|
|
LPSERIALKEYS = LPSERIALKEYSA;
|
|
{$EXTERNALSYM LPSERIALKEYS}
|
|
TSerialKeys = TSerialKeysA;
|
|
PSerialKeys = PSerialKeysA;
|
|
{$ENDIF UNICODE}
|
|
|
|
// flags for SERIALKEYS dwFlags field//
|
|
|
|
const
|
|
SERKF_SERIALKEYSON = $00000001;
|
|
{$EXTERNALSYM SERKF_SERIALKEYSON}
|
|
SERKF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM SERKF_AVAILABLE}
|
|
SERKF_INDICATOR = $00000004;
|
|
{$EXTERNALSYM SERKF_INDICATOR}
|
|
|
|
type
|
|
LPHIGHCONTRASTA = ^HIGHCONTRASTA;
|
|
{$EXTERNALSYM LPHIGHCONTRASTA}
|
|
tagHIGHCONTRASTA = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
lpszDefaultScheme: LPSTR;
|
|
end;
|
|
{$EXTERNALSYM tagHIGHCONTRASTA}
|
|
HIGHCONTRASTA = tagHIGHCONTRASTA;
|
|
{$EXTERNALSYM HIGHCONTRASTA}
|
|
THighContrastA = HIGHCONTRASTA;
|
|
PHighContrastA = LPHIGHCONTRASTA;
|
|
|
|
LPHIGHCONTRASTW = ^HIGHCONTRASTW;
|
|
{$EXTERNALSYM LPHIGHCONTRASTW}
|
|
tagHIGHCONTRASTW = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
lpszDefaultScheme: LPWSTR;
|
|
end;
|
|
{$EXTERNALSYM tagHIGHCONTRASTW}
|
|
HIGHCONTRASTW = tagHIGHCONTRASTW;
|
|
{$EXTERNALSYM HIGHCONTRASTW}
|
|
THighContrastW = HIGHCONTRASTW;
|
|
PHighContrastW = LPHIGHCONTRASTW;
|
|
|
|
{$IFDEF UNICODE}
|
|
HIGHCONTRAST = HIGHCONTRASTW;
|
|
{$EXTERNALSYM HIGHCONTRAST}
|
|
LPHIGHCONTRAST = LPHIGHCONTRASTW;
|
|
{$EXTERNALSYM LPHIGHCONTRAST}
|
|
THighContrast = THighContrastW;
|
|
PHighContrast = PHighContrastW;
|
|
{$ELSE}
|
|
HIGHCONTRAST = HIGHCONTRASTA;
|
|
{$EXTERNALSYM HIGHCONTRAST}
|
|
LPHIGHCONTRAST = LPHIGHCONTRASTA;
|
|
{$EXTERNALSYM LPHIGHCONTRAST}
|
|
THighContrast = THighContrastA;
|
|
PHighContrast = PHighContrastA;
|
|
{$ENDIF UNICODE}
|
|
|
|
// flags for HIGHCONTRAST dwFlags field//
|
|
|
|
const
|
|
HCF_HIGHCONTRASTON = $00000001;
|
|
{$EXTERNALSYM HCF_HIGHCONTRASTON}
|
|
HCF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM HCF_AVAILABLE}
|
|
HCF_HOTKEYACTIVE = $00000004;
|
|
{$EXTERNALSYM HCF_HOTKEYACTIVE}
|
|
HCF_CONFIRMHOTKEY = $00000008;
|
|
{$EXTERNALSYM HCF_CONFIRMHOTKEY}
|
|
HCF_HOTKEYSOUND = $00000010;
|
|
{$EXTERNALSYM HCF_HOTKEYSOUND}
|
|
HCF_INDICATOR = $00000020;
|
|
{$EXTERNALSYM HCF_INDICATOR}
|
|
HCF_HOTKEYAVAILABLE = $00000040;
|
|
{$EXTERNALSYM HCF_HOTKEYAVAILABLE}
|
|
|
|
// Flags for ChangeDisplaySettings//
|
|
|
|
CDS_UPDATEREGISTRY = $00000001;
|
|
{$EXTERNALSYM CDS_UPDATEREGISTRY}
|
|
CDS_TEST = $00000002;
|
|
{$EXTERNALSYM CDS_TEST}
|
|
CDS_FULLSCREEN = $00000004;
|
|
{$EXTERNALSYM CDS_FULLSCREEN}
|
|
CDS_GLOBAL = $00000008;
|
|
{$EXTERNALSYM CDS_GLOBAL}
|
|
CDS_SET_PRIMARY = $00000010;
|
|
{$EXTERNALSYM CDS_SET_PRIMARY}
|
|
CDS_VIDEOPARAMETERS = $00000020;
|
|
{$EXTERNALSYM CDS_VIDEOPARAMETERS}
|
|
CDS_RESET = $40000000;
|
|
{$EXTERNALSYM CDS_RESET}
|
|
CDS_NORESET = $10000000;
|
|
{$EXTERNALSYM CDS_NORESET}
|
|
|
|
// #include <tvout.h>
|
|
|
|
// Return values for ChangeDisplaySettings
|
|
|
|
DISP_CHANGE_SUCCESSFUL = 0;
|
|
{$EXTERNALSYM DISP_CHANGE_SUCCESSFUL}
|
|
DISP_CHANGE_RESTART = 1;
|
|
{$EXTERNALSYM DISP_CHANGE_RESTART}
|
|
DISP_CHANGE_FAILED = DWORD(-1);
|
|
{$EXTERNALSYM DISP_CHANGE_FAILED}
|
|
DISP_CHANGE_BADMODE = DWORD(-2);
|
|
{$EXTERNALSYM DISP_CHANGE_BADMODE}
|
|
DISP_CHANGE_NOTUPDATED = DWORD(-3);
|
|
{$EXTERNALSYM DISP_CHANGE_NOTUPDATED}
|
|
DISP_CHANGE_BADFLAGS = DWORD(-4);
|
|
{$EXTERNALSYM DISP_CHANGE_BADFLAGS}
|
|
DISP_CHANGE_BADPARAM = DWORD(-5);
|
|
{$EXTERNALSYM DISP_CHANGE_BADPARAM}
|
|
DISP_CHANGE_BADDUALVIEW = DWORD(-6);
|
|
{$EXTERNALSYM DISP_CHANGE_BADDUALVIEW}
|
|
|
|
function ChangeDisplaySettingsA(lpDevMode: LPDEVMODEA; dwFlags: DWORD): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettingsA}
|
|
function ChangeDisplaySettingsW(lpDevMode: LPDEVMODEW; dwFlags: DWORD): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettingsW}
|
|
function ChangeDisplaySettings(lpDevMode: LPDEVMODE; dwFlags: DWORD): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettings}
|
|
|
|
function ChangeDisplaySettingsExA(lpszDeviceName: LPCSTR; lpDevMode: LPDEVMODEA;
|
|
hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettingsExA}
|
|
function ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR; lpDevMode: LPDEVMODEW;
|
|
hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettingsExW}
|
|
function ChangeDisplaySettingsEx(lpszDeviceName: LPCTSTR; lpDevMode: LPDEVMODE;
|
|
hwnd: HWND; dwflags: DWORD; lParam: LPVOID): LONG; stdcall;
|
|
{$EXTERNALSYM ChangeDisplaySettingsEx}
|
|
|
|
const
|
|
ENUM_CURRENT_SETTINGS = DWORD(-1);
|
|
{$EXTERNALSYM ENUM_CURRENT_SETTINGS}
|
|
ENUM_REGISTRY_SETTINGS = DWORD(-2);
|
|
{$EXTERNALSYM ENUM_REGISTRY_SETTINGS}
|
|
|
|
function EnumDisplaySettingsA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODEA): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettingsA}
|
|
function EnumDisplaySettingsW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODEW): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettingsW}
|
|
function EnumDisplaySettings(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODE): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettings}
|
|
|
|
function EnumDisplaySettingsExA(lpszDeviceName: LPCSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODEA; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettingsExA}
|
|
function EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODEW; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettingsExW}
|
|
function EnumDisplaySettingsEx(lpszDeviceName: LPCTSTR; iModeNum: DWORD;
|
|
var lpDevMode: DEVMODE; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplaySettingsEx}
|
|
|
|
// Flags for EnumDisplaySettingsEx//
|
|
|
|
const
|
|
EDS_RAWMODE = $00000002;
|
|
{$EXTERNALSYM EDS_RAWMODE}
|
|
|
|
function EnumDisplayDevicesA(lpDevice: LPCSTR; iDevNum: DWORD;
|
|
var lpDisplayDevice: DISPLAY_DEVICEA; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplayDevicesA}
|
|
function EnumDisplayDevicesW(lpDevice: LPCWSTR; iDevNum: DWORD;
|
|
var lpDisplayDevice: DISPLAY_DEVICEW; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplayDevicesW}
|
|
function EnumDisplayDevices(lpDevice: LPCTSTR; iDevNum: DWORD;
|
|
var lpDisplayDevice: DISPLAY_DEVICE; dwFlags: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplayDevices}
|
|
|
|
function SystemParametersInfoA(uiAction: UINT; uiParam: UINT;
|
|
pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SystemParametersInfoA}
|
|
function SystemParametersInfoW(uiAction: UINT; uiParam: UINT;
|
|
pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SystemParametersInfoW}
|
|
function SystemParametersInfo(uiAction: UINT; uiParam: UINT;
|
|
pvParam: PVOID; fWinIni: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM SystemParametersInfo}
|
|
|
|
//
|
|
// Accessibility support
|
|
//
|
|
|
|
type
|
|
LPFILTERKEYS = ^FILTERKEYS;
|
|
{$EXTERNALSYM LPFILTERKEYS}
|
|
tagFILTERKEYS = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
iWaitMSec: DWORD; // Acceptance Delay
|
|
iDelayMSec: DWORD; // Delay Until Repeat
|
|
iRepeatMSec: DWORD; // Repeat Rate
|
|
iBounceMSec: DWORD; // Debounce Time
|
|
end;
|
|
{$EXTERNALSYM tagFILTERKEYS}
|
|
FILTERKEYS = tagFILTERKEYS;
|
|
{$EXTERNALSYM FILTERKEYS}
|
|
TFilterKeys = FILTERKEYS;
|
|
PFilterKeys = LPFILTERKEYS;
|
|
|
|
//
|
|
// FILTERKEYS dwFlags field
|
|
//
|
|
|
|
const
|
|
FKF_FILTERKEYSON = $00000001;
|
|
{$EXTERNALSYM FKF_FILTERKEYSON}
|
|
FKF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM FKF_AVAILABLE}
|
|
FKF_HOTKEYACTIVE = $00000004;
|
|
{$EXTERNALSYM FKF_HOTKEYACTIVE}
|
|
FKF_CONFIRMHOTKEY = $00000008;
|
|
{$EXTERNALSYM FKF_CONFIRMHOTKEY}
|
|
FKF_HOTKEYSOUND = $00000010;
|
|
{$EXTERNALSYM FKF_HOTKEYSOUND}
|
|
FKF_INDICATOR = $00000020;
|
|
{$EXTERNALSYM FKF_INDICATOR}
|
|
FKF_CLICKON = $00000040;
|
|
{$EXTERNALSYM FKF_CLICKON}
|
|
|
|
type
|
|
LPSTICKYKEYS = ^STICKYKEYS;
|
|
{$EXTERNALSYM LPSTICKYKEYS}
|
|
tagSTICKYKEYS = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagSTICKYKEYS}
|
|
STICKYKEYS = tagSTICKYKEYS;
|
|
{$EXTERNALSYM STICKYKEYS}
|
|
TStickyKeys = STICKYKEYS;
|
|
PStickyKeys = LPSTICKYKEYS;
|
|
|
|
//
|
|
// STICKYKEYS dwFlags field
|
|
//
|
|
|
|
const
|
|
SKF_STICKYKEYSON = $00000001;
|
|
{$EXTERNALSYM SKF_STICKYKEYSON}
|
|
SKF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM SKF_AVAILABLE}
|
|
SKF_HOTKEYACTIVE = $00000004;
|
|
{$EXTERNALSYM SKF_HOTKEYACTIVE}
|
|
SKF_CONFIRMHOTKEY = $00000008;
|
|
{$EXTERNALSYM SKF_CONFIRMHOTKEY}
|
|
SKF_HOTKEYSOUND = $00000010;
|
|
{$EXTERNALSYM SKF_HOTKEYSOUND}
|
|
SKF_INDICATOR = $00000020;
|
|
{$EXTERNALSYM SKF_INDICATOR}
|
|
SKF_AUDIBLEFEEDBACK = $00000040;
|
|
{$EXTERNALSYM SKF_AUDIBLEFEEDBACK}
|
|
SKF_TRISTATE = $00000080;
|
|
{$EXTERNALSYM SKF_TRISTATE}
|
|
SKF_TWOKEYSOFF = $00000100;
|
|
{$EXTERNALSYM SKF_TWOKEYSOFF}
|
|
SKF_LALTLATCHED = $10000000;
|
|
{$EXTERNALSYM SKF_LALTLATCHED}
|
|
SKF_LCTLLATCHED = $04000000;
|
|
{$EXTERNALSYM SKF_LCTLLATCHED}
|
|
SKF_LSHIFTLATCHED = $01000000;
|
|
{$EXTERNALSYM SKF_LSHIFTLATCHED}
|
|
SKF_RALTLATCHED = $20000000;
|
|
{$EXTERNALSYM SKF_RALTLATCHED}
|
|
SKF_RCTLLATCHED = $08000000;
|
|
{$EXTERNALSYM SKF_RCTLLATCHED}
|
|
SKF_RSHIFTLATCHED = $02000000;
|
|
{$EXTERNALSYM SKF_RSHIFTLATCHED}
|
|
SKF_LWINLATCHED = $40000000;
|
|
{$EXTERNALSYM SKF_LWINLATCHED}
|
|
SKF_RWINLATCHED = $80000000;
|
|
{$EXTERNALSYM SKF_RWINLATCHED}
|
|
SKF_LALTLOCKED = $00100000;
|
|
{$EXTERNALSYM SKF_LALTLOCKED}
|
|
SKF_LCTLLOCKED = $00040000;
|
|
{$EXTERNALSYM SKF_LCTLLOCKED}
|
|
SKF_LSHIFTLOCKED = $00010000;
|
|
{$EXTERNALSYM SKF_LSHIFTLOCKED}
|
|
SKF_RALTLOCKED = $00200000;
|
|
{$EXTERNALSYM SKF_RALTLOCKED}
|
|
SKF_RCTLLOCKED = $00080000;
|
|
{$EXTERNALSYM SKF_RCTLLOCKED}
|
|
SKF_RSHIFTLOCKED = $00020000;
|
|
{$EXTERNALSYM SKF_RSHIFTLOCKED}
|
|
SKF_LWINLOCKED = $00400000;
|
|
{$EXTERNALSYM SKF_LWINLOCKED}
|
|
SKF_RWINLOCKED = $00800000;
|
|
{$EXTERNALSYM SKF_RWINLOCKED}
|
|
|
|
type
|
|
LPMOUSEKEYS = ^MOUSEKEYS;
|
|
{$EXTERNALSYM LPMOUSEKEYS}
|
|
tagMOUSEKEYS = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
iMaxSpeed: DWORD;
|
|
iTimeToMaxSpeed: DWORD;
|
|
iCtrlSpeed: DWORD;
|
|
dwReserved1: DWORD;
|
|
dwReserved2: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagMOUSEKEYS}
|
|
MOUSEKEYS = tagMOUSEKEYS;
|
|
{$EXTERNALSYM MOUSEKEYS}
|
|
TMouseKeys = MOUSEKEYS;
|
|
PMouseKeys = LPMOUSEKEYS;
|
|
|
|
//
|
|
// MOUSEKEYS dwFlags field
|
|
//
|
|
|
|
const
|
|
MKF_MOUSEKEYSON = $00000001;
|
|
{$EXTERNALSYM MKF_MOUSEKEYSON}
|
|
MKF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM MKF_AVAILABLE}
|
|
MKF_HOTKEYACTIVE = $00000004;
|
|
{$EXTERNALSYM MKF_HOTKEYACTIVE}
|
|
MKF_CONFIRMHOTKEY = $00000008;
|
|
{$EXTERNALSYM MKF_CONFIRMHOTKEY}
|
|
MKF_HOTKEYSOUND = $00000010;
|
|
{$EXTERNALSYM MKF_HOTKEYSOUND}
|
|
MKF_INDICATOR = $00000020;
|
|
{$EXTERNALSYM MKF_INDICATOR}
|
|
MKF_MODIFIERS = $00000040;
|
|
{$EXTERNALSYM MKF_MODIFIERS}
|
|
MKF_REPLACENUMBERS = $00000080;
|
|
{$EXTERNALSYM MKF_REPLACENUMBERS}
|
|
MKF_LEFTBUTTONSEL = $10000000;
|
|
{$EXTERNALSYM MKF_LEFTBUTTONSEL}
|
|
MKF_RIGHTBUTTONSEL = $20000000;
|
|
{$EXTERNALSYM MKF_RIGHTBUTTONSEL}
|
|
MKF_LEFTBUTTONDOWN = $01000000;
|
|
{$EXTERNALSYM MKF_LEFTBUTTONDOWN}
|
|
MKF_RIGHTBUTTONDOWN = $02000000;
|
|
{$EXTERNALSYM MKF_RIGHTBUTTONDOWN}
|
|
MKF_MOUSEMODE = $80000000;
|
|
{$EXTERNALSYM MKF_MOUSEMODE}
|
|
|
|
type
|
|
LPACCESSTIMEOUT = ^ACCESSTIMEOUT;
|
|
{$EXTERNALSYM LPACCESSTIMEOUT}
|
|
tagACCESSTIMEOUT = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
iTimeOutMSec: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagACCESSTIMEOUT}
|
|
ACCESSTIMEOUT = tagACCESSTIMEOUT;
|
|
{$EXTERNALSYM ACCESSTIMEOUT}
|
|
TAccessTimeout = ACCESSTIMEOUT;
|
|
PAccessTimeout = LPACCESSTIMEOUT;
|
|
|
|
//
|
|
// ACCESSTIMEOUT dwFlags field
|
|
//
|
|
|
|
const
|
|
ATF_TIMEOUTON = $00000001;
|
|
{$EXTERNALSYM ATF_TIMEOUTON}
|
|
ATF_ONOFFFEEDBACK = $00000002;
|
|
{$EXTERNALSYM ATF_ONOFFFEEDBACK}
|
|
|
|
// values for SOUNDSENTRY iFSGrafEffect field//
|
|
|
|
SSGF_NONE = 0;
|
|
{$EXTERNALSYM SSGF_NONE}
|
|
SSGF_DISPLAY = 3;
|
|
{$EXTERNALSYM SSGF_DISPLAY}
|
|
|
|
// values for SOUNDSENTRY iFSTextEffect field//
|
|
|
|
SSTF_NONE = 0;
|
|
{$EXTERNALSYM SSTF_NONE}
|
|
SSTF_CHARS = 1;
|
|
{$EXTERNALSYM SSTF_CHARS}
|
|
SSTF_BORDER = 2;
|
|
{$EXTERNALSYM SSTF_BORDER}
|
|
SSTF_DISPLAY = 3;
|
|
{$EXTERNALSYM SSTF_DISPLAY}
|
|
|
|
// values for SOUNDSENTRY iWindowsEffect field//
|
|
|
|
SSWF_NONE = 0;
|
|
{$EXTERNALSYM SSWF_NONE}
|
|
SSWF_TITLE = 1;
|
|
{$EXTERNALSYM SSWF_TITLE}
|
|
SSWF_WINDOW = 2;
|
|
{$EXTERNALSYM SSWF_WINDOW}
|
|
SSWF_DISPLAY = 3;
|
|
{$EXTERNALSYM SSWF_DISPLAY}
|
|
SSWF_CUSTOM = 4;
|
|
{$EXTERNALSYM SSWF_CUSTOM}
|
|
|
|
type
|
|
LPSOUNDSENTRYA = ^SOUNDSENTRYA;
|
|
{$EXTERNALSYM LPSOUNDSENTRYA}
|
|
tagSOUNDSENTRYA = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
iFSTextEffect: DWORD;
|
|
iFSTextEffectMSec: DWORD;
|
|
iFSTextEffectColorBits: DWORD;
|
|
iFSGrafEffect: DWORD;
|
|
iFSGrafEffectMSec: DWORD;
|
|
iFSGrafEffectColor: DWORD;
|
|
iWindowsEffect: DWORD;
|
|
iWindowsEffectMSec: DWORD;
|
|
lpszWindowsEffectDLL: LPSTR;
|
|
iWindowsEffectOrdinal: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagSOUNDSENTRYA}
|
|
SOUNDSENTRYA = tagSOUNDSENTRYA;
|
|
{$EXTERNALSYM SOUNDSENTRYA}
|
|
TSoundsEntryA = SOUNDSENTRYA;
|
|
PSoundsEntryA = LPSOUNDSENTRYA;
|
|
|
|
LPSOUNDSENTRYW = ^SOUNDSENTRYW;
|
|
{$EXTERNALSYM LPSOUNDSENTRYW}
|
|
tagSOUNDSENTRYW = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
iFSTextEffect: DWORD;
|
|
iFSTextEffectMSec: DWORD;
|
|
iFSTextEffectColorBits: DWORD;
|
|
iFSGrafEffect: DWORD;
|
|
iFSGrafEffectMSec: DWORD;
|
|
iFSGrafEffectColor: DWORD;
|
|
iWindowsEffect: DWORD;
|
|
iWindowsEffectMSec: DWORD;
|
|
lpszWindowsEffectDLL: LPWSTR;
|
|
iWindowsEffectOrdinal: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagSOUNDSENTRYW}
|
|
SOUNDSENTRYW = tagSOUNDSENTRYW;
|
|
{$EXTERNALSYM SOUNDSENTRYW}
|
|
TSoundsEntryW = SOUNDSENTRYW;
|
|
PSoundsEntryW = LPSOUNDSENTRYW;
|
|
|
|
{$IFDEF UNICODE}
|
|
SOUNDSENTRY = SOUNDSENTRYW;
|
|
{$EXTERNALSYM SOUNDSENTRY}
|
|
LPSOUNDSENTRY = LPSOUNDSENTRYW;
|
|
{$EXTERNALSYM LPSOUNDSENTRY}
|
|
TSoundsEntry = TSoundsEntryW;
|
|
PSoundsEntry = PSoundsEntryW;
|
|
{$ELSE}
|
|
SOUNDSENTRY = SOUNDSENTRYA;
|
|
{$EXTERNALSYM SOUNDSENTRY}
|
|
LPSOUNDSENTRY = LPSOUNDSENTRYA;
|
|
{$EXTERNALSYM LPSOUNDSENTRY}
|
|
TSoundsEntry = TSoundsEntryA;
|
|
PSoundsEntry = PSoundsEntryA;
|
|
{$ENDIF UNICODE}
|
|
|
|
//
|
|
// SOUNDSENTRY dwFlags field
|
|
//
|
|
|
|
const
|
|
SSF_SOUNDSENTRYON = $00000001;
|
|
{$EXTERNALSYM SSF_SOUNDSENTRYON}
|
|
SSF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM SSF_AVAILABLE}
|
|
SSF_INDICATOR = $00000004;
|
|
{$EXTERNALSYM SSF_INDICATOR}
|
|
|
|
type
|
|
LPTOGGLEKEYS = ^TOGGLEKEYS;
|
|
{$EXTERNALSYM LPTOGGLEKEYS}
|
|
tagTOGGLEKEYS = record
|
|
cbSize: UINT;
|
|
dwFlags: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagTOGGLEKEYS}
|
|
TOGGLEKEYS = tagTOGGLEKEYS;
|
|
{$EXTERNALSYM TOGGLEKEYS}
|
|
TToggleKeys = TOGGLEKEYS;
|
|
PToggleKeys = LPTOGGLEKEYS;
|
|
|
|
//
|
|
// TOGGLEKEYS dwFlags field
|
|
//
|
|
|
|
const
|
|
TKF_TOGGLEKEYSON = $00000001;
|
|
{$EXTERNALSYM TKF_TOGGLEKEYSON}
|
|
TKF_AVAILABLE = $00000002;
|
|
{$EXTERNALSYM TKF_AVAILABLE}
|
|
TKF_HOTKEYACTIVE = $00000004;
|
|
{$EXTERNALSYM TKF_HOTKEYACTIVE}
|
|
TKF_CONFIRMHOTKEY = $00000008;
|
|
{$EXTERNALSYM TKF_CONFIRMHOTKEY}
|
|
TKF_HOTKEYSOUND = $00000010;
|
|
{$EXTERNALSYM TKF_HOTKEYSOUND}
|
|
TKF_INDICATOR = $00000020;
|
|
{$EXTERNALSYM TKF_INDICATOR}
|
|
|
|
//
|
|
// Set debug level
|
|
//
|
|
|
|
procedure SetDebugErrorLevel(dwLevel: DWORD); stdcall;
|
|
{$EXTERNALSYM SetDebugErrorLevel}
|
|
|
|
//
|
|
// SetLastErrorEx() types.
|
|
//
|
|
|
|
const
|
|
SLE_ERROR = $00000001;
|
|
{$EXTERNALSYM SLE_ERROR}
|
|
SLE_MINORERROR = $00000002;
|
|
{$EXTERNALSYM SLE_MINORERROR}
|
|
SLE_WARNING = $00000003;
|
|
{$EXTERNALSYM SLE_WARNING}
|
|
|
|
procedure SetLastErrorEx(dwErrCode, dwType: DWORD); stdcall;
|
|
{$EXTERNALSYM SetLastErrorEx}
|
|
|
|
function InternalGetWindowText(hWnd: HWND; lpString: LPWSTR; nMaxCount: Integer): Integer; stdcall;
|
|
{$EXTERNALSYM InternalGetWindowText}
|
|
|
|
function EndTask(hWnd: HWND; fShutDown, fForce: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM EndTask}
|
|
|
|
//
|
|
// Multimonitor API.
|
|
//
|
|
|
|
const
|
|
MONITOR_DEFAULTTONULL = $00000000;
|
|
{$EXTERNALSYM MONITOR_DEFAULTTONULL}
|
|
MONITOR_DEFAULTTOPRIMARY = $00000001;
|
|
{$EXTERNALSYM MONITOR_DEFAULTTOPRIMARY}
|
|
MONITOR_DEFAULTTONEAREST = $00000002;
|
|
{$EXTERNALSYM MONITOR_DEFAULTTONEAREST}
|
|
|
|
function MonitorFromPoint(pt: POINT; dwFlags: DWORD): HMONITOR; stdcall;
|
|
{$EXTERNALSYM MonitorFromPoint}
|
|
|
|
function MonitorFromRect(const lprc: RECT; dwFlags: DWORD): HMONITOR; stdcall;
|
|
{$EXTERNALSYM MonitorFromRect}
|
|
|
|
function MonitorFromWindow(hwnd: HWND; dwFlags: DWORD): HMONITOR; stdcall;
|
|
{$EXTERNALSYM MonitorFromWindow}
|
|
|
|
const
|
|
MONITORINFOF_PRIMARY = $00000001;
|
|
{$EXTERNALSYM MONITORINFOF_PRIMARY}
|
|
|
|
{$IFNDEF JWA_INCLUDEMODE}
|
|
CCHDEVICENAME = 32;
|
|
{$EXTERNALSYM CCHDEVICENAME}
|
|
{$ENDIF JWA_INCLUDEMODE}
|
|
|
|
type
|
|
LPMONITORINFO = ^MONITORINFO;
|
|
{$EXTERNALSYM LPMONITORINFO}
|
|
tagMONITORINFO = record
|
|
cbSize: DWORD;
|
|
rcMonitor: RECT;
|
|
rcWork: RECT;
|
|
dwFlags: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagMONITORINFO}
|
|
MONITORINFO = tagMONITORINFO;
|
|
{$EXTERNALSYM MONITORINFO}
|
|
TMonitorInfo = MONITORINFO;
|
|
PMonitorInfo = LPMONITORINFO;
|
|
|
|
LPMONITORINFOEXA = ^MONITORINFOEXA;
|
|
{$EXTERNALSYM LPMONITORINFOEXA}
|
|
tagMONITORINFOEXA = record
|
|
MonitorInfo: MONITORINFO;
|
|
szDevice: array [0..CCHDEVICENAME - 1] of AnsiChar;
|
|
end;
|
|
{$EXTERNALSYM tagMONITORINFOEXA}
|
|
MONITORINFOEXA = tagMONITORINFOEXA;
|
|
{$EXTERNALSYM MONITORINFOEXA}
|
|
TMonitorinfoexa = MONITORINFOEXA;
|
|
PMonitorInfoExA = LPMONITORINFOEXA;
|
|
|
|
LPMONITORINFOEXW = ^MONITORINFOEXW;
|
|
{$EXTERNALSYM LPMONITORINFOEXW}
|
|
tagMONITORINFOEXW = record
|
|
MonitorInfo: MONITORINFO;
|
|
szDevice: array [0..CCHDEVICENAME - 1] of WCHAR;
|
|
end;
|
|
{$EXTERNALSYM tagMONITORINFOEXW}
|
|
MONITORINFOEXW = tagMONITORINFOEXW;
|
|
{$EXTERNALSYM MONITORINFOEXW}
|
|
TMonitorInfoExW = MONITORINFOEXW;
|
|
PMonitorInfoExW = LPMONITORINFOEXW;
|
|
|
|
{$IFDEF UNICODE}
|
|
MONITORINFOEX = MONITORINFOEXW;
|
|
{$EXTERNALSYM MONITORINFOEX}
|
|
LPMONITORINFOEX = LPMONITORINFOEXW;
|
|
{$EXTERNALSYM LPMONITORINFOEX}
|
|
TMonitorInfoEx = TMonitorInfoExW;
|
|
PMonitorInfoEx = PMonitorInfoExW;
|
|
{$ELSE}
|
|
MONITORINFOEX = MONITORINFOEXA;
|
|
{$EXTERNALSYM MONITORINFOEX}
|
|
LPMONITORINFOEX = LPMONITORINFOEXA;
|
|
{$EXTERNALSYM LPMONITORINFOEX}
|
|
TMonitorInfoEx = TMonitorInfoExA;
|
|
PMonitorInfoEx = PMonitorInfoExA;
|
|
{$ENDIF UNICODE}
|
|
|
|
function GetMonitorInfoA(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMonitorInfoA}
|
|
function GetMonitorInfoW(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMonitorInfoW}
|
|
function GetMonitorInfo(hMonitor: HMONITOR; lpmi: LPMONITORINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMonitorInfo}
|
|
|
|
type
|
|
MONITORENUMPROC = function(hMonitor: HMONITOR; hdcMonitor: HDC;
|
|
lprcMonitor: LPRECT; dwData: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM MONITORENUMPROC}
|
|
TMonitorEnumProc = MONITORENUMPROC;
|
|
|
|
function EnumDisplayMonitors(hdc: HDC; lprcClip: LPCRECT;
|
|
lpfnEnum: MONITORENUMPROC; dwData: LPARAM): BOOL; stdcall;
|
|
{$EXTERNALSYM EnumDisplayMonitors}
|
|
|
|
//
|
|
// WinEvents - Active Accessibility hooks
|
|
//
|
|
|
|
procedure NotifyWinEvent(event: DWORD; hwnd: HWND; idObject: LONG; idChild: LONG); stdcall;
|
|
{$EXTERNALSYM NotifyWinEvent}
|
|
|
|
type
|
|
WINEVENTPROC = procedure(hWinEventHook: HWINEVENTHOOK; event: DWORD; hwnd: HWND;
|
|
idObject, idChild: LONG; idEventThread, dwmsEventTime: DWORD); stdcall;
|
|
{$EXTERNALSYM WINEVENTPROC}
|
|
TWinEventProc = WINEVENTPROC;
|
|
|
|
function SetWinEventHook(eventMin: DWORD; eventMax: DWORD;
|
|
hmodWinEventProc: HMODULE; pfnWinEventProc: WINEVENTPROC; idProcess: DWORD;
|
|
idThread: DWORD; dwFlags: DWORD): HWINEVENTHOOK; stdcall;
|
|
{$EXTERNALSYM SetWinEventHook}
|
|
|
|
function IsWinEventHookInstalled(event: DWORD): BOOL; stdcall;
|
|
{$EXTERNALSYM IsWinEventHookInstalled}
|
|
|
|
//
|
|
// dwFlags for SetWinEventHook
|
|
//
|
|
|
|
const
|
|
WINEVENT_OUTOFCONTEXT = $0000; // Events are ASYNC
|
|
{$EXTERNALSYM WINEVENT_OUTOFCONTEXT}
|
|
WINEVENT_SKIPOWNTHREAD = $0001; // Don't call back for events on installer's thread
|
|
{$EXTERNALSYM WINEVENT_SKIPOWNTHREAD}
|
|
WINEVENT_SKIPOWNPROCESS = $0002; // Don't call back for events on installer's process
|
|
{$EXTERNALSYM WINEVENT_SKIPOWNPROCESS}
|
|
WINEVENT_INCONTEXT = $0004; // Events are SYNC, this causes your dll to be injected into every process
|
|
{$EXTERNALSYM WINEVENT_INCONTEXT}
|
|
|
|
function UnhookWinEvent(hWinEventHook: HWINEVENTHOOK): BOOL; stdcall;
|
|
{$EXTERNALSYM UnhookWinEvent}
|
|
|
|
//
|
|
// idObject values for WinEventProc and NotifyWinEvent
|
|
//
|
|
|
|
//
|
|
// hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
|
|
// to get an interface pointer to the container. indexChild is the item
|
|
// within the container in question. Setup a VARIANT with vt VT_I4 and
|
|
// lVal the indexChild and pass that in to all methods. Then you
|
|
// are raring to go.
|
|
//
|
|
|
|
//
|
|
// Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
|
|
// thing in question). Positive IDs are reserved for apps (app specific),
|
|
// negative IDs are system things and are global, 0 means "just little old
|
|
// me".
|
|
//
|
|
|
|
const
|
|
CHILDID_SELF = 0;
|
|
{$EXTERNALSYM CHILDID_SELF}
|
|
INDEXID_OBJECT = 0;
|
|
{$EXTERNALSYM INDEXID_OBJECT}
|
|
INDEXID_CONTAINER = 0;
|
|
{$EXTERNALSYM INDEXID_CONTAINER}
|
|
|
|
//
|
|
// Reserved IDs for system objects
|
|
//
|
|
|
|
const
|
|
OBJID_WINDOW = DWORD($00000000);
|
|
{$EXTERNALSYM OBJID_WINDOW}
|
|
OBJID_SYSMENU = DWORD($FFFFFFFF);
|
|
{$EXTERNALSYM OBJID_SYSMENU}
|
|
OBJID_TITLEBAR = DWORD($FFFFFFFE);
|
|
{$EXTERNALSYM OBJID_TITLEBAR}
|
|
OBJID_MENU = DWORD($FFFFFFFD);
|
|
{$EXTERNALSYM OBJID_MENU}
|
|
OBJID_CLIENT = DWORD($FFFFFFFC);
|
|
{$EXTERNALSYM OBJID_CLIENT}
|
|
OBJID_VSCROLL = DWORD($FFFFFFFB);
|
|
{$EXTERNALSYM OBJID_VSCROLL}
|
|
OBJID_HSCROLL = DWORD($FFFFFFFA);
|
|
{$EXTERNALSYM OBJID_HSCROLL}
|
|
OBJID_SIZEGRIP = DWORD($FFFFFFF9);
|
|
{$EXTERNALSYM OBJID_SIZEGRIP}
|
|
OBJID_CARET = DWORD($FFFFFFF8);
|
|
{$EXTERNALSYM OBJID_CARET}
|
|
OBJID_CURSOR = DWORD($FFFFFFF7);
|
|
{$EXTERNALSYM OBJID_CURSOR}
|
|
OBJID_ALERT = DWORD($FFFFFFF6);
|
|
{$EXTERNALSYM OBJID_ALERT}
|
|
OBJID_SOUND = DWORD($FFFFFFF5);
|
|
{$EXTERNALSYM OBJID_SOUND}
|
|
OBJID_QUERYCLASSNAMEIDX = DWORD($FFFFFFF4);
|
|
{$EXTERNALSYM OBJID_QUERYCLASSNAMEIDX}
|
|
OBJID_NATIVEOM = DWORD($FFFFFFF0);
|
|
{$EXTERNALSYM OBJID_NATIVEOM}
|
|
|
|
//
|
|
// EVENT DEFINITION
|
|
//
|
|
|
|
EVENT_MIN = $00000001;
|
|
{$EXTERNALSYM EVENT_MIN}
|
|
EVENT_MAX = $7FFFFFFF;
|
|
{$EXTERNALSYM EVENT_MAX}
|
|
|
|
//
|
|
// EVENT_SYSTEM_SOUND
|
|
// Sent when a sound is played. Currently nothing is generating this, we
|
|
// this event when a system sound (for menus, etc) is played. Apps
|
|
// generate this, if accessible, when a private sound is played. For
|
|
// example, if Mail plays a "New Mail" sound.
|
|
//
|
|
// System Sounds:
|
|
// (Generated by PlaySoundEvent in USER itself)
|
|
// hwnd is NULL
|
|
// idObject is OBJID_SOUND
|
|
// idChild is sound child ID if one
|
|
// App Sounds:
|
|
// (PlaySoundEvent won't generate notification; up to app)
|
|
// hwnd + idObject gets interface pointer to Sound object
|
|
// idChild identifies the sound in question
|
|
// are going to be cleaning up the SOUNDSENTRY feature in the control panel
|
|
// and will use this at that time. Applications implementing WinEvents
|
|
// are perfectly welcome to use it. Clients of IAccessible* will simply
|
|
// turn around and get back a non-visual object that describes the sound.
|
|
//
|
|
|
|
EVENT_SYSTEM_SOUND = $0001;
|
|
{$EXTERNALSYM EVENT_SYSTEM_SOUND}
|
|
|
|
//
|
|
// EVENT_SYSTEM_ALERT
|
|
// System Alerts:
|
|
// (Generated by MessageBox() calls for example)
|
|
// hwnd is hwndMessageBox
|
|
// idObject is OBJID_ALERT
|
|
// App Alerts:
|
|
// (Generated whenever)
|
|
// hwnd+idObject gets interface pointer to Alert
|
|
//
|
|
|
|
EVENT_SYSTEM_ALERT = $0002;
|
|
{$EXTERNALSYM EVENT_SYSTEM_ALERT}
|
|
|
|
//
|
|
// EVENT_SYSTEM_FOREGROUND
|
|
// Sent when the foreground (active) window changes, even if it is changing
|
|
// to another window in the same thread as the previous one.
|
|
// hwnd is hwndNewForeground
|
|
// idObject is OBJID_WINDOW
|
|
// idChild is INDEXID_OBJECT
|
|
//
|
|
|
|
EVENT_SYSTEM_FOREGROUND = $0003;
|
|
{$EXTERNALSYM EVENT_SYSTEM_FOREGROUND}
|
|
|
|
//
|
|
// Menu
|
|
// hwnd is window (top level window or popup menu window)
|
|
// idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup)
|
|
// idChild is CHILDID_SELF
|
|
|
|
// EVENT_SYSTEM_MENUSTART
|
|
// EVENT_SYSTEM_MENUEND
|
|
// For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar,
|
|
// or the control bringing up the context menu.
|
|
|
|
// Sent when entering into and leaving from menu mode (system, app bar, and
|
|
// track popups).
|
|
//
|
|
|
|
EVENT_SYSTEM_MENUSTART = $0004;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MENUSTART}
|
|
EVENT_SYSTEM_MENUEND = $0005;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MENUEND}
|
|
|
|
//
|
|
// EVENT_SYSTEM_MENUPOPUPSTART
|
|
// EVENT_SYSTEM_MENUPOPUPEND
|
|
// Sent when a menu popup comes up and just before it is taken down. Note
|
|
// that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART
|
|
// followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup
|
|
// being shown.
|
|
|
|
// For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the
|
|
// parent item which is hierarchical. You can get the parent menu/popup by
|
|
// asking for the accParent object.
|
|
//
|
|
|
|
EVENT_SYSTEM_MENUPOPUPSTART = $0006;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPSTART}
|
|
EVENT_SYSTEM_MENUPOPUPEND = $0007;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MENUPOPUPEND}
|
|
|
|
//
|
|
// EVENT_SYSTEM_CAPTURESTART
|
|
// EVENT_SYSTEM_CAPTUREEND
|
|
// Sent when a window takes the capture and releases the capture.
|
|
//
|
|
|
|
EVENT_SYSTEM_CAPTURESTART = $0008;
|
|
{$EXTERNALSYM EVENT_SYSTEM_CAPTURESTART}
|
|
EVENT_SYSTEM_CAPTUREEND = $0009;
|
|
{$EXTERNALSYM EVENT_SYSTEM_CAPTUREEND}
|
|
|
|
//
|
|
// Move Size
|
|
// EVENT_SYSTEM_MOVESIZESTART
|
|
// EVENT_SYSTEM_MOVESIZEEND
|
|
// Sent when a window enters and leaves move-size dragging mode.
|
|
//
|
|
|
|
EVENT_SYSTEM_MOVESIZESTART = $000A;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MOVESIZESTART}
|
|
EVENT_SYSTEM_MOVESIZEEND = $000B;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MOVESIZEEND}
|
|
|
|
//
|
|
// Context Help
|
|
// EVENT_SYSTEM_CONTEXTHELPSTART
|
|
// EVENT_SYSTEM_CONTEXTHELPEND
|
|
// Sent when a window enters and leaves context sensitive help mode.
|
|
//
|
|
|
|
EVENT_SYSTEM_CONTEXTHELPSTART = $000C;
|
|
{$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPSTART}
|
|
EVENT_SYSTEM_CONTEXTHELPEND = $000D;
|
|
{$EXTERNALSYM EVENT_SYSTEM_CONTEXTHELPEND}
|
|
|
|
//
|
|
// Drag & Drop
|
|
// EVENT_SYSTEM_DRAGDROPSTART
|
|
// EVENT_SYSTEM_DRAGDROPEND
|
|
// Send the START notification just before going into drag&drop loop. Send
|
|
// the END notification just after canceling out.
|
|
// Note that it is up to apps and OLE to generate this, since the system
|
|
// doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this
|
|
// is prevalent.
|
|
//
|
|
|
|
EVENT_SYSTEM_DRAGDROPSTART = $000E;
|
|
{$EXTERNALSYM EVENT_SYSTEM_DRAGDROPSTART}
|
|
EVENT_SYSTEM_DRAGDROPEND = $000F;
|
|
{$EXTERNALSYM EVENT_SYSTEM_DRAGDROPEND}
|
|
|
|
//
|
|
// Dialog
|
|
// Send the START notification right after the dialog is completely
|
|
// initialized and visible. Send the END right before the dialog
|
|
// is hidden and goes away.
|
|
// EVENT_SYSTEM_DIALOGSTART
|
|
// EVENT_SYSTEM_DIALOGEND
|
|
//
|
|
|
|
EVENT_SYSTEM_DIALOGSTART = $0010;
|
|
{$EXTERNALSYM EVENT_SYSTEM_DIALOGSTART}
|
|
EVENT_SYSTEM_DIALOGEND = $0011;
|
|
{$EXTERNALSYM EVENT_SYSTEM_DIALOGEND}
|
|
|
|
//
|
|
// EVENT_SYSTEM_SCROLLING
|
|
// EVENT_SYSTEM_SCROLLINGSTART
|
|
// EVENT_SYSTEM_SCROLLINGEND
|
|
// Sent when beginning and ending the tracking of a scrollbar in a window,
|
|
// and also for scrollbar controls.
|
|
//
|
|
|
|
EVENT_SYSTEM_SCROLLINGSTART = $0012;
|
|
{$EXTERNALSYM EVENT_SYSTEM_SCROLLINGSTART}
|
|
EVENT_SYSTEM_SCROLLINGEND = $0013;
|
|
{$EXTERNALSYM EVENT_SYSTEM_SCROLLINGEND}
|
|
|
|
//
|
|
// Alt-Tab Window
|
|
// Send the START notification right after the switch window is initialized
|
|
// and visible. Send the END right before it is hidden and goes away.
|
|
// EVENT_SYSTEM_SWITCHSTART
|
|
// EVENT_SYSTEM_SWITCHEND
|
|
//
|
|
|
|
EVENT_SYSTEM_SWITCHSTART = $0014;
|
|
{$EXTERNALSYM EVENT_SYSTEM_SWITCHSTART}
|
|
EVENT_SYSTEM_SWITCHEND = $0015;
|
|
{$EXTERNALSYM EVENT_SYSTEM_SWITCHEND}
|
|
|
|
//
|
|
// EVENT_SYSTEM_MINIMIZESTART
|
|
// EVENT_SYSTEM_MINIMIZEEND
|
|
// Sent when a window minimizes and just before it restores.
|
|
//
|
|
|
|
EVENT_SYSTEM_MINIMIZESTART = $0016;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MINIMIZESTART}
|
|
EVENT_SYSTEM_MINIMIZEEND = $0017;
|
|
{$EXTERNALSYM EVENT_SYSTEM_MINIMIZEEND}
|
|
|
|
EVENT_CONSOLE_CARET = $4001;
|
|
{$EXTERNALSYM EVENT_CONSOLE_CARET}
|
|
EVENT_CONSOLE_UPDATE_REGION = $4002;
|
|
{$EXTERNALSYM EVENT_CONSOLE_UPDATE_REGION}
|
|
EVENT_CONSOLE_UPDATE_SIMPLE = $4003;
|
|
{$EXTERNALSYM EVENT_CONSOLE_UPDATE_SIMPLE}
|
|
EVENT_CONSOLE_UPDATE_SCROLL = $4004;
|
|
{$EXTERNALSYM EVENT_CONSOLE_UPDATE_SCROLL}
|
|
EVENT_CONSOLE_LAYOUT = $4005;
|
|
{$EXTERNALSYM EVENT_CONSOLE_LAYOUT}
|
|
EVENT_CONSOLE_START_APPLICATION = $4006;
|
|
{$EXTERNALSYM EVENT_CONSOLE_START_APPLICATION}
|
|
EVENT_CONSOLE_END_APPLICATION = $4007;
|
|
{$EXTERNALSYM EVENT_CONSOLE_END_APPLICATION}
|
|
|
|
//
|
|
// Flags for EVENT_CONSOLE_START/END_APPLICATION.
|
|
//
|
|
|
|
CONSOLE_APPLICATION_16BIT = $0001;
|
|
{$EXTERNALSYM CONSOLE_APPLICATION_16BIT}
|
|
|
|
//
|
|
// Flags for EVENT_CONSOLE_CARET
|
|
//
|
|
|
|
CONSOLE_CARET_SELECTION = $0001;
|
|
{$EXTERNALSYM CONSOLE_CARET_SELECTION}
|
|
CONSOLE_CARET_VISIBLE = $0002;
|
|
{$EXTERNALSYM CONSOLE_CARET_VISIBLE}
|
|
|
|
//
|
|
// Object events
|
|
|
|
// The system AND apps generate these. The system generates these for
|
|
// real windows. Apps generate these for objects within their window which
|
|
// act like a separate control, e.g. an item in a list view.
|
|
|
|
// When the system generate them, dwParam2 is always WMOBJID_SELF. When
|
|
// apps generate them, apps put the has-meaning-to-the-app-only ID value
|
|
// in dwParam2.
|
|
// For all events, if you want detailed accessibility information, callers
|
|
// should
|
|
// * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters
|
|
// of the event, and IID_IAccessible as the REFIID, to get back an
|
|
// IAccessible* to talk to
|
|
// * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild
|
|
// parameter of the event.
|
|
// * If idChild isn't zero, call get_accChild() in the container to see
|
|
// if the child is an object in its own right. If so, you will get
|
|
// back an IDispatch* object for the child. You should release the
|
|
// parent, and call QueryInterface() on the child object to get its
|
|
// IAccessible*. Then you talk directly to the child. Otherwise,
|
|
// if get_accChild() returns you nothing, you should continue to
|
|
// use the child VARIANT. You will ask the container for the properties
|
|
// of the child identified by the VARIANT. In other words, the
|
|
// child in this case is accessible but not a full-blown object.
|
|
// Like a button on a titlebar which is 'small' and has no children.
|
|
//
|
|
|
|
//
|
|
// For all EVENT_OBJECT events,
|
|
// hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL,
|
|
// see above for system things)
|
|
// idObject is the ID of the object that can resolve any queries a
|
|
// client might have. It's a way to deal with windowless controls,
|
|
// controls that are just drawn on the screen in some larger parent
|
|
// window (like SDM), or standard frame elements of a window.
|
|
// idChild is the piece inside of the object that is affected. This
|
|
// allows clients to access things that are too small to have full
|
|
// blown objects in their own right. Like the thumb of a scrollbar.
|
|
// The hwnd/idObject pair gets you to the container, the dude you
|
|
// probably want to talk to most of the time anyway. The idChild
|
|
// can then be passed into the acc properties to get the name/value
|
|
// of it as needed.
|
|
|
|
// Example #1:
|
|
// System propagating a listbox selection change
|
|
// EVENT_OBJECT_SELECTION
|
|
// hwnd == listbox hwnd
|
|
// idObject == OBJID_WINDOW
|
|
// idChild == new selected item, or CHILDID_SELF if
|
|
// nothing now selected within container.
|
|
// Word '97 propagating a listbox selection change
|
|
// hwnd == SDM window
|
|
// idObject == SDM ID to get at listbox 'control'
|
|
// idChild == new selected item, or CHILDID_SELF if
|
|
// nothing
|
|
|
|
// Example #2:
|
|
// System propagating a menu item selection on the menu bar
|
|
// EVENT_OBJECT_SELECTION
|
|
// hwnd == top level window
|
|
// idObject == OBJID_MENU
|
|
// idChild == ID of child menu bar item selected
|
|
// *
|
|
// Example #3:
|
|
// System propagating a dropdown coming off of said menu bar item
|
|
// EVENT_OBJECT_CREATE
|
|
// hwnd == popup item
|
|
// idObject == OBJID_WINDOW
|
|
// idChild == CHILDID_SELF
|
|
//
|
|
// Example #4:
|
|
//
|
|
// For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the
|
|
// PARENT container in which the zorder is occurring. This is because if
|
|
// one child is zordering, all of them are changing their relative zorder.
|
|
//
|
|
|
|
EVENT_OBJECT_CREATE = $8000; // hwnd + ID + idChild is created item
|
|
{$EXTERNALSYM EVENT_OBJECT_CREATE}
|
|
EVENT_OBJECT_DESTROY = $8001; // hwnd + ID + idChild is destroyed item
|
|
{$EXTERNALSYM EVENT_OBJECT_DESTROY}
|
|
EVENT_OBJECT_SHOW = $8002; // hwnd + ID + idChild is shown item
|
|
{$EXTERNALSYM EVENT_OBJECT_SHOW}
|
|
EVENT_OBJECT_HIDE = $8003; // hwnd + ID + idChild is hidden item
|
|
{$EXTERNALSYM EVENT_OBJECT_HIDE}
|
|
EVENT_OBJECT_REORDER = $8004; // hwnd + ID + idChild is parent of zordering children
|
|
{$EXTERNALSYM EVENT_OBJECT_REORDER}
|
|
|
|
//
|
|
// NOTE:
|
|
// Minimize the number of notifications!
|
|
//
|
|
// When you are hiding a parent object, obviously all child objects are no
|
|
// longer visible on screen. They still have the same "visible" status,
|
|
// but are not truly visible. Hence do not send HIDE notifications for the
|
|
// children also. One implies all. The same goes for SHOW.
|
|
//
|
|
|
|
EVENT_OBJECT_FOCUS = $8005; // hwnd + ID + idChild is focused item
|
|
{$EXTERNALSYM EVENT_OBJECT_FOCUS}
|
|
EVENT_OBJECT_SELECTION = $8006; // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
|
|
{$EXTERNALSYM EVENT_OBJECT_SELECTION}
|
|
EVENT_OBJECT_SELECTIONADD = $8007; // hwnd + ID + idChild is item added
|
|
{$EXTERNALSYM EVENT_OBJECT_SELECTIONADD}
|
|
EVENT_OBJECT_SELECTIONREMOVE = $8008; // hwnd + ID + idChild is item removed
|
|
{$EXTERNALSYM EVENT_OBJECT_SELECTIONREMOVE}
|
|
EVENT_OBJECT_SELECTIONWITHIN = $8009; // hwnd + ID + idChild is parent of changed selected items
|
|
{$EXTERNALSYM EVENT_OBJECT_SELECTIONWITHIN}
|
|
|
|
//
|
|
// NOTES:
|
|
// There is only one "focused" child item in a parent. This is the place
|
|
// keystrokes are going at a given moment. Hence only send a notification
|
|
// about where the NEW focus is going. A NEW item getting the focus already
|
|
// implies that the OLD item is losing it.
|
|
//
|
|
// SELECTION however can be multiple. Hence the different SELECTION
|
|
// notifications. Here's when to use each:
|
|
//
|
|
// (1) Send a SELECTION notification in the simple single selection
|
|
// case (like the focus) when the item with the selection is
|
|
// merely moving to a different item within a container. hwnd + ID
|
|
// is the container control, idChildItem is the new child with the
|
|
// selection.
|
|
//
|
|
// (2) Send a SELECTIONADD notification when a new item has simply been added
|
|
// to the selection within a container. This is appropriate when the
|
|
// number of newly selected items is very small. hwnd + ID is the
|
|
// container control, idChildItem is the new child added to the selection.
|
|
//
|
|
// (3) Send a SELECTIONREMOVE notification when a new item has simply been
|
|
// removed from the selection within a container. This is appropriate
|
|
// when the number of newly selected items is very small, just like
|
|
// SELECTIONADD. hwnd + ID is the container control, idChildItem is the
|
|
// new child removed from the selection.
|
|
//
|
|
// (4) Send a SELECTIONWITHIN notification when the selected items within a
|
|
// control have changed substantially. Rather than propagate a large
|
|
// number of changes to reflect removal for some items, addition of
|
|
// others, just tell somebody who cares that a lot happened. It will
|
|
// be faster an easier for somebody watching to just turn around and
|
|
// query the container control what the new bunch of selected items
|
|
// are.
|
|
//
|
|
|
|
EVENT_OBJECT_STATECHANGE = $800A; // hwnd + ID + idChild is item w/ state change
|
|
{$EXTERNALSYM EVENT_OBJECT_STATECHANGE}
|
|
|
|
//
|
|
// Examples of when to send an EVENT_OBJECT_STATECHANGE include
|
|
// * It is being enabled/disabled (USER does for windows)
|
|
// * It is being pressed/released (USER does for buttons)
|
|
// * It is being checked/unchecked (USER does for radio/check buttons)
|
|
//
|
|
|
|
EVENT_OBJECT_LOCATIONCHANGE = $800B; // hwnd + ID + idChild is moved/sized item
|
|
{$EXTERNALSYM EVENT_OBJECT_LOCATIONCHANGE}
|
|
|
|
//
|
|
// Note:
|
|
// A LOCATIONCHANGE is not sent for every child object when the parent
|
|
// changes shape/moves. Send one notification for the topmost object
|
|
// that is changing. For example, if the user resizes a top level window,
|
|
// USER will generate a LOCATIONCHANGE for it, but not for the menu bar,
|
|
// title bar, scrollbars, etc. that are also changing shape/moving.
|
|
//
|
|
// In other words, it only generates LOCATIONCHANGE notifications for
|
|
// real windows that are moving/sizing. It will not generate a LOCATIONCHANGE
|
|
// for every non-floating child window when the parent moves (the children are
|
|
// logically moving also on screen, but not relative to the parent).
|
|
//
|
|
// Now, if the app itself resizes child windows as a result of being
|
|
// sized, USER will generate LOCATIONCHANGEs for those dudes also because
|
|
// it doesn't know better.
|
|
//
|
|
// Note also that USER will generate LOCATIONCHANGE notifications for two
|
|
// non-window sys objects:
|
|
// (1) System caret
|
|
// (2) Cursor
|
|
//
|
|
|
|
EVENT_OBJECT_NAMECHANGE = $800C; // hwnd + ID + idChild is item w/ name change
|
|
{$EXTERNALSYM EVENT_OBJECT_NAMECHANGE}
|
|
EVENT_OBJECT_DESCRIPTIONCHANGE = $800D; // hwnd + ID + idChild is item w/ desc change
|
|
{$EXTERNALSYM EVENT_OBJECT_DESCRIPTIONCHANGE}
|
|
EVENT_OBJECT_VALUECHANGE = $800E; // hwnd + ID + idChild is item w/ value change
|
|
{$EXTERNALSYM EVENT_OBJECT_VALUECHANGE}
|
|
EVENT_OBJECT_PARENTCHANGE = $800F; // hwnd + ID + idChild is item w/ new parent
|
|
{$EXTERNALSYM EVENT_OBJECT_PARENTCHANGE}
|
|
EVENT_OBJECT_HELPCHANGE = $8010; // hwnd + ID + idChild is item w/ help change
|
|
{$EXTERNALSYM EVENT_OBJECT_HELPCHANGE}
|
|
EVENT_OBJECT_DEFACTIONCHANGE = $8011; // hwnd + ID + idChild is item w/ def action change
|
|
{$EXTERNALSYM EVENT_OBJECT_DEFACTIONCHANGE}
|
|
EVENT_OBJECT_ACCELERATORCHANGE = $8012; // hwnd + ID + idChild is item w/ keybd accel change
|
|
{$EXTERNALSYM EVENT_OBJECT_ACCELERATORCHANGE}
|
|
|
|
//
|
|
// Child IDs
|
|
//
|
|
|
|
//
|
|
// System Sounds (idChild of system SOUND notification)
|
|
//
|
|
|
|
SOUND_SYSTEM_STARTUP = 1;
|
|
{$EXTERNALSYM SOUND_SYSTEM_STARTUP}
|
|
SOUND_SYSTEM_SHUTDOWN = 2;
|
|
{$EXTERNALSYM SOUND_SYSTEM_SHUTDOWN}
|
|
SOUND_SYSTEM_BEEP = 3;
|
|
{$EXTERNALSYM SOUND_SYSTEM_BEEP}
|
|
SOUND_SYSTEM_ERROR = 4;
|
|
{$EXTERNALSYM SOUND_SYSTEM_ERROR}
|
|
SOUND_SYSTEM_QUESTION = 5;
|
|
{$EXTERNALSYM SOUND_SYSTEM_QUESTION}
|
|
SOUND_SYSTEM_WARNING = 6;
|
|
{$EXTERNALSYM SOUND_SYSTEM_WARNING}
|
|
SOUND_SYSTEM_INFORMATION = 7;
|
|
{$EXTERNALSYM SOUND_SYSTEM_INFORMATION}
|
|
SOUND_SYSTEM_MAXIMIZE = 8;
|
|
{$EXTERNALSYM SOUND_SYSTEM_MAXIMIZE}
|
|
SOUND_SYSTEM_MINIMIZE = 9;
|
|
{$EXTERNALSYM SOUND_SYSTEM_MINIMIZE}
|
|
SOUND_SYSTEM_RESTOREUP = 10;
|
|
{$EXTERNALSYM SOUND_SYSTEM_RESTOREUP}
|
|
SOUND_SYSTEM_RESTOREDOWN = 11;
|
|
{$EXTERNALSYM SOUND_SYSTEM_RESTOREDOWN}
|
|
SOUND_SYSTEM_APPSTART = 12;
|
|
{$EXTERNALSYM SOUND_SYSTEM_APPSTART}
|
|
SOUND_SYSTEM_FAULT = 13;
|
|
{$EXTERNALSYM SOUND_SYSTEM_FAULT}
|
|
SOUND_SYSTEM_APPEND = 14;
|
|
{$EXTERNALSYM SOUND_SYSTEM_APPEND}
|
|
SOUND_SYSTEM_MENUCOMMAND = 15;
|
|
{$EXTERNALSYM SOUND_SYSTEM_MENUCOMMAND}
|
|
SOUND_SYSTEM_MENUPOPUP = 16;
|
|
{$EXTERNALSYM SOUND_SYSTEM_MENUPOPUP}
|
|
CSOUND_SYSTEM = 16;
|
|
{$EXTERNALSYM CSOUND_SYSTEM}
|
|
|
|
//
|
|
// System Alerts (indexChild of system ALERT notification)
|
|
//
|
|
|
|
ALERT_SYSTEM_INFORMATIONAL = 1; // MB_INFORMATION
|
|
{$EXTERNALSYM ALERT_SYSTEM_INFORMATIONAL}
|
|
ALERT_SYSTEM_WARNING = 2; // MB_WARNING
|
|
{$EXTERNALSYM ALERT_SYSTEM_WARNING}
|
|
ALERT_SYSTEM_ERROR = 3; // MB_ERROR
|
|
{$EXTERNALSYM ALERT_SYSTEM_ERROR}
|
|
ALERT_SYSTEM_QUERY = 4; // MB_QUESTION
|
|
{$EXTERNALSYM ALERT_SYSTEM_QUERY}
|
|
ALERT_SYSTEM_CRITICAL = 5; // HardSysErrBox
|
|
{$EXTERNALSYM ALERT_SYSTEM_CRITICAL}
|
|
CALERT_SYSTEM = 6;
|
|
{$EXTERNALSYM CALERT_SYSTEM}
|
|
|
|
type
|
|
LPGUITHREADINFO = ^GUITHREADINFO;
|
|
{$EXTERNALSYM LPGUITHREADINFO}
|
|
tagGUITHREADINFO = record
|
|
cbSize: DWORD;
|
|
flags: DWORD;
|
|
hwndActive: HWND;
|
|
hwndFocus: HWND;
|
|
hwndCapture: HWND;
|
|
hwndMenuOwner: HWND;
|
|
hwndMoveSize: HWND;
|
|
hwndCaret: HWND;
|
|
rcCaret: RECT;
|
|
end;
|
|
{$EXTERNALSYM tagGUITHREADINFO}
|
|
GUITHREADINFO = tagGUITHREADINFO;
|
|
{$EXTERNALSYM GUITHREADINFO}
|
|
TGuiThreadInfo = GUITHREADINFO;
|
|
PGuiThreadInfo = LPGUITHREADINFO;
|
|
|
|
const
|
|
GUI_CARETBLINKING = $00000001;
|
|
{$EXTERNALSYM GUI_CARETBLINKING}
|
|
GUI_INMOVESIZE = $00000002;
|
|
{$EXTERNALSYM GUI_INMOVESIZE}
|
|
GUI_INMENUMODE = $00000004;
|
|
{$EXTERNALSYM GUI_INMENUMODE}
|
|
GUI_SYSTEMMENUMODE = $00000008;
|
|
{$EXTERNALSYM GUI_SYSTEMMENUMODE}
|
|
GUI_POPUPMENUMODE = $00000010;
|
|
{$EXTERNALSYM GUI_POPUPMENUMODE}
|
|
GUI_16BITTASK = $00000020;
|
|
{$EXTERNALSYM GUI_16BITTASK}
|
|
|
|
function GetGUIThreadInfo(idThread: DWORD; var pgui: GUITHREADINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetGUIThreadInfo}
|
|
|
|
function GetWindowModuleFileNameA(hwnd: HWND; pszFileName: LPSTR; cchFileNameMax: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetWindowModuleFileNameA}
|
|
function GetWindowModuleFileNameW(hwnd: HWND; pszFileName: LPWSTR; cchFileNameMax: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetWindowModuleFileNameW}
|
|
function GetWindowModuleFileName(hwnd: HWND; pszFileName: LPTSTR; cchFileNameMax: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetWindowModuleFileName}
|
|
|
|
const
|
|
STATE_SYSTEM_UNAVAILABLE = $00000001; // Disabled
|
|
{$EXTERNALSYM STATE_SYSTEM_UNAVAILABLE}
|
|
STATE_SYSTEM_SELECTED = $00000002;
|
|
{$EXTERNALSYM STATE_SYSTEM_SELECTED}
|
|
STATE_SYSTEM_FOCUSED = $00000004;
|
|
{$EXTERNALSYM STATE_SYSTEM_FOCUSED}
|
|
STATE_SYSTEM_PRESSED = $00000008;
|
|
{$EXTERNALSYM STATE_SYSTEM_PRESSED}
|
|
STATE_SYSTEM_CHECKED = $00000010;
|
|
{$EXTERNALSYM STATE_SYSTEM_CHECKED}
|
|
STATE_SYSTEM_MIXED = $00000020; // 3-state checkbox or toolbar button
|
|
{$EXTERNALSYM STATE_SYSTEM_MIXED}
|
|
STATE_SYSTEM_INDETERMINATE = STATE_SYSTEM_MIXED;
|
|
{$EXTERNALSYM STATE_SYSTEM_INDETERMINATE}
|
|
STATE_SYSTEM_READONLY = $00000040;
|
|
{$EXTERNALSYM STATE_SYSTEM_READONLY}
|
|
STATE_SYSTEM_HOTTRACKED = $00000080;
|
|
{$EXTERNALSYM STATE_SYSTEM_HOTTRACKED}
|
|
STATE_SYSTEM_DEFAULT = $00000100;
|
|
{$EXTERNALSYM STATE_SYSTEM_DEFAULT}
|
|
STATE_SYSTEM_EXPANDED = $00000200;
|
|
{$EXTERNALSYM STATE_SYSTEM_EXPANDED}
|
|
STATE_SYSTEM_COLLAPSED = $00000400;
|
|
{$EXTERNALSYM STATE_SYSTEM_COLLAPSED}
|
|
STATE_SYSTEM_BUSY = $00000800;
|
|
{$EXTERNALSYM STATE_SYSTEM_BUSY}
|
|
STATE_SYSTEM_FLOATING = $00001000; // Children "owned" not "contained" by parent
|
|
{$EXTERNALSYM STATE_SYSTEM_FLOATING}
|
|
STATE_SYSTEM_MARQUEED = $00002000;
|
|
{$EXTERNALSYM STATE_SYSTEM_MARQUEED}
|
|
STATE_SYSTEM_ANIMATED = $00004000;
|
|
{$EXTERNALSYM STATE_SYSTEM_ANIMATED}
|
|
STATE_SYSTEM_INVISIBLE = $00008000;
|
|
{$EXTERNALSYM STATE_SYSTEM_INVISIBLE}
|
|
STATE_SYSTEM_OFFSCREEN = $00010000;
|
|
{$EXTERNALSYM STATE_SYSTEM_OFFSCREEN}
|
|
STATE_SYSTEM_SIZEABLE = $00020000;
|
|
{$EXTERNALSYM STATE_SYSTEM_SIZEABLE}
|
|
STATE_SYSTEM_MOVEABLE = $00040000;
|
|
{$EXTERNALSYM STATE_SYSTEM_MOVEABLE}
|
|
STATE_SYSTEM_SELFVOICING = $00080000;
|
|
{$EXTERNALSYM STATE_SYSTEM_SELFVOICING}
|
|
STATE_SYSTEM_FOCUSABLE = $00100000;
|
|
{$EXTERNALSYM STATE_SYSTEM_FOCUSABLE}
|
|
STATE_SYSTEM_SELECTABLE = $00200000;
|
|
{$EXTERNALSYM STATE_SYSTEM_SELECTABLE}
|
|
STATE_SYSTEM_LINKED = $00400000;
|
|
{$EXTERNALSYM STATE_SYSTEM_LINKED}
|
|
STATE_SYSTEM_TRAVERSED = $00800000;
|
|
{$EXTERNALSYM STATE_SYSTEM_TRAVERSED}
|
|
STATE_SYSTEM_MULTISELECTABLE = $01000000; // Supports multiple selection
|
|
{$EXTERNALSYM STATE_SYSTEM_MULTISELECTABLE}
|
|
STATE_SYSTEM_EXTSELECTABLE = $02000000; // Supports extended selection
|
|
{$EXTERNALSYM STATE_SYSTEM_EXTSELECTABLE}
|
|
STATE_SYSTEM_ALERT_LOW = $04000000; // This information is of low priority
|
|
{$EXTERNALSYM STATE_SYSTEM_ALERT_LOW}
|
|
STATE_SYSTEM_ALERT_MEDIUM = $08000000; // This information is of medium priority
|
|
{$EXTERNALSYM STATE_SYSTEM_ALERT_MEDIUM}
|
|
STATE_SYSTEM_ALERT_HIGH = $10000000; // This information is of high priority
|
|
{$EXTERNALSYM STATE_SYSTEM_ALERT_HIGH}
|
|
STATE_SYSTEM_PROTECTED = $20000000; // access to this is restricted
|
|
{$EXTERNALSYM STATE_SYSTEM_PROTECTED}
|
|
STATE_SYSTEM_VALID = $3FFFFFFF;
|
|
{$EXTERNALSYM STATE_SYSTEM_VALID}
|
|
|
|
CCHILDREN_TITLEBAR = 5;
|
|
{$EXTERNALSYM CCHILDREN_TITLEBAR}
|
|
CCHILDREN_SCROLLBAR = 5;
|
|
{$EXTERNALSYM CCHILDREN_SCROLLBAR}
|
|
|
|
//
|
|
// Information about the global cursor.
|
|
//
|
|
|
|
type
|
|
LPCURSORINFO = ^CURSORINFO;
|
|
{$EXTERNALSYM LPCURSORINFO}
|
|
tagCURSORINFO = record
|
|
cbSize: DWORD;
|
|
flags: DWORD;
|
|
hCursor: HCURSOR;
|
|
ptScreenPos: POINT;
|
|
end;
|
|
{$EXTERNALSYM tagCURSORINFO}
|
|
CURSORINFO = tagCURSORINFO;
|
|
{$EXTERNALSYM CURSORINFO}
|
|
TCursorInfo = CURSORINFO;
|
|
PCursorInfo = LPCURSORINFO;
|
|
|
|
const
|
|
CURSOR_SHOWING = $00000001;
|
|
{$EXTERNALSYM CURSOR_SHOWING}
|
|
|
|
function GetCursorInfo(var pci: CURSORINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetCursorInfo}
|
|
|
|
//
|
|
// Window information snapshot
|
|
//
|
|
|
|
type
|
|
LPWINDOWINFO = ^WINDOWINFO;
|
|
{$EXTERNALSYM LPWINDOWINFO}
|
|
tagWINDOWINFO = record
|
|
cbSize: DWORD;
|
|
rcWindow: RECT;
|
|
rcClient: RECT;
|
|
dwStyle: DWORD;
|
|
dwExStyle: DWORD;
|
|
dwWindowStatus: DWORD;
|
|
cxWindowBorders: UINT;
|
|
cyWindowBorders: UINT;
|
|
atomWindowType: ATOM;
|
|
wCreatorVersion: WORD;
|
|
end;
|
|
{$EXTERNALSYM tagWINDOWINFO}
|
|
WINDOWINFO = tagWINDOWINFO;
|
|
{$EXTERNALSYM WINDOWINFO}
|
|
TWindowInfo = WINDOWINFO;
|
|
PWindowInfo = LPWINDOWINFO;
|
|
|
|
const
|
|
WS_ACTIVECAPTION = $0001;
|
|
{$EXTERNALSYM WS_ACTIVECAPTION}
|
|
|
|
function GetWindowInfo(hwnd: HWND; var pwi: WINDOWINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetWindowInfo}
|
|
|
|
//
|
|
// Titlebar information.
|
|
//
|
|
|
|
type
|
|
LPTITLEBARINFO = ^TITLEBARINFO;
|
|
{$EXTERNALSYM LPTITLEBARINFO}
|
|
tagTITLEBARINFO = record
|
|
cbSize: DWORD;
|
|
rcTitleBar: RECT;
|
|
rgstate: array [0..CCHILDREN_TITLEBAR] of DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagTITLEBARINFO}
|
|
TITLEBARINFO = tagTITLEBARINFO;
|
|
{$EXTERNALSYM TITLEBARINFO}
|
|
TTitleBarInfo = TITLEBARINFO;
|
|
PTitleBarInfo = LPTITLEBARINFO;
|
|
|
|
function GetTitleBarInfo(hwnd: HWND; var pti: TITLEBARINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetTitleBarInfo}
|
|
|
|
//
|
|
// Menubar information
|
|
//
|
|
|
|
type
|
|
LPMENUBARINFO = ^MENUBARINFO;
|
|
{$EXTERNALSYM LPMENUBARINFO}
|
|
tagMENUBARINFO = record
|
|
cbSize: DWORD;
|
|
rcBar: RECT; // rect of bar, popup, item
|
|
hMenu: HMENU; // real menu handle of bar, popup
|
|
hwndMenu: HWND; // hwnd of item submenu if one
|
|
Flags: DWORD;
|
|
// BOOL fBarFocused:1; // bar, popup has the focus
|
|
// BOOL fFocused:1; // item has the focus
|
|
end;
|
|
{$EXTERNALSYM tagMENUBARINFO}
|
|
MENUBARINFO = tagMENUBARINFO;
|
|
{$EXTERNALSYM MENUBARINFO}
|
|
TMenuBarInfo = MENUBARINFO;
|
|
PMenuBarInfo = LPMENUBARINFO;
|
|
|
|
function GetMenuBarInfo(hwnd: HWND; idObject: LONG; idItem: LONG;
|
|
var pmbi: MENUBARINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetMenuBarInfo}
|
|
|
|
//
|
|
// Scrollbar information
|
|
//
|
|
|
|
type
|
|
LPSCROLLBARINFO = ^SCROLLBARINFO;
|
|
{$EXTERNALSYM LPSCROLLBARINFO}
|
|
tagSCROLLBARINFO = record
|
|
cbSize: DWORD;
|
|
rcScrollBar: RECT;
|
|
dxyLineButton: Integer;
|
|
xyThumbTop: Integer;
|
|
xyThumbBottom: Integer;
|
|
reserved: Integer;
|
|
rgstate: array [0..CCHILDREN_SCROLLBAR] of DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagSCROLLBARINFO}
|
|
SCROLLBARINFO = tagSCROLLBARINFO;
|
|
{$EXTERNALSYM SCROLLBARINFO}
|
|
TScrollBarInfo = SCROLLBARINFO;
|
|
PScrollBarInfo = LPSCROLLBARINFO;
|
|
|
|
function GetScrollBarInfo(hwnd: HWND; idObject: LONG; var psbi: SCROLLBARINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetScrollBarInfo}
|
|
|
|
//
|
|
// Combobox information
|
|
//
|
|
|
|
type
|
|
LPCOMBOBOXINFO = ^COMBOBOXINFO;
|
|
{$EXTERNALSYM LPCOMBOBOXINFO}
|
|
tagCOMBOBOXINFO = record
|
|
cbSize: DWORD;
|
|
rcItem: RECT;
|
|
rcButton: RECT;
|
|
stateButton: DWORD;
|
|
hwndCombo: HWND;
|
|
hwndItem: HWND;
|
|
hwndList: HWND;
|
|
end;
|
|
{$EXTERNALSYM tagCOMBOBOXINFO}
|
|
COMBOBOXINFO = tagCOMBOBOXINFO;
|
|
{$EXTERNALSYM COMBOBOXINFO}
|
|
TComboBoxInfo = COMBOBOXINFO;
|
|
PComboBoxInfo = LPCOMBOBOXINFO;
|
|
|
|
function GetComboBoxInfo(hwndCombo: HWND; var pcbi: COMBOBOXINFO): BOOL; stdcall;
|
|
{$EXTERNALSYM GetComboBoxInfo}
|
|
|
|
//
|
|
// The "real" ancestor window
|
|
//
|
|
|
|
const
|
|
GA_PARENT = 1;
|
|
{$EXTERNALSYM GA_PARENT}
|
|
GA_ROOT = 2;
|
|
{$EXTERNALSYM GA_ROOT}
|
|
GA_ROOTOWNER = 3;
|
|
{$EXTERNALSYM GA_ROOTOWNER}
|
|
|
|
function GetAncestor(hwnd: HWND; gaFlags: UINT): HWND; stdcall;
|
|
{$EXTERNALSYM GetAncestor}
|
|
|
|
//
|
|
// This gets the REAL child window at the point. If it is in the dead
|
|
// space of a group box, it will try a sibling behind it. But static
|
|
// fields will get returned. In other words, it is kind of a cross between
|
|
// ChildWindowFromPointEx and WindowFromPoint.
|
|
//
|
|
|
|
function RealChildWindowFromPoint(hwndParent: HWND; ptParentClientCoords: POINT): HWND; stdcall;
|
|
{$EXTERNALSYM RealChildWindowFromPoint}
|
|
|
|
//
|
|
// This gets the name of the window TYPE, not class. This allows us to
|
|
// recognize ThunderButton32 et al.
|
|
//
|
|
|
|
function RealGetWindowClassA(hwnd: HWND; pszType: LPSTR; cchType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM RealGetWindowClassA}
|
|
|
|
//
|
|
// This gets the name of the window TYPE, not class. This allows us to
|
|
// recognize ThunderButton32 et al.
|
|
//
|
|
|
|
function RealGetWindowClassW(hwnd: HWND; pszType: LPWSTR; cchType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM RealGetWindowClassW}
|
|
function RealGetWindowClass(hwnd: HWND; pszType: LPTSTR; cchType: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM RealGetWindowClass}
|
|
|
|
//
|
|
// Alt-Tab Switch window information.
|
|
//
|
|
|
|
type
|
|
LPALTTABINFO = ^ALTTABINFO;
|
|
{$EXTERNALSYM LPALTTABINFO}
|
|
tagALTTABINFO = record
|
|
cbSize: DWORD;
|
|
cItems: Integer;
|
|
cColumns: Integer;
|
|
cRows: Integer;
|
|
iColFocus: Integer;
|
|
iRowFocus: Integer;
|
|
cxItem: Integer;
|
|
cyItem: Integer;
|
|
ptStart: POINT;
|
|
end;
|
|
{$EXTERNALSYM tagALTTABINFO}
|
|
ALTTABINFO = tagALTTABINFO;
|
|
{$EXTERNALSYM ALTTABINFO}
|
|
TAltTabInfo = ALTTABINFO;
|
|
PAltTabInfo = LPALTTABINFO;
|
|
|
|
function GetAltTabInfoA(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
|
|
pszItemText: LPSTR; cchItemText: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetAltTabInfoA}
|
|
function GetAltTabInfoW(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
|
|
pszItemText: LPWSTR; cchItemText: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetAltTabInfoW}
|
|
function GetAltTabInfo(hwnd: HWND; iItem: Integer; var pati: ALTTABINFO;
|
|
pszItemText: LPTSTR; cchItemText: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM GetAltTabInfo}
|
|
|
|
//
|
|
// Listbox information.
|
|
// Returns the number of items per row.
|
|
//
|
|
|
|
function GetListBoxInfo(hwnd: HWND): DWORD; stdcall;
|
|
{$EXTERNALSYM GetListBoxInfo}
|
|
|
|
function LockWorkStation: BOOL; stdcall;
|
|
{$EXTERNALSYM LockWorkStation}
|
|
|
|
function UserHandleGrantAccess(hUserHandle, hJob: HANDLE; bGrant: BOOL): BOOL; stdcall;
|
|
{$EXTERNALSYM UserHandleGrantAccess}
|
|
|
|
//
|
|
// Raw Input Messages.
|
|
//
|
|
|
|
type
|
|
HRAWINPUT = HANDLE;
|
|
{$EXTERNALSYM HRAWINPUT}
|
|
|
|
//
|
|
// WM_INPUT wParam
|
|
//
|
|
|
|
//
|
|
// Use this macro to get the input code from wParam.
|
|
//
|
|
|
|
function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
|
|
{$EXTERNALSYM GET_RAWINPUT_CODE_WPARAM}
|
|
|
|
//
|
|
// The input is in the regular message flow,
|
|
// the app is required to call DefWindowProc
|
|
// so that the system can perform clean ups.
|
|
//
|
|
|
|
const
|
|
RIM_INPUT = 0;
|
|
{$EXTERNALSYM RIM_INPUT}
|
|
|
|
//
|
|
// The input is sink only. The app is expected
|
|
// to behave nicely.
|
|
//
|
|
|
|
RIM_INPUTSINK = 1;
|
|
{$EXTERNALSYM RIM_INPUTSINK}
|
|
|
|
//
|
|
// Raw Input data header
|
|
//
|
|
|
|
type
|
|
tagRAWINPUTHEADER = record
|
|
dwType: DWORD;
|
|
dwSize: DWORD;
|
|
hDevice: HANDLE;
|
|
wParam: WPARAM;
|
|
end;
|
|
{$EXTERNALSYM tagRAWINPUTHEADER}
|
|
RAWINPUTHEADER = tagRAWINPUTHEADER;
|
|
{$EXTERNALSYM RAWINPUTHEADER}
|
|
PRAWINPUTHEADER = ^RAWINPUTHEADER;
|
|
{$EXTERNALSYM PRAWINPUTHEADER}
|
|
LPRAWINPUTHEADER = ^RAWINPUTHEADER;
|
|
{$EXTERNALSYM LPRAWINPUTHEADER}
|
|
TRawInputHeader = RAWINPUTHEADER;
|
|
|
|
//
|
|
// Type of the raw input
|
|
//
|
|
|
|
const
|
|
RIM_TYPEMOUSE = 0;
|
|
{$EXTERNALSYM RIM_TYPEMOUSE}
|
|
RIM_TYPEKEYBOARD = 1;
|
|
{$EXTERNALSYM RIM_TYPEKEYBOARD}
|
|
RIM_TYPEHID = 2;
|
|
{$EXTERNALSYM RIM_TYPEHID}
|
|
|
|
//
|
|
// Raw format of the mouse input
|
|
//
|
|
|
|
type
|
|
tagRAWMOUSE = record
|
|
//
|
|
// Indicator flags.
|
|
//
|
|
usFlags: USHORT;
|
|
|
|
//
|
|
// The transition state of the mouse buttons.
|
|
//
|
|
|
|
union: record
|
|
case Integer of
|
|
0: (
|
|
ulButtons: ULONG);
|
|
1: (
|
|
usButtonFlags: USHORT;
|
|
usButtonData: USHORT);
|
|
end;
|
|
|
|
//
|
|
// The raw state of the mouse buttons.
|
|
//
|
|
ulRawButtons: ULONG;
|
|
|
|
//
|
|
// The signed relative or absolute motion in the X direction.
|
|
//
|
|
lLastX: LONG;
|
|
|
|
//
|
|
// The signed relative or absolute motion in the Y direction.
|
|
//
|
|
lLastY: LONG;
|
|
|
|
//
|
|
// Device-specific additional information for the event.
|
|
//
|
|
ulExtraInformation: ULONG;
|
|
end;
|
|
{$EXTERNALSYM tagRAWMOUSE}
|
|
RAWMOUSE = tagRAWMOUSE;
|
|
{$EXTERNALSYM RAWMOUSE}
|
|
PRAWMOUSE = ^RAWMOUSE;
|
|
{$EXTERNALSYM PRAWMOUSE}
|
|
LPRAWMOUSE = ^RAWMOUSE;
|
|
{$EXTERNALSYM LPRAWMOUSE}
|
|
TRawMouse = RAWMOUSE;
|
|
|
|
//
|
|
// Define the mouse button state indicators.
|
|
//
|
|
|
|
const
|
|
RI_MOUSE_LEFT_BUTTON_DOWN = $0001; // Left Button changed to down.
|
|
{$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_DOWN}
|
|
RI_MOUSE_LEFT_BUTTON_UP = $0002; // Left Button changed to up.
|
|
{$EXTERNALSYM RI_MOUSE_LEFT_BUTTON_UP}
|
|
RI_MOUSE_RIGHT_BUTTON_DOWN = $0004; // Right Button changed to down.
|
|
{$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_DOWN}
|
|
RI_MOUSE_RIGHT_BUTTON_UP = $0008; // Right Button changed to up.
|
|
{$EXTERNALSYM RI_MOUSE_RIGHT_BUTTON_UP}
|
|
RI_MOUSE_MIDDLE_BUTTON_DOWN = $0010; // Middle Button changed to down.
|
|
{$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_DOWN}
|
|
RI_MOUSE_MIDDLE_BUTTON_UP = $0020; // Middle Button changed to up.
|
|
{$EXTERNALSYM RI_MOUSE_MIDDLE_BUTTON_UP}
|
|
|
|
RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_1_DOWN}
|
|
RI_MOUSE_BUTTON_1_UP = RI_MOUSE_LEFT_BUTTON_UP;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_1_UP}
|
|
RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_2_DOWN}
|
|
RI_MOUSE_BUTTON_2_UP = RI_MOUSE_RIGHT_BUTTON_UP;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_2_UP}
|
|
RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_3_DOWN}
|
|
RI_MOUSE_BUTTON_3_UP = RI_MOUSE_MIDDLE_BUTTON_UP;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_3_UP}
|
|
|
|
RI_MOUSE_BUTTON_4_DOWN = $0040;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_4_DOWN}
|
|
RI_MOUSE_BUTTON_4_UP = $0080;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_4_UP}
|
|
RI_MOUSE_BUTTON_5_DOWN = $0100;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_5_DOWN}
|
|
RI_MOUSE_BUTTON_5_UP = $0200;
|
|
{$EXTERNALSYM RI_MOUSE_BUTTON_5_UP}
|
|
|
|
//
|
|
// If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData.
|
|
// Take it as a signed value.
|
|
//
|
|
|
|
RI_MOUSE_WHEEL = $0400;
|
|
{$EXTERNALSYM RI_MOUSE_WHEEL}
|
|
|
|
//
|
|
// Define the mouse indicator flags.
|
|
//
|
|
|
|
MOUSE_MOVE_RELATIVE = 0;
|
|
{$EXTERNALSYM MOUSE_MOVE_RELATIVE}
|
|
MOUSE_MOVE_ABSOLUTE = 1;
|
|
{$EXTERNALSYM MOUSE_MOVE_ABSOLUTE}
|
|
MOUSE_VIRTUAL_DESKTOP = $02; // the coordinates are mapped to the virtual desktop
|
|
{$EXTERNALSYM MOUSE_VIRTUAL_DESKTOP}
|
|
MOUSE_ATTRIBUTES_CHANGED = $04; // requery for mouse attributes
|
|
{$EXTERNALSYM MOUSE_ATTRIBUTES_CHANGED}
|
|
|
|
//
|
|
// Raw format of the keyboard input
|
|
//
|
|
|
|
type
|
|
tagRAWKEYBOARD = record
|
|
//
|
|
// The "make" scan code (key depression).
|
|
//
|
|
MakeCode: USHORT;
|
|
|
|
//
|
|
// The flags field indicates a "break" (key release) and other
|
|
// miscellaneous scan code information defined in ntddkbd.h.
|
|
//
|
|
Flags: USHORT;
|
|
|
|
Reserved: USHORT;
|
|
|
|
//
|
|
// Windows message compatible information
|
|
//
|
|
VKey: USHORT;
|
|
Message: UINT;
|
|
|
|
//
|
|
// Device-specific additional information for the event.
|
|
//
|
|
ExtraInformation: ULONG;
|
|
end;
|
|
{$EXTERNALSYM tagRAWKEYBOARD}
|
|
RAWKEYBOARD = tagRAWKEYBOARD;
|
|
{$EXTERNALSYM RAWKEYBOARD}
|
|
PRAWKEYBOARD = ^RAWKEYBOARD;
|
|
{$EXTERNALSYM PRAWKEYBOARD}
|
|
LPRAWKEYBOARD = ^RAWKEYBOARD;
|
|
{$EXTERNALSYM LPRAWKEYBOARD}
|
|
TRawKeyBoard = RAWKEYBOARD;
|
|
|
|
//
|
|
// Define the keyboard overrun MakeCode.
|
|
//
|
|
|
|
const
|
|
KEYBOARD_OVERRUN_MAKE_CODE = $FF;
|
|
{$EXTERNALSYM KEYBOARD_OVERRUN_MAKE_CODE}
|
|
|
|
//
|
|
// Define the keyboard input data Flags.
|
|
//
|
|
|
|
RI_KEY_MAKE = 0;
|
|
{$EXTERNALSYM RI_KEY_MAKE}
|
|
RI_KEY_BREAK = 1;
|
|
{$EXTERNALSYM RI_KEY_BREAK}
|
|
RI_KEY_E0 = 2;
|
|
{$EXTERNALSYM RI_KEY_E0}
|
|
RI_KEY_E1 = 4;
|
|
{$EXTERNALSYM RI_KEY_E1}
|
|
RI_KEY_TERMSRV_SET_LED = 8;
|
|
{$EXTERNALSYM RI_KEY_TERMSRV_SET_LED}
|
|
RI_KEY_TERMSRV_SHADOW = $10;
|
|
{$EXTERNALSYM RI_KEY_TERMSRV_SHADOW}
|
|
|
|
//
|
|
// Raw format of the input from Human Input Devices
|
|
//
|
|
|
|
type
|
|
tagRAWHID = record
|
|
dwSizeHid: DWORD; // byte size of each report
|
|
dwCount: DWORD; // number of input packed
|
|
bRawData: array [0..0] of BYTE;
|
|
end;
|
|
{$EXTERNALSYM tagRAWHID}
|
|
RAWHID = tagRAWHID;
|
|
{$EXTERNALSYM RAWHID}
|
|
PRAWHID = ^RAWHID;
|
|
{$EXTERNALSYM PRAWHID}
|
|
LPRAWHID = ^RAWHID;
|
|
{$EXTERNALSYM LPRAWHID}
|
|
TRawHid = RAWHID;
|
|
|
|
//
|
|
// RAWINPUT data structure.
|
|
//
|
|
|
|
tagRAWINPUT = record
|
|
header: RAWINPUTHEADER;
|
|
case Integer of
|
|
0: (mouse: RAWMOUSE);
|
|
1: (keyboard: RAWKEYBOARD);
|
|
2: (hid: RAWHID);
|
|
end;
|
|
{$EXTERNALSYM tagRAWINPUT}
|
|
RAWINPUT = tagRAWINPUT;
|
|
{$EXTERNALSYM RAWINPUT}
|
|
PRAWINPUT = ^RAWINPUT;
|
|
{$EXTERNALSYM PRAWINPUT}
|
|
LPRAWINPUT = ^RAWINPUT;
|
|
{$EXTERNALSYM LPRAWINPUT}
|
|
TRawInput = RAWINPUT;
|
|
|
|
function RAWINPUT_ALIGN(x: Pointer): Pointer;
|
|
{$EXTERNALSYM RAWINPUT_ALIGN}
|
|
|
|
function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
|
|
{$EXTERNALSYM NEXTRAWINPUTBLOCK}
|
|
|
|
//
|
|
// Flags for GetRawInputData
|
|
//
|
|
|
|
const
|
|
RID_INPUT = $10000003;
|
|
{$EXTERNALSYM RID_INPUT}
|
|
RID_HEADER = $10000005;
|
|
{$EXTERNALSYM RID_HEADER}
|
|
|
|
function GetRawInputData(hRawInput: HRAWINPUT; uiCommand: UINT; pData: LPVOID;
|
|
var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputData}
|
|
|
|
//
|
|
// Raw Input Device Information
|
|
//
|
|
|
|
const
|
|
RIDI_PREPARSEDDATA = $20000005;
|
|
{$EXTERNALSYM RIDI_PREPARSEDDATA}
|
|
RIDI_DEVICENAME = $20000007; // the return valus is the character length, not the byte size
|
|
{$EXTERNALSYM RIDI_DEVICENAME}
|
|
RIDI_DEVICEINFO = $2000000b;
|
|
{$EXTERNALSYM RIDI_DEVICEINFO}
|
|
|
|
type
|
|
PRID_DEVICE_INFO_MOUSE = ^RID_DEVICE_INFO_MOUSE;
|
|
{$EXTERNALSYM PRID_DEVICE_INFO_MOUSE}
|
|
tagRID_DEVICE_INFO_MOUSE = record
|
|
dwId: DWORD;
|
|
dwNumberOfButtons: DWORD;
|
|
dwSampleRate: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagRID_DEVICE_INFO_MOUSE}
|
|
RID_DEVICE_INFO_MOUSE = tagRID_DEVICE_INFO_MOUSE;
|
|
{$EXTERNALSYM RID_DEVICE_INFO_MOUSE}
|
|
TRidDeviceInfoMouse = RID_DEVICE_INFO_MOUSE;
|
|
PRidDeviceInfoMouse = PRID_DEVICE_INFO_MOUSE;
|
|
|
|
PRID_DEVICE_INFO_KEYBOARD = ^RID_DEVICE_INFO_KEYBOARD;
|
|
{$EXTERNALSYM PRID_DEVICE_INFO_KEYBOARD}
|
|
tagRID_DEVICE_INFO_KEYBOARD = record
|
|
dwType: DWORD;
|
|
dwSubType: DWORD;
|
|
dwKeyboardMode: DWORD;
|
|
dwNumberOfFunctionKeys: DWORD;
|
|
dwNumberOfIndicators: DWORD;
|
|
dwNumberOfKeysTotal: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagRID_DEVICE_INFO_KEYBOARD}
|
|
RID_DEVICE_INFO_KEYBOARD = tagRID_DEVICE_INFO_KEYBOARD;
|
|
{$EXTERNALSYM RID_DEVICE_INFO_KEYBOARD}
|
|
TRidDeviceInfoKeyboard = RID_DEVICE_INFO_KEYBOARD;
|
|
PRidDeviceInfoKeyboard = PRID_DEVICE_INFO_KEYBOARD;
|
|
|
|
PRID_DEVICE_INFO_HID = ^RID_DEVICE_INFO_HID;
|
|
{$EXTERNALSYM PRID_DEVICE_INFO_HID}
|
|
tagRID_DEVICE_INFO_HID = record
|
|
dwVendorId: DWORD;
|
|
dwProductId: DWORD;
|
|
dwVersionNumber: DWORD;
|
|
//
|
|
// Top level collection UsagePage and Usage
|
|
//
|
|
usUsagePage: USHORT;
|
|
usUsage: USHORT;
|
|
end;
|
|
{$EXTERNALSYM tagRID_DEVICE_INFO_HID}
|
|
RID_DEVICE_INFO_HID = tagRID_DEVICE_INFO_HID;
|
|
{$EXTERNALSYM RID_DEVICE_INFO_HID}
|
|
TRidDeviceInfoHid = RID_DEVICE_INFO_HID;
|
|
PRidDeviceInfoHid = PRID_DEVICE_INFO_HID;
|
|
|
|
tagRID_DEVICE_INFO = record
|
|
cbSize: DWORD;
|
|
dwType: DWORD;
|
|
case Integer of
|
|
0: (mouse: RID_DEVICE_INFO_MOUSE);
|
|
1: (keyboard: RID_DEVICE_INFO_KEYBOARD);
|
|
2: (hid: RID_DEVICE_INFO_HID);
|
|
end;
|
|
{$EXTERNALSYM tagRID_DEVICE_INFO}
|
|
RID_DEVICE_INFO = tagRID_DEVICE_INFO;
|
|
{$EXTERNALSYM RID_DEVICE_INFO}
|
|
PRID_DEVICE_INFO = ^RID_DEVICE_INFO;
|
|
{$EXTERNALSYM PRID_DEVICE_INFO}
|
|
LPRID_DEVICE_INFO = ^RID_DEVICE_INFO;
|
|
{$EXTERNALSYM LPRID_DEVICE_INFO}
|
|
TRidDeviceInfo = RID_DEVICE_INFO;
|
|
PRidDeviceInfo = PRID_DEVICE_INFO;
|
|
|
|
function GetRawInputDeviceInfoA(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
|
|
var pcbSize: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputDeviceInfoA}
|
|
function GetRawInputDeviceInfoW(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
|
|
var pcbSize: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputDeviceInfoW}
|
|
function GetRawInputDeviceInfo(hDevice: HANDLE; uiCommand: UINT; pData: LPVOID;
|
|
var pcbSize: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputDeviceInfo}
|
|
|
|
//
|
|
// Raw Input Bulk Read: GetRawInputBuffer
|
|
//
|
|
|
|
function GetRawInputBuffer(pData: PRAWINPUT; var pcbSize: UINT; cbSizeHeader: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputBuffer}
|
|
|
|
//
|
|
// Raw Input request APIs
|
|
//
|
|
|
|
type
|
|
LPRAWINPUTDEVICE = ^RAWINPUTDEVICE;
|
|
{$EXTERNALSYM LPRAWINPUTDEVICE}
|
|
PRAWINPUTDEVICE = ^RAWINPUTDEVICE;
|
|
{$EXTERNALSYM PRAWINPUTDEVICE}
|
|
tagRAWINPUTDEVICE = record
|
|
usUsagePage: USHORT; // Toplevel collection UsagePage
|
|
usUsage: USHORT; // Toplevel collection Usage
|
|
dwFlags: DWORD;
|
|
hwndTarget: HWND; // Target hwnd. NULL = follows keyboard focus
|
|
end;
|
|
{$EXTERNALSYM tagRAWINPUTDEVICE}
|
|
RAWINPUTDEVICE = tagRAWINPUTDEVICE;
|
|
{$EXTERNALSYM RAWINPUTDEVICE}
|
|
TRawInputDevice = RAWINPUTDEVICE;
|
|
|
|
const
|
|
RIDEV_REMOVE = $00000001;
|
|
{$EXTERNALSYM RIDEV_REMOVE}
|
|
RIDEV_EXCLUDE = $00000010;
|
|
{$EXTERNALSYM RIDEV_EXCLUDE}
|
|
RIDEV_PAGEONLY = $00000020;
|
|
{$EXTERNALSYM RIDEV_PAGEONLY}
|
|
RIDEV_NOLEGACY = $00000030;
|
|
{$EXTERNALSYM RIDEV_NOLEGACY}
|
|
RIDEV_INPUTSINK = $00000100;
|
|
{$EXTERNALSYM RIDEV_INPUTSINK}
|
|
RIDEV_CAPTUREMOUSE = $00000200; // effective when mouse nolegacy is specified, otherwise it would be an error
|
|
{$EXTERNALSYM RIDEV_CAPTUREMOUSE}
|
|
RIDEV_NOHOTKEYS = $00000200; // effective for keyboard.
|
|
{$EXTERNALSYM RIDEV_NOHOTKEYS}
|
|
RIDEV_APPKEYS = $00000400; // effective for keyboard.
|
|
{$EXTERNALSYM RIDEV_APPKEYS}
|
|
RIDEV_EXMODEMASK = $000000F0;
|
|
{$EXTERNALSYM RIDEV_EXMODEMASK}
|
|
|
|
function RIDEV_EXMODE(mode: DWORD): DWORD;
|
|
{$EXTERNALSYM RIDEV_EXMODE}
|
|
|
|
function RegisterRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
|
|
uiNumDevices: UINT; cbSize: UINT): BOOL; stdcall;
|
|
{$EXTERNALSYM RegisterRawInputDevices}
|
|
|
|
function GetRegisteredRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE;
|
|
var puiNumDevices: UINT; cbSize: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRegisteredRawInputDevices}
|
|
|
|
type
|
|
PRAWINPUTDEVICELIST = ^RAWINPUTDEVICELIST;
|
|
{$EXTERNALSYM PRAWINPUTDEVICELIST}
|
|
tagRAWINPUTDEVICELIST = record
|
|
hDevice: HANDLE;
|
|
dwType: DWORD;
|
|
end;
|
|
{$EXTERNALSYM tagRAWINPUTDEVICELIST}
|
|
RAWINPUTDEVICELIST = tagRAWINPUTDEVICELIST;
|
|
{$EXTERNALSYM RAWINPUTDEVICELIST}
|
|
TRawInputDeviceList = RAWINPUTDEVICELIST;
|
|
|
|
function GetRawInputDeviceList(pRawInputDeviceList: PRAWINPUTDEVICELIST; var puiNumDevices: UINT;
|
|
cbSize: UINT): UINT; stdcall;
|
|
{$EXTERNALSYM GetRawInputDeviceList}
|
|
|
|
function DefRawInputProc(paRawInput: PRAWINPUT; nInput: Integer; cbSizeHeader: UINT): LRESULT; stdcall;
|
|
{$EXTERNALSYM DefRawInputProc}
|
|
|
|
{$ENDIF JWA_IMPLEMENTATIONSECTION}
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
implementation
|
|
//uses ...
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|
|
|
|
{$IFNDEF JWA_INTERFACESECTION}
|
|
|
|
{$IFNDEF JWA_INCLUDEMODE}
|
|
const
|
|
user32 = 'user32.dll';
|
|
{$IFDEF UNICODE}
|
|
AWSuffix = 'W';
|
|
{$ELSE}
|
|
AWSuffix = 'A';
|
|
{$ENDIF UNICODE}
|
|
{$ENDIF JWA_INCLUDEMODE}
|
|
|
|
function IS_INTRESOURCE(wInteger: WORD): BOOL;
|
|
begin
|
|
Result := (ULONG_PTR(wInteger) shr 16) = 0;
|
|
end;
|
|
|
|
function GET_WHEEL_DELTA_WPARAM(wParam: WPARAM): SHORT;
|
|
begin
|
|
Result := SHORT(HIWORD(wParam));
|
|
end;
|
|
|
|
function GET_KEYSTATE_WPARAM(wParam: WPARAM): Integer;
|
|
begin
|
|
Result := LOWORD(wParam);
|
|
end;
|
|
|
|
function GET_NCHITTEST_WPARAM(wParam: WPARAM): Shortint;
|
|
begin
|
|
Result := LOWORD(wParam);
|
|
end;
|
|
|
|
function GET_XBUTTON_WPARAM(wParam: WPARAM): Integer;
|
|
begin
|
|
Result := HIWORD(wParam);
|
|
end;
|
|
|
|
{$IFDEF WIN2000_UP}
|
|
|
|
function GET_APPCOMMAND_LPARAM(lParam: LPARAM): WORD;
|
|
begin
|
|
Result := WORD(HIWORD(lParam) and not FAPPCOMMAND_MASK);
|
|
end;
|
|
|
|
function GET_DEVICE_LPARAM(lParam: LPARAM): WORD;
|
|
begin
|
|
Result := WORD(HIWORD(lParam) and FAPPCOMMAND_MASK);
|
|
end;
|
|
|
|
function GET_MOUSEORKEY_LPARAM(lParam: LPARAM): WORD;
|
|
begin
|
|
Result := GET_DEVICE_LPARAM(lParam);
|
|
end;
|
|
|
|
function GET_FLAGS_LPARAM(lParam: LPARAM): Integer;
|
|
begin
|
|
Result := LOWORD(lParam);
|
|
end;
|
|
|
|
function GET_KEYSTATE_LPARAM(lParam: LPARAM): Integer;
|
|
begin
|
|
Result := GET_FLAGS_LPARAM(lParam);
|
|
end;
|
|
|
|
{$ENDIF WIN2000_UP}
|
|
|
|
function MAKEWPARAM(wLow, wHigh: WORD): WPARAM;
|
|
begin
|
|
Result := WPARAM(DWORD(MAKELONG(wLow, wHigh)));
|
|
end;
|
|
|
|
function MAKELPARAM(wLow, wHigh: WORD): LPARAM;
|
|
begin
|
|
Result := LPARAM(DWORD(MAKELONG(wLow, wHigh)));
|
|
end;
|
|
|
|
function MAKELRESULT(wLow, wHigh: WORD): LRESULT;
|
|
begin
|
|
Result := LRESULT(DWORD(MAKELONG(wLow, wHigh)));
|
|
end;
|
|
|
|
function ExitWindows(dwReserved: DWORD; uREserved: UINT): BOOL;
|
|
begin
|
|
Result := ExitWindowsEx(EWX_LOGOFF, $FFFFFFFF);
|
|
end;
|
|
|
|
function PostAppMessageA(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
begin
|
|
Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
|
|
end;
|
|
|
|
function PostAppMessageW(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
begin
|
|
Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
|
|
end;
|
|
|
|
function PostAppMessage(idThread: DWORD; wMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := PostThreadMessageW(idThread, wMsg, wParam, lParam);
|
|
{$ELSE}
|
|
Result := PostThreadMessageA(idThread, wMsg, wParam, lParam);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function CreateWindowA(lpClassName: LPCSTR; lpWindowName: LPCSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
begin
|
|
Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
|
|
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
|
end;
|
|
|
|
function CreateWindowW(lpClassName: LPCWSTR; lpWindowName: LPCWSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
begin
|
|
Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
|
|
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
|
end;
|
|
|
|
function CreateWindow(lpClassName: LPCTSTR; lpWindowName: LPCTSTR; dwStyle: DWORD;
|
|
x, y, nWidth, nHeight: Integer; hWndParent: HWND; hMenu: HMENU;
|
|
hInstance: HINST; lpParam: LPVOID): HWND;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y,
|
|
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
|
{$ELSE}
|
|
Result := CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y,
|
|
nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function CreateDialogA(hInstance: HINST; lpName: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function CreateDialogW(hInstance: HINST; lpName: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function CreateDialog(hInstance: HINST; lpName: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0);
|
|
{$ELSE}
|
|
Result := CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function CreateDialogIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function CreateDialogIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function CreateDialogIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE;
|
|
hWndParent: HWND; lpDialogFunc: DLGPROC): HWND;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ELSE}
|
|
Result := CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function DialogBoxA(hInstance: HINST; lpTemplate: LPCSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function DialogBoxW(hInstance: HINST; lpTemplate: LPCWSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function DialogBox(hInstance: HINST; lpTemplate: LPCTSTR; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ELSE}
|
|
Result := DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function DialogBoxIndirectA(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function DialogBoxIndirectW(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
end;
|
|
|
|
function DialogBoxIndirect(hInstance: HINST; const lpTemplate: DLGTEMPLATE; hWndParent: HWND; lpDialogFunc: DLGPROC): INT_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ELSE}
|
|
Result := DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function AnsiToOem(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
|
|
begin
|
|
Result := CharToOemA(lpszSrc, lpszDst);
|
|
end;
|
|
|
|
function OemToAnsi(lpszSrc: LPCSTR; lpszDst: LPSTR): BOOL;
|
|
begin
|
|
Result := OemToCharA(lpszSrc, lpszDst);
|
|
end;
|
|
|
|
function AnsiToOemBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
|
|
begin
|
|
Result := CharToOemBuffA(lpszSrc, lpszDst, cchDstLength);
|
|
end;
|
|
|
|
function OemToAnsiBuff(lpszSrc: LPCSTR; lpszDst: LPSTR; cchDstLength: DWORD): BOOL;
|
|
begin
|
|
Result := OemToCharBuffA(lpszSrc, lpszDst, cchDstLength);
|
|
end;
|
|
|
|
function AnsiUpper(lpsz: LPSTR): LPSTR;
|
|
begin
|
|
Result := CharUpperA(lpsz);
|
|
end;
|
|
|
|
function AnsiUpperBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
|
|
begin
|
|
Result := CharUpperBuffA(lpsz, cchLength);
|
|
end;
|
|
|
|
function AnsiLower(lpsz: LPSTR): LPSTR;
|
|
begin
|
|
Result := CharLowerA(lpsz);
|
|
end;
|
|
|
|
function AnsiLowerBuff(lpsz: LPSTR; cchLength: DWORD): DWORD;
|
|
begin
|
|
Result := CharLowerBuffA(lpsz, cchLength);
|
|
end;
|
|
|
|
function AnsiNext(lpsz: LPCSTR): LPSTR;
|
|
begin
|
|
Result := CharNextA(lpsz);
|
|
end;
|
|
|
|
function AnsiPrev(lpszStart: LPCSTR; lpszCurrent: LPCSTR): LPSTR;
|
|
begin
|
|
Result := CharPrevA(lpszStart, lpszCurrent);
|
|
end;
|
|
|
|
function GetWindowLongPtrA(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
begin
|
|
Result := GetWindowLongA(hWnd, nIndex);
|
|
end;
|
|
|
|
function GetWindowLongPtrW(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
begin
|
|
Result := GetWindowLongW(hWnd, nIndex);
|
|
end;
|
|
|
|
function GetWindowLongPtr(hWnd: HWND; nIndex: Integer): LONG_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := GetWindowLongW(hWnd, nIndex);
|
|
{$ELSE}
|
|
Result := GetWindowLongA(hWnd, nIndex);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function SetWindowLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
begin
|
|
Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
|
|
end;
|
|
|
|
function SetWindowLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
begin
|
|
Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
|
|
end;
|
|
|
|
function SetWindowLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: LONG_PTR): LONG_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := SetWindowLongW(hWnd, nIndex, dwNewLong);
|
|
{$ELSE}
|
|
Result := SetWindowLongA(hWnd, nIndex, dwNewLong);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function GetClassLongPtrA(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
begin
|
|
Result := GetClassLongA(hWnd, nIndex);
|
|
end;
|
|
|
|
function GetClassLongPtrW(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
begin
|
|
Result := GetClassLongW(hWnd, nIndex);
|
|
end;
|
|
|
|
function GetClassLongPtr(hWnd: HWND; nIndex: Integer): ULONG_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := GetClassLongW(hWnd, nIndex);
|
|
{$ELSE}
|
|
Result := GetClassLongA(hWnd, nIndex);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function SetClassLongPtrA(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
begin
|
|
Result := SetClassLongA(hWnd, nIndex, dwNewLong);
|
|
end;
|
|
|
|
function SetClassLongPtrW(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
begin
|
|
Result := SetClassLongW(hWnd, nIndex, dwNewLong);
|
|
end;
|
|
|
|
function SetClassLongPtr(hWnd: HWND; nIndex: Integer; dwNewLong: ULONG_PTR): ULONG_PTR;
|
|
begin
|
|
{$IFDEF UNICODE}
|
|
Result := SetClassLongW(hWnd, nIndex, dwNewLong);
|
|
{$ELSE}
|
|
Result := SetClassLongA(hWnd, nIndex, dwNewLong);
|
|
{$ENDIF UNICODE}
|
|
end;
|
|
|
|
function EnumTaskWindows(hTask: HANDLE; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL;
|
|
begin
|
|
Result := EnumThreadWindows(ULONG(hTask), lpfn, lParam);
|
|
end;
|
|
|
|
function GetNextWindow(hWnd: HWND; wCmd: UINT): HWND;
|
|
begin
|
|
Result := GetWindow(hWnd, wCmd);
|
|
end;
|
|
|
|
function GetWindowTask(hWnd: HWND): HANDLE;
|
|
begin
|
|
Result := HANDLE(DWORD_PTR(GetWindowThreadProcessId(hWnd, nil)));
|
|
end;
|
|
|
|
function DefHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM; phhk: LPHHOOK): LRESULT;
|
|
begin
|
|
Result := CallNextHookEx(HHOOK(phhk^), nCode, wParam, lParam);
|
|
end;
|
|
|
|
function CopyCursor(pcur: HCURSOR): HCURSOR;
|
|
begin
|
|
Result := HCURSOR(CopyIcon(HICON(pcur)));
|
|
end;
|
|
|
|
function GET_RAWINPUT_CODE_WPARAM(wParam: WPARAM): DWORD;
|
|
begin
|
|
Result := wParam and $ff;
|
|
end;
|
|
|
|
function RAWINPUT_ALIGN(x: Pointer): Pointer;
|
|
begin
|
|
//Warning: Converting a pointer to Integer may conflict with 3GB adress space (and later 64bit)
|
|
Result := Pointer((DWORD_PTR(x) + SizeOf(DWORD) - 1) and not (SizeOf(DWORD) - 1));
|
|
end;
|
|
|
|
function NEXTRAWINPUTBLOCK(ptr: PRawInput): PRawInput;
|
|
begin
|
|
Result := PRAWINPUT(DWORD(RAWINPUT_ALIGN(ptr)) + ptr^.header.dwSize);
|
|
end;
|
|
|
|
function RIDEV_EXMODE(mode: DWORD): DWORD;
|
|
begin
|
|
Result := mode and RIDEV_EXMODEMASK;
|
|
end;
|
|
|
|
{$IFDEF DYNAMIC_LINK}
|
|
|
|
var
|
|
_IsHungAppWindow: Pointer;
|
|
|
|
function IsHungAppWindow;
|
|
begin
|
|
GetProcedureAddress(_IsHungAppWindow, user32, 'IsHungAppWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsHungAppWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DisableProcessWindowsGhosting: Pointer;
|
|
|
|
procedure DisableProcessWindowsGhosting;
|
|
begin
|
|
GetProcedureAddress(_DisableProcessWindowsGhosting, user32, 'DisableProcessWindowsGhosting');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DisableProcessWindowsGhosting]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wvsprintfA: Pointer;
|
|
|
|
function wvsprintfA;
|
|
begin
|
|
GetProcedureAddress(_wvsprintfA, user32, 'wvsprintfA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wvsprintfA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wvsprintfW: Pointer;
|
|
|
|
function wvsprintfW;
|
|
begin
|
|
GetProcedureAddress(_wvsprintfW, user32, 'wvsprintfW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wvsprintfW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wvsprintf: Pointer;
|
|
|
|
function wvsprintf;
|
|
begin
|
|
GetProcedureAddress(_wvsprintf, user32, 'wvsprintf' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wvsprintf]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wsprintfA: Pointer;
|
|
|
|
function wsprintfA;
|
|
begin
|
|
GetProcedureAddress(_wsprintfA, user32, 'wsprintfA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wsprintfA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wsprintfW: Pointer;
|
|
|
|
function wsprintfW;
|
|
begin
|
|
GetProcedureAddress(_wsprintfW, user32, 'wsprintfW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wsprintfW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_wsprintf: Pointer;
|
|
|
|
function wsprintf;
|
|
begin
|
|
GetProcedureAddress(_wsprintf, user32, 'wsprintf' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_wsprintf]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadKeyboardLayoutA: Pointer;
|
|
|
|
function LoadKeyboardLayoutA;
|
|
begin
|
|
GetProcedureAddress(_LoadKeyboardLayoutA, user32, 'LoadKeyboardLayoutA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadKeyboardLayoutA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadKeyboardLayoutW: Pointer;
|
|
|
|
function LoadKeyboardLayoutW;
|
|
begin
|
|
GetProcedureAddress(_LoadKeyboardLayoutW, user32, 'LoadKeyboardLayoutW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadKeyboardLayoutW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadKeyboardLayout: Pointer;
|
|
|
|
function LoadKeyboardLayout;
|
|
begin
|
|
GetProcedureAddress(_LoadKeyboardLayout, user32, 'LoadKeyboardLayout' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadKeyboardLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ActivateKeyboardLayout: Pointer;
|
|
|
|
function ActivateKeyboardLayout;
|
|
begin
|
|
GetProcedureAddress(_ActivateKeyboardLayout, user32, 'ActivateKeyboardLayout');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ActivateKeyboardLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ToUnicodeEx: Pointer;
|
|
|
|
function ToUnicodeEx;
|
|
begin
|
|
GetProcedureAddress(_ToUnicodeEx, user32, 'ToUnicodeEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ToUnicodeEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnloadKeyboardLayout: Pointer;
|
|
|
|
function UnloadKeyboardLayout;
|
|
begin
|
|
GetProcedureAddress(_UnloadKeyboardLayout, user32, 'UnloadKeyboardLayout');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnloadKeyboardLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardLayoutNameA: Pointer;
|
|
|
|
function GetKeyboardLayoutNameA;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardLayoutNameA, user32, 'GetKeyboardLayoutNameA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardLayoutNameA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardLayoutNameW: Pointer;
|
|
|
|
function GetKeyboardLayoutNameW;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardLayoutNameW, user32, 'GetKeyboardLayoutNameW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardLayoutNameW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardLayoutName: Pointer;
|
|
|
|
function GetKeyboardLayoutName;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardLayoutName, user32, 'GetKeyboardLayoutName' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardLayoutName]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardLayoutList: Pointer;
|
|
|
|
function GetKeyboardLayoutList;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardLayoutList, user32, 'GetKeyboardLayoutList');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardLayoutList]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardLayout: Pointer;
|
|
|
|
function GetKeyboardLayout;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardLayout, user32, 'GetKeyboardLayout');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMouseMovePointsEx: Pointer;
|
|
|
|
function GetMouseMovePointsEx;
|
|
begin
|
|
GetProcedureAddress(_GetMouseMovePointsEx, user32, 'GetMouseMovePointsEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMouseMovePointsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDesktopA: Pointer;
|
|
|
|
function CreateDesktopA;
|
|
begin
|
|
GetProcedureAddress(_CreateDesktopA, user32, 'CreateDesktopA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDesktopA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDesktopW: Pointer;
|
|
|
|
function CreateDesktopW;
|
|
begin
|
|
GetProcedureAddress(_CreateDesktopW, user32, 'CreateDesktopW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDesktopW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDesktop: Pointer;
|
|
|
|
function CreateDesktop;
|
|
begin
|
|
GetProcedureAddress(_CreateDesktop, user32, 'CreateDesktop' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenDesktopA: Pointer;
|
|
|
|
function OpenDesktopA;
|
|
begin
|
|
GetProcedureAddress(_OpenDesktopA, user32, 'OpenDesktopA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenDesktopA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenDesktopW: Pointer;
|
|
|
|
function OpenDesktopW;
|
|
begin
|
|
GetProcedureAddress(_OpenDesktopW, user32, 'OpenDesktopW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenDesktopW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenDesktop: Pointer;
|
|
|
|
function OpenDesktop;
|
|
begin
|
|
GetProcedureAddress(_OpenDesktop, user32, 'OpenDesktop' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenInputDesktop: Pointer;
|
|
|
|
function OpenInputDesktop;
|
|
begin
|
|
GetProcedureAddress(_OpenInputDesktop, user32, 'OpenInputDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenInputDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDesktopsA: Pointer;
|
|
|
|
function EnumDesktopsA;
|
|
begin
|
|
GetProcedureAddress(_EnumDesktopsA, user32, 'EnumDesktopsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDesktopsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDesktopsW: Pointer;
|
|
|
|
function EnumDesktopsW;
|
|
begin
|
|
GetProcedureAddress(_EnumDesktopsW, user32, 'EnumDesktopsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDesktopsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDesktops: Pointer;
|
|
|
|
function EnumDesktops;
|
|
begin
|
|
GetProcedureAddress(_EnumDesktops, user32, 'EnumDesktops' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDesktops]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDesktopWindows: Pointer;
|
|
|
|
function EnumDesktopWindows;
|
|
begin
|
|
GetProcedureAddress(_EnumDesktopWindows, user32, 'EnumDesktopWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDesktopWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SwitchDesktop: Pointer;
|
|
|
|
function SwitchDesktop;
|
|
begin
|
|
GetProcedureAddress(_SwitchDesktop, user32, 'SwitchDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SwitchDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetThreadDesktop: Pointer;
|
|
|
|
function SetThreadDesktop;
|
|
begin
|
|
GetProcedureAddress(_SetThreadDesktop, user32, 'SetThreadDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetThreadDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CloseDesktop: Pointer;
|
|
|
|
function CloseDesktop;
|
|
begin
|
|
GetProcedureAddress(_CloseDesktop, user32, 'CloseDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CloseDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetThreadDesktop: Pointer;
|
|
|
|
function GetThreadDesktop;
|
|
begin
|
|
GetProcedureAddress(_GetThreadDesktop, user32, 'GetThreadDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetThreadDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowStationA: Pointer;
|
|
|
|
function CreateWindowStationA;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowStationA, user32, 'CreateWindowStationA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowStationA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowStationW: Pointer;
|
|
|
|
function CreateWindowStationW;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowStationW, user32, 'CreateWindowStationW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowStationW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowStation: Pointer;
|
|
|
|
function CreateWindowStation;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowStation, user32, 'CreateWindowStation' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenWindowStationA: Pointer;
|
|
|
|
function OpenWindowStationA;
|
|
begin
|
|
GetProcedureAddress(_OpenWindowStationA, user32, 'OpenWindowStationA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenWindowStationA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenWindowStationW: Pointer;
|
|
|
|
function OpenWindowStationW;
|
|
begin
|
|
GetProcedureAddress(_OpenWindowStationW, user32, 'OpenWindowStationW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenWindowStationW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenWindowStation: Pointer;
|
|
|
|
function OpenWindowStation;
|
|
begin
|
|
GetProcedureAddress(_OpenWindowStation, user32, 'OpenWindowStation' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenWindowStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumWindowStationsA: Pointer;
|
|
|
|
function EnumWindowStationsA;
|
|
begin
|
|
GetProcedureAddress(_EnumWindowStationsA, user32, 'EnumWindowStationsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumWindowStationsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumWindowStationsW: Pointer;
|
|
|
|
function EnumWindowStationsW;
|
|
begin
|
|
GetProcedureAddress(_EnumWindowStationsW, user32, 'EnumWindowStationsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumWindowStationsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumWindowStations: Pointer;
|
|
|
|
function EnumWindowStations;
|
|
begin
|
|
GetProcedureAddress(_EnumWindowStations, user32, 'EnumWindowStations' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumWindowStations]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CloseWindowStation: Pointer;
|
|
|
|
function CloseWindowStation;
|
|
begin
|
|
GetProcedureAddress(_CloseWindowStation, user32, 'CloseWindowStation');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CloseWindowStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetProcessWindowStation: Pointer;
|
|
|
|
function SetProcessWindowStation;
|
|
begin
|
|
GetProcedureAddress(_SetProcessWindowStation, user32, 'SetProcessWindowStation');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetProcessWindowStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetProcessWindowStation: Pointer;
|
|
|
|
function GetProcessWindowStation;
|
|
begin
|
|
GetProcedureAddress(_GetProcessWindowStation, user32, 'GetProcessWindowStation');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetProcessWindowStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetUserObjectSecurity: Pointer;
|
|
|
|
function SetUserObjectSecurity;
|
|
begin
|
|
GetProcedureAddress(_SetUserObjectSecurity, user32, 'SetUserObjectSecurity');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetUserObjectSecurity]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUserObjectSecurity: Pointer;
|
|
|
|
function GetUserObjectSecurity;
|
|
begin
|
|
GetProcedureAddress(_GetUserObjectSecurity, user32, 'GetUserObjectSecurity');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUserObjectSecurity]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUserObjectInformationA: Pointer;
|
|
|
|
function GetUserObjectInformationA;
|
|
begin
|
|
GetProcedureAddress(_GetUserObjectInformationA, user32, 'GetUserObjectInformationA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUserObjectInformationA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUserObjectInformationW: Pointer;
|
|
|
|
function GetUserObjectInformationW;
|
|
begin
|
|
GetProcedureAddress(_GetUserObjectInformationW, user32, 'GetUserObjectInformationW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUserObjectInformationW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUserObjectInformation: Pointer;
|
|
|
|
function GetUserObjectInformation;
|
|
begin
|
|
GetProcedureAddress(_GetUserObjectInformation, user32, 'GetUserObjectInformation' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUserObjectInformation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetUserObjectInformationA: Pointer;
|
|
|
|
function SetUserObjectInformationA;
|
|
begin
|
|
GetProcedureAddress(_SetUserObjectInformationA, user32, 'SetUserObjectInformationA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetUserObjectInformationA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetUserObjectInformationW: Pointer;
|
|
|
|
function SetUserObjectInformationW;
|
|
begin
|
|
GetProcedureAddress(_SetUserObjectInformationW, user32, 'SetUserObjectInformationW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetUserObjectInformationW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetUserObjectInformation: Pointer;
|
|
|
|
function SetUserObjectInformation;
|
|
begin
|
|
GetProcedureAddress(_SetUserObjectInformation, user32, 'SetUserObjectInformation' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetUserObjectInformation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterWindowMessageA: Pointer;
|
|
|
|
function RegisterWindowMessageA;
|
|
begin
|
|
GetProcedureAddress(_RegisterWindowMessageA, user32, 'RegisterWindowMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterWindowMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterWindowMessageW: Pointer;
|
|
|
|
function RegisterWindowMessageW;
|
|
begin
|
|
GetProcedureAddress(_RegisterWindowMessageW, user32, 'RegisterWindowMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterWindowMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterWindowMessage: Pointer;
|
|
|
|
function RegisterWindowMessage;
|
|
begin
|
|
GetProcedureAddress(_RegisterWindowMessage, user32, 'RegisterWindowMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterWindowMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
__TrackMouseEvent: Pointer;
|
|
|
|
function TrackMouseEvent;
|
|
begin
|
|
GetProcedureAddress(__TrackMouseEvent, user32, 'TrackMouseEvent');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [__TrackMouseEvent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawEdge: Pointer;
|
|
|
|
function DrawEdge;
|
|
begin
|
|
GetProcedureAddress(_DrawEdge, user32, 'DrawEdge');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawEdge]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawFrameControl: Pointer;
|
|
|
|
function DrawFrameControl;
|
|
begin
|
|
GetProcedureAddress(_DrawFrameControl, user32, 'DrawFrameControl');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawFrameControl]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawCaption: Pointer;
|
|
|
|
function DrawCaption;
|
|
begin
|
|
GetProcedureAddress(_DrawCaption, user32, 'DrawCaption');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawCaption]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawAnimatedRects: Pointer;
|
|
|
|
function DrawAnimatedRects;
|
|
begin
|
|
GetProcedureAddress(_DrawAnimatedRects, user32, 'DrawAnimatedRects');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawAnimatedRects]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessageA: Pointer;
|
|
|
|
function GetMessageA;
|
|
begin
|
|
GetProcedureAddress(_GetMessageA, user32, 'GetMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessageW: Pointer;
|
|
|
|
function GetMessageW;
|
|
begin
|
|
GetProcedureAddress(_GetMessageW, user32, 'GetMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessage: Pointer;
|
|
|
|
function GetMessage;
|
|
begin
|
|
GetProcedureAddress(_GetMessage, user32, 'GetMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TranslateMessage: Pointer;
|
|
|
|
function TranslateMessage;
|
|
begin
|
|
GetProcedureAddress(_TranslateMessage, user32, 'TranslateMessage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TranslateMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DispatchMessageA: Pointer;
|
|
|
|
function DispatchMessageA;
|
|
begin
|
|
GetProcedureAddress(_DispatchMessageA, user32, 'DispatchMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DispatchMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DispatchMessageW: Pointer;
|
|
|
|
function DispatchMessageW;
|
|
begin
|
|
GetProcedureAddress(_DispatchMessageW, user32, 'DispatchMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DispatchMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DispatchMessage: Pointer;
|
|
|
|
function DispatchMessage;
|
|
begin
|
|
GetProcedureAddress(_DispatchMessage, user32, 'DispatchMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DispatchMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMessageQueue: Pointer;
|
|
|
|
function SetMessageQueue;
|
|
begin
|
|
GetProcedureAddress(_SetMessageQueue, user32, 'SetMessageQueue');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMessageQueue]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PeekMessageA: Pointer;
|
|
|
|
function PeekMessageA;
|
|
begin
|
|
GetProcedureAddress(_PeekMessageA, user32, 'PeekMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PeekMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PeekMessageW: Pointer;
|
|
|
|
function PeekMessageW;
|
|
begin
|
|
GetProcedureAddress(_PeekMessageW, user32, 'PeekMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PeekMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PeekMessage: Pointer;
|
|
|
|
function PeekMessage;
|
|
begin
|
|
GetProcedureAddress(_PeekMessage, user32, 'PeekMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PeekMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterHotKey: Pointer;
|
|
|
|
function RegisterHotKey;
|
|
begin
|
|
GetProcedureAddress(_RegisterHotKey, user32, 'RegisterHotKey');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterHotKey]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnregisterHotKey: Pointer;
|
|
|
|
function UnregisterHotKey;
|
|
begin
|
|
GetProcedureAddress(_UnregisterHotKey, user32, 'UnregisterHotKey');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnregisterHotKey]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ExitWindowsEx: Pointer;
|
|
|
|
function ExitWindowsEx;
|
|
begin
|
|
GetProcedureAddress(_ExitWindowsEx, user32, 'ExitWindowsEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ExitWindowsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SwapMouseButton: Pointer;
|
|
|
|
function SwapMouseButton;
|
|
begin
|
|
GetProcedureAddress(_SwapMouseButton, user32, 'SwapMouseButton');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SwapMouseButton]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessagePos: Pointer;
|
|
|
|
function GetMessagePos;
|
|
begin
|
|
GetProcedureAddress(_GetMessagePos, user32, 'GetMessagePos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessagePos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessageTime: Pointer;
|
|
|
|
function GetMessageTime;
|
|
begin
|
|
GetProcedureAddress(_GetMessageTime, user32, 'GetMessageTime');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessageTime]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMessageExtraInfo: Pointer;
|
|
|
|
function GetMessageExtraInfo;
|
|
begin
|
|
GetProcedureAddress(_GetMessageExtraInfo, user32, 'GetMessageExtraInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMessageExtraInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMessageExtraInfo: Pointer;
|
|
|
|
function SetMessageExtraInfo;
|
|
begin
|
|
GetProcedureAddress(_SetMessageExtraInfo, user32, 'SetMessageExtraInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMessageExtraInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageA: Pointer;
|
|
|
|
function SendMessageA;
|
|
begin
|
|
GetProcedureAddress(_SendMessageA, user32, 'SendMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageW: Pointer;
|
|
|
|
function SendMessageW;
|
|
begin
|
|
GetProcedureAddress(_SendMessageW, user32, 'SendMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessage: Pointer;
|
|
|
|
function SendMessage;
|
|
begin
|
|
GetProcedureAddress(_SendMessage, user32, 'SendMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageTimeoutA: Pointer;
|
|
|
|
function SendMessageTimeoutA;
|
|
begin
|
|
GetProcedureAddress(_SendMessageTimeoutA, user32, 'SendMessageTimeoutA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageTimeoutA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageTimeoutW: Pointer;
|
|
|
|
function SendMessageTimeoutW;
|
|
begin
|
|
GetProcedureAddress(_SendMessageTimeoutW, user32, 'SendMessageTimeoutW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageTimeoutW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageTimeout: Pointer;
|
|
|
|
function SendMessageTimeout;
|
|
begin
|
|
GetProcedureAddress(_SendMessageTimeout, user32, 'SendMessageTimeout' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageTimeout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendNotifyMessageA: Pointer;
|
|
|
|
function SendNotifyMessageA;
|
|
begin
|
|
GetProcedureAddress(_SendNotifyMessageA, user32, 'SendNotifyMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendNotifyMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendNotifyMessageW: Pointer;
|
|
|
|
function SendNotifyMessageW;
|
|
begin
|
|
GetProcedureAddress(_SendNotifyMessageW, user32, 'SendNotifyMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendNotifyMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendNotifyMessage: Pointer;
|
|
|
|
function SendNotifyMessage;
|
|
begin
|
|
GetProcedureAddress(_SendNotifyMessage, user32, 'SendNotifyMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendNotifyMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageCallbackA: Pointer;
|
|
|
|
function SendMessageCallbackA;
|
|
begin
|
|
GetProcedureAddress(_SendMessageCallbackA, user32, 'SendMessageCallbackA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageCallbackA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageCallbackW: Pointer;
|
|
|
|
function SendMessageCallbackW;
|
|
begin
|
|
GetProcedureAddress(_SendMessageCallbackW, user32, 'SendMessageCallbackW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageCallbackW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendMessageCallback: Pointer;
|
|
|
|
function SendMessageCallback;
|
|
begin
|
|
GetProcedureAddress(_SendMessageCallback, user32, 'SendMessageCallback' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendMessageCallback]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessageExA: Pointer;
|
|
|
|
function BroadcastSystemMessageExA;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessageExA, user32, 'BroadcastSystemMessageExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessageExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessageExW: Pointer;
|
|
|
|
function BroadcastSystemMessageExW;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessageExW, user32, 'BroadcastSystemMessageExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessageExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessageEx: Pointer;
|
|
|
|
function BroadcastSystemMessageEx;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessageEx, user32, 'BroadcastSystemMessageEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessageEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessageA: Pointer;
|
|
|
|
function BroadcastSystemMessageA;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessageA, user32, 'BroadcastSystemMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessageW: Pointer;
|
|
|
|
function BroadcastSystemMessageW;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessageW, user32, 'BroadcastSystemMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BroadcastSystemMessage: Pointer;
|
|
|
|
function BroadcastSystemMessage;
|
|
begin
|
|
GetProcedureAddress(_BroadcastSystemMessage, user32, 'BroadcastSystemMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BroadcastSystemMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterDeviceNotificationA: Pointer;
|
|
|
|
function RegisterDeviceNotificationA;
|
|
begin
|
|
GetProcedureAddress(_RegisterDeviceNotificationA, user32, 'RegisterDeviceNotificationA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterDeviceNotificationA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterDeviceNotificationW: Pointer;
|
|
|
|
function RegisterDeviceNotificationW;
|
|
begin
|
|
GetProcedureAddress(_RegisterDeviceNotificationW, user32, 'RegisterDeviceNotificationW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterDeviceNotificationW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterDeviceNotification: Pointer;
|
|
|
|
function RegisterDeviceNotification;
|
|
begin
|
|
GetProcedureAddress(_RegisterDeviceNotification, user32, 'RegisterDeviceNotification' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterDeviceNotification]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnregisterDeviceNotification: Pointer;
|
|
|
|
function UnregisterDeviceNotification;
|
|
begin
|
|
GetProcedureAddress(_UnregisterDeviceNotification, user32, 'UnregisterDeviceNotification');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnregisterDeviceNotification]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostMessageA: Pointer;
|
|
|
|
function PostMessageA;
|
|
begin
|
|
GetProcedureAddress(_PostMessageA, user32, 'PostMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostMessageW: Pointer;
|
|
|
|
function PostMessageW;
|
|
begin
|
|
GetProcedureAddress(_PostMessageW, user32, 'PostMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostMessage: Pointer;
|
|
|
|
function PostMessage;
|
|
begin
|
|
GetProcedureAddress(_PostMessage, user32, 'PostMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostThreadMessageA: Pointer;
|
|
|
|
function PostThreadMessageA;
|
|
begin
|
|
GetProcedureAddress(_PostThreadMessageA, user32, 'PostThreadMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostThreadMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostThreadMessageW: Pointer;
|
|
|
|
function PostThreadMessageW;
|
|
begin
|
|
GetProcedureAddress(_PostThreadMessageW, user32, 'PostThreadMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostThreadMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostThreadMessage: Pointer;
|
|
|
|
function PostThreadMessage;
|
|
begin
|
|
GetProcedureAddress(_PostThreadMessage, user32, 'PostThreadMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostThreadMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AttachThreadInput: Pointer;
|
|
|
|
function AttachThreadInput;
|
|
begin
|
|
GetProcedureAddress(_AttachThreadInput, user32, 'AttachThreadInput');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AttachThreadInput]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ReplyMessage: Pointer;
|
|
|
|
function ReplyMessage;
|
|
begin
|
|
GetProcedureAddress(_ReplyMessage, user32, 'ReplyMessage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ReplyMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WaitMessage: Pointer;
|
|
|
|
function WaitMessage;
|
|
begin
|
|
GetProcedureAddress(_WaitMessage, user32, 'WaitMessage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WaitMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WaitForInputIdle: Pointer;
|
|
|
|
function WaitForInputIdle;
|
|
begin
|
|
GetProcedureAddress(_WaitForInputIdle, user32, 'WaitForInputIdle');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WaitForInputIdle]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefWindowProcA: Pointer;
|
|
|
|
function DefWindowProcA;
|
|
begin
|
|
GetProcedureAddress(_DefWindowProcA, user32, 'DefWindowProcA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefWindowProcA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefWindowProcW: Pointer;
|
|
|
|
function DefWindowProcW;
|
|
begin
|
|
GetProcedureAddress(_DefWindowProcW, user32, 'DefWindowProcW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefWindowProcW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefWindowProc: Pointer;
|
|
|
|
function DefWindowProc;
|
|
begin
|
|
GetProcedureAddress(_DefWindowProc, user32, 'DefWindowProc' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefWindowProc]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PostQuitMessage: Pointer;
|
|
|
|
procedure PostQuitMessage;
|
|
begin
|
|
GetProcedureAddress(_PostQuitMessage, user32, 'PostQuitMessage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PostQuitMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallWindowProcA: Pointer;
|
|
|
|
function CallWindowProcA;
|
|
begin
|
|
GetProcedureAddress(_CallWindowProcA, user32, 'CallWindowProcA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallWindowProcA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallWindowProcW: Pointer;
|
|
|
|
function CallWindowProcW;
|
|
begin
|
|
GetProcedureAddress(_CallWindowProcW, user32, 'CallWindowProcW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallWindowProcW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallWindowProc: Pointer;
|
|
|
|
function CallWindowProc;
|
|
begin
|
|
GetProcedureAddress(_CallWindowProc, user32, 'CallWindowProc' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallWindowProc]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InSendMessage: Pointer;
|
|
|
|
function InSendMessage;
|
|
begin
|
|
GetProcedureAddress(_InSendMessage, user32, 'InSendMessage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InSendMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InSendMessageEx: Pointer;
|
|
|
|
function InSendMessageEx;
|
|
begin
|
|
GetProcedureAddress(_InSendMessageEx, user32, 'InSendMessageEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InSendMessageEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDoubleClickTime: Pointer;
|
|
|
|
function GetDoubleClickTime;
|
|
begin
|
|
GetProcedureAddress(_GetDoubleClickTime, user32, 'GetDoubleClickTime');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDoubleClickTime]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDoubleClickTime: Pointer;
|
|
|
|
function SetDoubleClickTime;
|
|
begin
|
|
GetProcedureAddress(_SetDoubleClickTime, user32, 'SetDoubleClickTime');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDoubleClickTime]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClassA: Pointer;
|
|
|
|
function RegisterClassA;
|
|
begin
|
|
GetProcedureAddress(_RegisterClassA, user32, 'RegisterClassA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClassA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClassW: Pointer;
|
|
|
|
function RegisterClassW;
|
|
begin
|
|
GetProcedureAddress(_RegisterClassW, user32, 'RegisterClassW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClassW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClass: Pointer;
|
|
|
|
function RegisterClass;
|
|
begin
|
|
GetProcedureAddress(_RegisterClass, user32, 'RegisterClass' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClass]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnregisterClassA: Pointer;
|
|
|
|
function UnregisterClassA;
|
|
begin
|
|
GetProcedureAddress(_UnregisterClassA, user32, 'UnregisterClassA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnregisterClassA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnregisterClassW: Pointer;
|
|
|
|
function UnregisterClassW;
|
|
begin
|
|
GetProcedureAddress(_UnregisterClassW, user32, 'UnregisterClassW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnregisterClassW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnregisterClass: Pointer;
|
|
|
|
function UnregisterClass;
|
|
begin
|
|
GetProcedureAddress(_UnregisterClass, user32, 'UnregisterClass' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnregisterClass]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfoA: Pointer;
|
|
|
|
function GetClassInfoA;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfoA, user32, 'GetClassInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfoW: Pointer;
|
|
|
|
function GetClassInfoW;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfoW, user32, 'GetClassInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfo: Pointer;
|
|
|
|
function GetClassInfo;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfo, user32, 'GetClassInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClassExA: Pointer;
|
|
|
|
function RegisterClassExA;
|
|
begin
|
|
GetProcedureAddress(_RegisterClassExA, user32, 'RegisterClassExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClassExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClassExW: Pointer;
|
|
|
|
function RegisterClassExW;
|
|
begin
|
|
GetProcedureAddress(_RegisterClassExW, user32, 'RegisterClassExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClassExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClassEx: Pointer;
|
|
|
|
function RegisterClassEx;
|
|
begin
|
|
GetProcedureAddress(_RegisterClassEx, user32, 'RegisterClassEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClassEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfoExA: Pointer;
|
|
|
|
function GetClassInfoExA;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfoExA, user32, 'GetClassInfoExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfoExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfoExW: Pointer;
|
|
|
|
function GetClassInfoExW;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfoExW, user32, 'GetClassInfoExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfoExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassInfoEx: Pointer;
|
|
|
|
function GetClassInfoEx;
|
|
begin
|
|
GetProcedureAddress(_GetClassInfoEx, user32, 'GetClassInfoEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassInfoEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowExA: Pointer;
|
|
|
|
function CreateWindowExA;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowExA, user32, 'CreateWindowExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowExW: Pointer;
|
|
|
|
function CreateWindowExW;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowExW, user32, 'CreateWindowExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateWindowEx: Pointer;
|
|
|
|
function CreateWindowEx;
|
|
begin
|
|
GetProcedureAddress(_CreateWindowEx, user32, 'CreateWindowEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateWindowEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsWindow: Pointer;
|
|
|
|
function IsWindow;
|
|
begin
|
|
GetProcedureAddress(_IsWindow, user32, 'IsWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsMenu: Pointer;
|
|
|
|
function IsMenu;
|
|
begin
|
|
GetProcedureAddress(_IsMenu, user32, 'IsMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsChild: Pointer;
|
|
|
|
function IsChild;
|
|
begin
|
|
GetProcedureAddress(_IsChild, user32, 'IsChild');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsChild]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyWindow: Pointer;
|
|
|
|
function DestroyWindow;
|
|
begin
|
|
GetProcedureAddress(_DestroyWindow, user32, 'DestroyWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowWindow: Pointer;
|
|
|
|
function ShowWindow;
|
|
begin
|
|
GetProcedureAddress(_ShowWindow, user32, 'ShowWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AnimateWindow: Pointer;
|
|
|
|
function AnimateWindow;
|
|
begin
|
|
GetProcedureAddress(_AnimateWindow, user32, 'AnimateWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AnimateWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UpdateLayeredWindow: Pointer;
|
|
|
|
function UpdateLayeredWindow;
|
|
begin
|
|
GetProcedureAddress(_UpdateLayeredWindow, user32, 'UpdateLayeredWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UpdateLayeredWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetLayeredWindowAttributes: Pointer;
|
|
|
|
function GetLayeredWindowAttributes;
|
|
begin
|
|
GetProcedureAddress(_GetLayeredWindowAttributes, user32, 'GetLayeredWindowAttributes');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetLayeredWindowAttributes]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PrintWindow: Pointer;
|
|
|
|
function PrintWindow;
|
|
begin
|
|
GetProcedureAddress(_PrintWindow, user32, 'PrintWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PrintWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetLayeredWindowAttributes: Pointer;
|
|
|
|
function SetLayeredWindowAttributes;
|
|
begin
|
|
GetProcedureAddress(_SetLayeredWindowAttributes, user32, 'SetLayeredWindowAttributes');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetLayeredWindowAttributes]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowWindowAsync: Pointer;
|
|
|
|
function ShowWindowAsync;
|
|
begin
|
|
GetProcedureAddress(_ShowWindowAsync, user32, 'ShowWindowAsync');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowWindowAsync]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FlashWindow: Pointer;
|
|
|
|
function FlashWindow;
|
|
begin
|
|
GetProcedureAddress(_FlashWindow, user32, 'FlashWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FlashWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FlashWindowEx: Pointer;
|
|
|
|
function FlashWindowEx;
|
|
begin
|
|
GetProcedureAddress(_FlashWindowEx, user32, 'FlashWindowEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FlashWindowEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowOwnedPopups: Pointer;
|
|
|
|
function ShowOwnedPopups;
|
|
begin
|
|
GetProcedureAddress(_ShowOwnedPopups, user32, 'ShowOwnedPopups');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowOwnedPopups]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenIcon: Pointer;
|
|
|
|
function OpenIcon;
|
|
begin
|
|
GetProcedureAddress(_OpenIcon, user32, 'OpenIcon');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CloseWindow: Pointer;
|
|
|
|
function CloseWindow;
|
|
begin
|
|
GetProcedureAddress(_CloseWindow, user32, 'CloseWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CloseWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MoveWindow: Pointer;
|
|
|
|
function MoveWindow;
|
|
begin
|
|
GetProcedureAddress(_MoveWindow, user32, 'MoveWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MoveWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowPos: Pointer;
|
|
|
|
function SetWindowPos;
|
|
begin
|
|
GetProcedureAddress(_SetWindowPos, user32, 'SetWindowPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowPlacement: Pointer;
|
|
|
|
function GetWindowPlacement;
|
|
begin
|
|
GetProcedureAddress(_GetWindowPlacement, user32, 'GetWindowPlacement');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowPlacement]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowPlacement: Pointer;
|
|
|
|
function SetWindowPlacement;
|
|
begin
|
|
GetProcedureAddress(_SetWindowPlacement, user32, 'SetWindowPlacement');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowPlacement]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BeginDeferWindowPos: Pointer;
|
|
|
|
function BeginDeferWindowPos;
|
|
begin
|
|
GetProcedureAddress(_BeginDeferWindowPos, user32, 'BeginDeferWindowPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BeginDeferWindowPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DeferWindowPos: Pointer;
|
|
|
|
function DeferWindowPos;
|
|
begin
|
|
GetProcedureAddress(_DeferWindowPos, user32, 'DeferWindowPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DeferWindowPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EndDeferWindowPos: Pointer;
|
|
|
|
function EndDeferWindowPos;
|
|
begin
|
|
GetProcedureAddress(_EndDeferWindowPos, user32, 'EndDeferWindowPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EndDeferWindowPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsWindowVisible: Pointer;
|
|
|
|
function IsWindowVisible;
|
|
begin
|
|
GetProcedureAddress(_IsWindowVisible, user32, 'IsWindowVisible');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsWindowVisible]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsIconic: Pointer;
|
|
|
|
function IsIconic;
|
|
begin
|
|
GetProcedureAddress(_IsIconic, user32, 'IsIconic');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsIconic]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AnyPopup: Pointer;
|
|
|
|
function AnyPopup;
|
|
begin
|
|
GetProcedureAddress(_AnyPopup, user32, 'AnyPopup');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AnyPopup]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BringWindowToTop: Pointer;
|
|
|
|
function BringWindowToTop;
|
|
begin
|
|
GetProcedureAddress(_BringWindowToTop, user32, 'BringWindowToTop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BringWindowToTop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsZoomed: Pointer;
|
|
|
|
function IsZoomed;
|
|
begin
|
|
GetProcedureAddress(_IsZoomed, user32, 'IsZoomed');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsZoomed]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogParamA: Pointer;
|
|
|
|
function CreateDialogParamA;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogParamA, user32, 'CreateDialogParamA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogParamA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogParamW: Pointer;
|
|
|
|
function CreateDialogParamW;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogParamW, user32, 'CreateDialogParamW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogParamW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogParam: Pointer;
|
|
|
|
function CreateDialogParam;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogParam, user32, 'CreateDialogParam' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogParam]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogIndirectParamA: Pointer;
|
|
|
|
function CreateDialogIndirectParamA;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogIndirectParamA, user32, 'CreateDialogIndirectParamA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogIndirectParamA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogIndirectParamW: Pointer;
|
|
|
|
function CreateDialogIndirectParamW;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogIndirectParamW, user32, 'CreateDialogIndirectParamW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogIndirectParamW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateDialogIndirectParam: Pointer;
|
|
|
|
function CreateDialogIndirectParam;
|
|
begin
|
|
GetProcedureAddress(_CreateDialogIndirectParam, user32, 'CreateDialogIndirectParam' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateDialogIndirectParam]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxParamA: Pointer;
|
|
|
|
function DialogBoxParamA;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxParamA, user32, 'DialogBoxParamA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxParamA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxParamW: Pointer;
|
|
|
|
function DialogBoxParamW;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxParamW, user32, 'DialogBoxParamW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxParamW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxParam: Pointer;
|
|
|
|
function DialogBoxParam;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxParam, user32, 'DialogBoxParam' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxParam]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxIndirectParamA: Pointer;
|
|
|
|
function DialogBoxIndirectParamA;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxIndirectParamA, user32, 'DialogBoxIndirectParamA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxIndirectParamA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxIndirectParamW: Pointer;
|
|
|
|
function DialogBoxIndirectParamW;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxIndirectParamW, user32, 'DialogBoxIndirectParamW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxIndirectParamW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DialogBoxIndirectParam: Pointer;
|
|
|
|
function DialogBoxIndirectParam;
|
|
begin
|
|
GetProcedureAddress(_DialogBoxIndirectParam, user32, 'DialogBoxIndirectParam' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DialogBoxIndirectParam]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EndDialog: Pointer;
|
|
|
|
function EndDialog;
|
|
begin
|
|
GetProcedureAddress(_EndDialog, user32, 'EndDialog');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EndDialog]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgItem: Pointer;
|
|
|
|
function GetDlgItem;
|
|
begin
|
|
GetProcedureAddress(_GetDlgItem, user32, 'GetDlgItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDlgItemInt: Pointer;
|
|
|
|
function SetDlgItemInt;
|
|
begin
|
|
GetProcedureAddress(_SetDlgItemInt, user32, 'SetDlgItemInt');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDlgItemInt]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgItemInt: Pointer;
|
|
|
|
function GetDlgItemInt;
|
|
begin
|
|
GetProcedureAddress(_GetDlgItemInt, user32, 'GetDlgItemInt');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgItemInt]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDlgItemTextA: Pointer;
|
|
|
|
function SetDlgItemTextA;
|
|
begin
|
|
GetProcedureAddress(_SetDlgItemTextA, user32, 'SetDlgItemTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDlgItemTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDlgItemTextW: Pointer;
|
|
|
|
function SetDlgItemTextW;
|
|
begin
|
|
GetProcedureAddress(_SetDlgItemTextW, user32, 'SetDlgItemTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDlgItemTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDlgItemText: Pointer;
|
|
|
|
function SetDlgItemText;
|
|
begin
|
|
GetProcedureAddress(_SetDlgItemText, user32, 'SetDlgItemText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDlgItemText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgItemTextA: Pointer;
|
|
|
|
function GetDlgItemTextA;
|
|
begin
|
|
GetProcedureAddress(_GetDlgItemTextA, user32, 'GetDlgItemTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgItemTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgItemTextW: Pointer;
|
|
|
|
function GetDlgItemTextW;
|
|
begin
|
|
GetProcedureAddress(_GetDlgItemTextW, user32, 'GetDlgItemTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgItemTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgItemText: Pointer;
|
|
|
|
function GetDlgItemText;
|
|
begin
|
|
GetProcedureAddress(_GetDlgItemText, user32, 'GetDlgItemText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgItemText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CheckDlgButton: Pointer;
|
|
|
|
function CheckDlgButton;
|
|
begin
|
|
GetProcedureAddress(_CheckDlgButton, user32, 'CheckDlgButton');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CheckDlgButton]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CheckRadioButton: Pointer;
|
|
|
|
function CheckRadioButton;
|
|
begin
|
|
GetProcedureAddress(_CheckRadioButton, user32, 'CheckRadioButton');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CheckRadioButton]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsDlgButtonChecked: Pointer;
|
|
|
|
function IsDlgButtonChecked;
|
|
begin
|
|
GetProcedureAddress(_IsDlgButtonChecked, user32, 'IsDlgButtonChecked');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsDlgButtonChecked]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendDlgItemMessageA: Pointer;
|
|
|
|
function SendDlgItemMessageA;
|
|
begin
|
|
GetProcedureAddress(_SendDlgItemMessageA, user32, 'SendDlgItemMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendDlgItemMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendDlgItemMessageW: Pointer;
|
|
|
|
function SendDlgItemMessageW;
|
|
begin
|
|
GetProcedureAddress(_SendDlgItemMessageW, user32, 'SendDlgItemMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendDlgItemMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendDlgItemMessage: Pointer;
|
|
|
|
function SendDlgItemMessage;
|
|
begin
|
|
GetProcedureAddress(_SendDlgItemMessage, user32, 'SendDlgItemMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendDlgItemMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetNextDlgGroupItem: Pointer;
|
|
|
|
function GetNextDlgGroupItem;
|
|
begin
|
|
GetProcedureAddress(_GetNextDlgGroupItem, user32, 'GetNextDlgGroupItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetNextDlgGroupItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetNextDlgTabItem: Pointer;
|
|
|
|
function GetNextDlgTabItem;
|
|
begin
|
|
GetProcedureAddress(_GetNextDlgTabItem, user32, 'GetNextDlgTabItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetNextDlgTabItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDlgCtrlID: Pointer;
|
|
|
|
function GetDlgCtrlID;
|
|
begin
|
|
GetProcedureAddress(_GetDlgCtrlID, user32, 'GetDlgCtrlID');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDlgCtrlID]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDialogBaseUnits: Pointer;
|
|
|
|
function GetDialogBaseUnits;
|
|
begin
|
|
GetProcedureAddress(_GetDialogBaseUnits, user32, 'GetDialogBaseUnits');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDialogBaseUnits]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefDlgProcA: Pointer;
|
|
|
|
function DefDlgProcA;
|
|
begin
|
|
GetProcedureAddress(_DefDlgProcA, user32, 'DefDlgProcA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefDlgProcA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefDlgProcW: Pointer;
|
|
|
|
function DefDlgProcW;
|
|
begin
|
|
GetProcedureAddress(_DefDlgProcW, user32, 'DefDlgProcW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefDlgProcW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefDlgProc: Pointer;
|
|
|
|
function DefDlgProc;
|
|
begin
|
|
GetProcedureAddress(_DefDlgProc, user32, 'DefDlgProc' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefDlgProc]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallMsgFilterA: Pointer;
|
|
|
|
function CallMsgFilterA;
|
|
begin
|
|
GetProcedureAddress(_CallMsgFilterA, user32, 'CallMsgFilterA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallMsgFilterA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallMsgFilterW: Pointer;
|
|
|
|
function CallMsgFilterW;
|
|
begin
|
|
GetProcedureAddress(_CallMsgFilterW, user32, 'CallMsgFilterW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallMsgFilterW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallMsgFilter: Pointer;
|
|
|
|
function CallMsgFilter;
|
|
begin
|
|
GetProcedureAddress(_CallMsgFilter, user32, 'CallMsgFilter' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallMsgFilter]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OpenClipboard: Pointer;
|
|
|
|
function OpenClipboard;
|
|
begin
|
|
GetProcedureAddress(_OpenClipboard, user32, 'OpenClipboard');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OpenClipboard]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CloseClipboard: Pointer;
|
|
|
|
function CloseClipboard;
|
|
begin
|
|
GetProcedureAddress(_CloseClipboard, user32, 'CloseClipboard');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CloseClipboard]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardSequenceNumber: Pointer;
|
|
|
|
function GetClipboardSequenceNumber;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardSequenceNumber, user32, 'GetClipboardSequenceNumber');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardSequenceNumber]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardOwner: Pointer;
|
|
|
|
function GetClipboardOwner;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardOwner, user32, 'GetClipboardOwner');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardOwner]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClipboardViewer: Pointer;
|
|
|
|
function SetClipboardViewer;
|
|
begin
|
|
GetProcedureAddress(_SetClipboardViewer, user32, 'SetClipboardViewer');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClipboardViewer]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardViewer: Pointer;
|
|
|
|
function GetClipboardViewer;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardViewer, user32, 'GetClipboardViewer');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardViewer]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeClipboardChain: Pointer;
|
|
|
|
function ChangeClipboardChain;
|
|
begin
|
|
GetProcedureAddress(_ChangeClipboardChain, user32, 'ChangeClipboardChain');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeClipboardChain]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClipboardData: Pointer;
|
|
|
|
function SetClipboardData;
|
|
begin
|
|
GetProcedureAddress(_SetClipboardData, user32, 'SetClipboardData');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClipboardData]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardData: Pointer;
|
|
|
|
function GetClipboardData;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardData, user32, 'GetClipboardData');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardData]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClipboardFormatA: Pointer;
|
|
|
|
function RegisterClipboardFormatA;
|
|
begin
|
|
GetProcedureAddress(_RegisterClipboardFormatA, user32, 'RegisterClipboardFormatA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClipboardFormatA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClipboardFormatW: Pointer;
|
|
|
|
function RegisterClipboardFormatW;
|
|
begin
|
|
GetProcedureAddress(_RegisterClipboardFormatW, user32, 'RegisterClipboardFormatW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClipboardFormatW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterClipboardFormat: Pointer;
|
|
|
|
function RegisterClipboardFormat;
|
|
begin
|
|
GetProcedureAddress(_RegisterClipboardFormat, user32, 'RegisterClipboardFormat' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterClipboardFormat]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CountClipboardFormats: Pointer;
|
|
|
|
function CountClipboardFormats;
|
|
begin
|
|
GetProcedureAddress(_CountClipboardFormats, user32, 'CountClipboardFormats');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CountClipboardFormats]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumClipboardFormats: Pointer;
|
|
|
|
function EnumClipboardFormats;
|
|
begin
|
|
GetProcedureAddress(_EnumClipboardFormats, user32, 'EnumClipboardFormats');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumClipboardFormats]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardFormatNameA: Pointer;
|
|
|
|
function GetClipboardFormatNameA;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardFormatNameA, user32, 'GetClipboardFormatNameA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardFormatNameA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardFormatNameW: Pointer;
|
|
|
|
function GetClipboardFormatNameW;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardFormatNameW, user32, 'GetClipboardFormatNameW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardFormatNameW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipboardFormatName: Pointer;
|
|
|
|
function GetClipboardFormatName;
|
|
begin
|
|
GetProcedureAddress(_GetClipboardFormatName, user32, 'GetClipboardFormatName' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipboardFormatName]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EmptyClipboard: Pointer;
|
|
|
|
function EmptyClipboard;
|
|
begin
|
|
GetProcedureAddress(_EmptyClipboard, user32, 'EmptyClipboard');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EmptyClipboard]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsClipboardFormatAvailable: Pointer;
|
|
|
|
function IsClipboardFormatAvailable;
|
|
begin
|
|
GetProcedureAddress(_IsClipboardFormatAvailable, user32, 'IsClipboardFormatAvailable');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsClipboardFormatAvailable]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetPriorityClipboardFormat: Pointer;
|
|
|
|
function GetPriorityClipboardFormat;
|
|
begin
|
|
GetProcedureAddress(_GetPriorityClipboardFormat, user32, 'GetPriorityClipboardFormat');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetPriorityClipboardFormat]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetOpenClipboardWindow: Pointer;
|
|
|
|
function GetOpenClipboardWindow;
|
|
begin
|
|
GetProcedureAddress(_GetOpenClipboardWindow, user32, 'GetOpenClipboardWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetOpenClipboardWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOemA: Pointer;
|
|
|
|
function CharToOemA;
|
|
begin
|
|
GetProcedureAddress(_CharToOemA, user32, 'CharToOemA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOemA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOemW: Pointer;
|
|
|
|
function CharToOemW;
|
|
begin
|
|
GetProcedureAddress(_CharToOemW, user32, 'CharToOemW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOemW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOem: Pointer;
|
|
|
|
function CharToOem;
|
|
begin
|
|
GetProcedureAddress(_CharToOem, user32, 'CharToOem' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToCharA: Pointer;
|
|
|
|
function OemToCharA;
|
|
begin
|
|
GetProcedureAddress(_OemToCharA, user32, 'OemToCharA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToCharA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToCharW: Pointer;
|
|
|
|
function OemToCharW;
|
|
begin
|
|
GetProcedureAddress(_OemToCharW, user32, 'OemToCharW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToCharW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToChar: Pointer;
|
|
|
|
function OemToChar;
|
|
begin
|
|
GetProcedureAddress(_OemToChar, user32, 'OemToChar' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToChar]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOemBuffA: Pointer;
|
|
|
|
function CharToOemBuffA;
|
|
begin
|
|
GetProcedureAddress(_CharToOemBuffA, user32, 'CharToOemBuffA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOemBuffA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOemBuffW: Pointer;
|
|
|
|
function CharToOemBuffW;
|
|
begin
|
|
GetProcedureAddress(_CharToOemBuffW, user32, 'CharToOemBuffW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOemBuffW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharToOemBuff: Pointer;
|
|
|
|
function CharToOemBuff;
|
|
begin
|
|
GetProcedureAddress(_CharToOemBuff, user32, 'CharToOemBuff' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharToOemBuff]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToCharBuffA: Pointer;
|
|
|
|
function OemToCharBuffA;
|
|
begin
|
|
GetProcedureAddress(_OemToCharBuffA, user32, 'OemToCharBuffA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToCharBuffA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToCharBuffW: Pointer;
|
|
|
|
function OemToCharBuffW;
|
|
begin
|
|
GetProcedureAddress(_OemToCharBuffW, user32, 'OemToCharBuffW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToCharBuffW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemToCharBuff: Pointer;
|
|
|
|
function OemToCharBuff;
|
|
begin
|
|
GetProcedureAddress(_OemToCharBuff, user32, 'OemToCharBuff' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemToCharBuff]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpperA: Pointer;
|
|
|
|
function CharUpperA;
|
|
begin
|
|
GetProcedureAddress(_CharUpperA, user32, 'CharUpperA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpperA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpperW: Pointer;
|
|
|
|
function CharUpperW;
|
|
begin
|
|
GetProcedureAddress(_CharUpperW, user32, 'CharUpperW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpperW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpper: Pointer;
|
|
|
|
function CharUpper;
|
|
begin
|
|
GetProcedureAddress(_CharUpper, user32, 'CharUpper' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpper]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpperBuffA: Pointer;
|
|
|
|
function CharUpperBuffA;
|
|
begin
|
|
GetProcedureAddress(_CharUpperBuffA, user32, 'CharUpperBuffA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpperBuffA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpperBuffW: Pointer;
|
|
|
|
function CharUpperBuffW;
|
|
begin
|
|
GetProcedureAddress(_CharUpperBuffW, user32, 'CharUpperBuffW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpperBuffW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharUpperBuff: Pointer;
|
|
|
|
function CharUpperBuff;
|
|
begin
|
|
GetProcedureAddress(_CharUpperBuff, user32, 'CharUpperBuff' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharUpperBuff]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLowerA: Pointer;
|
|
|
|
function CharLowerA;
|
|
begin
|
|
GetProcedureAddress(_CharLowerA, user32, 'CharLowerA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLowerA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLowerW: Pointer;
|
|
|
|
function CharLowerW;
|
|
begin
|
|
GetProcedureAddress(_CharLowerW, user32, 'CharLowerW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLowerW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLower: Pointer;
|
|
|
|
function CharLower;
|
|
begin
|
|
GetProcedureAddress(_CharLower, user32, 'CharLower' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLower]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLowerBuffA: Pointer;
|
|
|
|
function CharLowerBuffA;
|
|
begin
|
|
GetProcedureAddress(_CharLowerBuffA, user32, 'CharLowerBuffA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLowerBuffA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLowerBuffW: Pointer;
|
|
|
|
function CharLowerBuffW;
|
|
begin
|
|
GetProcedureAddress(_CharLowerBuffW, user32, 'CharLowerBuffW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLowerBuffW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharLowerBuff: Pointer;
|
|
|
|
function CharLowerBuff;
|
|
begin
|
|
GetProcedureAddress(_CharLowerBuff, user32, 'CharLowerBuff' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharLowerBuff]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharNextA: Pointer;
|
|
|
|
function CharNextA;
|
|
begin
|
|
GetProcedureAddress(_CharNextA, user32, 'CharNextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharNextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharNextW: Pointer;
|
|
|
|
function CharNextW;
|
|
begin
|
|
GetProcedureAddress(_CharNextW, user32, 'CharNextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharNextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharNext: Pointer;
|
|
|
|
function CharNext;
|
|
begin
|
|
GetProcedureAddress(_CharNext, user32, 'CharNext' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharNext]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharPrevA: Pointer;
|
|
|
|
function CharPrevA;
|
|
begin
|
|
GetProcedureAddress(_CharPrevA, user32, 'CharPrevA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharPrevA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharPrevW: Pointer;
|
|
|
|
function CharPrevW;
|
|
begin
|
|
GetProcedureAddress(_CharPrevW, user32, 'CharPrevW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharPrevW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharPrev: Pointer;
|
|
|
|
function CharPrev;
|
|
begin
|
|
GetProcedureAddress(_CharPrev, user32, 'CharPrev' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharPrev]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharNextExA: Pointer;
|
|
|
|
function CharNextExA;
|
|
begin
|
|
GetProcedureAddress(_CharNextExA, user32, 'CharNextExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharNextExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CharPrevExA: Pointer;
|
|
|
|
function CharPrevExA;
|
|
begin
|
|
GetProcedureAddress(_CharPrevExA, user32, 'CharPrevExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CharPrevExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlphaA: Pointer;
|
|
|
|
function IsCharAlphaA;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlphaA, user32, 'IsCharAlphaA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlphaA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlphaW: Pointer;
|
|
|
|
function IsCharAlphaW;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlphaW, user32, 'IsCharAlphaW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlphaW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlpha: Pointer;
|
|
|
|
function IsCharAlpha;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlpha, user32, 'IsCharAlpha' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlpha]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlphaNumericA: Pointer;
|
|
|
|
function IsCharAlphaNumericA;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlphaNumericA, user32, 'IsCharAlphaNumericA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlphaNumericA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlphaNumericW: Pointer;
|
|
|
|
function IsCharAlphaNumericW;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlphaNumericW, user32, 'IsCharAlphaNumericW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlphaNumericW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharAlphaNumeric: Pointer;
|
|
|
|
function IsCharAlphaNumeric;
|
|
begin
|
|
GetProcedureAddress(_IsCharAlphaNumeric, user32, 'IsCharAlphaNumeric' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharAlphaNumeric]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharUpperA: Pointer;
|
|
|
|
function IsCharUpperA;
|
|
begin
|
|
GetProcedureAddress(_IsCharUpperA, user32, 'IsCharUpperA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharUpperA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharUpperW: Pointer;
|
|
|
|
function IsCharUpperW;
|
|
begin
|
|
GetProcedureAddress(_IsCharUpperW, user32, 'IsCharUpperW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharUpperW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharUpper: Pointer;
|
|
|
|
function IsCharUpper;
|
|
begin
|
|
GetProcedureAddress(_IsCharUpper, user32, 'IsCharUpper' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharUpper]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharLowerA: Pointer;
|
|
|
|
function IsCharLowerA;
|
|
begin
|
|
GetProcedureAddress(_IsCharLowerA, user32, 'IsCharLowerA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharLowerA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharLowerW: Pointer;
|
|
|
|
function IsCharLowerW;
|
|
begin
|
|
GetProcedureAddress(_IsCharLowerW, user32, 'IsCharLowerW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharLowerW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsCharLower: Pointer;
|
|
|
|
function IsCharLower;
|
|
begin
|
|
GetProcedureAddress(_IsCharLower, user32, 'IsCharLower' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsCharLower]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetFocus: Pointer;
|
|
|
|
function SetFocus;
|
|
begin
|
|
GetProcedureAddress(_SetFocus, user32, 'SetFocus');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetFocus]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetActiveWindow: Pointer;
|
|
|
|
function GetActiveWindow;
|
|
begin
|
|
GetProcedureAddress(_GetActiveWindow, user32, 'GetActiveWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetActiveWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetFocus: Pointer;
|
|
|
|
function GetFocus;
|
|
begin
|
|
GetProcedureAddress(_GetFocus, user32, 'GetFocus');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetFocus]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKBCodePage: Pointer;
|
|
|
|
function GetKBCodePage;
|
|
begin
|
|
GetProcedureAddress(_GetKBCodePage, user32, 'GetKBCodePage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKBCodePage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyState: Pointer;
|
|
|
|
function GetKeyState;
|
|
begin
|
|
GetProcedureAddress(_GetKeyState, user32, 'GetKeyState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetAsyncKeyState: Pointer;
|
|
|
|
function GetAsyncKeyState;
|
|
begin
|
|
GetProcedureAddress(_GetAsyncKeyState, user32, 'GetAsyncKeyState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetAsyncKeyState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardState: Pointer;
|
|
|
|
function GetKeyboardState;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardState, user32, 'GetKeyboardState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetKeyboardState: Pointer;
|
|
|
|
function SetKeyboardState;
|
|
begin
|
|
GetProcedureAddress(_SetKeyboardState, user32, 'SetKeyboardState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetKeyboardState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyNameTextA: Pointer;
|
|
|
|
function GetKeyNameTextA;
|
|
begin
|
|
GetProcedureAddress(_GetKeyNameTextA, user32, 'GetKeyNameTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyNameTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyNameTextW: Pointer;
|
|
|
|
function GetKeyNameTextW;
|
|
begin
|
|
GetProcedureAddress(_GetKeyNameTextW, user32, 'GetKeyNameTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyNameTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyNameText: Pointer;
|
|
|
|
function GetKeyNameText;
|
|
begin
|
|
GetProcedureAddress(_GetKeyNameText, user32, 'GetKeyNameText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyNameText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetKeyboardType: Pointer;
|
|
|
|
function GetKeyboardType;
|
|
begin
|
|
GetProcedureAddress(_GetKeyboardType, user32, 'GetKeyboardType');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetKeyboardType]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ToAscii: Pointer;
|
|
|
|
function ToAscii;
|
|
begin
|
|
GetProcedureAddress(_ToAscii, user32, 'ToAscii');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ToAscii]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ToAsciiEx: Pointer;
|
|
|
|
function ToAsciiEx;
|
|
begin
|
|
GetProcedureAddress(_ToAsciiEx, user32, 'ToAsciiEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ToAsciiEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ToUnicode: Pointer;
|
|
|
|
function ToUnicode;
|
|
begin
|
|
GetProcedureAddress(_ToUnicode, user32, 'ToUnicode');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ToUnicode]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OemKeyScan: Pointer;
|
|
|
|
function OemKeyScan;
|
|
begin
|
|
GetProcedureAddress(_OemKeyScan, user32, 'OemKeyScan');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OemKeyScan]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScanA: Pointer;
|
|
|
|
function VkKeyScanA;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScanA, user32, 'VkKeyScanA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScanA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScanW: Pointer;
|
|
|
|
function VkKeyScanW;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScanW, user32, 'VkKeyScanW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScanW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScan: Pointer;
|
|
|
|
function VkKeyScan;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScan, user32, 'VkKeyScan' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScan]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScanExA: Pointer;
|
|
|
|
function VkKeyScanExA;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScanExA, user32, 'VkKeyScanExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScanExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScanExW: Pointer;
|
|
|
|
function VkKeyScanExW;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScanExW, user32, 'VkKeyScanExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScanExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_VkKeyScanEx: Pointer;
|
|
|
|
function VkKeyScanEx;
|
|
begin
|
|
GetProcedureAddress(_VkKeyScanEx, user32, 'VkKeyScanEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_VkKeyScanEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_keybd_event: Pointer;
|
|
|
|
procedure keybd_event;
|
|
begin
|
|
GetProcedureAddress(_keybd_event, user32, 'keybd_event');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_keybd_event]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_mouse_event: Pointer;
|
|
|
|
procedure mouse_event;
|
|
begin
|
|
GetProcedureAddress(_mouse_event, user32, 'mouse_event');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_mouse_event]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SendInput: Pointer;
|
|
|
|
function SendInput;
|
|
begin
|
|
GetProcedureAddress(_SendInput, user32, 'SendInput');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SendInput]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetLastInputInfo: Pointer;
|
|
|
|
function GetLastInputInfo;
|
|
begin
|
|
GetProcedureAddress(_GetLastInputInfo, user32, 'GetLastInputInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetLastInputInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKeyA: Pointer;
|
|
|
|
function MapVirtualKeyA;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKeyA, user32, 'MapVirtualKeyA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKeyA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKeyW: Pointer;
|
|
|
|
function MapVirtualKeyW;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKeyW, user32, 'MapVirtualKeyW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKeyW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKey: Pointer;
|
|
|
|
function MapVirtualKey;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKey, user32, 'MapVirtualKey' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKey]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKeyExA: Pointer;
|
|
|
|
function MapVirtualKeyExA;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKeyExA, user32, 'MapVirtualKeyExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKeyExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKeyExW: Pointer;
|
|
|
|
function MapVirtualKeyExW;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKeyExW, user32, 'MapVirtualKeyExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKeyExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapVirtualKeyEx: Pointer;
|
|
|
|
function MapVirtualKeyEx;
|
|
begin
|
|
GetProcedureAddress(_MapVirtualKeyEx, user32, 'MapVirtualKeyEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapVirtualKeyEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetInputState: Pointer;
|
|
|
|
function GetInputState;
|
|
begin
|
|
GetProcedureAddress(_GetInputState, user32, 'GetInputState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetInputState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetQueueStatus: Pointer;
|
|
|
|
function GetQueueStatus;
|
|
begin
|
|
GetProcedureAddress(_GetQueueStatus, user32, 'GetQueueStatus');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetQueueStatus]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCapture: Pointer;
|
|
|
|
function GetCapture;
|
|
begin
|
|
GetProcedureAddress(_GetCapture, user32, 'GetCapture');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCapture]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetCapture: Pointer;
|
|
|
|
function SetCapture;
|
|
begin
|
|
GetProcedureAddress(_SetCapture, user32, 'SetCapture');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetCapture]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ReleaseCapture: Pointer;
|
|
|
|
function ReleaseCapture;
|
|
begin
|
|
GetProcedureAddress(_ReleaseCapture, user32, 'ReleaseCapture');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ReleaseCapture]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MsgWaitForMultipleObjects: Pointer;
|
|
|
|
function MsgWaitForMultipleObjects;
|
|
begin
|
|
GetProcedureAddress(_MsgWaitForMultipleObjects, user32, 'MsgWaitForMultipleObjects');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MsgWaitForMultipleObjects]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MsgWaitForMultipleObjectsEx: Pointer;
|
|
|
|
function MsgWaitForMultipleObjectsEx;
|
|
begin
|
|
GetProcedureAddress(_MsgWaitForMultipleObjectsEx, user32, 'MsgWaitForMultipleObjectsEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MsgWaitForMultipleObjectsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetTimer: Pointer;
|
|
|
|
function SetTimer;
|
|
begin
|
|
GetProcedureAddress(_SetTimer, user32, 'SetTimer');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetTimer]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_KillTimer: Pointer;
|
|
|
|
function KillTimer;
|
|
begin
|
|
GetProcedureAddress(_KillTimer, user32, 'KillTimer');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_KillTimer]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsWindowUnicode: Pointer;
|
|
|
|
function IsWindowUnicode;
|
|
begin
|
|
GetProcedureAddress(_IsWindowUnicode, user32, 'IsWindowUnicode');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsWindowUnicode]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnableWindow: Pointer;
|
|
|
|
function EnableWindow;
|
|
begin
|
|
GetProcedureAddress(_EnableWindow, user32, 'EnableWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnableWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsWindowEnabled: Pointer;
|
|
|
|
function IsWindowEnabled;
|
|
begin
|
|
GetProcedureAddress(_IsWindowEnabled, user32, 'IsWindowEnabled');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsWindowEnabled]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadAcceleratorsA: Pointer;
|
|
|
|
function LoadAcceleratorsA;
|
|
begin
|
|
GetProcedureAddress(_LoadAcceleratorsA, user32, 'LoadAcceleratorsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadAcceleratorsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadAcceleratorsW: Pointer;
|
|
|
|
function LoadAcceleratorsW;
|
|
begin
|
|
GetProcedureAddress(_LoadAcceleratorsW, user32, 'LoadAcceleratorsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadAcceleratorsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadAccelerators: Pointer;
|
|
|
|
function LoadAccelerators;
|
|
begin
|
|
GetProcedureAddress(_LoadAccelerators, user32, 'LoadAccelerators' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadAccelerators]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateAcceleratorTableA: Pointer;
|
|
|
|
function CreateAcceleratorTableA;
|
|
begin
|
|
GetProcedureAddress(_CreateAcceleratorTableA, user32, 'CreateAcceleratorTableA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateAcceleratorTableA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateAcceleratorTableW: Pointer;
|
|
|
|
function CreateAcceleratorTableW;
|
|
begin
|
|
GetProcedureAddress(_CreateAcceleratorTableW, user32, 'CreateAcceleratorTableW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateAcceleratorTableW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateAcceleratorTable: Pointer;
|
|
|
|
function CreateAcceleratorTable;
|
|
begin
|
|
GetProcedureAddress(_CreateAcceleratorTable, user32, 'CreateAcceleratorTable' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateAcceleratorTable]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyAcceleratorTable: Pointer;
|
|
|
|
function DestroyAcceleratorTable;
|
|
begin
|
|
GetProcedureAddress(_DestroyAcceleratorTable, user32, 'DestroyAcceleratorTable');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyAcceleratorTable]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyAcceleratorTableA: Pointer;
|
|
|
|
function CopyAcceleratorTableA;
|
|
begin
|
|
GetProcedureAddress(_CopyAcceleratorTableA, user32, 'CopyAcceleratorTableA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyAcceleratorTableA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyAcceleratorTableW: Pointer;
|
|
|
|
function CopyAcceleratorTableW;
|
|
begin
|
|
GetProcedureAddress(_CopyAcceleratorTableW, user32, 'CopyAcceleratorTableW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyAcceleratorTableW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyAcceleratorTable: Pointer;
|
|
|
|
function CopyAcceleratorTable;
|
|
begin
|
|
GetProcedureAddress(_CopyAcceleratorTable, user32, 'CopyAcceleratorTable' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyAcceleratorTable]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TranslateAcceleratorA: Pointer;
|
|
|
|
function TranslateAcceleratorA;
|
|
begin
|
|
GetProcedureAddress(_TranslateAcceleratorA, user32, 'TranslateAcceleratorA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TranslateAcceleratorA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TranslateAcceleratorW: Pointer;
|
|
|
|
function TranslateAcceleratorW;
|
|
begin
|
|
GetProcedureAddress(_TranslateAcceleratorW, user32, 'TranslateAcceleratorW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TranslateAcceleratorW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TranslateAccelerator: Pointer;
|
|
|
|
function TranslateAccelerator;
|
|
begin
|
|
GetProcedureAddress(_TranslateAccelerator, user32, 'TranslateAccelerator' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TranslateAccelerator]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetSystemMetrics: Pointer;
|
|
|
|
function GetSystemMetrics;
|
|
begin
|
|
GetProcedureAddress(_GetSystemMetrics, user32, 'GetSystemMetrics');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetSystemMetrics]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenuA: Pointer;
|
|
|
|
function LoadMenuA;
|
|
begin
|
|
GetProcedureAddress(_LoadMenuA, user32, 'LoadMenuAA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenuA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenuW: Pointer;
|
|
|
|
function LoadMenuW;
|
|
begin
|
|
GetProcedureAddress(_LoadMenuW, user32, 'LoadMenuWA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenuW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenu: Pointer;
|
|
|
|
function LoadMenu;
|
|
begin
|
|
GetProcedureAddress(_LoadMenu, user32, 'LoadMenu' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenuIndirectA: Pointer;
|
|
|
|
function LoadMenuIndirectA;
|
|
begin
|
|
GetProcedureAddress(_LoadMenuIndirectA, user32, 'LoadMenuIndirectA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenuIndirectA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenuIndirectW: Pointer;
|
|
|
|
function LoadMenuIndirectW;
|
|
begin
|
|
GetProcedureAddress(_LoadMenuIndirectW, user32, 'LoadMenuIndirectW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenuIndirectW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadMenuIndirect: Pointer;
|
|
|
|
function LoadMenuIndirect;
|
|
begin
|
|
GetProcedureAddress(_LoadMenuIndirect, user32, 'LoadMenuIndirect' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadMenuIndirect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenu: Pointer;
|
|
|
|
function GetMenu;
|
|
begin
|
|
GetProcedureAddress(_GetMenu, user32, 'GetMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenu: Pointer;
|
|
|
|
function SetMenu;
|
|
begin
|
|
GetProcedureAddress(_SetMenu, user32, 'SetMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeMenuA: Pointer;
|
|
|
|
function ChangeMenuA;
|
|
begin
|
|
GetProcedureAddress(_ChangeMenuA, user32, 'ChangeMenuA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeMenuA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeMenuW: Pointer;
|
|
|
|
function ChangeMenuW;
|
|
begin
|
|
GetProcedureAddress(_ChangeMenuW, user32, 'ChangeMenuW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeMenuW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeMenu: Pointer;
|
|
|
|
function ChangeMenu;
|
|
begin
|
|
GetProcedureAddress(_ChangeMenu, user32, 'ChangeMenu' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_HiliteMenuItem: Pointer;
|
|
|
|
function HiliteMenuItem;
|
|
begin
|
|
GetProcedureAddress(_HiliteMenuItem, user32, 'HiliteMenuItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_HiliteMenuItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuStringA: Pointer;
|
|
|
|
function GetMenuStringA;
|
|
begin
|
|
GetProcedureAddress(_GetMenuStringA, user32, 'GetMenuStringA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuStringA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuStringW: Pointer;
|
|
|
|
function GetMenuStringW;
|
|
begin
|
|
GetProcedureAddress(_GetMenuStringW, user32, 'GetMenuStringW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuStringW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuString: Pointer;
|
|
|
|
function GetMenuString;
|
|
begin
|
|
GetProcedureAddress(_GetMenuString, user32, 'GetMenuString' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuString]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuState: Pointer;
|
|
|
|
function GetMenuState;
|
|
begin
|
|
GetProcedureAddress(_GetMenuState, user32, 'GetMenuState');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawMenuBar: Pointer;
|
|
|
|
function DrawMenuBar;
|
|
begin
|
|
GetProcedureAddress(_DrawMenuBar, user32, 'DrawMenuBar');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawMenuBar]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetSystemMenu: Pointer;
|
|
|
|
function GetSystemMenu;
|
|
begin
|
|
GetProcedureAddress(_GetSystemMenu, user32, 'GetSystemMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetSystemMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateMenu: Pointer;
|
|
|
|
function CreateMenu;
|
|
begin
|
|
GetProcedureAddress(_CreateMenu, user32, 'CreateMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreatePopupMenu: Pointer;
|
|
|
|
function CreatePopupMenu;
|
|
begin
|
|
GetProcedureAddress(_CreatePopupMenu, user32, 'CreatePopupMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreatePopupMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyMenu: Pointer;
|
|
|
|
function DestroyMenu;
|
|
begin
|
|
GetProcedureAddress(_DestroyMenu, user32, 'DestroyMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CheckMenuItem: Pointer;
|
|
|
|
function CheckMenuItem;
|
|
begin
|
|
GetProcedureAddress(_CheckMenuItem, user32, 'CheckMenuItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CheckMenuItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnableMenuItem: Pointer;
|
|
|
|
function EnableMenuItem;
|
|
begin
|
|
GetProcedureAddress(_EnableMenuItem, user32, 'EnableMenuItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnableMenuItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetSubMenu: Pointer;
|
|
|
|
function GetSubMenu;
|
|
begin
|
|
GetProcedureAddress(_GetSubMenu, user32, 'GetSubMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetSubMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemID: Pointer;
|
|
|
|
function GetMenuItemID;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemID, user32, 'GetMenuItemID');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemID]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemCount: Pointer;
|
|
|
|
function GetMenuItemCount;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemCount, user32, 'GetMenuItemCount');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemCount]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenuA: Pointer;
|
|
|
|
function InsertMenuA;
|
|
begin
|
|
GetProcedureAddress(_InsertMenuA, user32, 'InsertMenuA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenuA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenuW: Pointer;
|
|
|
|
function InsertMenuW;
|
|
begin
|
|
GetProcedureAddress(_InsertMenuW, user32, 'InsertMenuW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenuW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenu: Pointer;
|
|
|
|
function InsertMenu;
|
|
begin
|
|
GetProcedureAddress(_InsertMenu, user32, 'InsertMenu' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AppendMenuA: Pointer;
|
|
|
|
function AppendMenuA;
|
|
begin
|
|
GetProcedureAddress(_AppendMenuA, user32, 'AppendMenuA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AppendMenuA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AppendMenuW: Pointer;
|
|
|
|
function AppendMenuW;
|
|
begin
|
|
GetProcedureAddress(_AppendMenuW, user32, 'AppendMenuW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AppendMenuW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AppendMenu: Pointer;
|
|
|
|
function AppendMenu;
|
|
begin
|
|
GetProcedureAddress(_AppendMenu, user32, 'AppendMenu' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AppendMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ModifyMenuA: Pointer;
|
|
|
|
function ModifyMenuA;
|
|
begin
|
|
GetProcedureAddress(_ModifyMenuA, user32, 'ModifyMenuA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ModifyMenuA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ModifyMenuW: Pointer;
|
|
|
|
function ModifyMenuW;
|
|
begin
|
|
GetProcedureAddress(_ModifyMenuW, user32, 'ModifyMenuW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ModifyMenuW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ModifyMenu: Pointer;
|
|
|
|
function ModifyMenu;
|
|
begin
|
|
GetProcedureAddress(_ModifyMenu, user32, 'ModifyMenu' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ModifyMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RemoveMenu: Pointer;
|
|
|
|
function RemoveMenu;
|
|
begin
|
|
GetProcedureAddress(_RemoveMenu, user32, 'RemoveMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RemoveMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DeleteMenu: Pointer;
|
|
|
|
function DeleteMenu;
|
|
begin
|
|
GetProcedureAddress(_DeleteMenu, user32, 'DeleteMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DeleteMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuItemBitmaps: Pointer;
|
|
|
|
function SetMenuItemBitmaps;
|
|
begin
|
|
GetProcedureAddress(_SetMenuItemBitmaps, user32, 'SetMenuItemBitmaps');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuItemBitmaps]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuCheckMarkDimensions: Pointer;
|
|
|
|
function GetMenuCheckMarkDimensions;
|
|
begin
|
|
GetProcedureAddress(_GetMenuCheckMarkDimensions, user32, 'GetMenuCheckMarkDimensions');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuCheckMarkDimensions]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TrackPopupMenu: Pointer;
|
|
|
|
function TrackPopupMenu;
|
|
begin
|
|
GetProcedureAddress(_TrackPopupMenu, user32, 'TrackPopupMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TrackPopupMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TrackPopupMenuEx: Pointer;
|
|
|
|
function TrackPopupMenuEx;
|
|
begin
|
|
GetProcedureAddress(_TrackPopupMenuEx, user32, 'TrackPopupMenuEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TrackPopupMenuEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuInfo: Pointer;
|
|
|
|
function GetMenuInfo;
|
|
begin
|
|
GetProcedureAddress(_GetMenuInfo, user32, 'GetMenuInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuInfo: Pointer;
|
|
|
|
function SetMenuInfo;
|
|
begin
|
|
GetProcedureAddress(_SetMenuInfo, user32, 'SetMenuInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EndMenu: Pointer;
|
|
|
|
function EndMenu;
|
|
begin
|
|
GetProcedureAddress(_EndMenu, user32, 'EndMenu');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EndMenu]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenuItemA: Pointer;
|
|
|
|
function InsertMenuItemA;
|
|
begin
|
|
GetProcedureAddress(_InsertMenuItemA, user32, 'InsertMenuItemA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenuItemA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenuItemW: Pointer;
|
|
|
|
function InsertMenuItemW;
|
|
begin
|
|
GetProcedureAddress(_InsertMenuItemW, user32, 'InsertMenuItemW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenuItemW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InsertMenuItem: Pointer;
|
|
|
|
function InsertMenuItem;
|
|
begin
|
|
GetProcedureAddress(_InsertMenuItem, user32, 'InsertMenuItem' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InsertMenuItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemInfoA: Pointer;
|
|
|
|
function GetMenuItemInfoA;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemInfoA, user32, 'GetMenuItemInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemInfoW: Pointer;
|
|
|
|
function GetMenuItemInfoW;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemInfoW, user32, 'GetMenuItemInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemInfo: Pointer;
|
|
|
|
function GetMenuItemInfo;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemInfo, user32, 'GetMenuItemInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuItemInfoA: Pointer;
|
|
|
|
function SetMenuItemInfoA;
|
|
begin
|
|
GetProcedureAddress(_SetMenuItemInfoA, user32, 'SetMenuItemInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuItemInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuItemInfoW: Pointer;
|
|
|
|
function SetMenuItemInfoW;
|
|
begin
|
|
GetProcedureAddress(_SetMenuItemInfoW, user32, 'SetMenuItemInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuItemInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuItemInfo: Pointer;
|
|
|
|
function SetMenuItemInfo;
|
|
begin
|
|
GetProcedureAddress(_SetMenuItemInfo, user32, 'SetMenuItemInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuItemInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuDefaultItem: Pointer;
|
|
|
|
function GetMenuDefaultItem;
|
|
begin
|
|
GetProcedureAddress(_GetMenuDefaultItem, user32, 'GetMenuDefaultItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuDefaultItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuDefaultItem: Pointer;
|
|
|
|
function SetMenuDefaultItem;
|
|
begin
|
|
GetProcedureAddress(_SetMenuDefaultItem, user32, 'SetMenuDefaultItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuDefaultItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuItemRect: Pointer;
|
|
|
|
function GetMenuItemRect;
|
|
begin
|
|
GetProcedureAddress(_GetMenuItemRect, user32, 'GetMenuItemRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuItemRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MenuItemFromPoint: Pointer;
|
|
|
|
function MenuItemFromPoint;
|
|
begin
|
|
GetProcedureAddress(_MenuItemFromPoint, user32, 'MenuItemFromPoint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MenuItemFromPoint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DragObject: Pointer;
|
|
|
|
function DragObject;
|
|
begin
|
|
GetProcedureAddress(_DragObject, user32, 'DragObject');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DragObject]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DragDetect: Pointer;
|
|
|
|
function DragDetect;
|
|
begin
|
|
GetProcedureAddress(_DragDetect, user32, 'DragDetect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DragDetect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawIcon: Pointer;
|
|
|
|
function DrawIcon;
|
|
begin
|
|
GetProcedureAddress(_DrawIcon, user32, 'DrawIcon');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawTextA: Pointer;
|
|
|
|
function DrawTextA;
|
|
begin
|
|
GetProcedureAddress(_DrawTextA, user32, 'DrawTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawTextW: Pointer;
|
|
|
|
function DrawTextW;
|
|
begin
|
|
GetProcedureAddress(_DrawTextW, user32, 'DrawTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawText: Pointer;
|
|
|
|
function DrawText;
|
|
begin
|
|
GetProcedureAddress(_DrawText, user32, 'DrawText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawTextExA: Pointer;
|
|
|
|
function DrawTextExA;
|
|
begin
|
|
GetProcedureAddress(_DrawTextExA, user32, 'DrawTextExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawTextExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawTextExW: Pointer;
|
|
|
|
function DrawTextExW;
|
|
begin
|
|
GetProcedureAddress(_DrawTextExW, user32, 'DrawTextExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawTextExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawTextEx: Pointer;
|
|
|
|
function DrawTextEx;
|
|
begin
|
|
GetProcedureAddress(_DrawTextEx, user32, 'DrawTextEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawTextEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GrayStringA: Pointer;
|
|
|
|
function GrayStringA;
|
|
begin
|
|
GetProcedureAddress(_GrayStringA, user32, 'GrayStringA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GrayStringA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GrayStringW: Pointer;
|
|
|
|
function GrayStringW;
|
|
begin
|
|
GetProcedureAddress(_GrayStringW, user32, 'GrayStringW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GrayStringW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GrayString: Pointer;
|
|
|
|
function GrayString;
|
|
begin
|
|
GetProcedureAddress(_GrayString, user32, 'GrayString' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GrayString]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawStateA: Pointer;
|
|
|
|
function DrawStateA;
|
|
begin
|
|
GetProcedureAddress(_DrawStateA, user32, 'DrawStateA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawStateA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawStateW: Pointer;
|
|
|
|
function DrawStateW;
|
|
begin
|
|
GetProcedureAddress(_DrawStateW, user32, 'DrawStateW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawStateW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawState: Pointer;
|
|
|
|
function DrawState;
|
|
begin
|
|
GetProcedureAddress(_DrawState, user32, 'DrawState' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawState]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TabbedTextOutA: Pointer;
|
|
|
|
function TabbedTextOutA;
|
|
begin
|
|
GetProcedureAddress(_TabbedTextOutA, user32, 'TabbedTextOutA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TabbedTextOutA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TabbedTextOutW: Pointer;
|
|
|
|
function TabbedTextOutW;
|
|
begin
|
|
GetProcedureAddress(_TabbedTextOutW, user32, 'TabbedTextOutW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TabbedTextOutW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TabbedTextOut: Pointer;
|
|
|
|
function TabbedTextOut;
|
|
begin
|
|
GetProcedureAddress(_TabbedTextOut, user32, 'TabbedTextOut' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TabbedTextOut]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetTabbedTextExtentA: Pointer;
|
|
|
|
function GetTabbedTextExtentA;
|
|
begin
|
|
GetProcedureAddress(_GetTabbedTextExtentA, user32, 'GetTabbedTextExtentA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetTabbedTextExtentA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetTabbedTextExtentW: Pointer;
|
|
|
|
function GetTabbedTextExtentW;
|
|
begin
|
|
GetProcedureAddress(_GetTabbedTextExtentW, user32, 'GetTabbedTextExtentW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetTabbedTextExtentW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetTabbedTextExtent: Pointer;
|
|
|
|
function GetTabbedTextExtent;
|
|
begin
|
|
GetProcedureAddress(_GetTabbedTextExtent, user32, 'GetTabbedTextExtent' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetTabbedTextExtent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UpdateWindow: Pointer;
|
|
|
|
function UpdateWindow;
|
|
begin
|
|
GetProcedureAddress(_UpdateWindow, user32, 'UpdateWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UpdateWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetActiveWindow: Pointer;
|
|
|
|
function SetActiveWindow;
|
|
begin
|
|
GetProcedureAddress(_SetActiveWindow, user32, 'SetActiveWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetActiveWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetForegroundWindow: Pointer;
|
|
|
|
function GetForegroundWindow;
|
|
begin
|
|
GetProcedureAddress(_GetForegroundWindow, user32, 'GetForegroundWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetForegroundWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PaintDesktop: Pointer;
|
|
|
|
function PaintDesktop;
|
|
begin
|
|
GetProcedureAddress(_PaintDesktop, user32, 'PaintDesktop');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PaintDesktop]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SwitchToThisWindow: Pointer;
|
|
|
|
procedure SwitchToThisWindow;
|
|
begin
|
|
GetProcedureAddress(_SwitchToThisWindow, user32, 'SwitchToThisWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SwitchToThisWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetForegroundWindow: Pointer;
|
|
|
|
function SetForegroundWindow;
|
|
begin
|
|
GetProcedureAddress(_SetForegroundWindow, user32, 'SetForegroundWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetForegroundWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AllowSetForegroundWindow: Pointer;
|
|
|
|
function AllowSetForegroundWindow;
|
|
begin
|
|
GetProcedureAddress(_AllowSetForegroundWindow, user32, 'AllowSetForegroundWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AllowSetForegroundWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LockSetForegroundWindow: Pointer;
|
|
|
|
function LockSetForegroundWindow;
|
|
begin
|
|
GetProcedureAddress(_LockSetForegroundWindow, user32, 'LockSetForegroundWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LockSetForegroundWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WindowFromDC: Pointer;
|
|
|
|
function WindowFromDC;
|
|
begin
|
|
GetProcedureAddress(_WindowFromDC, user32, 'WindowFromDC');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WindowFromDC]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDC: Pointer;
|
|
|
|
function GetDC;
|
|
begin
|
|
GetProcedureAddress(_GetDC, user32, 'GetDC');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDC]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDCEx: Pointer;
|
|
|
|
function GetDCEx;
|
|
begin
|
|
GetProcedureAddress(_GetDCEx, user32, 'GetDCEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDCEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowDC: Pointer;
|
|
|
|
function GetWindowDC;
|
|
begin
|
|
GetProcedureAddress(_GetWindowDC, user32, 'GetWindowDC');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowDC]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ReleaseDC: Pointer;
|
|
|
|
function ReleaseDC;
|
|
begin
|
|
GetProcedureAddress(_ReleaseDC, user32, 'ReleaseDC');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ReleaseDC]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_BeginPaint: Pointer;
|
|
|
|
function BeginPaint;
|
|
begin
|
|
GetProcedureAddress(_BeginPaint, user32, 'BeginPaint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_BeginPaint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EndPaint: Pointer;
|
|
|
|
function EndPaint;
|
|
begin
|
|
GetProcedureAddress(_EndPaint, user32, 'EndPaint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EndPaint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUpdateRect: Pointer;
|
|
|
|
function GetUpdateRect;
|
|
begin
|
|
GetProcedureAddress(_GetUpdateRect, user32, 'GetUpdateRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUpdateRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetUpdateRgn: Pointer;
|
|
|
|
function GetUpdateRgn;
|
|
begin
|
|
GetProcedureAddress(_GetUpdateRgn, user32, 'GetUpdateRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetUpdateRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowRgn: Pointer;
|
|
|
|
function SetWindowRgn;
|
|
begin
|
|
GetProcedureAddress(_SetWindowRgn, user32, 'SetWindowRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowRgn: Pointer;
|
|
|
|
function GetWindowRgn;
|
|
begin
|
|
GetProcedureAddress(_GetWindowRgn, user32, 'GetWindowRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowRgnBox: Pointer;
|
|
|
|
function GetWindowRgnBox;
|
|
begin
|
|
GetProcedureAddress(_GetWindowRgnBox, user32, 'GetWindowRgnBox');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowRgnBox]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ExcludeUpdateRgn: Pointer;
|
|
|
|
function ExcludeUpdateRgn;
|
|
begin
|
|
GetProcedureAddress(_ExcludeUpdateRgn, user32, 'ExcludeUpdateRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ExcludeUpdateRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InvalidateRect: Pointer;
|
|
|
|
function InvalidateRect;
|
|
begin
|
|
GetProcedureAddress(_InvalidateRect, user32, 'InvalidateRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InvalidateRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ValidateRect: Pointer;
|
|
|
|
function ValidateRect;
|
|
begin
|
|
GetProcedureAddress(_ValidateRect, user32, 'ValidateRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ValidateRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InvalidateRgn: Pointer;
|
|
|
|
function InvalidateRgn;
|
|
begin
|
|
GetProcedureAddress(_InvalidateRgn, user32, 'InvalidateRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InvalidateRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ValidateRgn: Pointer;
|
|
|
|
function ValidateRgn;
|
|
begin
|
|
GetProcedureAddress(_ValidateRgn, user32, 'ValidateRgn');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ValidateRgn]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RedrawWindow: Pointer;
|
|
|
|
function RedrawWindow;
|
|
begin
|
|
GetProcedureAddress(_RedrawWindow, user32, 'RedrawWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RedrawWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LockWindowUpdate: Pointer;
|
|
|
|
function LockWindowUpdate;
|
|
begin
|
|
GetProcedureAddress(_LockWindowUpdate, user32, 'LockWindowUpdate');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LockWindowUpdate]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ScrollWindow: Pointer;
|
|
|
|
function ScrollWindow;
|
|
begin
|
|
GetProcedureAddress(_ScrollWindow, user32, 'ScrollWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ScrollWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ScrollDC: Pointer;
|
|
|
|
function ScrollDC;
|
|
begin
|
|
GetProcedureAddress(_ScrollDC, user32, 'ScrollDC');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ScrollDC]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ScrollWindowEx: Pointer;
|
|
|
|
function ScrollWindowEx;
|
|
begin
|
|
GetProcedureAddress(_ScrollWindowEx, user32, 'ScrollWindowEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ScrollWindowEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetScrollPos: Pointer;
|
|
|
|
function SetScrollPos;
|
|
begin
|
|
GetProcedureAddress(_SetScrollPos, user32, 'SetScrollPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetScrollPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetScrollPos: Pointer;
|
|
|
|
function GetScrollPos;
|
|
begin
|
|
GetProcedureAddress(_GetScrollPos, user32, 'GetScrollPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetScrollPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetScrollRange: Pointer;
|
|
|
|
function SetScrollRange;
|
|
begin
|
|
GetProcedureAddress(_SetScrollRange, user32, 'SetScrollRange');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetScrollRange]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetScrollRange: Pointer;
|
|
|
|
function GetScrollRange;
|
|
begin
|
|
GetProcedureAddress(_GetScrollRange, user32, 'GetScrollRange');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetScrollRange]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowScrollBar: Pointer;
|
|
|
|
function ShowScrollBar;
|
|
begin
|
|
GetProcedureAddress(_ShowScrollBar, user32, 'ShowScrollBar');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowScrollBar]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnableScrollBar: Pointer;
|
|
|
|
function EnableScrollBar;
|
|
begin
|
|
GetProcedureAddress(_EnableScrollBar, user32, 'EnableScrollBar');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnableScrollBar]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetPropA: Pointer;
|
|
|
|
function SetPropA;
|
|
begin
|
|
GetProcedureAddress(_SetPropA, user32, 'SetPropA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetPropA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetPropW: Pointer;
|
|
|
|
function SetPropW;
|
|
begin
|
|
GetProcedureAddress(_SetPropW, user32, 'SetPropW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetPropW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetProp: Pointer;
|
|
|
|
function SetProp;
|
|
begin
|
|
GetProcedureAddress(_SetProp, user32, 'SetProp' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetProp]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetPropA: Pointer;
|
|
|
|
function GetPropA;
|
|
begin
|
|
GetProcedureAddress(_GetPropA, user32, 'GetPropA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetPropA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetPropW: Pointer;
|
|
|
|
function GetPropW;
|
|
begin
|
|
GetProcedureAddress(_GetPropW, user32, 'GetPropW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetPropW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetProp: Pointer;
|
|
|
|
function GetProp;
|
|
begin
|
|
GetProcedureAddress(_GetProp, user32, 'GetProp' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetProp]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RemovePropA: Pointer;
|
|
|
|
function RemovePropA;
|
|
begin
|
|
GetProcedureAddress(_RemovePropA, user32, 'RemovePropA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RemovePropA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RemovePropW: Pointer;
|
|
|
|
function RemovePropW;
|
|
begin
|
|
GetProcedureAddress(_RemovePropW, user32, 'RemovePropW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RemovePropW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RemoveProp: Pointer;
|
|
|
|
function RemoveProp;
|
|
begin
|
|
GetProcedureAddress(_RemoveProp, user32, 'RemoveProp' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RemoveProp]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumPropsExA: Pointer;
|
|
|
|
function EnumPropsExA;
|
|
begin
|
|
GetProcedureAddress(_EnumPropsExA, user32, 'EnumPropsExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumPropsExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumPropsExW: Pointer;
|
|
|
|
function EnumPropsExW;
|
|
begin
|
|
GetProcedureAddress(_EnumPropsExW, user32, 'EnumPropsExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumPropsExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumPropsEx: Pointer;
|
|
|
|
function EnumPropsEx;
|
|
begin
|
|
GetProcedureAddress(_EnumPropsEx, user32, 'EnumPropsEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumPropsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumPropsA: Pointer;
|
|
|
|
function EnumPropsA;
|
|
begin
|
|
GetProcedureAddress(_EnumPropsA, user32, 'EnumPropsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumPropsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumPropsW: Pointer;
|
|
|
|
function EnumPropsW;
|
|
begin
|
|
GetProcedureAddress(_EnumPropsW, user32, 'EnumPropsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumPropsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumProps: Pointer;
|
|
|
|
function EnumProps;
|
|
begin
|
|
GetProcedureAddress(_EnumProps, user32, 'EnumProps' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumProps]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowTextA: Pointer;
|
|
|
|
function SetWindowTextA;
|
|
begin
|
|
GetProcedureAddress(_SetWindowTextA, user32, 'SetWindowTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowTextW: Pointer;
|
|
|
|
function SetWindowTextW;
|
|
begin
|
|
GetProcedureAddress(_SetWindowTextW, user32, 'SetWindowTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowText: Pointer;
|
|
|
|
function SetWindowText;
|
|
begin
|
|
GetProcedureAddress(_SetWindowText, user32, 'SetWindowText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowTextA: Pointer;
|
|
|
|
function GetWindowTextA;
|
|
begin
|
|
GetProcedureAddress(_GetWindowTextA, user32, 'GetWindowTextA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowTextA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowTextW: Pointer;
|
|
|
|
function GetWindowTextW;
|
|
begin
|
|
GetProcedureAddress(_GetWindowTextW, user32, 'GetWindowTextW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowTextW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowText: Pointer;
|
|
|
|
function GetWindowText;
|
|
begin
|
|
GetProcedureAddress(_GetWindowText, user32, 'GetWindowText' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowTextLengthA: Pointer;
|
|
|
|
function GetWindowTextLengthA;
|
|
begin
|
|
GetProcedureAddress(_GetWindowTextLengthA, user32, 'GetWindowTextLengthA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowTextLengthA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowTextLengthW: Pointer;
|
|
|
|
function GetWindowTextLengthW;
|
|
begin
|
|
GetProcedureAddress(_GetWindowTextLengthW, user32, 'GetWindowTextLengthW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowTextLengthW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowTextLength: Pointer;
|
|
|
|
function GetWindowTextLength;
|
|
begin
|
|
GetProcedureAddress(_GetWindowTextLength, user32, 'GetWindowTextLength' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowTextLength]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClientRect: Pointer;
|
|
|
|
function GetClientRect;
|
|
begin
|
|
GetProcedureAddress(_GetClientRect, user32, 'GetClientRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClientRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowRect: Pointer;
|
|
|
|
function GetWindowRect;
|
|
begin
|
|
GetProcedureAddress(_GetWindowRect, user32, 'GetWindowRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AdjustWindowRect: Pointer;
|
|
|
|
function AdjustWindowRect;
|
|
begin
|
|
GetProcedureAddress(_AdjustWindowRect, user32, 'AdjustWindowRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AdjustWindowRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_AdjustWindowRectEx: Pointer;
|
|
|
|
function AdjustWindowRectEx;
|
|
begin
|
|
GetProcedureAddress(_AdjustWindowRectEx, user32, 'AdjustWindowRectEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_AdjustWindowRectEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowContextHelpId: Pointer;
|
|
|
|
function SetWindowContextHelpId;
|
|
begin
|
|
GetProcedureAddress(_SetWindowContextHelpId, user32, 'SetWindowContextHelpId');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowContextHelpId]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowContextHelpId: Pointer;
|
|
|
|
function GetWindowContextHelpId;
|
|
begin
|
|
GetProcedureAddress(_GetWindowContextHelpId, user32, 'GetWindowContextHelpId');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowContextHelpId]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetMenuContextHelpId: Pointer;
|
|
|
|
function SetMenuContextHelpId;
|
|
begin
|
|
GetProcedureAddress(_SetMenuContextHelpId, user32, 'SetMenuContextHelpId');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetMenuContextHelpId]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuContextHelpId: Pointer;
|
|
|
|
function GetMenuContextHelpId;
|
|
begin
|
|
GetProcedureAddress(_GetMenuContextHelpId, user32, 'GetMenuContextHelpId');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuContextHelpId]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxA: Pointer;
|
|
|
|
function MessageBoxA;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxA, user32, 'MessageBoxA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxW: Pointer;
|
|
|
|
function MessageBoxW;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxW, user32, 'MessageBoxW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBox: Pointer;
|
|
|
|
function MessageBox;
|
|
begin
|
|
GetProcedureAddress(_MessageBox, user32, 'MessageBox' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBox]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxExA: Pointer;
|
|
|
|
function MessageBoxExA;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxExA, user32, 'MessageBoxExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxExW: Pointer;
|
|
|
|
function MessageBoxExW;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxExW, user32, 'MessageBoxExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxEx: Pointer;
|
|
|
|
function MessageBoxEx;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxEx, user32, 'MessageBoxEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxIndirectA: Pointer;
|
|
|
|
function MessageBoxIndirectA;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxIndirectA, user32, 'MessageBoxIndirectA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxIndirectA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxIndirectW: Pointer;
|
|
|
|
function MessageBoxIndirectW;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxIndirectW, user32, 'MessageBoxIndirectW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxIndirectW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBoxIndirect: Pointer;
|
|
|
|
function MessageBoxIndirect;
|
|
begin
|
|
GetProcedureAddress(_MessageBoxIndirect, user32, 'MessageBoxIndirect' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBoxIndirect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MessageBeep: Pointer;
|
|
|
|
function MessageBeep;
|
|
begin
|
|
GetProcedureAddress(_MessageBeep, user32, 'MessageBeep');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MessageBeep]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowCursor: Pointer;
|
|
|
|
function ShowCursor;
|
|
begin
|
|
GetProcedureAddress(_ShowCursor, user32, 'ShowCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetCursorPos: Pointer;
|
|
|
|
function SetCursorPos;
|
|
begin
|
|
GetProcedureAddress(_SetCursorPos, user32, 'SetCursorPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetCursorPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetCursor: Pointer;
|
|
|
|
function SetCursor;
|
|
begin
|
|
GetProcedureAddress(_SetCursor, user32, 'SetCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCursorPos: Pointer;
|
|
|
|
function GetCursorPos;
|
|
begin
|
|
GetProcedureAddress(_GetCursorPos, user32, 'GetCursorPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCursorPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ClipCursor: Pointer;
|
|
|
|
function ClipCursor;
|
|
begin
|
|
GetProcedureAddress(_ClipCursor, user32, 'ClipCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ClipCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClipCursor: Pointer;
|
|
|
|
function GetClipCursor;
|
|
begin
|
|
GetProcedureAddress(_GetClipCursor, user32, 'GetClipCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClipCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCursor: Pointer;
|
|
|
|
function GetCursor;
|
|
begin
|
|
GetProcedureAddress(_GetCursor, user32, 'GetCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateCaret: Pointer;
|
|
|
|
function CreateCaret;
|
|
begin
|
|
GetProcedureAddress(_CreateCaret, user32, 'CreateCaret');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateCaret]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCaretBlinkTime: Pointer;
|
|
|
|
function GetCaretBlinkTime;
|
|
begin
|
|
GetProcedureAddress(_GetCaretBlinkTime, user32, 'GetCaretBlinkTime');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCaretBlinkTime]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetCaretBlinkTime: Pointer;
|
|
|
|
function SetCaretBlinkTime;
|
|
begin
|
|
GetProcedureAddress(_SetCaretBlinkTime, user32, 'SetCaretBlinkTime');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetCaretBlinkTime]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyCaret: Pointer;
|
|
|
|
function DestroyCaret;
|
|
begin
|
|
GetProcedureAddress(_DestroyCaret, user32, 'DestroyCaret');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyCaret]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_HideCaret: Pointer;
|
|
|
|
function HideCaret;
|
|
begin
|
|
GetProcedureAddress(_HideCaret, user32, 'HideCaret');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_HideCaret]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ShowCaret: Pointer;
|
|
|
|
function ShowCaret;
|
|
begin
|
|
GetProcedureAddress(_ShowCaret, user32, 'ShowCaret');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ShowCaret]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetCaretPos: Pointer;
|
|
|
|
function SetCaretPos;
|
|
begin
|
|
GetProcedureAddress(_SetCaretPos, user32, 'SetCaretPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetCaretPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCaretPos: Pointer;
|
|
|
|
function GetCaretPos;
|
|
begin
|
|
GetProcedureAddress(_GetCaretPos, user32, 'GetCaretPos');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCaretPos]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ClientToScreen: Pointer;
|
|
|
|
function ClientToScreen;
|
|
begin
|
|
GetProcedureAddress(_ClientToScreen, user32, 'ClientToScreen');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ClientToScreen]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ScreenToClient: Pointer;
|
|
|
|
function ScreenToClient;
|
|
begin
|
|
GetProcedureAddress(_ScreenToClient, user32, 'ScreenToClient');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ScreenToClient]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapWindowPoints: Pointer;
|
|
|
|
function MapWindowPoints;
|
|
begin
|
|
GetProcedureAddress(_MapWindowPoints, user32, 'MapWindowPoints');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapWindowPoints]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WindowFromPoint: Pointer;
|
|
|
|
function WindowFromPoint;
|
|
begin
|
|
GetProcedureAddress(_WindowFromPoint, user32, 'WindowFromPoint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WindowFromPoint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChildWindowFromPoint: Pointer;
|
|
|
|
function ChildWindowFromPoint;
|
|
begin
|
|
GetProcedureAddress(_ChildWindowFromPoint, user32, 'ChildWindowFromPoint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChildWindowFromPoint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChildWindowFromPointEx: Pointer;
|
|
|
|
function ChildWindowFromPointEx;
|
|
begin
|
|
GetProcedureAddress(_ChildWindowFromPointEx, user32, 'ChildWindowFromPointEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChildWindowFromPointEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetSysColor: Pointer;
|
|
|
|
function GetSysColor;
|
|
begin
|
|
GetProcedureAddress(_GetSysColor, user32, 'GetSysColor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetSysColor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetSysColorBrush: Pointer;
|
|
|
|
function GetSysColorBrush;
|
|
begin
|
|
GetProcedureAddress(_GetSysColorBrush, user32, 'GetSysColorBrush');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetSysColorBrush]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetSysColors: Pointer;
|
|
|
|
function SetSysColors;
|
|
begin
|
|
GetProcedureAddress(_SetSysColors, user32, 'SetSysColors');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetSysColors]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawFocusRect: Pointer;
|
|
|
|
function DrawFocusRect;
|
|
begin
|
|
GetProcedureAddress(_DrawFocusRect, user32, 'DrawFocusRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawFocusRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FillRect: Pointer;
|
|
|
|
function FillRect;
|
|
begin
|
|
GetProcedureAddress(_FillRect, user32, 'FillRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FillRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FrameRect: Pointer;
|
|
|
|
function FrameRect;
|
|
begin
|
|
GetProcedureAddress(_FrameRect, user32, 'FrameRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FrameRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InvertRect: Pointer;
|
|
|
|
function InvertRect;
|
|
begin
|
|
GetProcedureAddress(_InvertRect, user32, 'InvertRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InvertRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetRect: Pointer;
|
|
|
|
function SetRect;
|
|
begin
|
|
GetProcedureAddress(_SetRect, user32, 'SetRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetRectEmpty: Pointer;
|
|
|
|
function SetRectEmpty;
|
|
begin
|
|
GetProcedureAddress(_SetRectEmpty, user32, 'SetRectEmpty');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetRectEmpty]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyRect: Pointer;
|
|
|
|
function CopyRect;
|
|
begin
|
|
GetProcedureAddress(_CopyRect, user32, 'CopyRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InflateRect: Pointer;
|
|
|
|
function InflateRect;
|
|
begin
|
|
GetProcedureAddress(_InflateRect, user32, 'InflateRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InflateRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IntersectRect: Pointer;
|
|
|
|
function IntersectRect;
|
|
begin
|
|
GetProcedureAddress(_IntersectRect, user32, 'IntersectRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IntersectRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnionRect: Pointer;
|
|
|
|
function UnionRect;
|
|
begin
|
|
GetProcedureAddress(_UnionRect, user32, 'UnionRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnionRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SubtractRect: Pointer;
|
|
|
|
function SubtractRect;
|
|
begin
|
|
GetProcedureAddress(_SubtractRect, user32, 'SubtractRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SubtractRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_OffsetRect: Pointer;
|
|
|
|
function OffsetRect;
|
|
begin
|
|
GetProcedureAddress(_OffsetRect, user32, 'OffsetRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_OffsetRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsRectEmpty: Pointer;
|
|
|
|
function IsRectEmpty;
|
|
begin
|
|
GetProcedureAddress(_IsRectEmpty, user32, 'IsRectEmpty');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsRectEmpty]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EqualRect: Pointer;
|
|
|
|
function EqualRect;
|
|
begin
|
|
GetProcedureAddress(_EqualRect, user32, 'EqualRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EqualRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PtInRect: Pointer;
|
|
|
|
function PtInRect;
|
|
begin
|
|
GetProcedureAddress(_PtInRect, user32, 'PtInRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PtInRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowWord: Pointer;
|
|
|
|
function GetWindowWord;
|
|
begin
|
|
GetProcedureAddress(_GetWindowWord, user32, 'GetWindowWord');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowWord]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowWord: Pointer;
|
|
|
|
function SetWindowWord;
|
|
begin
|
|
GetProcedureAddress(_SetWindowWord, user32, 'SetWindowWord');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowWord]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowLongA: Pointer;
|
|
|
|
function GetWindowLongA;
|
|
begin
|
|
GetProcedureAddress(_GetWindowLongA, user32, 'GetWindowLongA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowLongA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowLongW: Pointer;
|
|
|
|
function GetWindowLongW;
|
|
begin
|
|
GetProcedureAddress(_GetWindowLongW, user32, 'GetWindowLongW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowLongW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowLong: Pointer;
|
|
|
|
function GetWindowLong;
|
|
begin
|
|
GetProcedureAddress(_GetWindowLong, user32, 'GetWindowLong' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowLong]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowLongA: Pointer;
|
|
|
|
function SetWindowLongA;
|
|
begin
|
|
GetProcedureAddress(_SetWindowLongA, user32, 'SetWindowLongA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowLongA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowLongW: Pointer;
|
|
|
|
function SetWindowLongW;
|
|
begin
|
|
GetProcedureAddress(_SetWindowLongW, user32, 'SetWindowLongW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowLongW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowLong: Pointer;
|
|
|
|
function SetWindowLong;
|
|
begin
|
|
GetProcedureAddress(_SetWindowLong, user32, 'SetWindowLong' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowLong]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassWord: Pointer;
|
|
|
|
function GetClassWord;
|
|
begin
|
|
GetProcedureAddress(_GetClassWord, user32, 'GetClassWord');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassWord]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClassWord: Pointer;
|
|
|
|
function SetClassWord;
|
|
begin
|
|
GetProcedureAddress(_SetClassWord, user32, 'SetClassWord');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClassWord]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassLongA: Pointer;
|
|
|
|
function GetClassLongA;
|
|
begin
|
|
GetProcedureAddress(_GetClassLongA, user32, 'GetClassLongA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassLongA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassLongW: Pointer;
|
|
|
|
function GetClassLongW;
|
|
begin
|
|
GetProcedureAddress(_GetClassLongW, user32, 'GetClassLongW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassLongW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassLong: Pointer;
|
|
|
|
function GetClassLong;
|
|
begin
|
|
GetProcedureAddress(_GetClassLong, user32, 'GetClassLong' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassLong]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClassLongA: Pointer;
|
|
|
|
function SetClassLongA;
|
|
begin
|
|
GetProcedureAddress(_SetClassLongA, user32, 'SetClassLongA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClassLongA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClassLongW: Pointer;
|
|
|
|
function SetClassLongW;
|
|
begin
|
|
GetProcedureAddress(_SetClassLongW, user32, 'SetClassLongW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClassLongW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetClassLong: Pointer;
|
|
|
|
function SetClassLong;
|
|
begin
|
|
GetProcedureAddress(_SetClassLong, user32, 'SetClassLong' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetClassLong]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetProcessDefaultLayout: Pointer;
|
|
|
|
function GetProcessDefaultLayout;
|
|
begin
|
|
GetProcedureAddress(_GetProcessDefaultLayout, user32, 'GetProcessDefaultLayout');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetProcessDefaultLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetProcessDefaultLayout: Pointer;
|
|
|
|
function SetProcessDefaultLayout;
|
|
begin
|
|
GetProcedureAddress(_SetProcessDefaultLayout, user32, 'SetProcessDefaultLayout');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetProcessDefaultLayout]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetDesktopWindow: Pointer;
|
|
|
|
function GetDesktopWindow;
|
|
begin
|
|
GetProcedureAddress(_GetDesktopWindow, user32, 'GetDesktopWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetDesktopWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetParent: Pointer;
|
|
|
|
function GetParent;
|
|
begin
|
|
GetProcedureAddress(_GetParent, user32, 'GetParent');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetParent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetParent: Pointer;
|
|
|
|
function SetParent;
|
|
begin
|
|
GetProcedureAddress(_SetParent, user32, 'SetParent');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetParent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumChildWindows: Pointer;
|
|
|
|
function EnumChildWindows;
|
|
begin
|
|
GetProcedureAddress(_EnumChildWindows, user32, 'EnumChildWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumChildWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindowA: Pointer;
|
|
|
|
function FindWindowA;
|
|
begin
|
|
GetProcedureAddress(_FindWindowA, user32, 'FindWindowA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindowA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindowW: Pointer;
|
|
|
|
function FindWindowW;
|
|
begin
|
|
GetProcedureAddress(_FindWindowW, user32, 'FindWindowW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindowW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindow: Pointer;
|
|
|
|
function FindWindow;
|
|
begin
|
|
GetProcedureAddress(_FindWindow, user32, 'FindWindow' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindowExA: Pointer;
|
|
|
|
function FindWindowExA;
|
|
begin
|
|
GetProcedureAddress(_FindWindowExA, user32, 'FindWindowExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindowExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindowExW: Pointer;
|
|
|
|
function FindWindowExW;
|
|
begin
|
|
GetProcedureAddress(_FindWindowExW, user32, 'FindWindowExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindowExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_FindWindowEx: Pointer;
|
|
|
|
function FindWindowEx;
|
|
begin
|
|
GetProcedureAddress(_FindWindowEx, user32, 'FindWindowEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_FindWindowEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetShellWindow: Pointer;
|
|
|
|
function GetShellWindow;
|
|
begin
|
|
GetProcedureAddress(_GetShellWindow, user32, 'GetShellWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetShellWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterShellHookWindow: Pointer;
|
|
|
|
function RegisterShellHookWindow;
|
|
begin
|
|
GetProcedureAddress(_RegisterShellHookWindow, user32, 'RegisterShellHookWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterShellHookWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DeregisterShellHookWindow: Pointer;
|
|
|
|
function DeregisterShellHookWindow;
|
|
begin
|
|
GetProcedureAddress(_DeregisterShellHookWindow, user32, 'DeregisterShellHookWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DeregisterShellHookWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumWindows: Pointer;
|
|
|
|
function EnumWindows;
|
|
begin
|
|
GetProcedureAddress(_EnumWindows, user32, 'EnumWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumThreadWindows: Pointer;
|
|
|
|
function EnumThreadWindows;
|
|
begin
|
|
GetProcedureAddress(_EnumThreadWindows, user32, 'EnumThreadWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumThreadWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassNameA: Pointer;
|
|
|
|
function GetClassNameA;
|
|
begin
|
|
GetProcedureAddress(_GetClassNameA, user32, 'GetClassNameA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassNameA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassNameW: Pointer;
|
|
|
|
function GetClassNameW;
|
|
begin
|
|
GetProcedureAddress(_GetClassNameW, user32, 'GetClassNameW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassNameW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetClassName: Pointer;
|
|
|
|
function GetClassName;
|
|
begin
|
|
GetProcedureAddress(_GetClassName, user32, 'GetClassName' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetClassName]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetTopWindow: Pointer;
|
|
|
|
function GetTopWindow;
|
|
begin
|
|
GetProcedureAddress(_GetTopWindow, user32, 'GetTopWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetTopWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowThreadProcessId: Pointer;
|
|
|
|
function GetWindowThreadProcessId;
|
|
begin
|
|
GetProcedureAddress(_GetWindowThreadProcessId, user32, 'GetWindowThreadProcessId');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowThreadProcessId]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsGUIThread: Pointer;
|
|
|
|
function IsGUIThread;
|
|
begin
|
|
GetProcedureAddress(_IsGUIThread, user32, 'IsGUIThread');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsGUIThread]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetLastActivePopup: Pointer;
|
|
|
|
function GetLastActivePopup;
|
|
begin
|
|
GetProcedureAddress(_GetLastActivePopup, user32, 'GetLastActivePopup');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetLastActivePopup]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindow: Pointer;
|
|
|
|
function GetWindow;
|
|
begin
|
|
GetProcedureAddress(_GetWindow, user32, 'GetWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHookA: Pointer;
|
|
|
|
function SetWindowsHookA;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHookA, user32, 'SetWindowsHookA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHookA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHookW: Pointer;
|
|
|
|
function SetWindowsHookW;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHookW, user32, 'SetWindowsHookW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHookW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHook: Pointer;
|
|
|
|
function SetWindowsHook;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHook, user32, 'SetWindowsHook' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHook]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnhookWindowsHook: Pointer;
|
|
|
|
function UnhookWindowsHook;
|
|
begin
|
|
GetProcedureAddress(_UnhookWindowsHook, user32, 'UnhookWindowsHook');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnhookWindowsHook]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHookExA: Pointer;
|
|
|
|
function SetWindowsHookExA;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHookExA, user32, 'SetWindowsHookExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHookExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHookExW: Pointer;
|
|
|
|
function SetWindowsHookExW;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHookExW, user32, 'SetWindowsHookExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHookExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWindowsHookEx: Pointer;
|
|
|
|
function SetWindowsHookEx;
|
|
begin
|
|
GetProcedureAddress(_SetWindowsHookEx, user32, 'SetWindowsHookEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWindowsHookEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnhookWindowsHookEx: Pointer;
|
|
|
|
function UnhookWindowsHookEx;
|
|
begin
|
|
GetProcedureAddress(_UnhookWindowsHookEx, user32, 'UnhookWindowsHookEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnhookWindowsHookEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CallNextHookEx: Pointer;
|
|
|
|
function CallNextHookEx;
|
|
begin
|
|
GetProcedureAddress(_CallNextHookEx, user32, 'CallNextHookEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CallNextHookEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CheckMenuRadioItem: Pointer;
|
|
|
|
function CheckMenuRadioItem;
|
|
begin
|
|
GetProcedureAddress(_CheckMenuRadioItem, user32, 'CheckMenuRadioItem');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CheckMenuRadioItem]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadBitmapA: Pointer;
|
|
|
|
function LoadBitmapA;
|
|
begin
|
|
GetProcedureAddress(_LoadBitmapA, user32, 'LoadBitmapA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadBitmapA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadBitmapW: Pointer;
|
|
|
|
function LoadBitmapW;
|
|
begin
|
|
GetProcedureAddress(_LoadBitmapW, user32, 'LoadBitmapW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadBitmapW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadBitmap: Pointer;
|
|
|
|
function LoadBitmap;
|
|
begin
|
|
GetProcedureAddress(_LoadBitmap, user32, 'LoadBitmap' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadBitmap]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursorA: Pointer;
|
|
|
|
function LoadCursorA;
|
|
begin
|
|
GetProcedureAddress(_LoadCursorA, user32, 'LoadCursorA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursorA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursorW: Pointer;
|
|
|
|
function LoadCursorW;
|
|
begin
|
|
GetProcedureAddress(_LoadCursorW, user32, 'LoadCursorW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursorW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursor: Pointer;
|
|
|
|
function LoadCursor;
|
|
begin
|
|
GetProcedureAddress(_LoadCursor, user32, 'LoadCursor' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursorFromFileA: Pointer;
|
|
|
|
function LoadCursorFromFileA;
|
|
begin
|
|
GetProcedureAddress(_LoadCursorFromFileA, user32, 'LoadCursorFromFileA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursorFromFileA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursorFromFileW: Pointer;
|
|
|
|
function LoadCursorFromFileW;
|
|
begin
|
|
GetProcedureAddress(_LoadCursorFromFileW, user32, 'LoadCursorFromFileW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursorFromFileW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadCursorFromFile: Pointer;
|
|
|
|
function LoadCursorFromFile;
|
|
begin
|
|
GetProcedureAddress(_LoadCursorFromFile, user32, 'LoadCursorFromFile' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadCursorFromFile]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateCursor: Pointer;
|
|
|
|
function CreateCursor;
|
|
begin
|
|
GetProcedureAddress(_CreateCursor, user32, 'CreateCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyCursor: Pointer;
|
|
|
|
function DestroyCursor;
|
|
begin
|
|
GetProcedureAddress(_DestroyCursor, user32, 'DestroyCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetSystemCursor: Pointer;
|
|
|
|
function SetSystemCursor;
|
|
begin
|
|
GetProcedureAddress(_SetSystemCursor, user32, 'SetSystemCursor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetSystemCursor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadIconA: Pointer;
|
|
|
|
function LoadIconA;
|
|
begin
|
|
GetProcedureAddress(_LoadIconA, user32, 'LoadIconA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadIconA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadIconW: Pointer;
|
|
|
|
function LoadIconW;
|
|
begin
|
|
GetProcedureAddress(_LoadIconW, user32, 'LoadIconW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadIconW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadIcon: Pointer;
|
|
|
|
function LoadIcon;
|
|
begin
|
|
GetProcedureAddress(_LoadIcon, user32, 'LoadIcon' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PrivateExtractIconsA: Pointer;
|
|
|
|
function PrivateExtractIconsA;
|
|
begin
|
|
GetProcedureAddress(_PrivateExtractIconsA, user32, 'PrivateExtractIconsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PrivateExtractIconsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PrivateExtractIconsW: Pointer;
|
|
|
|
function PrivateExtractIconsW;
|
|
begin
|
|
GetProcedureAddress(_PrivateExtractIconsW, user32, 'PrivateExtractIconsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PrivateExtractIconsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_PrivateExtractIcons: Pointer;
|
|
|
|
function PrivateExtractIcons;
|
|
begin
|
|
GetProcedureAddress(_PrivateExtractIcons, user32, 'PrivateExtractIcons' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_PrivateExtractIcons]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateIcon: Pointer;
|
|
|
|
function CreateIcon;
|
|
begin
|
|
GetProcedureAddress(_CreateIcon, user32, 'CreateIcon');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DestroyIcon: Pointer;
|
|
|
|
function DestroyIcon;
|
|
begin
|
|
GetProcedureAddress(_DestroyIcon, user32, 'DestroyIcon');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DestroyIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LookupIconIdFromDirectory: Pointer;
|
|
|
|
function LookupIconIdFromDirectory;
|
|
begin
|
|
GetProcedureAddress(_LookupIconIdFromDirectory, user32, 'LookupIconIdFromDirectory');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LookupIconIdFromDirectory]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LookupIconIdFromDirectoryEx: Pointer;
|
|
|
|
function LookupIconIdFromDirectoryEx;
|
|
begin
|
|
GetProcedureAddress(_LookupIconIdFromDirectoryEx, user32, 'LookupIconIdFromDirectoryEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LookupIconIdFromDirectoryEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateIconFromResource: Pointer;
|
|
|
|
function CreateIconFromResource;
|
|
begin
|
|
GetProcedureAddress(_CreateIconFromResource, user32, 'CreateIconFromResource');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateIconFromResource]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateIconFromResourceEx: Pointer;
|
|
|
|
function CreateIconFromResourceEx;
|
|
begin
|
|
GetProcedureAddress(_CreateIconFromResourceEx, user32, 'CreateIconFromResourceEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateIconFromResourceEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadImageA: Pointer;
|
|
|
|
function LoadImageA;
|
|
begin
|
|
GetProcedureAddress(_LoadImageA, user32, 'LoadImageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadImageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadImageW: Pointer;
|
|
|
|
function LoadImageW;
|
|
begin
|
|
GetProcedureAddress(_LoadImageW, user32, 'LoadImageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadImageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadImage: Pointer;
|
|
|
|
function LoadImage;
|
|
begin
|
|
GetProcedureAddress(_LoadImage, user32, 'LoadImage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadImage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyImage: Pointer;
|
|
|
|
function CopyImage;
|
|
begin
|
|
GetProcedureAddress(_CopyImage, user32, 'CopyImage');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyImage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DrawIconEx: Pointer;
|
|
|
|
function DrawIconEx;
|
|
begin
|
|
GetProcedureAddress(_DrawIconEx, user32, 'DrawIconEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DrawIconEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateIconIndirect: Pointer;
|
|
|
|
function CreateIconIndirect;
|
|
begin
|
|
GetProcedureAddress(_CreateIconIndirect, user32, 'CreateIconIndirect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateIconIndirect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CopyIcon: Pointer;
|
|
|
|
function CopyIcon;
|
|
begin
|
|
GetProcedureAddress(_CopyIcon, user32, 'CopyIcon');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CopyIcon]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetIconInfo: Pointer;
|
|
|
|
function GetIconInfo;
|
|
begin
|
|
GetProcedureAddress(_GetIconInfo, user32, 'GetIconInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetIconInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadStringA: Pointer;
|
|
|
|
function LoadStringA;
|
|
begin
|
|
GetProcedureAddress(_LoadStringA, user32, 'LoadStringA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadStringA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadStringW: Pointer;
|
|
|
|
function LoadStringW;
|
|
begin
|
|
GetProcedureAddress(_LoadStringW, user32, 'LoadStringW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadStringW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LoadString: Pointer;
|
|
|
|
function LoadString;
|
|
begin
|
|
GetProcedureAddress(_LoadString, user32, 'LoadString' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LoadString]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsDialogMessageA: Pointer;
|
|
|
|
function IsDialogMessageA;
|
|
begin
|
|
GetProcedureAddress(_IsDialogMessageA, user32, 'IsDialogMessageA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsDialogMessageA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsDialogMessageW: Pointer;
|
|
|
|
function IsDialogMessageW;
|
|
begin
|
|
GetProcedureAddress(_IsDialogMessageW, user32, 'IsDialogMessageW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsDialogMessageW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsDialogMessage: Pointer;
|
|
|
|
function IsDialogMessage;
|
|
begin
|
|
GetProcedureAddress(_IsDialogMessage, user32, 'IsDialogMessage' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsDialogMessage]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MapDialogRect: Pointer;
|
|
|
|
function MapDialogRect;
|
|
begin
|
|
GetProcedureAddress(_MapDialogRect, user32, 'MapDialogRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MapDialogRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirListA: Pointer;
|
|
|
|
function DlgDirListA;
|
|
begin
|
|
GetProcedureAddress(_DlgDirListA, user32, 'DlgDirListA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirListA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirListW: Pointer;
|
|
|
|
function DlgDirListW;
|
|
begin
|
|
GetProcedureAddress(_DlgDirListW, user32, 'DlgDirListW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirListW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirList: Pointer;
|
|
|
|
function DlgDirList;
|
|
begin
|
|
GetProcedureAddress(_DlgDirList, user32, 'DlgDirList' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirList]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectExA: Pointer;
|
|
|
|
function DlgDirSelectExA;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectExA, user32, 'DlgDirSelectExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectExW: Pointer;
|
|
|
|
function DlgDirSelectExW;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectExW, user32, 'DlgDirSelectExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectEx: Pointer;
|
|
|
|
function DlgDirSelectEx;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectEx, user32, 'DlgDirSelectEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirListComboBoxA: Pointer;
|
|
|
|
function DlgDirListComboBoxA;
|
|
begin
|
|
GetProcedureAddress(_DlgDirListComboBoxA, user32, 'DlgDirListComboBoxA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirListComboBoxA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirListComboBoxW: Pointer;
|
|
|
|
function DlgDirListComboBoxW;
|
|
begin
|
|
GetProcedureAddress(_DlgDirListComboBoxW, user32, 'DlgDirListComboBoxW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirListComboBoxW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirListComboBox: Pointer;
|
|
|
|
function DlgDirListComboBox;
|
|
begin
|
|
GetProcedureAddress(_DlgDirListComboBox, user32, 'DlgDirListComboBox' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirListComboBox]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectComboBoxExA: Pointer;
|
|
|
|
function DlgDirSelectComboBoxExA;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectComboBoxExA, user32, 'DlgDirSelectComboBoxExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectComboBoxExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectComboBoxExW: Pointer;
|
|
|
|
function DlgDirSelectComboBoxExW;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectComboBoxExW, user32, 'DlgDirSelectComboBoxExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectComboBoxExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DlgDirSelectComboBoxEx: Pointer;
|
|
|
|
function DlgDirSelectComboBoxEx;
|
|
begin
|
|
GetProcedureAddress(_DlgDirSelectComboBoxEx, user32, 'DlgDirSelectComboBoxEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DlgDirSelectComboBoxEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetScrollInfo: Pointer;
|
|
|
|
function SetScrollInfo;
|
|
begin
|
|
GetProcedureAddress(_SetScrollInfo, user32, 'SetScrollInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetScrollInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetScrollInfo: Pointer;
|
|
|
|
function GetScrollInfo;
|
|
begin
|
|
GetProcedureAddress(_GetScrollInfo, user32, 'GetScrollInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetScrollInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefFrameProcA: Pointer;
|
|
|
|
function DefFrameProcA;
|
|
begin
|
|
GetProcedureAddress(_DefFrameProcA, user32, 'DefFrameProcA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefFrameProcA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefFrameProcW: Pointer;
|
|
|
|
function DefFrameProcW;
|
|
begin
|
|
GetProcedureAddress(_DefFrameProcW, user32, 'DefFrameProcW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefFrameProcW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefFrameProc: Pointer;
|
|
|
|
function DefFrameProc;
|
|
begin
|
|
GetProcedureAddress(_DefFrameProc, user32, 'DefFrameProc' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefFrameProc]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefMDIChildProcA: Pointer;
|
|
|
|
function DefMDIChildProcA;
|
|
begin
|
|
GetProcedureAddress(_DefMDIChildProcA, user32, 'DefMDIChildProcA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefMDIChildProcA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefMDIChildProcW: Pointer;
|
|
|
|
function DefMDIChildProcW;
|
|
begin
|
|
GetProcedureAddress(_DefMDIChildProcW, user32, 'DefMDIChildProcW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefMDIChildProcW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefMDIChildProc: Pointer;
|
|
|
|
function DefMDIChildProc;
|
|
begin
|
|
GetProcedureAddress(_DefMDIChildProc, user32, 'DefMDIChildProc' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefMDIChildProc]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TranslateMDISysAccel: Pointer;
|
|
|
|
function TranslateMDISysAccel;
|
|
begin
|
|
GetProcedureAddress(_TranslateMDISysAccel, user32, 'TranslateMDISysAccel');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TranslateMDISysAccel]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ArrangeIconicWindows: Pointer;
|
|
|
|
function ArrangeIconicWindows;
|
|
begin
|
|
GetProcedureAddress(_ArrangeIconicWindows, user32, 'ArrangeIconicWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ArrangeIconicWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateMDIWindowA: Pointer;
|
|
|
|
function CreateMDIWindowA;
|
|
begin
|
|
GetProcedureAddress(_CreateMDIWindowA, user32, 'CreateMDIWindowA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateMDIWindowA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateMDIWindowW: Pointer;
|
|
|
|
function CreateMDIWindowW;
|
|
begin
|
|
GetProcedureAddress(_CreateMDIWindowW, user32, 'CreateMDIWindowW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateMDIWindowW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CreateMDIWindow: Pointer;
|
|
|
|
function CreateMDIWindow;
|
|
begin
|
|
GetProcedureAddress(_CreateMDIWindow, user32, 'CreateMDIWindow' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CreateMDIWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_TileWindows: Pointer;
|
|
|
|
function TileWindows;
|
|
begin
|
|
GetProcedureAddress(_TileWindows, user32, 'TileWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_TileWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_CascadeWindows: Pointer;
|
|
|
|
function CascadeWindows;
|
|
begin
|
|
GetProcedureAddress(_CascadeWindows, user32, 'CascadeWindows');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_CascadeWindows]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WinHelpA: Pointer;
|
|
|
|
function WinHelpA;
|
|
begin
|
|
GetProcedureAddress(_WinHelpA, user32, 'WinHelpA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WinHelpA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WinHelpW: Pointer;
|
|
|
|
function WinHelpW;
|
|
begin
|
|
GetProcedureAddress(_WinHelpW, user32, 'WinHelpW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WinHelpW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_WinHelp: Pointer;
|
|
|
|
function WinHelp;
|
|
begin
|
|
GetProcedureAddress(_WinHelp, user32, 'WinHelp' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_WinHelp]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetGuiResources: Pointer;
|
|
|
|
function GetGuiResources;
|
|
begin
|
|
GetProcedureAddress(_GetGuiResources, user32, 'GetGuiResources');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetGuiResources]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettingsA: Pointer;
|
|
|
|
function ChangeDisplaySettingsA;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettingsA, user32, 'ChangeDisplaySettingsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettingsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettingsW: Pointer;
|
|
|
|
function ChangeDisplaySettingsW;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettingsW, user32, 'ChangeDisplaySettingsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettingsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettings: Pointer;
|
|
|
|
function ChangeDisplaySettings;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettings, user32, 'ChangeDisplaySettings' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettings]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettingsExA: Pointer;
|
|
|
|
function ChangeDisplaySettingsExA;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettingsExA, user32, 'ChangeDisplaySettingsExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettingsExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettingsExW: Pointer;
|
|
|
|
function ChangeDisplaySettingsExW;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettingsExW, user32, 'ChangeDisplaySettingsExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettingsExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_ChangeDisplaySettingsEx: Pointer;
|
|
|
|
function ChangeDisplaySettingsEx;
|
|
begin
|
|
GetProcedureAddress(_ChangeDisplaySettingsEx, user32, 'ChangeDisplaySettingsEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_ChangeDisplaySettingsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettingsA: Pointer;
|
|
|
|
function EnumDisplaySettingsA;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettingsA, user32, 'EnumDisplaySettingsA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettingsA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettingsW: Pointer;
|
|
|
|
function EnumDisplaySettingsW;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettingsW, user32, 'EnumDisplaySettingsW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettingsW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettings: Pointer;
|
|
|
|
function EnumDisplaySettings;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettings, user32, 'EnumDisplaySettings' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettings]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettingsExA: Pointer;
|
|
|
|
function EnumDisplaySettingsExA;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettingsExA, user32, 'EnumDisplaySettingsExA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettingsExA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettingsExW: Pointer;
|
|
|
|
function EnumDisplaySettingsExW;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettingsExW, user32, 'EnumDisplaySettingsExW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettingsExW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplaySettingsEx: Pointer;
|
|
|
|
function EnumDisplaySettingsEx;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplaySettingsEx, user32, 'EnumDisplaySettingsEx' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplaySettingsEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplayDevicesA: Pointer;
|
|
|
|
function EnumDisplayDevicesA;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplayDevicesA, user32, 'EnumDisplayDevicesA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplayDevicesA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplayDevicesW: Pointer;
|
|
|
|
function EnumDisplayDevicesW;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplayDevicesW, user32, 'EnumDisplayDevicesW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplayDevicesW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplayDevices: Pointer;
|
|
|
|
function EnumDisplayDevices;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplayDevices, user32, 'EnumDisplayDevices' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplayDevices]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SystemParametersInfoA: Pointer;
|
|
|
|
function SystemParametersInfoA;
|
|
begin
|
|
GetProcedureAddress(_SystemParametersInfoA, user32, 'SystemParametersInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SystemParametersInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SystemParametersInfoW: Pointer;
|
|
|
|
function SystemParametersInfoW;
|
|
begin
|
|
GetProcedureAddress(_SystemParametersInfoW, user32, 'SystemParametersInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SystemParametersInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SystemParametersInfo: Pointer;
|
|
|
|
function SystemParametersInfo;
|
|
begin
|
|
GetProcedureAddress(_SystemParametersInfo, user32, 'SystemParametersInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SystemParametersInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetDebugErrorLevel: Pointer;
|
|
|
|
procedure SetDebugErrorLevel;
|
|
begin
|
|
GetProcedureAddress(_SetDebugErrorLevel, user32, 'SetDebugErrorLevel');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetDebugErrorLevel]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetLastErrorEx: Pointer;
|
|
|
|
procedure SetLastErrorEx;
|
|
begin
|
|
GetProcedureAddress(_SetLastErrorEx, user32, 'SetLastErrorEx');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetLastErrorEx]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_InternalGetWindowText: Pointer;
|
|
|
|
function InternalGetWindowText;
|
|
begin
|
|
GetProcedureAddress(_InternalGetWindowText, user32, 'InternalGetWindowText');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_InternalGetWindowText]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EndTask: Pointer;
|
|
|
|
function EndTask;
|
|
begin
|
|
GetProcedureAddress(_EndTask, user32, 'EndTask');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EndTask]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MonitorFromPoint: Pointer;
|
|
|
|
function MonitorFromPoint;
|
|
begin
|
|
GetProcedureAddress(_MonitorFromPoint, user32, 'MonitorFromPoint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MonitorFromPoint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MonitorFromRect: Pointer;
|
|
|
|
function MonitorFromRect;
|
|
begin
|
|
GetProcedureAddress(_MonitorFromRect, user32, 'MonitorFromRect');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MonitorFromRect]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_MonitorFromWindow: Pointer;
|
|
|
|
function MonitorFromWindow;
|
|
begin
|
|
GetProcedureAddress(_MonitorFromWindow, user32, 'MonitorFromWindow');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_MonitorFromWindow]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMonitorInfoA: Pointer;
|
|
|
|
function GetMonitorInfoA;
|
|
begin
|
|
GetProcedureAddress(_GetMonitorInfoA, user32, 'GetMonitorInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMonitorInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMonitorInfoW: Pointer;
|
|
|
|
function GetMonitorInfoW;
|
|
begin
|
|
GetProcedureAddress(_GetMonitorInfoW, user32, 'GetMonitorInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMonitorInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMonitorInfo: Pointer;
|
|
|
|
function GetMonitorInfo;
|
|
begin
|
|
GetProcedureAddress(_GetMonitorInfo, user32, 'GetMonitorInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMonitorInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_EnumDisplayMonitors: Pointer;
|
|
|
|
function EnumDisplayMonitors;
|
|
begin
|
|
GetProcedureAddress(_EnumDisplayMonitors, user32, 'EnumDisplayMonitors');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_EnumDisplayMonitors]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_NotifyWinEvent: Pointer;
|
|
|
|
procedure NotifyWinEvent;
|
|
begin
|
|
GetProcedureAddress(_NotifyWinEvent, user32, 'NotifyWinEvent');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_NotifyWinEvent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_SetWinEventHook: Pointer;
|
|
|
|
function SetWinEventHook;
|
|
begin
|
|
GetProcedureAddress(_SetWinEventHook, user32, 'SetWinEventHook');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_SetWinEventHook]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_IsWinEventHookInstalled: Pointer;
|
|
|
|
function IsWinEventHookInstalled;
|
|
begin
|
|
GetProcedureAddress(_IsWinEventHookInstalled, user32, 'IsWinEventHookInstalled');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_IsWinEventHookInstalled]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UnhookWinEvent: Pointer;
|
|
|
|
function UnhookWinEvent;
|
|
begin
|
|
GetProcedureAddress(_UnhookWinEvent, user32, 'UnhookWinEvent');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UnhookWinEvent]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetGUIThreadInfo: Pointer;
|
|
|
|
function GetGUIThreadInfo;
|
|
begin
|
|
GetProcedureAddress(_GetGUIThreadInfo, user32, 'GetGUIThreadInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetGUIThreadInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowModuleFileNameA: Pointer;
|
|
|
|
function GetWindowModuleFileNameA;
|
|
begin
|
|
GetProcedureAddress(_GetWindowModuleFileNameA, user32, 'GetWindowModuleFileNameA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowModuleFileNameA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowModuleFileNameW: Pointer;
|
|
|
|
function GetWindowModuleFileNameW;
|
|
begin
|
|
GetProcedureAddress(_GetWindowModuleFileNameW, user32, 'GetWindowModuleFileNameW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowModuleFileNameW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowModuleFileName: Pointer;
|
|
|
|
function GetWindowModuleFileName;
|
|
begin
|
|
GetProcedureAddress(_GetWindowModuleFileName, user32, 'GetWindowModuleFileName' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowModuleFileName]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetCursorInfo: Pointer;
|
|
|
|
function GetCursorInfo;
|
|
begin
|
|
GetProcedureAddress(_GetCursorInfo, user32, 'GetCursorInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetCursorInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetWindowInfo: Pointer;
|
|
|
|
function GetWindowInfo;
|
|
begin
|
|
GetProcedureAddress(_GetWindowInfo, user32, 'GetWindowInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetWindowInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetTitleBarInfo: Pointer;
|
|
|
|
function GetTitleBarInfo;
|
|
begin
|
|
GetProcedureAddress(_GetTitleBarInfo, user32, 'GetTitleBarInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetTitleBarInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetMenuBarInfo: Pointer;
|
|
|
|
function GetMenuBarInfo;
|
|
begin
|
|
GetProcedureAddress(_GetMenuBarInfo, user32, 'GetMenuBarInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetMenuBarInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetScrollBarInfo: Pointer;
|
|
|
|
function GetScrollBarInfo;
|
|
begin
|
|
GetProcedureAddress(_GetScrollBarInfo, user32, 'GetScrollBarInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetScrollBarInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetComboBoxInfo: Pointer;
|
|
|
|
function GetComboBoxInfo;
|
|
begin
|
|
GetProcedureAddress(_GetComboBoxInfo, user32, 'GetComboBoxInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetComboBoxInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetAncestor: Pointer;
|
|
|
|
function GetAncestor;
|
|
begin
|
|
GetProcedureAddress(_GetAncestor, user32, 'GetAncestor');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetAncestor]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RealChildWindowFromPoint: Pointer;
|
|
|
|
function RealChildWindowFromPoint;
|
|
begin
|
|
GetProcedureAddress(_RealChildWindowFromPoint, user32, 'RealChildWindowFromPoint');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RealChildWindowFromPoint]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RealGetWindowClassA: Pointer;
|
|
|
|
function RealGetWindowClassA;
|
|
begin
|
|
GetProcedureAddress(_RealGetWindowClassA, user32, 'RealGetWindowClassA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RealGetWindowClassA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RealGetWindowClassW: Pointer;
|
|
|
|
function RealGetWindowClassW;
|
|
begin
|
|
GetProcedureAddress(_RealGetWindowClassW, user32, 'RealGetWindowClassW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RealGetWindowClassW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RealGetWindowClass: Pointer;
|
|
|
|
function RealGetWindowClass;
|
|
begin
|
|
GetProcedureAddress(_RealGetWindowClass, user32, 'RealGetWindowClass' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RealGetWindowClass]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetAltTabInfoA: Pointer;
|
|
|
|
function GetAltTabInfoA;
|
|
begin
|
|
GetProcedureAddress(_GetAltTabInfoA, user32, 'GetAltTabInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetAltTabInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetAltTabInfoW: Pointer;
|
|
|
|
function GetAltTabInfoW;
|
|
begin
|
|
GetProcedureAddress(_GetAltTabInfoW, user32, 'GetAltTabInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetAltTabInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetAltTabInfo: Pointer;
|
|
|
|
function GetAltTabInfo;
|
|
begin
|
|
GetProcedureAddress(_GetAltTabInfo, user32, 'GetAltTabInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetAltTabInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetListBoxInfo: Pointer;
|
|
|
|
function GetListBoxInfo;
|
|
begin
|
|
GetProcedureAddress(_GetListBoxInfo, user32, 'GetListBoxInfo');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetListBoxInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_LockWorkStation: Pointer;
|
|
|
|
function LockWorkStation;
|
|
begin
|
|
GetProcedureAddress(_LockWorkStation, user32, 'LockWorkStation');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_LockWorkStation]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_UserHandleGrantAccess: Pointer;
|
|
|
|
function UserHandleGrantAccess;
|
|
begin
|
|
GetProcedureAddress(_UserHandleGrantAccess, user32, 'UserHandleGrantAccess');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_UserHandleGrantAccess]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputData: Pointer;
|
|
|
|
function GetRawInputData;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputData, user32, 'GetRawInputData');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputData]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputDeviceInfoA: Pointer;
|
|
|
|
function GetRawInputDeviceInfoA;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputDeviceInfoA, user32, 'GetRawInputDeviceInfoA');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputDeviceInfoA]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputDeviceInfoW: Pointer;
|
|
|
|
function GetRawInputDeviceInfoW;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputDeviceInfoW, user32, 'GetRawInputDeviceInfoW');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputDeviceInfoW]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputDeviceInfo: Pointer;
|
|
|
|
function GetRawInputDeviceInfo;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputDeviceInfo, user32, 'GetRawInputDeviceInfo' + AWSuffix);
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputDeviceInfo]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputBuffer: Pointer;
|
|
|
|
function GetRawInputBuffer;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputBuffer, user32, 'GetRawInputBuffer');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputBuffer]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_RegisterRawInputDevices: Pointer;
|
|
|
|
function RegisterRawInputDevices;
|
|
begin
|
|
GetProcedureAddress(_RegisterRawInputDevices, user32, 'RegisterRawInputDevices');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_RegisterRawInputDevices]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRegisteredRawInputDevices: Pointer;
|
|
|
|
function GetRegisteredRawInputDevices;
|
|
begin
|
|
GetProcedureAddress(_GetRegisteredRawInputDevices, user32, 'GetRegisteredRawInputDevices');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRegisteredRawInputDevices]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_GetRawInputDeviceList: Pointer;
|
|
|
|
function GetRawInputDeviceList;
|
|
begin
|
|
GetProcedureAddress(_GetRawInputDeviceList, user32, 'GetRawInputDeviceList');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_GetRawInputDeviceList]
|
|
end;
|
|
end;
|
|
|
|
var
|
|
_DefRawInputProc: Pointer;
|
|
|
|
function DefRawInputProc;
|
|
begin
|
|
GetProcedureAddress(_DefRawInputProc, user32, 'DefRawInputProc');
|
|
asm
|
|
MOV ESP, EBP
|
|
POP EBP
|
|
JMP [_DefRawInputProc]
|
|
end;
|
|
end;
|
|
|
|
{$ELSE}
|
|
|
|
function IsHungAppWindow; external user32 name 'IsHungAppWindow';
|
|
procedure DisableProcessWindowsGhosting; external user32 name 'DisableProcessWindowsGhosting';
|
|
function wvsprintfA; external user32 name 'wvsprintfA';
|
|
function wvsprintfW; external user32 name 'wvsprintfW';
|
|
function wvsprintf; external user32 name 'wvsprintf' + AWSuffix;
|
|
function wsprintfA; external user32 name 'wsprintfA';
|
|
function wsprintfW; external user32 name 'wsprintfW';
|
|
function wsprintf; external user32 name 'wsprintf' + AWSuffix;
|
|
function LoadKeyboardLayoutA; external user32 name 'LoadKeyboardLayoutA';
|
|
function LoadKeyboardLayoutW; external user32 name 'LoadKeyboardLayoutW';
|
|
function LoadKeyboardLayout; external user32 name 'LoadKeyboardLayout' + AWSuffix;
|
|
function ActivateKeyboardLayout; external user32 name 'ActivateKeyboardLayout';
|
|
function ToUnicodeEx; external user32 name 'ToUnicodeEx';
|
|
function UnloadKeyboardLayout; external user32 name 'UnloadKeyboardLayout';
|
|
function GetKeyboardLayoutNameA; external user32 name 'GetKeyboardLayoutNameA';
|
|
function GetKeyboardLayoutNameW; external user32 name 'GetKeyboardLayoutNameW';
|
|
function GetKeyboardLayoutName; external user32 name 'GetKeyboardLayoutName' + AWSuffix;
|
|
function GetKeyboardLayoutList; external user32 name 'GetKeyboardLayoutList';
|
|
function GetKeyboardLayout; external user32 name 'GetKeyboardLayout';
|
|
function GetMouseMovePointsEx; external user32 name 'GetMouseMovePointsEx';
|
|
function CreateDesktopA; external user32 name 'CreateDesktopA';
|
|
function CreateDesktopW; external user32 name 'CreateDesktopW';
|
|
function CreateDesktop; external user32 name 'CreateDesktop' + AWSuffix;
|
|
function OpenDesktopA; external user32 name 'OpenDesktopA';
|
|
function OpenDesktopW; external user32 name 'OpenDesktopW';
|
|
function OpenDesktop; external user32 name 'OpenDesktop' + AWSuffix;
|
|
function OpenInputDesktop; external user32 name 'OpenInputDesktop';
|
|
function EnumDesktopsA; external user32 name 'EnumDesktopsA';
|
|
function EnumDesktopsW; external user32 name 'EnumDesktopsW';
|
|
function EnumDesktops; external user32 name 'EnumDesktops' + AWSuffix;
|
|
function EnumDesktopWindows; external user32 name 'EnumDesktopWindows';
|
|
function SwitchDesktop; external user32 name 'SwitchDesktop';
|
|
function SetThreadDesktop; external user32 name 'SetThreadDesktop';
|
|
function CloseDesktop; external user32 name 'CloseDesktop';
|
|
function GetThreadDesktop; external user32 name 'GetThreadDesktop';
|
|
function CreateWindowStationA; external user32 name 'CreateWindowStationA';
|
|
function CreateWindowStationW; external user32 name 'CreateWindowStationW';
|
|
function CreateWindowStation; external user32 name 'CreateWindowStation' + AWSuffix;
|
|
function OpenWindowStationA; external user32 name 'OpenWindowStationA';
|
|
function OpenWindowStationW; external user32 name 'OpenWindowStationW';
|
|
function OpenWindowStation; external user32 name 'OpenWindowStation' + AWSuffix;
|
|
function EnumWindowStationsA; external user32 name 'EnumWindowStationsA';
|
|
function EnumWindowStationsW; external user32 name 'EnumWindowStationsW';
|
|
function EnumWindowStations; external user32 name 'EnumWindowStations' + AWSuffix;
|
|
function CloseWindowStation; external user32 name 'CloseWindowStation';
|
|
function SetProcessWindowStation; external user32 name 'SetProcessWindowStation';
|
|
function GetProcessWindowStation; external user32 name 'GetProcessWindowStation';
|
|
function SetUserObjectSecurity; external user32 name 'SetUserObjectSecurity';
|
|
function GetUserObjectSecurity; external user32 name 'GetUserObjectSecurity';
|
|
function GetUserObjectInformationA; external user32 name 'GetUserObjectInformationA';
|
|
function GetUserObjectInformationW; external user32 name 'GetUserObjectInformationW';
|
|
function GetUserObjectInformation; external user32 name 'GetUserObjectInformation' + AWSuffix;
|
|
function SetUserObjectInformationA; external user32 name 'SetUserObjectInformationA';
|
|
function SetUserObjectInformationW; external user32 name 'SetUserObjectInformationW';
|
|
function SetUserObjectInformation; external user32 name 'SetUserObjectInformation' + AWSuffix;
|
|
function RegisterWindowMessageA; external user32 name 'RegisterWindowMessageA';
|
|
function RegisterWindowMessageW; external user32 name 'RegisterWindowMessageW';
|
|
function RegisterWindowMessage; external user32 name 'RegisterWindowMessage' + AWSuffix;
|
|
function TrackMouseEvent; external user32 name 'TrackMouseEvent';
|
|
function DrawEdge; external user32 name 'DrawEdge';
|
|
function DrawFrameControl; external user32 name 'DrawFrameControl';
|
|
function DrawCaption; external user32 name 'DrawCaption';
|
|
function DrawAnimatedRects; external user32 name 'DrawAnimatedRects';
|
|
function GetMessageA; external user32 name 'GetMessageA';
|
|
function GetMessageW; external user32 name 'GetMessageW';
|
|
function GetMessage; external user32 name 'GetMessage' + AWSuffix;
|
|
function TranslateMessage; external user32 name 'TranslateMessage';
|
|
function DispatchMessageA; external user32 name 'DispatchMessageA';
|
|
function DispatchMessageW; external user32 name 'DispatchMessageW';
|
|
function DispatchMessage; external user32 name 'DispatchMessage' + AWSuffix;
|
|
function SetMessageQueue; external user32 name 'SetMessageQueue';
|
|
function PeekMessageA; external user32 name 'PeekMessageA';
|
|
function PeekMessageW; external user32 name 'PeekMessageW';
|
|
function PeekMessage; external user32 name 'PeekMessage' + AWSuffix;
|
|
function RegisterHotKey; external user32 name 'RegisterHotKey';
|
|
function UnregisterHotKey; external user32 name 'UnregisterHotKey';
|
|
function ExitWindowsEx; external user32 name 'ExitWindowsEx';
|
|
function SwapMouseButton; external user32 name 'SwapMouseButton';
|
|
function GetMessagePos; external user32 name 'GetMessagePos';
|
|
function GetMessageTime; external user32 name 'GetMessageTime';
|
|
function GetMessageExtraInfo; external user32 name 'GetMessageExtraInfo';
|
|
function SetMessageExtraInfo; external user32 name 'SetMessageExtraInfo';
|
|
function SendMessageA; external user32 name 'SendMessageA';
|
|
function SendMessageW; external user32 name 'SendMessageW';
|
|
function SendMessage; external user32 name 'SendMessage' + AWSuffix;
|
|
function SendMessageTimeoutA; external user32 name 'SendMessageTimeoutA';
|
|
function SendMessageTimeoutW; external user32 name 'SendMessageTimeoutW';
|
|
function SendMessageTimeout; external user32 name 'SendMessageTimeout' + AWSuffix;
|
|
function SendNotifyMessageA; external user32 name 'SendNotifyMessageA';
|
|
function SendNotifyMessageW; external user32 name 'SendNotifyMessageW';
|
|
function SendNotifyMessage; external user32 name 'SendNotifyMessage' + AWSuffix;
|
|
function SendMessageCallbackA; external user32 name 'SendMessageCallbackA';
|
|
function SendMessageCallbackW; external user32 name 'SendMessageCallbackW';
|
|
function SendMessageCallback; external user32 name 'SendMessageCallback' + AWSuffix;
|
|
function BroadcastSystemMessageExA; external user32 name 'BroadcastSystemMessageExA';
|
|
function BroadcastSystemMessageExW; external user32 name 'BroadcastSystemMessageExW';
|
|
function BroadcastSystemMessageEx; external user32 name 'BroadcastSystemMessageEx' + AWSuffix;
|
|
function BroadcastSystemMessageA; external user32 name 'BroadcastSystemMessageA';
|
|
function BroadcastSystemMessageW; external user32 name 'BroadcastSystemMessageW';
|
|
function BroadcastSystemMessage; external user32 name 'BroadcastSystemMessage' + AWSuffix;
|
|
function RegisterDeviceNotificationA; external user32 name 'RegisterDeviceNotificationA';
|
|
function RegisterDeviceNotificationW; external user32 name 'RegisterDeviceNotificationW';
|
|
function RegisterDeviceNotification; external user32 name 'RegisterDeviceNotification' + AWSuffix;
|
|
function UnregisterDeviceNotification; external user32 name 'UnregisterDeviceNotification';
|
|
function PostMessageA; external user32 name 'PostMessageA';
|
|
function PostMessageW; external user32 name 'PostMessageW';
|
|
function PostMessage; external user32 name 'PostMessage' + AWSuffix;
|
|
function PostThreadMessageA; external user32 name 'PostThreadMessageA';
|
|
function PostThreadMessageW; external user32 name 'PostThreadMessageW';
|
|
function PostThreadMessage; external user32 name 'PostThreadMessage' + AWSuffix;
|
|
function AttachThreadInput; external user32 name 'AttachThreadInput';
|
|
function ReplyMessage; external user32 name 'ReplyMessage';
|
|
function WaitMessage; external user32 name 'WaitMessage';
|
|
function WaitForInputIdle; external user32 name 'WaitForInputIdle';
|
|
function DefWindowProcA; external user32 name 'DefWindowProcA';
|
|
function DefWindowProcW; external user32 name 'DefWindowProcW';
|
|
function DefWindowProc; external user32 name 'DefWindowProc' + AWSuffix;
|
|
procedure PostQuitMessage; external user32 name 'PostQuitMessage';
|
|
function CallWindowProcA; external user32 name 'CallWindowProcA';
|
|
function CallWindowProcW; external user32 name 'CallWindowProcW';
|
|
function CallWindowProc; external user32 name 'CallWindowProc' + AWSuffix;
|
|
function InSendMessage; external user32 name 'InSendMessage';
|
|
function InSendMessageEx; external user32 name 'InSendMessageEx';
|
|
function GetDoubleClickTime; external user32 name 'GetDoubleClickTime';
|
|
function SetDoubleClickTime; external user32 name 'SetDoubleClickTime';
|
|
function RegisterClassA; external user32 name 'RegisterClassA';
|
|
function RegisterClassW; external user32 name 'RegisterClassW';
|
|
function RegisterClass; external user32 name 'RegisterClass' + AWSuffix;
|
|
function UnregisterClassA; external user32 name 'UnregisterClassA';
|
|
function UnregisterClassW; external user32 name 'UnregisterClassW';
|
|
function UnregisterClass; external user32 name 'UnregisterClass' + AWSuffix;
|
|
function GetClassInfoA; external user32 name 'GetClassInfoA';
|
|
function GetClassInfoW; external user32 name 'GetClassInfoW';
|
|
function GetClassInfo; external user32 name 'GetClassInfo' + AWSuffix;
|
|
function RegisterClassExA; external user32 name 'RegisterClassExA';
|
|
function RegisterClassExW; external user32 name 'RegisterClassExW';
|
|
function RegisterClassEx; external user32 name 'RegisterClassEx' + AWSuffix;
|
|
function GetClassInfoExA; external user32 name 'GetClassInfoExA';
|
|
function GetClassInfoExW; external user32 name 'GetClassInfoExW';
|
|
function GetClassInfoEx; external user32 name 'GetClassInfoEx' + AWSuffix;
|
|
function CreateWindowExA; external user32 name 'CreateWindowExA';
|
|
function CreateWindowExW; external user32 name 'CreateWindowExW';
|
|
function CreateWindowEx; external user32 name 'CreateWindowEx' + AWSuffix;
|
|
function IsWindow; external user32 name 'IsWindow';
|
|
function IsMenu; external user32 name 'IsMenu';
|
|
function IsChild; external user32 name 'IsChild';
|
|
function DestroyWindow; external user32 name 'DestroyWindow';
|
|
function ShowWindow; external user32 name 'ShowWindow';
|
|
function AnimateWindow; external user32 name 'AnimateWindow';
|
|
function UpdateLayeredWindow; external user32 name 'UpdateLayeredWindow';
|
|
function GetLayeredWindowAttributes; external user32 name 'GetLayeredWindowAttributes';
|
|
function PrintWindow; external user32 name 'PrintWindow';
|
|
function SetLayeredWindowAttributes; external user32 name 'SetLayeredWindowAttributes';
|
|
function ShowWindowAsync; external user32 name 'ShowWindowAsync';
|
|
function FlashWindow; external user32 name 'FlashWindow';
|
|
function FlashWindowEx; external user32 name 'FlashWindowEx';
|
|
function ShowOwnedPopups; external user32 name 'ShowOwnedPopups';
|
|
function OpenIcon; external user32 name 'OpenIcon';
|
|
function CloseWindow; external user32 name 'CloseWindow';
|
|
function MoveWindow; external user32 name 'MoveWindow';
|
|
function SetWindowPos; external user32 name 'SetWindowPos';
|
|
function GetWindowPlacement; external user32 name 'GetWindowPlacement';
|
|
function SetWindowPlacement; external user32 name 'SetWindowPlacement';
|
|
function BeginDeferWindowPos; external user32 name 'BeginDeferWindowPos';
|
|
function DeferWindowPos; external user32 name 'DeferWindowPos';
|
|
function EndDeferWindowPos; external user32 name 'EndDeferWindowPos';
|
|
function IsWindowVisible; external user32 name 'IsWindowVisible';
|
|
function IsIconic; external user32 name 'IsIconic';
|
|
function AnyPopup; external user32 name 'AnyPopup';
|
|
function BringWindowToTop; external user32 name 'BringWindowToTop';
|
|
function IsZoomed; external user32 name 'IsZoomed';
|
|
function CreateDialogParamA; external user32 name 'CreateDialogParamA';
|
|
function CreateDialogParamW; external user32 name 'CreateDialogParamW';
|
|
function CreateDialogParam; external user32 name 'CreateDialogParam' + AWSuffix;
|
|
function CreateDialogIndirectParamA; external user32 name 'CreateDialogIndirectParamA';
|
|
function CreateDialogIndirectParamW; external user32 name 'CreateDialogIndirectParamW';
|
|
function CreateDialogIndirectParam; external user32 name 'CreateDialogIndirectParam' + AWSuffix;
|
|
function DialogBoxParamA; external user32 name 'DialogBoxParamA';
|
|
function DialogBoxParamW; external user32 name 'DialogBoxParamW';
|
|
function DialogBoxParam; external user32 name 'DialogBoxParam' + AWSuffix;
|
|
function DialogBoxIndirectParamA; external user32 name 'DialogBoxIndirectParamA';
|
|
function DialogBoxIndirectParamW; external user32 name 'DialogBoxIndirectParamW';
|
|
function DialogBoxIndirectParam; external user32 name 'DialogBoxIndirectParam' + AWSuffix;
|
|
function EndDialog; external user32 name 'EndDialog';
|
|
function GetDlgItem; external user32 name 'GetDlgItem';
|
|
function SetDlgItemInt; external user32 name 'SetDlgItemInt';
|
|
function GetDlgItemInt; external user32 name 'GetDlgItemInt';
|
|
function SetDlgItemTextA; external user32 name 'SetDlgItemTextA';
|
|
function SetDlgItemTextW; external user32 name 'SetDlgItemTextW';
|
|
function SetDlgItemText; external user32 name 'SetDlgItemText' + AWSuffix;
|
|
function GetDlgItemTextA; external user32 name 'GetDlgItemTextA';
|
|
function GetDlgItemTextW; external user32 name 'GetDlgItemTextW';
|
|
function GetDlgItemText; external user32 name 'GetDlgItemText' + AWSuffix;
|
|
function CheckDlgButton; external user32 name 'CheckDlgButton';
|
|
function CheckRadioButton; external user32 name 'CheckRadioButton';
|
|
function IsDlgButtonChecked; external user32 name 'IsDlgButtonChecked';
|
|
function SendDlgItemMessageA; external user32 name 'SendDlgItemMessageA';
|
|
function SendDlgItemMessageW; external user32 name 'SendDlgItemMessageW';
|
|
function SendDlgItemMessage; external user32 name 'SendDlgItemMessage' + AWSuffix;
|
|
function GetNextDlgGroupItem; external user32 name 'GetNextDlgGroupItem';
|
|
function GetNextDlgTabItem; external user32 name 'GetNextDlgTabItem';
|
|
function GetDlgCtrlID; external user32 name 'GetDlgCtrlID';
|
|
function GetDialogBaseUnits; external user32 name 'GetDialogBaseUnits';
|
|
function DefDlgProcA; external user32 name 'DefDlgProcA';
|
|
function DefDlgProcW; external user32 name 'DefDlgProcW';
|
|
function DefDlgProc; external user32 name 'DefDlgProc' + AWSuffix;
|
|
function CallMsgFilterA; external user32 name 'CallMsgFilterA';
|
|
function CallMsgFilterW; external user32 name 'CallMsgFilterW';
|
|
function CallMsgFilter; external user32 name 'CallMsgFilter' + AWSuffix;
|
|
function OpenClipboard; external user32 name 'OpenClipboard';
|
|
function CloseClipboard; external user32 name 'CloseClipboard';
|
|
function GetClipboardSequenceNumber; external user32 name 'GetClipboardSequenceNumber';
|
|
function GetClipboardOwner; external user32 name 'GetClipboardOwner';
|
|
function SetClipboardViewer; external user32 name 'SetClipboardViewer';
|
|
function GetClipboardViewer; external user32 name 'GetClipboardViewer';
|
|
function ChangeClipboardChain; external user32 name 'ChangeClipboardChain';
|
|
function SetClipboardData; external user32 name 'SetClipboardData';
|
|
function GetClipboardData; external user32 name 'GetClipboardData';
|
|
function RegisterClipboardFormatA; external user32 name 'RegisterClipboardFormatA';
|
|
function RegisterClipboardFormatW; external user32 name 'RegisterClipboardFormatW';
|
|
function RegisterClipboardFormat; external user32 name 'RegisterClipboardFormat' + AWSuffix;
|
|
function CountClipboardFormats; external user32 name 'CountClipboardFormats';
|
|
function EnumClipboardFormats; external user32 name 'EnumClipboardFormats';
|
|
function GetClipboardFormatNameA; external user32 name 'GetClipboardFormatNameA';
|
|
function GetClipboardFormatNameW; external user32 name 'GetClipboardFormatNameW';
|
|
function GetClipboardFormatName; external user32 name 'GetClipboardFormatName' + AWSuffix;
|
|
function EmptyClipboard; external user32 name 'EmptyClipboard';
|
|
function IsClipboardFormatAvailable; external user32 name 'IsClipboardFormatAvailable';
|
|
function GetPriorityClipboardFormat; external user32 name 'GetPriorityClipboardFormat';
|
|
function GetOpenClipboardWindow; external user32 name 'GetOpenClipboardWindow';
|
|
function CharToOemA; external user32 name 'CharToOemA';
|
|
function CharToOemW; external user32 name 'CharToOemW';
|
|
function CharToOem; external user32 name 'CharToOem' + AWSuffix;
|
|
function OemToCharA; external user32 name 'OemToCharA';
|
|
function OemToCharW; external user32 name 'OemToCharW';
|
|
function OemToChar; external user32 name 'OemToChar' + AWSuffix;
|
|
function CharToOemBuffA; external user32 name 'CharToOemBuffA';
|
|
function CharToOemBuffW; external user32 name 'CharToOemBuffW';
|
|
function CharToOemBuff; external user32 name 'CharToOemBuff' + AWSuffix;
|
|
function OemToCharBuffA; external user32 name 'OemToCharBuffA';
|
|
function OemToCharBuffW; external user32 name 'OemToCharBuffW';
|
|
function OemToCharBuff; external user32 name 'OemToCharBuff' + AWSuffix;
|
|
function CharUpperA; external user32 name 'CharUpperA';
|
|
function CharUpperW; external user32 name 'CharUpperW';
|
|
function CharUpper; external user32 name 'CharUpper' + AWSuffix;
|
|
function CharUpperBuffA; external user32 name 'CharUpperBuffA';
|
|
function CharUpperBuffW; external user32 name 'CharUpperBuffW';
|
|
function CharUpperBuff; external user32 name 'CharUpperBuff' + AWSuffix;
|
|
function CharLowerA; external user32 name 'CharLowerA';
|
|
function CharLowerW; external user32 name 'CharLowerW';
|
|
function CharLower; external user32 name 'CharLower' + AWSuffix;
|
|
function CharLowerBuffA; external user32 name 'CharLowerBuffA';
|
|
function CharLowerBuffW; external user32 name 'CharLowerBuffW';
|
|
function CharLowerBuff; external user32 name 'CharLowerBuff' + AWSuffix;
|
|
function CharNextA; external user32 name 'CharNextA';
|
|
function CharNextW; external user32 name 'CharNextW';
|
|
function CharNext; external user32 name 'CharNext' + AWSuffix;
|
|
function CharPrevA; external user32 name 'CharPrevA';
|
|
function CharPrevW; external user32 name 'CharPrevW';
|
|
function CharPrev; external user32 name 'CharPrev' + AWSuffix;
|
|
function CharNextExA; external user32 name 'CharNextExA';
|
|
function CharPrevExA; external user32 name 'CharPrevExA';
|
|
function IsCharAlphaA; external user32 name 'IsCharAlphaA';
|
|
function IsCharAlphaW; external user32 name 'IsCharAlphaW';
|
|
function IsCharAlpha; external user32 name 'IsCharAlpha' + AWSuffix;
|
|
function IsCharAlphaNumericA; external user32 name 'IsCharAlphaNumericA';
|
|
function IsCharAlphaNumericW; external user32 name 'IsCharAlphaNumericW';
|
|
function IsCharAlphaNumeric; external user32 name 'IsCharAlphaNumeric' + AWSuffix;
|
|
function IsCharUpperA; external user32 name 'IsCharUpperA';
|
|
function IsCharUpperW; external user32 name 'IsCharUpperW';
|
|
function IsCharUpper; external user32 name 'IsCharUpper' + AWSuffix;
|
|
function IsCharLowerA; external user32 name 'IsCharLowerA';
|
|
function IsCharLowerW; external user32 name 'IsCharLowerW';
|
|
function IsCharLower; external user32 name 'IsCharLower' + AWSuffix;
|
|
function SetFocus; external user32 name 'SetFocus';
|
|
function GetActiveWindow; external user32 name 'GetActiveWindow';
|
|
function GetFocus; external user32 name 'GetFocus';
|
|
function GetKBCodePage; external user32 name 'GetKBCodePage';
|
|
function GetKeyState; external user32 name 'GetKeyState';
|
|
function GetAsyncKeyState; external user32 name 'GetAsyncKeyState';
|
|
function GetKeyboardState; external user32 name 'GetKeyboardState';
|
|
function SetKeyboardState; external user32 name 'SetKeyboardState';
|
|
function GetKeyNameTextA; external user32 name 'GetKeyNameTextA';
|
|
function GetKeyNameTextW; external user32 name 'GetKeyNameTextW';
|
|
function GetKeyNameText; external user32 name 'GetKeyNameText' + AWSuffix;
|
|
function GetKeyboardType; external user32 name 'GetKeyboardType';
|
|
function ToAscii; external user32 name 'ToAscii';
|
|
function ToAsciiEx; external user32 name 'ToAsciiEx';
|
|
function ToUnicode; external user32 name 'ToUnicode';
|
|
function OemKeyScan; external user32 name 'OemKeyScan';
|
|
function VkKeyScanA; external user32 name 'VkKeyScanA';
|
|
function VkKeyScanW; external user32 name 'VkKeyScanW';
|
|
function VkKeyScan; external user32 name 'VkKeyScan' + AWSuffix;
|
|
function VkKeyScanExA; external user32 name 'VkKeyScanExA';
|
|
function VkKeyScanExW; external user32 name 'VkKeyScanExW';
|
|
function VkKeyScanEx; external user32 name 'VkKeyScanEx' + AWSuffix;
|
|
procedure keybd_event; external user32 name 'keybd_event';
|
|
procedure mouse_event; external user32 name 'mouse_event';
|
|
function SendInput; external user32 name 'SendInput';
|
|
function GetLastInputInfo; external user32 name 'GetLastInputInfo';
|
|
function MapVirtualKeyA; external user32 name 'MapVirtualKeyA';
|
|
function MapVirtualKeyW; external user32 name 'MapVirtualKeyW';
|
|
function MapVirtualKey; external user32 name 'MapVirtualKey' + AWSuffix;
|
|
function MapVirtualKeyExA; external user32 name 'MapVirtualKeyExA';
|
|
function MapVirtualKeyExW; external user32 name 'MapVirtualKeyExW';
|
|
function MapVirtualKeyEx; external user32 name 'MapVirtualKeyEx' + AWSuffix;
|
|
function GetInputState; external user32 name 'GetInputState';
|
|
function GetQueueStatus; external user32 name 'GetQueueStatus';
|
|
function GetCapture; external user32 name 'GetCapture';
|
|
function SetCapture; external user32 name 'SetCapture';
|
|
function ReleaseCapture; external user32 name 'ReleaseCapture';
|
|
function MsgWaitForMultipleObjects; external user32 name 'MsgWaitForMultipleObjects';
|
|
function MsgWaitForMultipleObjectsEx; external user32 name 'MsgWaitForMultipleObjectsEx';
|
|
function SetTimer; external user32 name 'SetTimer';
|
|
function KillTimer; external user32 name 'KillTimer';
|
|
function IsWindowUnicode; external user32 name 'IsWindowUnicode';
|
|
function EnableWindow; external user32 name 'EnableWindow';
|
|
function IsWindowEnabled; external user32 name 'IsWindowEnabled';
|
|
function LoadAcceleratorsA; external user32 name 'LoadAcceleratorsA';
|
|
function LoadAcceleratorsW; external user32 name 'LoadAcceleratorsW';
|
|
function LoadAccelerators; external user32 name 'LoadAccelerators' + AWSuffix;
|
|
function CreateAcceleratorTableA; external user32 name 'CreateAcceleratorTableA';
|
|
function CreateAcceleratorTableW; external user32 name 'CreateAcceleratorTableW';
|
|
function CreateAcceleratorTable; external user32 name 'CreateAcceleratorTable' + AWSuffix;
|
|
function DestroyAcceleratorTable; external user32 name 'DestroyAcceleratorTable';
|
|
function CopyAcceleratorTableA; external user32 name 'CopyAcceleratorTableA';
|
|
function CopyAcceleratorTableW; external user32 name 'CopyAcceleratorTableW';
|
|
function CopyAcceleratorTable; external user32 name 'CopyAcceleratorTable' + AWSuffix;
|
|
function TranslateAcceleratorA; external user32 name 'TranslateAcceleratorA';
|
|
function TranslateAcceleratorW; external user32 name 'TranslateAcceleratorW';
|
|
function TranslateAccelerator; external user32 name 'TranslateAccelerator' + AWSuffix;
|
|
function GetSystemMetrics; external user32 name 'GetSystemMetrics';
|
|
function LoadMenuA; external user32 name 'LoadMenuAA';
|
|
function LoadMenuW; external user32 name 'LoadMenuWA';
|
|
function LoadMenu; external user32 name 'LoadMenu' + AWSuffix;
|
|
function LoadMenuIndirectA; external user32 name 'LoadMenuIndirectA';
|
|
function LoadMenuIndirectW; external user32 name 'LoadMenuIndirectW';
|
|
function LoadMenuIndirect; external user32 name 'LoadMenuIndirect' + AWSuffix;
|
|
function GetMenu; external user32 name 'GetMenu';
|
|
function SetMenu; external user32 name 'SetMenu';
|
|
function ChangeMenuA; external user32 name 'ChangeMenuA';
|
|
function ChangeMenuW; external user32 name 'ChangeMenuW';
|
|
function ChangeMenu; external user32 name 'ChangeMenu' + AWSuffix;
|
|
function HiliteMenuItem; external user32 name 'HiliteMenuItem';
|
|
function GetMenuStringA; external user32 name 'GetMenuStringA';
|
|
function GetMenuStringW; external user32 name 'GetMenuStringW';
|
|
function GetMenuString; external user32 name 'GetMenuString' + AWSuffix;
|
|
function GetMenuState; external user32 name 'GetMenuState';
|
|
function DrawMenuBar; external user32 name 'DrawMenuBar';
|
|
function GetSystemMenu; external user32 name 'GetSystemMenu';
|
|
function CreateMenu; external user32 name 'CreateMenu';
|
|
function CreatePopupMenu; external user32 name 'CreatePopupMenu';
|
|
function DestroyMenu; external user32 name 'DestroyMenu';
|
|
function CheckMenuItem; external user32 name 'CheckMenuItem';
|
|
function EnableMenuItem; external user32 name 'EnableMenuItem';
|
|
function GetSubMenu; external user32 name 'GetSubMenu';
|
|
function GetMenuItemID; external user32 name 'GetMenuItemID';
|
|
function GetMenuItemCount; external user32 name 'GetMenuItemCount';
|
|
function InsertMenuA; external user32 name 'InsertMenuA';
|
|
function InsertMenuW; external user32 name 'InsertMenuW';
|
|
function InsertMenu; external user32 name 'InsertMenu' + AWSuffix;
|
|
function AppendMenuA; external user32 name 'AppendMenuA';
|
|
function AppendMenuW; external user32 name 'AppendMenuW';
|
|
function AppendMenu; external user32 name 'AppendMenu' + AWSuffix;
|
|
function ModifyMenuA; external user32 name 'ModifyMenuA';
|
|
function ModifyMenuW; external user32 name 'ModifyMenuW';
|
|
function ModifyMenu; external user32 name 'ModifyMenu' + AWSuffix;
|
|
function RemoveMenu; external user32 name 'RemoveMenu';
|
|
function DeleteMenu; external user32 name 'DeleteMenu';
|
|
function SetMenuItemBitmaps; external user32 name 'SetMenuItemBitmaps';
|
|
function GetMenuCheckMarkDimensions; external user32 name 'GetMenuCheckMarkDimensions';
|
|
function TrackPopupMenu; external user32 name 'TrackPopupMenu';
|
|
function TrackPopupMenuEx; external user32 name 'TrackPopupMenuEx';
|
|
function GetMenuInfo; external user32 name 'GetMenuInfo';
|
|
function SetMenuInfo; external user32 name 'SetMenuInfo';
|
|
function EndMenu; external user32 name 'EndMenu';
|
|
function InsertMenuItemA; external user32 name 'InsertMenuItemA';
|
|
function InsertMenuItemW; external user32 name 'InsertMenuItemW';
|
|
function InsertMenuItem; external user32 name 'InsertMenuItem' + AWSuffix;
|
|
function GetMenuItemInfoA; external user32 name 'GetMenuItemInfoA';
|
|
function GetMenuItemInfoW; external user32 name 'GetMenuItemInfoW';
|
|
function GetMenuItemInfo; external user32 name 'GetMenuItemInfo' + AWSuffix;
|
|
function SetMenuItemInfoA; external user32 name 'SetMenuItemInfoA';
|
|
function SetMenuItemInfoW; external user32 name 'SetMenuItemInfoW';
|
|
function SetMenuItemInfo; external user32 name 'SetMenuItemInfo' + AWSuffix;
|
|
function GetMenuDefaultItem; external user32 name 'GetMenuDefaultItem';
|
|
function SetMenuDefaultItem; external user32 name 'SetMenuDefaultItem';
|
|
function GetMenuItemRect; external user32 name 'GetMenuItemRect';
|
|
function MenuItemFromPoint; external user32 name 'MenuItemFromPoint';
|
|
function DragObject; external user32 name 'DragObject';
|
|
function DragDetect; external user32 name 'DragDetect';
|
|
function DrawIcon; external user32 name 'DrawIcon';
|
|
function DrawTextA; external user32 name 'DrawTextA';
|
|
function DrawTextW; external user32 name 'DrawTextW';
|
|
function DrawText; external user32 name 'DrawText' + AWSuffix;
|
|
function DrawTextExA; external user32 name 'DrawTextExA';
|
|
function DrawTextExW; external user32 name 'DrawTextExW';
|
|
function DrawTextEx; external user32 name 'DrawTextEx' + AWSuffix;
|
|
function GrayStringA; external user32 name 'GrayStringA';
|
|
function GrayStringW; external user32 name 'GrayStringW';
|
|
function GrayString; external user32 name 'GrayString' + AWSuffix;
|
|
function DrawStateA; external user32 name 'DrawStateA';
|
|
function DrawStateW; external user32 name 'DrawStateW';
|
|
function DrawState; external user32 name 'DrawState' + AWSuffix;
|
|
function TabbedTextOutA; external user32 name 'TabbedTextOutA';
|
|
function TabbedTextOutW; external user32 name 'TabbedTextOutW';
|
|
function TabbedTextOut; external user32 name 'TabbedTextOut' + AWSuffix;
|
|
function GetTabbedTextExtentA; external user32 name 'GetTabbedTextExtentA';
|
|
function GetTabbedTextExtentW; external user32 name 'GetTabbedTextExtentW';
|
|
function GetTabbedTextExtent; external user32 name 'GetTabbedTextExtent' + AWSuffix;
|
|
function UpdateWindow; external user32 name 'UpdateWindow';
|
|
function SetActiveWindow; external user32 name 'SetActiveWindow';
|
|
function GetForegroundWindow; external user32 name 'GetForegroundWindow';
|
|
function PaintDesktop; external user32 name 'PaintDesktop';
|
|
procedure SwitchToThisWindow; external user32 name 'SwitchToThisWindow';
|
|
function SetForegroundWindow; external user32 name 'SetForegroundWindow';
|
|
function AllowSetForegroundWindow; external user32 name 'AllowSetForegroundWindow';
|
|
function LockSetForegroundWindow; external user32 name 'LockSetForegroundWindow';
|
|
function WindowFromDC; external user32 name 'WindowFromDC';
|
|
function GetDC; external user32 name 'GetDC';
|
|
function GetDCEx; external user32 name 'GetDCEx';
|
|
function GetWindowDC; external user32 name 'GetWindowDC';
|
|
function ReleaseDC; external user32 name 'ReleaseDC';
|
|
function BeginPaint; external user32 name 'BeginPaint';
|
|
function EndPaint; external user32 name 'EndPaint';
|
|
function GetUpdateRect; external user32 name 'GetUpdateRect';
|
|
function GetUpdateRgn; external user32 name 'GetUpdateRgn';
|
|
function SetWindowRgn; external user32 name 'SetWindowRgn';
|
|
function GetWindowRgn; external user32 name 'GetWindowRgn';
|
|
function GetWindowRgnBox; external user32 name 'GetWindowRgnBox';
|
|
function ExcludeUpdateRgn; external user32 name 'ExcludeUpdateRgn';
|
|
function InvalidateRect; external user32 name 'InvalidateRect';
|
|
function ValidateRect; external user32 name 'ValidateRect';
|
|
function InvalidateRgn; external user32 name 'InvalidateRgn';
|
|
function ValidateRgn; external user32 name 'ValidateRgn';
|
|
function RedrawWindow; external user32 name 'RedrawWindow';
|
|
function LockWindowUpdate; external user32 name 'LockWindowUpdate';
|
|
function ScrollWindow; external user32 name 'ScrollWindow';
|
|
function ScrollDC; external user32 name 'ScrollDC';
|
|
function ScrollWindowEx; external user32 name 'ScrollWindowEx';
|
|
function SetScrollPos; external user32 name 'SetScrollPos';
|
|
function GetScrollPos; external user32 name 'GetScrollPos';
|
|
function SetScrollRange; external user32 name 'SetScrollRange';
|
|
function GetScrollRange; external user32 name 'GetScrollRange';
|
|
function ShowScrollBar; external user32 name 'ShowScrollBar';
|
|
function EnableScrollBar; external user32 name 'EnableScrollBar';
|
|
function SetPropA; external user32 name 'SetPropA';
|
|
function SetPropW; external user32 name 'SetPropW';
|
|
function SetProp; external user32 name 'SetProp' + AWSuffix;
|
|
function GetPropA; external user32 name 'GetPropA';
|
|
function GetPropW; external user32 name 'GetPropW';
|
|
function GetProp; external user32 name 'GetProp' + AWSuffix;
|
|
function RemovePropA; external user32 name 'RemovePropA';
|
|
function RemovePropW; external user32 name 'RemovePropW';
|
|
function RemoveProp; external user32 name 'RemoveProp' + AWSuffix;
|
|
function EnumPropsExA; external user32 name 'EnumPropsExA';
|
|
function EnumPropsExW; external user32 name 'EnumPropsExW';
|
|
function EnumPropsEx; external user32 name 'EnumPropsEx' + AWSuffix;
|
|
function EnumPropsA; external user32 name 'EnumPropsA';
|
|
function EnumPropsW; external user32 name 'EnumPropsW';
|
|
function EnumProps; external user32 name 'EnumProps' + AWSuffix;
|
|
function SetWindowTextA; external user32 name 'SetWindowTextA';
|
|
function SetWindowTextW; external user32 name 'SetWindowTextW';
|
|
function SetWindowText; external user32 name 'SetWindowText' + AWSuffix;
|
|
function GetWindowTextA; external user32 name 'GetWindowTextA';
|
|
function GetWindowTextW; external user32 name 'GetWindowTextW';
|
|
function GetWindowText; external user32 name 'GetWindowText' + AWSuffix;
|
|
function GetWindowTextLengthA; external user32 name 'GetWindowTextLengthA';
|
|
function GetWindowTextLengthW; external user32 name 'GetWindowTextLengthW';
|
|
function GetWindowTextLength; external user32 name 'GetWindowTextLength' + AWSuffix;
|
|
function GetClientRect; external user32 name 'GetClientRect';
|
|
function GetWindowRect; external user32 name 'GetWindowRect';
|
|
function AdjustWindowRect; external user32 name 'AdjustWindowRect';
|
|
function AdjustWindowRectEx; external user32 name 'AdjustWindowRectEx';
|
|
function SetWindowContextHelpId; external user32 name 'SetWindowContextHelpId';
|
|
function GetWindowContextHelpId; external user32 name 'GetWindowContextHelpId';
|
|
function SetMenuContextHelpId; external user32 name 'SetMenuContextHelpId';
|
|
function GetMenuContextHelpId; external user32 name 'GetMenuContextHelpId';
|
|
function MessageBoxA; external user32 name 'MessageBoxA';
|
|
function MessageBoxW; external user32 name 'MessageBoxW';
|
|
function MessageBox; external user32 name 'MessageBox' + AWSuffix;
|
|
function MessageBoxExA; external user32 name 'MessageBoxExA';
|
|
function MessageBoxExW; external user32 name 'MessageBoxExW';
|
|
function MessageBoxEx; external user32 name 'MessageBoxEx' + AWSuffix;
|
|
function MessageBoxIndirectA; external user32 name 'MessageBoxIndirectA';
|
|
function MessageBoxIndirectW; external user32 name 'MessageBoxIndirectW';
|
|
function MessageBoxIndirect; external user32 name 'MessageBoxIndirect' + AWSuffix;
|
|
function MessageBeep; external user32 name 'MessageBeep';
|
|
function ShowCursor; external user32 name 'ShowCursor';
|
|
function SetCursorPos; external user32 name 'SetCursorPos';
|
|
function SetCursor; external user32 name 'SetCursor';
|
|
function GetCursorPos; external user32 name 'GetCursorPos';
|
|
function ClipCursor; external user32 name 'ClipCursor';
|
|
function GetClipCursor; external user32 name 'GetClipCursor';
|
|
function GetCursor; external user32 name 'GetCursor';
|
|
function CreateCaret; external user32 name 'CreateCaret';
|
|
function GetCaretBlinkTime; external user32 name 'GetCaretBlinkTime';
|
|
function SetCaretBlinkTime; external user32 name 'SetCaretBlinkTime';
|
|
function DestroyCaret; external user32 name 'DestroyCaret';
|
|
function HideCaret; external user32 name 'HideCaret';
|
|
function ShowCaret; external user32 name 'ShowCaret';
|
|
function SetCaretPos; external user32 name 'SetCaretPos';
|
|
function GetCaretPos; external user32 name 'GetCaretPos';
|
|
function ClientToScreen; external user32 name 'ClientToScreen';
|
|
function ScreenToClient; external user32 name 'ScreenToClient';
|
|
function MapWindowPoints; external user32 name 'MapWindowPoints';
|
|
function WindowFromPoint; external user32 name 'WindowFromPoint';
|
|
function ChildWindowFromPoint; external user32 name 'ChildWindowFromPoint';
|
|
function ChildWindowFromPointEx; external user32 name 'ChildWindowFromPointEx';
|
|
function GetSysColor; external user32 name 'GetSysColor';
|
|
function GetSysColorBrush; external user32 name 'GetSysColorBrush';
|
|
function SetSysColors; external user32 name 'SetSysColors';
|
|
function DrawFocusRect; external user32 name 'DrawFocusRect';
|
|
function FillRect; external user32 name 'FillRect';
|
|
function FrameRect; external user32 name 'FrameRect';
|
|
function InvertRect; external user32 name 'InvertRect';
|
|
function SetRect; external user32 name 'SetRect';
|
|
function SetRectEmpty; external user32 name 'SetRectEmpty';
|
|
function CopyRect; external user32 name 'CopyRect';
|
|
function InflateRect; external user32 name 'InflateRect';
|
|
function IntersectRect; external user32 name 'IntersectRect';
|
|
function UnionRect; external user32 name 'UnionRect';
|
|
function SubtractRect; external user32 name 'SubtractRect';
|
|
function OffsetRect; external user32 name 'OffsetRect';
|
|
function IsRectEmpty; external user32 name 'IsRectEmpty';
|
|
function EqualRect; external user32 name 'EqualRect';
|
|
function PtInRect; external user32 name 'PtInRect';
|
|
function GetWindowWord; external user32 name 'GetWindowWord';
|
|
function SetWindowWord; external user32 name 'SetWindowWord';
|
|
function GetWindowLongA; external user32 name 'GetWindowLongA';
|
|
function GetWindowLongW; external user32 name 'GetWindowLongW';
|
|
function GetWindowLong; external user32 name 'GetWindowLong' + AWSuffix;
|
|
function SetWindowLongA; external user32 name 'SetWindowLongA';
|
|
function SetWindowLongW; external user32 name 'SetWindowLongW';
|
|
function SetWindowLong; external user32 name 'SetWindowLong' + AWSuffix;
|
|
function GetClassWord; external user32 name 'GetClassWord';
|
|
function SetClassWord; external user32 name 'SetClassWord';
|
|
function GetClassLongA; external user32 name 'GetClassLongA';
|
|
function GetClassLongW; external user32 name 'GetClassLongW';
|
|
function GetClassLong; external user32 name 'GetClassLong' + AWSuffix;
|
|
function SetClassLongA; external user32 name 'SetClassLongA';
|
|
function SetClassLongW; external user32 name 'SetClassLongW';
|
|
function SetClassLong; external user32 name 'SetClassLong' + AWSuffix;
|
|
function GetProcessDefaultLayout; external user32 name 'GetProcessDefaultLayout';
|
|
function SetProcessDefaultLayout; external user32 name 'SetProcessDefaultLayout';
|
|
function GetDesktopWindow; external user32 name 'GetDesktopWindow';
|
|
function GetParent; external user32 name 'GetParent';
|
|
function SetParent; external user32 name 'SetParent';
|
|
function EnumChildWindows; external user32 name 'EnumChildWindows';
|
|
function FindWindowA; external user32 name 'FindWindowA';
|
|
function FindWindowW; external user32 name 'FindWindowW';
|
|
function FindWindow; external user32 name 'FindWindow' + AWSuffix;
|
|
function FindWindowExA; external user32 name 'FindWindowExA';
|
|
function FindWindowExW; external user32 name 'FindWindowExW';
|
|
function FindWindowEx; external user32 name 'FindWindowEx' + AWSuffix;
|
|
function GetShellWindow; external user32 name 'GetShellWindow';
|
|
function RegisterShellHookWindow; external user32 name 'RegisterShellHookWindow';
|
|
function DeregisterShellHookWindow; external user32 name 'DeregisterShellHookWindow';
|
|
function EnumWindows; external user32 name 'EnumWindows';
|
|
function EnumThreadWindows; external user32 name 'EnumThreadWindows';
|
|
function GetClassNameA; external user32 name 'GetClassNameA';
|
|
function GetClassNameW; external user32 name 'GetClassNameW';
|
|
function GetClassName; external user32 name 'GetClassName' + AWSuffix;
|
|
function GetTopWindow; external user32 name 'GetTopWindow';
|
|
function GetWindowThreadProcessId; external user32 name 'GetWindowThreadProcessId';
|
|
function IsGUIThread; external user32 name 'IsGUIThread';
|
|
function GetLastActivePopup; external user32 name 'GetLastActivePopup';
|
|
function GetWindow; external user32 name 'GetWindow';
|
|
function SetWindowsHookA; external user32 name 'SetWindowsHookA';
|
|
function SetWindowsHookW; external user32 name 'SetWindowsHookW';
|
|
function SetWindowsHook; external user32 name 'SetWindowsHook' + AWSuffix;
|
|
function UnhookWindowsHook; external user32 name 'UnhookWindowsHook';
|
|
function SetWindowsHookExA; external user32 name 'SetWindowsHookExA';
|
|
function SetWindowsHookExW; external user32 name 'SetWindowsHookExW';
|
|
function SetWindowsHookEx; external user32 name 'SetWindowsHookEx' + AWSuffix;
|
|
function UnhookWindowsHookEx; external user32 name 'UnhookWindowsHookEx';
|
|
function CallNextHookEx; external user32 name 'CallNextHookEx';
|
|
function CheckMenuRadioItem; external user32 name 'CheckMenuRadioItem';
|
|
function LoadBitmapA; external user32 name 'LoadBitmapA';
|
|
function LoadBitmapW; external user32 name 'LoadBitmapW';
|
|
function LoadBitmap; external user32 name 'LoadBitmap' + AWSuffix;
|
|
function LoadCursorA; external user32 name 'LoadCursorA';
|
|
function LoadCursorW; external user32 name 'LoadCursorW';
|
|
function LoadCursor; external user32 name 'LoadCursor' + AWSuffix;
|
|
function LoadCursorFromFileA; external user32 name 'LoadCursorFromFileA';
|
|
function LoadCursorFromFileW; external user32 name 'LoadCursorFromFileW';
|
|
function LoadCursorFromFile; external user32 name 'LoadCursorFromFile' + AWSuffix;
|
|
function CreateCursor; external user32 name 'CreateCursor';
|
|
function DestroyCursor; external user32 name 'DestroyCursor';
|
|
function SetSystemCursor; external user32 name 'SetSystemCursor';
|
|
function LoadIconA; external user32 name 'LoadIconA';
|
|
function LoadIconW; external user32 name 'LoadIconW';
|
|
function LoadIcon; external user32 name 'LoadIcon' + AWSuffix;
|
|
function PrivateExtractIconsA; external user32 name 'PrivateExtractIconsA';
|
|
function PrivateExtractIconsW; external user32 name 'PrivateExtractIconsW';
|
|
function PrivateExtractIcons; external user32 name 'PrivateExtractIcons' + AWSuffix;
|
|
function CreateIcon; external user32 name 'CreateIcon';
|
|
function DestroyIcon; external user32 name 'DestroyIcon';
|
|
function LookupIconIdFromDirectory; external user32 name 'LookupIconIdFromDirectory';
|
|
function LookupIconIdFromDirectoryEx; external user32 name 'LookupIconIdFromDirectoryEx';
|
|
function CreateIconFromResource; external user32 name 'CreateIconFromResource';
|
|
function CreateIconFromResourceEx; external user32 name 'CreateIconFromResourceEx';
|
|
function LoadImageA; external user32 name 'LoadImageA';
|
|
function LoadImageW; external user32 name 'LoadImageW';
|
|
function LoadImage; external user32 name 'LoadImage' + AWSuffix;
|
|
function CopyImage; external user32 name 'CopyImage';
|
|
function DrawIconEx; external user32 name 'DrawIconEx';
|
|
function CreateIconIndirect; external user32 name 'CreateIconIndirect';
|
|
function CopyIcon; external user32 name 'CopyIcon';
|
|
function GetIconInfo; external user32 name 'GetIconInfo';
|
|
function LoadStringA; external user32 name 'LoadStringA';
|
|
function LoadStringW; external user32 name 'LoadStringW';
|
|
function LoadString; external user32 name 'LoadString' + AWSuffix;
|
|
function IsDialogMessageA; external user32 name 'IsDialogMessageA';
|
|
function IsDialogMessageW; external user32 name 'IsDialogMessageW';
|
|
function IsDialogMessage; external user32 name 'IsDialogMessage' + AWSuffix;
|
|
function MapDialogRect; external user32 name 'MapDialogRect';
|
|
function DlgDirListA; external user32 name 'DlgDirListA';
|
|
function DlgDirListW; external user32 name 'DlgDirListW';
|
|
function DlgDirList; external user32 name 'DlgDirList' + AWSuffix;
|
|
function DlgDirSelectExA; external user32 name 'DlgDirSelectExA';
|
|
function DlgDirSelectExW; external user32 name 'DlgDirSelectExW';
|
|
function DlgDirSelectEx; external user32 name 'DlgDirSelectEx' + AWSuffix;
|
|
function DlgDirListComboBoxA; external user32 name 'DlgDirListComboBoxA';
|
|
function DlgDirListComboBoxW; external user32 name 'DlgDirListComboBoxW';
|
|
function DlgDirListComboBox; external user32 name 'DlgDirListComboBox' + AWSuffix;
|
|
function DlgDirSelectComboBoxExA; external user32 name 'DlgDirSelectComboBoxExA';
|
|
function DlgDirSelectComboBoxExW; external user32 name 'DlgDirSelectComboBoxExW';
|
|
function DlgDirSelectComboBoxEx; external user32 name 'DlgDirSelectComboBoxEx' + AWSuffix;
|
|
function SetScrollInfo; external user32 name 'SetScrollInfo';
|
|
function GetScrollInfo; external user32 name 'GetScrollInfo';
|
|
function DefFrameProcA; external user32 name 'DefFrameProcA';
|
|
function DefFrameProcW; external user32 name 'DefFrameProcW';
|
|
function DefFrameProc; external user32 name 'DefFrameProc' + AWSuffix;
|
|
function DefMDIChildProcA; external user32 name 'DefMDIChildProcA';
|
|
function DefMDIChildProcW; external user32 name 'DefMDIChildProcW';
|
|
function DefMDIChildProc; external user32 name 'DefMDIChildProc' + AWSuffix;
|
|
function TranslateMDISysAccel; external user32 name 'TranslateMDISysAccel';
|
|
function ArrangeIconicWindows; external user32 name 'ArrangeIconicWindows';
|
|
function CreateMDIWindowA; external user32 name 'CreateMDIWindowA';
|
|
function CreateMDIWindowW; external user32 name 'CreateMDIWindowW';
|
|
function CreateMDIWindow; external user32 name 'CreateMDIWindow' + AWSuffix;
|
|
function TileWindows; external user32 name 'TileWindows';
|
|
function CascadeWindows; external user32 name 'CascadeWindows';
|
|
function WinHelpA; external user32 name 'WinHelpA';
|
|
function WinHelpW; external user32 name 'WinHelpW';
|
|
function WinHelp; external user32 name 'WinHelp' + AWSuffix;
|
|
function GetGuiResources; external user32 name 'GetGuiResources';
|
|
function ChangeDisplaySettingsA; external user32 name 'ChangeDisplaySettingsA';
|
|
function ChangeDisplaySettingsW; external user32 name 'ChangeDisplaySettingsW';
|
|
function ChangeDisplaySettings; external user32 name 'ChangeDisplaySettings' + AWSuffix;
|
|
function ChangeDisplaySettingsExA; external user32 name 'ChangeDisplaySettingsExA';
|
|
function ChangeDisplaySettingsExW; external user32 name 'ChangeDisplaySettingsExW';
|
|
function ChangeDisplaySettingsEx; external user32 name 'ChangeDisplaySettingsEx' + AWSuffix;
|
|
function EnumDisplaySettingsA; external user32 name 'EnumDisplaySettingsA';
|
|
function EnumDisplaySettingsW; external user32 name 'EnumDisplaySettingsW';
|
|
function EnumDisplaySettings; external user32 name 'EnumDisplaySettings' + AWSuffix;
|
|
function EnumDisplaySettingsExA; external user32 name 'EnumDisplaySettingsExA';
|
|
function EnumDisplaySettingsExW; external user32 name 'EnumDisplaySettingsExW';
|
|
function EnumDisplaySettingsEx; external user32 name 'EnumDisplaySettingsEx' + AWSuffix;
|
|
function EnumDisplayDevicesA; external user32 name 'EnumDisplayDevicesA';
|
|
function EnumDisplayDevicesW; external user32 name 'EnumDisplayDevicesW';
|
|
function EnumDisplayDevices; external user32 name 'EnumDisplayDevices' + AWSuffix;
|
|
function SystemParametersInfoA; external user32 name 'SystemParametersInfoA';
|
|
function SystemParametersInfoW; external user32 name 'SystemParametersInfoW';
|
|
function SystemParametersInfo; external user32 name 'SystemParametersInfo' + AWSuffix;
|
|
procedure SetDebugErrorLevel; external user32 name 'SetDebugErrorLevel';
|
|
procedure SetLastErrorEx; external user32 name 'SetLastErrorEx';
|
|
function InternalGetWindowText; external user32 name 'InternalGetWindowText';
|
|
function EndTask; external user32 name 'EndTask';
|
|
function MonitorFromPoint; external user32 name 'MonitorFromPoint';
|
|
function MonitorFromRect; external user32 name 'MonitorFromRect';
|
|
function MonitorFromWindow; external user32 name 'MonitorFromWindow';
|
|
function GetMonitorInfoA; external user32 name 'GetMonitorInfoA';
|
|
function GetMonitorInfoW; external user32 name 'GetMonitorInfoW';
|
|
function GetMonitorInfo; external user32 name 'GetMonitorInfo' + AWSuffix;
|
|
function EnumDisplayMonitors; external user32 name 'EnumDisplayMonitors';
|
|
procedure NotifyWinEvent; external user32 name 'NotifyWinEvent';
|
|
function SetWinEventHook; external user32 name 'SetWinEventHook';
|
|
function IsWinEventHookInstalled; external user32 name 'IsWinEventHookInstalled';
|
|
function UnhookWinEvent; external user32 name 'UnhookWinEvent';
|
|
function GetGUIThreadInfo; external user32 name 'GetGUIThreadInfo';
|
|
function GetWindowModuleFileNameA; external user32 name 'GetWindowModuleFileNameA';
|
|
function GetWindowModuleFileNameW; external user32 name 'GetWindowModuleFileNameW';
|
|
function GetWindowModuleFileName; external user32 name 'GetWindowModuleFileName' + AWSuffix;
|
|
function GetCursorInfo; external user32 name 'GetCursorInfo';
|
|
function GetWindowInfo; external user32 name 'GetWindowInfo';
|
|
function GetTitleBarInfo; external user32 name 'GetTitleBarInfo';
|
|
function GetMenuBarInfo; external user32 name 'GetMenuBarInfo';
|
|
function GetScrollBarInfo; external user32 name 'GetScrollBarInfo';
|
|
function GetComboBoxInfo; external user32 name 'GetComboBoxInfo';
|
|
function GetAncestor; external user32 name 'GetAncestor';
|
|
function RealChildWindowFromPoint; external user32 name 'RealChildWindowFromPoint';
|
|
function RealGetWindowClassA; external user32 name 'RealGetWindowClassA';
|
|
function RealGetWindowClassW; external user32 name 'RealGetWindowClassW';
|
|
function RealGetWindowClass; external user32 name 'RealGetWindowClass' + AWSuffix;
|
|
function GetAltTabInfoA; external user32 name 'GetAltTabInfoA';
|
|
function GetAltTabInfoW; external user32 name 'GetAltTabInfoW';
|
|
function GetAltTabInfo; external user32 name 'GetAltTabInfo' + AWSuffix;
|
|
function GetListBoxInfo; external user32 name 'GetListBoxInfo';
|
|
function LockWorkStation; external user32 name 'LockWorkStation';
|
|
function UserHandleGrantAccess; external user32 name 'UserHandleGrantAccess';
|
|
function GetRawInputData; external user32 name 'GetRawInputData';
|
|
function GetRawInputDeviceInfoA; external user32 name 'GetRawInputDeviceInfoA';
|
|
function GetRawInputDeviceInfoW; external user32 name 'GetRawInputDeviceInfoW';
|
|
function GetRawInputDeviceInfo; external user32 name 'GetRawInputDeviceInfo' + AWSuffix;
|
|
function GetRawInputBuffer; external user32 name 'GetRawInputBuffer';
|
|
function RegisterRawInputDevices; external user32 name 'RegisterRawInputDevices';
|
|
function GetRegisteredRawInputDevices; external user32 name 'GetRegisteredRawInputDevices';
|
|
function GetRawInputDeviceList; external user32 name 'GetRawInputDeviceList';
|
|
function DefRawInputProc; external user32 name 'DefRawInputProc';
|
|
|
|
{$ENDIF DYNAMIC_LINK}
|
|
|
|
{$ENDIF JWA_INTERFACESECTION}
|
|
|
|
{$IFNDEF JWA_OMIT_SECTIONS}
|
|
end.
|
|
{$ENDIF JWA_OMIT_SECTIONS}
|