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