123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592 |
- (* Copyright (c) 1994 - 2000 Emil J. Zeller *)
- MODULE User32; (** non-portable / source: Win32.User32.Mod *) (* ejz *)
- IMPORT SYSTEM, Kernel32;
- (** This module defines all the Win32 User32 APIs used by Oberon.
- Note this module is part of the Oberon inner-core and must be linked with PELinker. *)
- TYPE
- DWORD = Kernel32.DWORD;
- CONST
- (** window messages *)
- WMCreate* = 01H; WMDestroy* = 02H; WMMove* = 03H; WMSize* = 05H; WMActivate* = 06H; WMSetFocus* = 07H;
- WMKillFocus* = 08H; WMPaint* = 0FH; WMClose* = 010H; WMQuit* = 012H; WMSetCursor* = 020H;
- WMMouseActivate* = 021H; WMGetMinMaxInfo* = 024H; WMWindowPosChanging* = 046H;
- WMGetIcon* = 07FH; WMSetIcon* = 080H; WMNCHitTest* = 084H;
- WMKeyFirst* = 0100H;
- WMKeyDown* = 0100H; WMKeyUp* = 0101H; WMChar* = 0102H; WMDeadChar* = 0103H;
- WMSysKeyDown* = 0104H; WMSysKeyUp* = 0105H; WMSysChar* = 0106H; WMSysDeadChar* = 107H;
- WMKeyLast* = 0108H;
- WMCommand* = 0111H;
- WMMouseFirst* = 0200H; WMMouseMove* = 0200H; WMMouseLast* = 020DH;
- WMLButtonDown* = 0201H; WMLButtonUp* = 0202H;
- WMRButtonDown* = 0204H; WMRButtonUp* = 0205H;
- WMMButtonDown* = 0207H; WMMButtonUp* = 0208H;
- WMMouseWheel* = 020AH;
- WMXButtonDown* = 020BH; WMXButtonUp* = 020CH;
- WMDropFiles* = 0233H;
- WMCut* = 0300H; WMCopy* = 0301H; WMPaste* = 0302;
- WMClear* = 0303H; WMUndo* = 0304H;
- WMUser* = 0400H;
- (** WndClass style values *)
- CSVRedraw* = 0; CSHRedraw* = 1; CSOwnDC* = 5; CSSaveBits* = 11; CSGlobalClass* = 14;
- (** CreateWindow dwStyle values *)
- WSMaximizeBox* = 16; WSMinimizeBox* = 17; WSThickFrame* = 18; WSSysMenu* = 19; WSBorder* = 23;
- WSMaximize* = 24; WSVisible* = 28; WSMinimize* = 29; WSChild* = 30;
- (** CreateWindow default value for x, y, nWidth, nHeight *)
- CWUseDefault* = LONGINT(080000000H);
- (** WMSize wParam values *)
- SizeRestored* = 0; SizeMinimized* = 1; SizeMaximized* = 2; SizeMaxshow* = 3; SizeMaxhide* = 4;
- (** WMActivate LoWord(wParam) values *)
- WAInactive* = 0; WAActive* = 1; WAClickActive* = 2;
- (** WMmouseActivate return codes *)
- MAActivate* = 1; MANoActivate* = 3;
- (** GetSystemMetrics nIndex values *)
- SMCXScreen* = 0; SMCYScreen* = 1; SMCYCaption* = 4;
- SMCXDlgFrame* = 7; SMCYDlgFrame* = 8;
- SMCXFixedFrame* = SMCXDlgFrame; SMCYFixedFrame* = SMCYDlgFrame;
- SMCYMenu* = 15; SMCXFrame* = 32; SMCYFrame* = 33;
- SMCMouseButtons* = 43;
- (** Predefined HWND values *)
- HWNDDesktop* = 0; HWNDBroadcast* = 0FFFFH;
- (** virtual key codes *)
- VKCancel* = 03H; VKBack* = 08H; VKTab * = 09H; VKClear* = 0CH; VKReturn* = 0DH;
- VKShift* = 010H; VKControl* = 011H; VKMenu* = 012H;
- VKPause* = 013H; VKCapital* = 014H; VKEscape* = 01BH;
- VKPrior* = 021H; VKNext* = 022H; VKEnd* = 023H; VKHome* = 024H;
- VKLeft* = 025H; VKUp* = 026H; VKRight* = 027H; VKDown* = 028H;
- VKSelect* = 029H; VKPrint* = 02AH; VKExecute* = 02BH; VKSnapshot* = 02CH;
- VKInsert* = 02DH; VKDelete* = 02EH; VKHelp* = 02FH;
- VKLWin* = 05BH; VKRWin* = 05CH; VKApps* = 05DH;
- VKF1* = 070H; VKF2* = 071H; VKF3* = 072H; VKF4* = 073H;
- VKF5* = 074H; VKF6* = 075H; VKF7* = 076H; VKF8* = 077H;
- VKF9* = 078H; VKF10* = 079H; VKF11* = 07AH; VKF12* = 07BH;
- (** WMMouse... wParam values *)
- MKLButton* = 0; MKRButton* = 1; MKShift* = 2; MKControl* = 3; MKMButton* = 4;
- (** predefined cursors/icons fo LoadCursor/LoadIcon *)
- IDCArrow* = 32512; IDCWait* = 32514;
- (** WMNCHitTest return values *)
- HTClient* = 1;
- (** ShowWindow nCmdShow values *)
- SWHide* = 0; SWShow* = 5;
- SWNormal* = 1; SWShowNormal* = 1;
- SWMinimize* = 6; SWShowMinimized* = 2;
- SWMaximize* = 3; SWShowMaximized* = 3;
- SWRestore* = 9;
- SWShowDefault* = 10;
- (** SetWindowPos uFlags values *)
- SWPNoSize* = 0; SWPNoMove* = 1; SWPNoZOrder* = 2; SWPNoRedraw* = 3; SWPNoActivate* = 4;
- SWPFrameChanged* = 5; SWPShowWindow* = 6; SWPHideWindow* = 7;
- (** clipboard formats *)
- CFText* = 1; CFBitmap* = 2; CFMetafilePict* = 3; CFDIB* = 8; CFEnhMetafile* = 14; CFHDrop* = 15;
- (** InsertMenu uFlags values *)
- MFByCommand* = {}; MFByPosition* = 10;
- MFPopup* = 4; MFSeparator* = 11;
- MFEnabled* = {}; MFGrayed * = 0; MFDisabled* = 1;
- MFUnchecked* = {}; MFChecked* = 3;
- MFString* = {};
- (** MenuItemInfo fMask values *)
- MIIMID* = 1; MIIMType* = 4;
- (** WMSetIcon wPaam values *)
- IconSmall* = 0; IconBig* = 1;
- (** GetWindowLong/SetWindowLong nIndex values *)
- GWLWndProc* = -4; GWLStyle* = - 16; GWLExStyle* = -20;
- (** MessageBox uType values *)
- MBOk* = {}; MBOkCancel* = {0}; MBAbortRetryIgnore* = {1};
- MBYesNoCancel* = {0, 1}; MBYesNo* = {2}; MBRetryCancel* = {0, 2};
- MBIconHand* = {4}; MBIconQuestion* = {5}; MBIconExclamation* = {4, 5}; MBIconAsterisk* = {6};
- MBIconWarning* = MBIconExclamation; MBIconError* = MBIconHand;
- MBIconInformation* = MBIconAsterisk; MBIconStop* = MBIconHand;
- (** TrackPopupMenu uFlags values *)
- TPMLeftButton* = {}; TPMRightButton* = 1;
- TPMLeftAlign* = {}; TPMCenterAlign* = 2; TPMRightAlign* = 3;
- TPMTopAlign* = {}; TPMVCenterAlign* = 4; TPMBottomAlign* = 5;
- TPMHorizontal* = {}; TPMVertical* = 6;
- TPMNoNotify* = 7; TPMReturnCmd* = 8;
- (** SetWindowsHookEx idHook values *)
- WHKeyboard* = 2;
- (** GetSysColor *)
- ColorWindow* = 5;
- ColorWindowText* = 8;
- ColorBtnFace* = 15;
- ColorBtnShadow* = 16;
- Color3DLight* = 22;
- Color3DFace* = ColorBtnFace;
- Color3DShadow* = ColorBtnShadow;
- TYPE
- (** handle types for different win and gdi objects *)
- HWND* = Kernel32.HANDLE;
- HDC* = Kernel32.HANDLE;
- HGDIObj* = Kernel32.HANDLE;
- HFont* = HGDIObj;
- HBrush* = HGDIObj;
- HRgn* = HGDIObj;
- HBitmap* = HGDIObj;
- HIcon* = Kernel32.HANDLE;
- HCursor* = Kernel32.HANDLE;
- HMenu* = Kernel32.HANDLE;
- HPalette* = Kernel32.HANDLE;
- HAccel* = Kernel32.HANDLE;
- HHook* = Kernel32.HANDLE;
- (** The COLORREF value is used to specify an RGB color. *)
- ColorRef* = LONGINT;
- (** The POINT structure defines the x- and y- coordinates of a point. *)
- Point* = RECORD
- x*, y*: LONGINT
- END;
- PointL* = Point;
- PointF* = RECORD
- x*, y*: REAL
- END;
- (** The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle. *)
- Rect* = RECORD
- left*, top*, right*, bottom*: LONGINT
- END;
- RectL* = Rect;
- (** The SIZE structure specifies the width and height of a rectangle. *)
- Size* = RECORD
- cx*, cy*: LONGINT
- END;
- SizeL* = Size;
- (** The MINMAXINFO structure contains information about a window's maximized size and position and its minimum
- and maximum tracking size. *)
- MinMaxInfo* = RECORD
- ptReserved*, ptMaxSize*, ptMaxPosition*, ptMinTrackSize*, ptMaxTrackSize*: Point
- END;
- (** The MSG structure contains message information from a thread's message queue. *)
- Msg* = RECORD hwnd*: HWND;
- message*: LONGINT;
- wParam*, lParam*: LONGINT;
- time*: LONGINT;
- point*: Point
- END;
- (** A 32-bit value passed as a parameter to a window procedure or callback function. *)
- WParam* = SIZE; LParam* = SIZE;
- (** A 32-bit value returned from a window procedure or callback function. *)
- LResult* = LONGINT;
- (** A 32-bit pointer to a window procedure. *)
- WndProc* = PROCEDURE {WINAPI} (hwnd: HWND; uMsg: LONGINT; wParam: WParam; lParam: LParam): LResult;
- (** The WNDCLASSEX structure contains window class information. It is used with the RegisterClassEx and
- GetClassInfoEx functions. *)
- WndClassEx* = RECORD
- cbSize*: LONGINT;
- style*: DWORD;
- lpfnWndProc*: WndProc;
- cbClsExtra*, cbWndExtra*: LONGINT;
- hInstance*: Kernel32.HINSTANCE;
- hIcon*: HIcon;
- hCursor*: HCursor;
- hbrBackground*: HBrush;
- lpszMenuName*, lpszClassName*: Kernel32.LPSTR;
- hIconSm*: HIcon
- END;
- (** Application-defined callback function used with the EnumWindows. *)
- WndEnumProc* = PROCEDURE {WINAPI} (hwnd: HWND; lParam: LParam): Kernel32.BOOL;
- (** The WINDOWPOS structure contains information about the size and position of a window. *)
- WindowPos* = RECORD hwnd*, hwndInsertAfter*: HWND;
- x*, y*, cx*, cy*: LONGINT;
- flags*: DWORD;
- END;
- (** The WINDOWPLACEMENT structure contains information about the placement of a window on the screen. *)
- WindowPlacement* = RECORD
- length*: LONGINT;
- flags*: DWORD;
- showCmd*: LONGINT;
- ptMinPosition*, ptMaxPosition*: Point;
- rcNormalPosition*: Rect
- END;
- (** The MENUITEMINFO structure contains information about a menu item. *)
- MenuItemInfo* = RECORD cbSize*: LONGINT;
- fMask*, fType*, fState*: DWORD;
- wID*: LONGINT;
- hSubMenu*: HMenu;
- hbmpChecked*, hbmpUnchecked*: HBitmap;
- dwItemData*: LONGINT;
- dwTypeData*: Kernel32.LPSTR;
- cch*: LONGINT
- END;
- (** The ACCEL structure defines an accelerator key used in an accelerator table. *)
- Accel* = RECORD fVirt*: CHAR;
- key*, cmd*: INTEGER
- END;
- (** Proctype for SetWindowsHook(Ex) *)
- HookProc* = PROCEDURE {WINAPI} (code: LONGINT; wParam: WParam; lParam: LParam): LResult;
- PaintStruct* = RECORD
- hdc*: HDC;
- fErase*: Kernel32.BOOL;
- rcPaint*: Rect;
- fRestore, fIncUpdate: Kernel32.BOOL;
- rgbReserved: ARRAY 32 OF CHAR
- END;
- VAR
- (** The BeginPaint function prepares the specified window for painting and fills a PAINTSTRUCT
- structure with information about the painting. *)
- BeginPaint-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpPaint: PaintStruct): HDC;
- (** The BringWindowToTop function brings the specified window to the top of the Z order. *)
- BringWindowToTop-: PROCEDURE {WINAPI} (hWnd: HWND): Kernel32.BOOL;
- (** The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. *)
- CallNextHookEx-: PROCEDURE {WINAPI} (hhk: HHook; nCode: LONGINT; wParam: WParam; lParam: LParam): LResult;
- (** The CloseClipboard function closes the clipboard. *)
- CloseClipboard-: PROCEDURE {WINAPI} (): Kernel32.BOOL;
- (** The CreateAcceleratorTable function creates an accelerator table. *)
- CreateAcceleratorTable-: PROCEDURE {WINAPI} (lpaccl: ADDRESS; cEntries: LONGINT): HAccel;
- (** The CreateMenu function creates a menu. *)
- CreateMenu-: PROCEDURE {WINAPI} (): HMenu;
- (** The CreateWindow function creates an overlapped, pop-up, or child window. *)
- CreateWindowEx-: PROCEDURE {WINAPI} (dwExStyle: LONGINT; VAR lpClassName, lpWindowName: ARRAY OF CHAR; dwStyle: DWORD; x, y, nWidth, nHeight: LONGINT; hWndParent: HWND; hMenu: HMenu; hInstance: Kernel32.HINSTANCE; lpParam: LParam): HWND;
- (** The DefWindowProc function calls the default window procedure to provide default processing for any window
- messages that an application does not process. *)
- DefWindowProc-: WndProc;
- (** The DestroyAcceleratorTable function destroys an accelerator table. *)
- DestroyAcceleratorTable-: PROCEDURE {WINAPI} (hAccel: HAccel): Kernel32.BOOL;
- (** The DestroyCursor function destroys a cursor and frees any memory the cursor occupied. *)
- DestroyCursor-: PROCEDURE {WINAPI} (hCursor: HCursor): Kernel32.BOOL;
- (** The DestroyIcon function destroys an icon and frees any memory the icon occupied. *)
- DestroyIcon-: PROCEDURE {WINAPI} (hIcon: HIcon): Kernel32.BOOL;
- (** The DestroyMenu function destroys the specified menu and frees any memory that the menu occupies. *)
- DestroyMenu-: PROCEDURE {WINAPI} (hMenu: HMenu): Kernel32.BOOL;
- (** The DestroyWindow function destroys the specified window. *)
- DestroyWindow-: PROCEDURE {WINAPI} (hWnd: HWND): Kernel32.BOOL;
- (** The DispatchMessage function dispatches a message to a window procedure. *)
- DispatchMessage-: PROCEDURE {WINAPI} (VAR lpMsg: Msg): LONGINT;
- (** The DrawMenuBar function redraws the menu bar of the specified window. *)
- DrawMenuBar-: PROCEDURE {WINAPI} (hWnd: HWND): Kernel32.BOOL;
- (** The EmptyClipboard function empties the clipboard and frees handles to data in the clipboard. *)
- EmptyClipboard-: PROCEDURE {WINAPI} (): Kernel32.BOOL;
- (** The EnableWindow function enables or disables mouse and keyboard input to the specified window or control. *)
- EnableWindow-: PROCEDURE {WINAPI} (hWnd: HWND; bEnable: Kernel32.BOOL): Kernel32.BOOL;
- (** The EndPaint function marks the end of painting in the specified window. *)
- EndPaint-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpPaint: PaintStruct): Kernel32.BOOL;
- (** The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each
- window, in turn, to an application-defined callback function. *)
- EnumWindows-: PROCEDURE {WINAPI} (lpEnumProc: WndEnumProc; lParam: LParam): Kernel32.BOOL;
- (** The EqualRect function determines whether the two specified rectangles are equal by comparing the coordinates
- of their upper-left and lower-right corners. *)
- EqualRect-: PROCEDURE {WINAPI} (lprc1, lprc2: Rect): Kernel32.BOOL;
- (** The GetAsyncKeyState function determines whether a key is up or down at the time the function is called, and
- whether the key was pressed after a previous call to GetAsyncKeyState. *)
- GetAsyncKeyState-: PROCEDURE {WINAPI} (vKey: LONGINT): INTEGER;
- (** The GetClientRect function retrieves the coordinates of a window's client area. *)
- GetClientRect-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpRect: Rect): Kernel32.BOOL;
- (** The GetClipboardData function retrieves data from the clipboard in a specified format. *)
- GetClipboardData-: PROCEDURE {WINAPI} (uFormat: LONGINT): Kernel32.HANDLE;
- (** The GetClipboardFormatName function retrieves from the clipboard the name of the specified registered format. *)
- GetClipboardFormatName-: PROCEDURE {WINAPI} (format: LONGINT; VAR lpszFormatName: ARRAY OF CHAR; cchMaxCount: LONGINT): LONGINT;
- (** The GetCursorPos function retrieves the cursor's position, in screen coordinates. *)
- GetCursorPos-: PROCEDURE {WINAPI} (VAR lpPoint: Point): Kernel32.BOOL;
- (** The GetDC function retrieves a handle to a display device context (DC) for the client area of a specified window
- or for the entire screen. *)
- GetDC-: PROCEDURE {WINAPI} (hWnd: HWND): HDC;
- (** The GetFocus function retrieves the handle to the window that has the keyboard focus, if the window is attached
- to the calling thread's message queue. *)
- GetFocus-: PROCEDURE {WINAPI} (): HWND;
- (** Retrieves a handle to the foreground window (the window with which the user is currently working). The system assigns a slightly higher priority to the thread that creates the foreground window than it does to other threads. *)
- GetForegroundWindow-: PROCEDURE {WINAPI} (): HWND;
- (** The GetKeyState function retrieves the status of the specified virtual key. *)
- GetKeyState-: PROCEDURE {WINAPI} (vKey: LONGINT): INTEGER;
- (** The GetMenu function retrieves a handle to the menu assigned to the specified window. *)
- GetMenu-: PROCEDURE {WINAPI} (hWnd: HWND): HMenu;
- (** The GetMenuItemInfo function retrieves information about a menu item. *)
- GetMenuItemInfo-: PROCEDURE {WINAPI} (hMenu: HMenu; uItem: LONGINT; fyByPosition: Kernel32.BOOL; VAR lpmii: MenuItemInfo): Kernel32.BOOL;
- (** The GetMenuString function copies the text string of the specified menu item into the specified buffer. *)
- GetMenuString-: PROCEDURE {WINAPI} (hMenu: HMenu; uIDItem: LONGINT; VAR lpString: ARRAY OF CHAR; nMaxCount: LONGINT; uFlag: DWORD): Kernel32.BOOL;
- (** The GetMessage function retrieves a message from the calling thread's message queue and places it in the
- specified structure. *)
- GetMessage-: PROCEDURE {WINAPI} (VAR lpMsg: Msg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax: LONGINT): LONGINT;
- (** The GetParent function retrieves a handle to the specified child window's parent window. *)
- GetParent-: PROCEDURE {WINAPI} (hWnd: HWND): HWND;
- (** The GetProp function retrieves a data handle from the property list of the given window. *)
- GetProp-: PROCEDURE {WINAPI} (hWnd: HWND; lpString: LONGINT): LONGINT;
- (** The GetSystemMetrics function retrieves various system metrics (widths and heights of display elements) and
- system configuration settings. *)
- (** The GetSysColor function retrieves the current color of the specified display element. *)
- GetSysColor-: PROCEDURE {WINAPI} (nIndex: LONGINT): ColorRef;
- (** The GetSystemMetrics function retrieves various system metrics (widths and heights of display elements)
- and system configuration settings. *)
- GetSystemMetrics-: PROCEDURE {WINAPI} (nIndex: LONGINT): LONGINT;
- (** The GetWindowLong function retrieves information about the specified window. *)
- GetWindowLong-: PROCEDURE {WINAPI} (hWnd: HWND; nIndex: LONGINT): LONGINT;
- (** The GetWindowPlacement function retrieves the show state and the restored, minimized, and maximized
- positions of the specified window. *)
- GetWindowPlacement-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpwndpl: WindowPlacement): Kernel32.BOOL;
- (** The GetWindowRect function retrieves the dimensions of the bounding rectangle of the specified window. *)
- GetWindowRect-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpRect: Rect): Kernel32.BOOL;
- (** The GetWindowRgn function obtains a copy of the window region of a window. *)
- GetWindowRgn-: PROCEDURE {WINAPI} (hWnd: HWND; VAR hRgn: HRgn): LONGINT;
- (** The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. *)
- GetWindowText-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpString: ARRAY OF CHAR; nMaxCount: LONGINT): LONGINT;
- (** The GetUpdateRect function retrieves the coordinates of the smallest rectangle that completely encloses the
- update region of the specified window. *)
- GetUpdateRect-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpRect: Rect; bErase: Kernel32.BOOL): Kernel32.BOOL;
- (** The GetUpdateRgn function retrieves the update region of a window by copying it into the specified
- region. *)
- GetUpdateRgn-: PROCEDURE {WINAPI} (hWnd: HWND; VAR hRgn: HRgn; bErase: Kernel32.BOOL): LONGINT;
- (** The InsertMenu function inserts a new menu item into a menu, moving other items down the menu. *)
- InsertMenu-: PROCEDURE {WINAPI} (hMenu: HMenu; uPosition: LONGINT; uFlags: DWORD; uIDNewItem: LONGINT; VAR lpNewItem: ARRAY OF CHAR): Kernel32.BOOL;
- (** The IntersectRect function calculates the intersection of two source rectangles and places the coordinates of the
- intersection rectangle into the destination rectangle. *)
- IntersectRect-: PROCEDURE {WINAPI} (VAR lprcDst: Rect; lprcSrc1, lprcSrc2: Rect): Kernel32.BOOL;
- (** The InvalidateRect function adds a rectangle to the specified window's update region. *)
- InvalidateRect-: PROCEDURE {WINAPI} (hWnd: HWND; lpRect: Rect; bErase: Kernel32.BOOL): Kernel32.BOOL;
- (** The IsChild function tests whether a window is a child window or descendant window of a specified parent window. *)
- IsChild-: PROCEDURE {WINAPI} (hWndParent, hWnd: HWND): Kernel32.BOOL;
- (** The LoadCursor function loads the specified cursor resource from the executable (.EXE) file associated with
- an application instance. *)
- LoadCursor-: PROCEDURE {WINAPI} (hInstance: Kernel32.HINSTANCE; VAR lpCursorName: ARRAY OF CHAR): HCursor;
- (** The LoadCursorFromFile function creates a cursor based on data contained in a file. *)
- LoadCursorFromFile-: PROCEDURE {WINAPI} (VAR lpFileName: ARRAY OF CHAR): HCursor;
- (** The LoadIcon function loads the specified icon resource from the executable (.exe) file associated with an
- application instance. *)
- LoadIcon-: PROCEDURE {WINAPI} (hInstance: Kernel32.HINSTANCE; VAR lpIconName: ARRAY OF CHAR): HIcon;
- (** The MessageBeep function plays a waveform sound. *)
- MessageBeep-: PROCEDURE {WINAPI} (uType: LONGINT): Kernel32.BOOL;
- (** The MessageBox function creates, displays, and operates a message box. *)
- MessageBox-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpText, lpCaption: ARRAY OF CHAR; uType: DWORD): LONGINT;
- (** The MoveWindow function changes the position and dimensions of the specified window. *)
- MoveWindow-: PROCEDURE {WINAPI} (hWnd: HWND; X, Y, nWidth, nHeight: LONGINT; bRepaint: Kernel32.BOOL): Kernel32.BOOL;
- (** The OffsetRect function moves the specified rectangle by the specified offsets. *)
- OffsetRect-: PROCEDURE {WINAPI} (VAR lprc: Rect; dx, dy: LONGINT): Kernel32.BOOL;
- (** The OpenClipboard function opens the clipboard for examination and prevents other applications from modifying
- the clipboard content. *)
- OpenClipboard-: PROCEDURE {WINAPI} (hWndNewOwner: HWND): Kernel32.BOOL;
- (** The PtInRect function determines whether the specified point lies within the specified rectangle. *)
- PtInRect-: PROCEDURE {WINAPI} (lprc: Rect; ptx, pty: LONGINT): Kernel32.BOOL;
- (** The PostMessage function places (posts) a message in the message queue associated with the thread that created
- the specified window and then returns without waiting for the thread to process the message. *)
- PostMessage-: PROCEDURE {WINAPI} (hWnd: HWND; Msg: LONGINT; wParam: WParam; lParam: LParam): Kernel32.BOOL;
- (** The PostQuitMessage function indicates to the system that a thread has made a request to terminate (quit). *)
- PostQuitMessage-: PROCEDURE {WINAPI} (nExitCode: LONGINT);
- (** The RegisterClassEx function registers a window class for subsequent use in calls to the CreateWindow or
- CreateWindowEx function. *)
- RegisterClassEx-: PROCEDURE {WINAPI} (VAR lpwcx: WndClassEx): Kernel32.ATOM;
- (** The RegisterClipboardFormat function registers a new clipboard format. *)
- RegisterHotKey-: PROCEDURE{WINAPI} (hWnd: HWND; id: LONGINT; fsmodifiers,vk: LONGINT): Kernel32.BOOL;
- (*The RegisterHotKey function defines a system-wide hot key *)
- RegisterClipboardFormat-: PROCEDURE {WINAPI} (VAR lpszFormat: ARRAY OF CHAR): INTEGER;
- (** The RegisterWindowMessage function defines a new window message that is guaranteed to be
- unique throughout the system. *)
- RegisterWindowMessage-: PROCEDURE {WINAPI} (VAR lpString: ARRAY OF CHAR): LONGINT;
- (** The ReleaseCapture function releases the mouse capture from a window in the current thread and restores normal
- mouse input processing. *)
- ReleaseCapture-: PROCEDURE {WINAPI} (): Kernel32.BOOL;
- (** The ReleaseDC function releases a device context (DC), freeing it for use by other applications. *)
- ReleaseDC-: PROCEDURE {WINAPI} (hWnd: HWND; hDC: HDC): LONGINT;
- (** The RemoveProp function removes an entry from the property list of the specified window. *)
- RemoveProp-: PROCEDURE {WINAPI} (hWnd: HWND; lpString: LONGINT): LONGINT;
- (** The ScreenToClient function converts the screen coordinates of a specified point on the screen to client coordinates. *)
- ScreenToClient-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpPoint: Point): Kernel32.BOOL;
- (** The SendMessage function sends the specified message to a window or windows. *)
- SendMessage-: PROCEDURE {WINAPI} (hWnd: HWND; Msg: LONGINT; wParam: WParam; lParam: LParam): LResult;
- (** The SetCapture function sets the mouse capture to the specified window belonging to the current thread. *)
- SetCapture-: PROCEDURE {WINAPI} (hWnd: HWND): HWND;
- (** The SetClipboardData function places data on the clipboard in a specified clipboard format. *)
- SetClipboardData-: PROCEDURE {WINAPI} (uFormat: LONGINT; hMem: Kernel32.HANDLE): Kernel32.HANDLE;
- (** The SetCursor function establishes the cursor shape. *)
- SetCursor-: PROCEDURE {WINAPI} (hCursor: HCursor): HCursor;
- (** The SetCursorPos function moves the cursor to the specified screen coordinates. *)
- SetCursorPos-: PROCEDURE {WINAPI} (X, Y: LONGINT): Kernel32.BOOL;
- (** The SetFocus function sets the keyboard focus to the specified window. *)
- SetFocus-: PROCEDURE {WINAPI} (hWnd: HWND): HWND;
- (** The SetForegroundWindow function puts the thread that created the specified window into the foreground
- and activates the window. *)
- SetForegroundWindow-: PROCEDURE {WINAPI} (hWnd: HWND): Kernel32.BOOL;
- (** The SetMenu function assigns a new menu to the specified window. *)
- SetMenu-: PROCEDURE {WINAPI} (hWnd: HWND; hMenu: HMenu): Kernel32.BOOL;
- (** The SetMenuItemInfo function changes information about a menu item. *)
- SetMenuItemInfo-: PROCEDURE {WINAPI} (hMenu: HMenu; uItem: LONGINT; fyByPosition: Kernel32.BOOL; VAR lpmii: MenuItemInfo): Kernel32.BOOL;
- (** The SetProp function adds a new entry or changes an existing entry in the property list of the specified window. *)
- SetProp-: PROCEDURE {WINAPI} (hWnd: HWND; lpString, hData: LONGINT): Kernel32.BOOL;
- (** The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. *)
- SetWindowsHookEx-: PROCEDURE {WINAPI} (idHook: LONGINT; lpfn: HookProc; hMod: Kernel32.HINSTANCE; dwThreadId: LONGINT): HHook;
- (** The SetWindowLong function changes an attribute of the specified window. *)
- SetWindowLong-: PROCEDURE {WINAPI} (hWnd: HWND; nIndex, dwNewLong: LONGINT): LONGINT;
- (** The SetWindowPos function changes the size, position, and Z order of a child, pop-up, or top-level window. *)
- SetWindowPos-: PROCEDURE {WINAPI} (hWnd, hWndInsertAfter: HWND; X, Y, cx, cy: LONGINT; uFlags: DWORD): Kernel32.BOOL;
- (** The SetWindowRgn function sets the window region of a window. *)
- SetWindowRgn-: PROCEDURE {WINAPI} (hWnd: HWND; hRgn: HRgn; bRedraw: Kernel32.BOOL): LONGINT;
- (** The SetWindowText function changes the text of the specified window's title bar (if it has one). *)
- SetWindowText-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpString: ARRAY OF CHAR): Kernel32.BOOL;
- (** The ShowCursor function displays or hides the cursor. *)
- ShowCursor-: PROCEDURE {WINAPI} (bShow: Kernel32.BOOL): LONGINT;
- (** The ShowWindow function sets the specified window's show state. *)
- ShowWindow-: PROCEDURE {WINAPI} (hWnd: HWND; nCmdShow: LONGINT): Kernel32.BOOL;
- (** The ShowWindowAsync function sets the show state of a window created by a different thread. *)
- ShowWindowAsync-: PROCEDURE {WINAPI} (hWnd: HWND; nCmdShow: LONGINT): Kernel32.BOOL;
- (** The TrackPopupMenu function displays a shortcut menu at the specified location and tracks the selection of
- items on the menu. *)
- TrackPopupMenu-: PROCEDURE {WINAPI} (hMenu: HMenu; uFlags: DWORD; x, y, nReserved: LONGINT; hWnd: HWND; VAR prcRect: Rect): Kernel32.BOOL;
- (** The TranslateAccelerator function processes accelerator keys for menu commands. *)
- TranslateAccelerator-: PROCEDURE {WINAPI} (hWnd: HWND; hAccTable: HAccel; VAR lpMsg: Msg): LONGINT;
- (** The TranslateMessage function translates virtual-key messages into character messages. *)
- TranslateMessage-: PROCEDURE {WINAPI} (VAR lpMsg: Msg): Kernel32.BOOL;
- (** The UnhookWindowsHookEx function removes a hook procedure installed in a hook chain by the SetWindowsHookEx
- function. *)
- UnhookWindowsHookEx-: PROCEDURE {WINAPI} (hhk: HHook): Kernel32.BOOL;
- (** The UnregisterClass function removes a window class, freeing the memory required for the class. *)
- UnregisterClass-: PROCEDURE {WINAPI} (VAR lpClassName: ARRAY OF CHAR; hInstance: Kernel32.HINSTANCE): Kernel32.BOOL;
- (** The UpdateWindow function updates the client area of the specified window by sending a WM_PAINT message
- to the window if the window's update region is not empty. *)
- UpdateWindow-: PROCEDURE {WINAPI} (hWnd: HWND): Kernel32.BOOL;
- (** The ValidateRect function validates the client area within a rectangle by removing the rectangle from the
- update region of the specified window. *)
- ValidateRect-: PROCEDURE {WINAPI} (hWnd: HWND; VAR lpRect: Rect): Kernel32.BOOL;
- GetConsoleWindow-: PROCEDURE{WINAPI} (): LONGINT ;
- (** The EqualSize function determines whether the two specified sizes are equal. *)
- PROCEDURE {WINAPI} EqualSize*(VAR a, b: Size): BOOLEAN;
- BEGIN
- RETURN (a.cx = b.cx) & (a.cy = b.cy)
- END EqualSize;
- PROCEDURE Init;
- VAR mod: Kernel32.HMODULE; str: ARRAY 32 OF CHAR;
- BEGIN
- str := "KERNEL32.DLL";
- mod := Kernel32.LoadLibrary(str);
- Kernel32.GetProcAddress(mod, "GetConsoleWindow", SYSTEM.VAL(ADDRESS, GetConsoleWindow));
- (* the GetConsoleWindow function is not available for version minor Win2000, that's why it is set dynamically here *)
- str := "USER32.DLL";
- mod := Kernel32.LoadLibrary(str);
- Kernel32.GetProcAddress(mod, "BeginPaint", SYSTEM.VAL(ADDRESS,BeginPaint ));
- Kernel32.GetProcAddress(mod, "BringWindowToTop", SYSTEM.VAL(ADDRESS,BringWindowToTop ));
- Kernel32.GetProcAddress(mod, "CallNextHookEx", SYSTEM.VAL(ADDRESS,CallNextHookEx ));
- Kernel32.GetProcAddress(mod, "CloseClipboard", SYSTEM.VAL(ADDRESS,CloseClipboard ));
- Kernel32.GetProcAddress(mod, "CreateAcceleratorTableA", SYSTEM.VAL(ADDRESS,CreateAcceleratorTable ));
- Kernel32.GetProcAddress(mod, "CreateMenu", SYSTEM.VAL(ADDRESS,CreateMenu ));
- Kernel32.GetProcAddress(mod, "CreateWindowExA", SYSTEM.VAL(ADDRESS,CreateWindowEx ));
- Kernel32.GetProcAddress(mod, "DefWindowProcA", SYSTEM.VAL(ADDRESS,DefWindowProc ));
- Kernel32.GetProcAddress(mod, "DestroyAcceleratorTable", SYSTEM.VAL(ADDRESS,DestroyAcceleratorTable ));
- Kernel32.GetProcAddress(mod, "DestroyMenu", SYSTEM.VAL(ADDRESS,DestroyMenu ));
- Kernel32.GetProcAddress(mod, "DestroyWindow", SYSTEM.VAL(ADDRESS,DestroyWindow ));
- Kernel32.GetProcAddress(mod, "DispatchMessageA", SYSTEM.VAL(ADDRESS,DispatchMessage ));
- Kernel32.GetProcAddress(mod, "DrawMenuBar", SYSTEM.VAL(ADDRESS,DrawMenuBar ));
- Kernel32.GetProcAddress(mod, "EmptyClipboard", SYSTEM.VAL(ADDRESS,EmptyClipboard ));
- Kernel32.GetProcAddress(mod, "EnableWindow", SYSTEM.VAL(ADDRESS,EnableWindow ));
- Kernel32.GetProcAddress(mod, "EndPaint", SYSTEM.VAL(ADDRESS,EndPaint ));
- Kernel32.GetProcAddress(mod, "EnumWindows", SYSTEM.VAL(ADDRESS,EnumWindows ));
- Kernel32.GetProcAddress(mod, "EqualRect", SYSTEM.VAL(ADDRESS,EqualRect ));
- Kernel32.GetProcAddress(mod, "GetAsyncKeyState", SYSTEM.VAL(ADDRESS,GetAsyncKeyState ));
- Kernel32.GetProcAddress(mod, "GetClientRect", SYSTEM.VAL(ADDRESS,GetClientRect ));
- Kernel32.GetProcAddress(mod, "GetClipboardData", SYSTEM.VAL(ADDRESS,GetClipboardData ));
- Kernel32.GetProcAddress(mod, "GetClipboardFormatNameA", SYSTEM.VAL(ADDRESS,GetClipboardFormatName));
- Kernel32.GetProcAddress(mod, "GetCursorPos", SYSTEM.VAL(ADDRESS,GetCursorPos ));
- Kernel32.GetProcAddress(mod, "GetDC", SYSTEM.VAL(ADDRESS,GetDC ));
- Kernel32.GetProcAddress(mod, "GetFocus", SYSTEM.VAL(ADDRESS,GetFocus ));
- Kernel32.GetProcAddress(mod, "GetForegroundWindow", SYSTEM.VAL(ADDRESS,GetForegroundWindow ));
- Kernel32.GetProcAddress(mod, "GetKeyState", SYSTEM.VAL(ADDRESS,GetKeyState ));
- Kernel32.GetProcAddress(mod, "GetMenu", SYSTEM.VAL(ADDRESS,GetMenu ));
- Kernel32.GetProcAddress(mod, "GetMenuItemInfoA", SYSTEM.VAL(ADDRESS,GetMenuItemInfo ));
- Kernel32.GetProcAddress(mod, "GetMenuStringA", SYSTEM.VAL(ADDRESS,GetMenuString ));
- Kernel32.GetProcAddress(mod, "GetMessageA", SYSTEM.VAL(ADDRESS,GetMessage ));
- Kernel32.GetProcAddress(mod, "GetParent", SYSTEM.VAL(ADDRESS,GetParent ));
- Kernel32.GetProcAddress(mod, "GetPropA", SYSTEM.VAL(ADDRESS,GetProp ));
- Kernel32.GetProcAddress(mod, "GetSysColor", SYSTEM.VAL(ADDRESS,GetSysColor ));
- Kernel32.GetProcAddress(mod, "GetSystemMetrics", SYSTEM.VAL(ADDRESS,GetSystemMetrics ));
- Kernel32.GetProcAddress(mod, "GetWindowLongA", SYSTEM.VAL(ADDRESS,GetWindowLong ));
- Kernel32.GetProcAddress(mod, "GetWindowPlacement", SYSTEM.VAL(ADDRESS,GetWindowPlacement ));
- Kernel32.GetProcAddress(mod, "GetWindowRect", SYSTEM.VAL(ADDRESS,GetWindowRect ));
- Kernel32.GetProcAddress(mod, "GetWindowRgn", SYSTEM.VAL(ADDRESS,GetWindowRgn ));
- Kernel32.GetProcAddress(mod, "GetWindowTextA", SYSTEM.VAL(ADDRESS,GetWindowText ));
- Kernel32.GetProcAddress(mod, "GetUpdateRect", SYSTEM.VAL(ADDRESS,GetUpdateRect ));
- Kernel32.GetProcAddress(mod, "GetUpdateRgn", SYSTEM.VAL(ADDRESS,GetUpdateRgn ));
- Kernel32.GetProcAddress(mod, "InvalidateRect", SYSTEM.VAL(ADDRESS,InvalidateRect ));
- Kernel32.GetProcAddress(mod, "InsertMenuA", SYSTEM.VAL(ADDRESS,InsertMenu ));
- Kernel32.GetProcAddress(mod, "IntersectRect", SYSTEM.VAL(ADDRESS,IntersectRect ));
- Kernel32.GetProcAddress(mod, "IsChild", SYSTEM.VAL(ADDRESS,IsChild ));
- Kernel32.GetProcAddress(mod, "LoadCursorA", SYSTEM.VAL(ADDRESS,LoadCursor ));
- Kernel32.GetProcAddress(mod, "LoadCursorFromFileA", SYSTEM.VAL(ADDRESS,LoadCursorFromFile ));
- Kernel32.GetProcAddress(mod, "LoadIconA", SYSTEM.VAL(ADDRESS,LoadIcon ));
- Kernel32.GetProcAddress(mod, "MessageBeep", SYSTEM.VAL(ADDRESS,MessageBeep ));
- Kernel32.GetProcAddress(mod, "MessageBoxA", SYSTEM.VAL(ADDRESS,MessageBox ));
- Kernel32.GetProcAddress(mod, "MoveWindow", SYSTEM.VAL(ADDRESS,MoveWindow ));
- Kernel32.GetProcAddress(mod, "OffsetRect", SYSTEM.VAL(ADDRESS,OffsetRect ));
- Kernel32.GetProcAddress(mod, "OpenClipboard", SYSTEM.VAL(ADDRESS,OpenClipboard ));
- Kernel32.GetProcAddress(mod, "PtInRect", SYSTEM.VAL(ADDRESS,PtInRect ));
- Kernel32.GetProcAddress(mod, "PostMessageA", SYSTEM.VAL(ADDRESS,PostMessage ));
- Kernel32.GetProcAddress(mod, "PostQuitMessage", SYSTEM.VAL(ADDRESS,PostQuitMessage ));
- Kernel32.GetProcAddress(mod, "RegisterClassExA", SYSTEM.VAL(ADDRESS,RegisterClassEx ));
- Kernel32.GetProcAddress(mod, "RegisterClipboardFormatA", SYSTEM.VAL(ADDRESS,RegisterClipboardFormat ));
- Kernel32.GetProcAddress(mod, "RegisterHotKey", SYSTEM.VAL(ADDRESS,RegisterHotKey ));
- Kernel32.GetProcAddress(mod, "RegisterWindowMessageA", SYSTEM.VAL(ADDRESS,RegisterWindowMessage ));
- Kernel32.GetProcAddress(mod, "ReleaseCapture", SYSTEM.VAL(ADDRESS,ReleaseCapture ));
- Kernel32.GetProcAddress(mod, "ReleaseDC", SYSTEM.VAL(ADDRESS,ReleaseDC ));
- Kernel32.GetProcAddress(mod, "RemovePropA", SYSTEM.VAL(ADDRESS,RemoveProp ));
- Kernel32.GetProcAddress(mod, "ScreenToClient", SYSTEM.VAL(ADDRESS,ScreenToClient ));
- Kernel32.GetProcAddress(mod, "SendMessageA", SYSTEM.VAL(ADDRESS,SendMessage ));
- Kernel32.GetProcAddress(mod, "SetCapture", SYSTEM.VAL(ADDRESS,SetCapture ));
- Kernel32.GetProcAddress(mod, "SetClipboardData", SYSTEM.VAL(ADDRESS,SetClipboardData ));
- Kernel32.GetProcAddress(mod, "SetCursor", SYSTEM.VAL(ADDRESS,SetCursor ));
- Kernel32.GetProcAddress(mod, "SetCursorPos", SYSTEM.VAL(ADDRESS,SetCursorPos ));
- Kernel32.GetProcAddress(mod, "SetFocus", SYSTEM.VAL(ADDRESS,SetFocus ));
- Kernel32.GetProcAddress(mod, "SetForegroundWindow", SYSTEM.VAL(ADDRESS,SetForegroundWindow ));
- Kernel32.GetProcAddress(mod, "SetMenu", SYSTEM.VAL(ADDRESS,SetMenu ));
- Kernel32.GetProcAddress(mod, "SetMenuItemInfoA", SYSTEM.VAL(ADDRESS,SetMenuItemInfo ));
- Kernel32.GetProcAddress(mod, "SetPropA", SYSTEM.VAL(ADDRESS,SetProp ));
- Kernel32.GetProcAddress(mod, "SetWindowsHookExA", SYSTEM.VAL(ADDRESS,SetWindowsHookEx ));
- Kernel32.GetProcAddress(mod, "SetWindowLongA", SYSTEM.VAL(ADDRESS,SetWindowLong ));
- Kernel32.GetProcAddress(mod, "SetWindowPos", SYSTEM.VAL(ADDRESS,SetWindowPos ));
- Kernel32.GetProcAddress(mod, "SetWindowRgn", SYSTEM.VAL(ADDRESS,SetWindowRgn ));
- Kernel32.GetProcAddress(mod, "SetWindowTextA", SYSTEM.VAL(ADDRESS,SetWindowText ));
- Kernel32.GetProcAddress(mod, "ShowCursor", SYSTEM.VAL(ADDRESS,ShowCursor ));
- Kernel32.GetProcAddress(mod, "ShowWindow", SYSTEM.VAL(ADDRESS,ShowWindow ));
- Kernel32.GetProcAddress(mod, "ShowWindowAsync", SYSTEM.VAL(ADDRESS,ShowWindowAsync ));
- Kernel32.GetProcAddress(mod, "TrackPopupMenu", SYSTEM.VAL(ADDRESS,TrackPopupMenu ));
- Kernel32.GetProcAddress(mod, "TranslateAcceleratorA", SYSTEM.VAL(ADDRESS,TranslateAccelerator ));
- Kernel32.GetProcAddress(mod, "TranslateMessage", SYSTEM.VAL(ADDRESS,TranslateMessage ));
- Kernel32.GetProcAddress(mod, "UnhookWindowsHookEx", SYSTEM.VAL(ADDRESS,UnhookWindowsHookEx ));
- Kernel32.GetProcAddress(mod, "UnregisterClassA", SYSTEM.VAL(ADDRESS,UnregisterClass ));
- Kernel32.GetProcAddress(mod, "UpdateWindow", SYSTEM.VAL(ADDRESS,UpdateWindow ));
- Kernel32.GetProcAddress(mod, "ValidateRect", SYSTEM.VAL(ADDRESS,ValidateRect ));
- END Init;
- BEGIN
- Init;
- END User32.
|