1548 lines
27 KiB
C
1548 lines
27 KiB
C
/** @file
|
|
|
|
Implements a large portion of the Win32 API as a protocol.
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2013 - 2019, Insyde Software Corp. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
|
|
#ifndef __H2O_WINDOW_PROTOCOL_H__
|
|
#define __H2O_WINDOW_PROTOCOL_H__
|
|
|
|
#include "H2OWindow/mwtypes.h"
|
|
#include "H2OWindow/windows.h"
|
|
#include "H2OWindow/windef.h"
|
|
#include "H2OWindow/wingdi.h"
|
|
#include "H2OWindow/winuser.h"
|
|
#include "H2OWindow/wintern.h"
|
|
|
|
|
|
#define H2O_WINDOW_PROTOCOL_GUID \
|
|
{ 0x10e432f7,0x3cbd,0x49bd, {0x83, 0xf6, 0x96, 0x23, 0x10, 0x98, 0x26, 0xa5}}
|
|
|
|
typedef struct _H2O_WINDOW_PROTOCOL H2O_WINDOW_PROTOCOL;
|
|
|
|
|
|
typedef
|
|
LRESULT
|
|
(EFIAPI *H2O_WM_DEF_WINDOW_PROC) (
|
|
HWND hwnd,
|
|
UINT32 msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
void
|
|
(EFIAPI *H2O_WM_MW_SET_KEYBOARD_TRANSLATOR) (
|
|
LPFN_KEYBTRANSLATE pFn
|
|
);
|
|
|
|
typedef
|
|
HDC
|
|
(EFIAPI *H2O_WM_GET_DC_EX) (
|
|
HWND hwnd,
|
|
HRGN hrgnClip,
|
|
UINT32 flags
|
|
);
|
|
|
|
typedef
|
|
HDC
|
|
(EFIAPI *H2O_WM_GET_DC) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HDC
|
|
(EFIAPI *H2O_WM_GET_WINDOW_DC) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_RELEASE_DC) (
|
|
HWND hwnd,
|
|
HDC hdc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_DELETE_DC) (
|
|
HDC hdc
|
|
);
|
|
|
|
typedef
|
|
HDC
|
|
(EFIAPI *H2O_WM_BEGIN_PAINT) (
|
|
HWND hwnd,
|
|
LPPAINTSTRUCT lpPaint
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_END_PAINT) (
|
|
HWND hwnd,
|
|
CONST PAINTSTRUCT *lpPaint
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_TEXT_COLOR) (
|
|
HDC hdc,
|
|
COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_GET_TEXT_COLOR) (
|
|
HDC hdc
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_BK_COLOR) (
|
|
HDC hdc,
|
|
COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_SET_BK_MODE) (
|
|
HDC hdc,
|
|
INT32 iBkMode
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_SET_TEXT_ALIGN) (
|
|
HDC hdc,
|
|
UINT32 fMode
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_TEXT_ALIGN) (
|
|
HDC hdc
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_SET_ROP2) (
|
|
HDC hdc,
|
|
INT32 fnDrawMode
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_GET_PIXEL) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_PIXEL) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_MOVE_TO_EX) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
LPPOINT lpPoint
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_LINE_TO) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_POLYLINE) (
|
|
HDC hdc,
|
|
CONST POINT *lppt,
|
|
INT32 cPoints
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_RECTANGLE) (
|
|
HDC hdc,
|
|
INT32 nLeft,
|
|
INT32 nTop,
|
|
INT32 nRight,
|
|
INT32 nBottom
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_ELLIPSE) (
|
|
HDC hdc,
|
|
INT32 nLeftRect,
|
|
INT32 nTopRect,
|
|
INT32 nRightRect,
|
|
INT32 nBottomRect
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_ARC) (
|
|
HDC hdc,
|
|
INT32 nLeftRect,
|
|
INT32 nTopRect,
|
|
INT32 nRightRect,
|
|
INT32 nBottomRect
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_PIE) (
|
|
HDC hdc,
|
|
INT32 nLeftRect,
|
|
INT32 nTopRect,
|
|
INT32 nRightRect,
|
|
INT32 nBottomRect,
|
|
INT32 nXRadial1,
|
|
INT32 nYRadial1,
|
|
INT32 nXRadial2,
|
|
INT32 nYRadial2
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_POLYGON) (
|
|
HDC hdc,
|
|
CONST POINT *lpPoints,
|
|
INT32 nCount
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_POLY_POLYGON) (
|
|
HDC hdc,
|
|
CONST POINT *lpPoints,
|
|
LPINT lpPolyCounts,
|
|
INT32 nCount
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_FILL_RECT) (
|
|
HDC hdc,
|
|
CONST RECT *lprc,
|
|
HBRUSH hbr
|
|
);
|
|
|
|
typedef
|
|
void
|
|
(EFIAPI *H2O_WM_MW_SET_TEXT_CODING) (
|
|
long mode
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_TEXT_OUT ) (
|
|
HDC Hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
LPCWSTR String,
|
|
INT32 cbString
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_TEXT_OUT_W) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
LPCWSTR lpszString,
|
|
INT32 cbString
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_EXT_TEXT_OUT) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
UINT32 fuOptions,
|
|
CONST RECT *lprc,
|
|
LPCSTR lpszString,
|
|
UINT32 cbCount,
|
|
CONST INT32 *lpDx
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_EXT_TEXT_OUT_W) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
UINT32 fuOptions,
|
|
CONST RECT *lprc,
|
|
LPCWSTR lpszString,
|
|
UINT cbCount,
|
|
CONST INT *lpDx
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_DRAW_TEXT_A) (
|
|
HDC hdc,
|
|
LPCSTR lpString,
|
|
INT32 nCount,
|
|
LPRECT lpRect,
|
|
UINT32 uFormat
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_DRAW_TEXT) (
|
|
HDC hdc,
|
|
LPCWSTR lpString,
|
|
INT32 nCount,
|
|
LPRECT lpRect,
|
|
UINT32 uFormat
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_DRAW_DIB) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
PMWIMAGEHDR pimage
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_SYS_COLOR) (
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_SYS_COLOR) (
|
|
INT32 nIndex,
|
|
COLORREF crColor /* Microwindows only*/
|
|
);
|
|
|
|
typedef
|
|
HBRUSH
|
|
(EFIAPI *H2O_WM_GET_SYS_COLOR_BRUSH) (
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
HGDIOBJ
|
|
(EFIAPI *H2O_WM_GET_STOCK_OBJECT) (
|
|
INT32 nObject
|
|
);
|
|
|
|
typedef
|
|
HGDIOBJ
|
|
(EFIAPI *H2O_WM_SELECT_OBJECT) (
|
|
HDC hdc,
|
|
HGDIOBJ hObject
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_DELETE_OBJECT) (
|
|
HGDIOBJ hObject
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_SELECT_CLIP_RGN) (
|
|
HDC hdc,
|
|
HRGN hrgn
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_EXT_SELECT_CLIP_RGN) (
|
|
HDC hdc,
|
|
HRGN hrgn,
|
|
INT32 fnMode
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_UPDATE_RGN) (
|
|
HWND hwnd,
|
|
HRGN hrgn,
|
|
BOOL bErase
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_UPDATE_RECT) (
|
|
HWND hwnd,
|
|
LPRECT lpRect,
|
|
BOOL bErase
|
|
);
|
|
|
|
typedef
|
|
HBRUSH
|
|
(EFIAPI *H2O_WM_CREATE_SOLID_BRUSH) (
|
|
COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
HPEN
|
|
(EFIAPI *H2O_WM_CREATE_PEN) (
|
|
INT32 nPenStyle,
|
|
INT32 nWidth,
|
|
COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
HBITMAP
|
|
(EFIAPI *H2O_WM_CREATE_COMPATIBLE_BITMAP) (
|
|
HDC hdc,
|
|
INT32 nWidth,
|
|
INT32 nHeight
|
|
);
|
|
|
|
typedef
|
|
HDC
|
|
(EFIAPI *H2O_WM_CREATE_COMPATIBLE_DC) (
|
|
HDC hdc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_BIT_BLT) (
|
|
HDC hdcDest,
|
|
INT32 nXDest,
|
|
INT32 nYDest,
|
|
INT32 nWidth,
|
|
INT32 nHeight,
|
|
HDC hdcSrc,
|
|
INT32 nXSrc,
|
|
INT32 nYSrc,
|
|
UINT32 dwRop
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_STRETCH_BLT) (
|
|
HDC hdcDest,
|
|
INT32 nXOriginDest,
|
|
INT32 nYOriginDest,
|
|
INT32 nWidthDest,
|
|
INT32 nHeightDest,
|
|
HDC hdcSrc,
|
|
INT32 nXOriginSrc,
|
|
INT32 nYOriginSrc,
|
|
INT32 nWidthSrc,
|
|
INT32 nHeightSrc,
|
|
DWORD dwRop
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_SYSTEM_PALETTE_ENTRIES) (
|
|
HDC hdc,
|
|
UINT32 iStartIndex,
|
|
UINT32 nEntries,
|
|
LPPALETTEENTRY lppe
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_DEVICE_CAPS) (
|
|
HDC hdc,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_DRAW_FOCUS_RECT) (
|
|
HDC hdc,
|
|
LPRECT prect
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_TABBED_TEXT_OUT) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
LPCTSTR lpszString,
|
|
INT32 cbString,
|
|
INT32 ntabs,
|
|
LPINT lpTabStops,
|
|
INT32 nTabOrigin
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_TABBED_TEXT_EXTENT) (
|
|
HDC hdc,
|
|
INT32 x,
|
|
INT32 y,
|
|
LPCTSTR lpszString,
|
|
INT32 cbString
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_MUL_DIV) (
|
|
INT32 nMultiplicand,
|
|
INT32 nMultiplier,
|
|
INT32 nDivisor
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_TEXT_EXTENT_POINT32) (
|
|
HDC hdc, /* handle to DC*/
|
|
LPCWSTR lpszStr, /* character string*/
|
|
int cchString, /* number of characters*/
|
|
LPSIZE lpSize /* string dimensions*/
|
|
);
|
|
|
|
typedef
|
|
UINT64
|
|
(EFIAPI *H2O_WM_GET_TICK_COUNT) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_SLEEP) (
|
|
UINT32 dwMilliseconds
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_OFFSET_RGN) (
|
|
HRGN hrgn,
|
|
INT32 x,
|
|
INT32 y
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_RGN_BOX) (
|
|
HRGN hrgn,
|
|
LPRECT rect
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_RECT_RGN) (
|
|
INT32 left,
|
|
INT32 top,
|
|
INT32 right,
|
|
INT32 bottom
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_RECT_RGN_INDIRECT) (
|
|
const RECT* rect
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_SET_RECT_RGN) (
|
|
HRGN hrgn,
|
|
INT32 left,
|
|
INT32 top,
|
|
INT32 right,
|
|
INT32 bottom
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_ROUND_RECT_RGN) (
|
|
INT32 left,
|
|
INT32 top,
|
|
INT32 right,
|
|
INT32 bottom,
|
|
INT32 ellipse_width,
|
|
INT32 ellipse_height
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_ELLIPTIC_RGN) (
|
|
INT32 left,
|
|
INT32 top,
|
|
INT32 right,
|
|
INT32 bottom
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_ELLIPTIC_RGN_INDIRECT) (
|
|
const RECT *rect
|
|
);
|
|
|
|
typedef
|
|
HRGN
|
|
(EFIAPI *H2O_WM_CREATE_POLYGON_RGN) (
|
|
const POINT *points,
|
|
INT32 count,
|
|
INT32 mode
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_REGION_DATA) (
|
|
HRGN hrgn,
|
|
UINT32 count,
|
|
LPRGNDATA rgndata
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_PT_IN_REGION) (
|
|
HRGN hrgn,
|
|
INT32 x,
|
|
INT32 y
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_RECT_IN_REGION) (
|
|
HRGN hrgn,
|
|
const RECT *rect
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_EQUAL_RGN) (
|
|
HRGN hrgn1,
|
|
HRGN hrgn2
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_COMBINE_RGN) (
|
|
HRGN hDest,
|
|
HRGN hSrc1,
|
|
HRGN hSrc2,
|
|
INT32 mode
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_INTERSECT_RECT) (
|
|
LPRECT dest,
|
|
const RECT *src1,
|
|
const RECT *src2
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_UNION_RECT) (
|
|
LPRECT dest,
|
|
const RECT *src1,
|
|
const RECT *src2
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_EQUAL_RECT) (
|
|
const RECT* rect1,
|
|
const RECT* rect2
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SUBTRACT_RECT) (
|
|
LPRECT dest,
|
|
const RECT *src1,
|
|
const RECT *src2
|
|
);
|
|
|
|
typedef
|
|
LRESULT
|
|
(EFIAPI *H2O_WM_CALL_WINDOW_PROC) (
|
|
WNDPROC lpPrevWndFunc,
|
|
HWND hwnd,
|
|
UINT32 Msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
LRESULT
|
|
(EFIAPI *H2O_WM_SEND_MESSAGE) (
|
|
HWND hwnd,
|
|
UINT32 Msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_POST_MESSAGE) (
|
|
HWND hwnd,
|
|
UINT32 Msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_POST_THREAD_MESSAGE) (
|
|
UINT32 dwThreadId,
|
|
UINT32 Msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_POST_QUIT_MESSAGE) (
|
|
INT32 nExitCode
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_PEEK_MESSAGE) (
|
|
LPMSG lpMsg,
|
|
HWND hwnd,
|
|
UINT32 uMsgFilterMin,
|
|
UINT32 uMsgFilterMax,
|
|
UINT32 wRemoveMsg
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_MESSAGE) (
|
|
LPMSG lpMsg,
|
|
HWND hwnd,
|
|
UINT32 wMsgFilterMin,
|
|
UINT32 wMsgFilterMax
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_TRANSLATE_MESSAGE) (
|
|
CONST MSG *lpMsg
|
|
);
|
|
|
|
typedef
|
|
LRESULT
|
|
(EFIAPI *H2O_WM_DISPATCH_MESSAGE) (
|
|
CONST MSG *lpMsg
|
|
);
|
|
|
|
typedef
|
|
ATOM
|
|
(EFIAPI *H2O_WM_REGISTER_CLASS) (
|
|
CONST WNDCLASS *lpWndClass
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_UNREGISTER_CLASS) (
|
|
LPCWSTR lpClassName,
|
|
HINSTANCE hInstance
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_CREATE_WINDOW_EX) (
|
|
UINT32 dwExStyle,
|
|
LPCWSTR lpClassName,
|
|
LPCWSTR lpWindowName,
|
|
UINT32 dwStyle,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 nWidth,
|
|
INT32 nHeight,
|
|
HWND hwndParent,
|
|
HMENU hMenu,
|
|
HINSTANCE hInstance,
|
|
LPVOID lpParam
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_DESTROY_WINDOW) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_IS_WINDOW) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SHOW_WINDOW) (
|
|
HWND hwnd,
|
|
INT32 nCmdShow
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_INVALIDATE_RECT) (
|
|
HWND hwnd,
|
|
CONST RECT *lpRect,
|
|
BOOL bErase
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_INVALIDATE_RGN) (
|
|
HWND hwnd,
|
|
HRGN hrgn,
|
|
BOOL bErase
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_VALIDATE_RECT) (
|
|
HWND hwnd,
|
|
CONST RECT *lprc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_VALIDATE_RGN) (
|
|
HWND hwnd,
|
|
HRGN hrgn
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_UPDATE_WINDOW) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_FOCUS) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_SET_FOCUS) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_FOREGROUND_WINDOW) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_SET_ACTIVE_WINDOW) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_ACTIVE_WINDOW) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_BRING_WINDOW_TO_TOP) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_DESKTOP_WINDOW) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_PARENT) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_ENABLE_WINDOW) (
|
|
HWND hwnd,
|
|
BOOL bEnable
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_ADJUST_WINDOW_RECT_EX) (
|
|
LPRECT lpRect,
|
|
UINT32 dwStyle,
|
|
BOOL bMenu,
|
|
UINT32 dwExStyle
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_CLIENT_RECT) (
|
|
HWND hwnd,
|
|
LPRECT lpRect
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_WINDOW_RECT) (
|
|
HWND hwnd,
|
|
LPRECT lpRect
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_CLIENT_TO_SCREEN) (
|
|
HWND hwnd,
|
|
LPPOINT lpPoint
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SCREEN_TO_CLIENT) (
|
|
HWND hwnd,
|
|
LPPOINT lpPoint
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_MAP_WINDOW_POINTS) (
|
|
HWND hwndFrom,
|
|
HWND hwndTo,
|
|
LPPOINT lpPoints,
|
|
UINT32 cPoints
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_RECT) (
|
|
LPRECT lprc,
|
|
INT32 xLeft,
|
|
INT32 yTop,
|
|
INT32 xRight,
|
|
INT32 yBottom
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_RECT_EMPTY) (
|
|
LPRECT lprc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_COPY_RECT) (
|
|
LPRECT lprcDst,
|
|
CONST RECT *lprcSrc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_IS_RECT_EMPTY) (
|
|
CONST RECT *lprc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_INFLATE_RECT) (
|
|
LPRECT lprc,
|
|
INT32 dx,
|
|
INT32 dy
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_OFFSET_RECT) (
|
|
LPRECT lprc,
|
|
INT32 dx,
|
|
INT32 dy
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_PT_IN_RECT) (
|
|
CONST RECT *lprc,
|
|
POINT pt
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_WINDOW_LONG) (
|
|
HWND hwnd,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
INTN
|
|
(EFIAPI *H2O_WM_GET_WINDOW_LONG_PTR ) (
|
|
HWND hwnd,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_SET_WINDOW_LONG) (
|
|
HWND hwnd,
|
|
INT32 nIndex,
|
|
INT32 lNewLong
|
|
);
|
|
|
|
typedef
|
|
INTN
|
|
(EFIAPI *H2O_WM_SET_WINDOW_LONG_PTR ) (
|
|
HWND hwnd,
|
|
INT32 nIndex,
|
|
INTN lNewLong
|
|
);
|
|
|
|
typedef
|
|
UINT16
|
|
(EFIAPI *H2O_WM_GET_WINDOW_WORD) (
|
|
HWND hwnd,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
UINT16
|
|
(EFIAPI *H2O_WM_SET_WINDOW_WORD) (
|
|
HWND hwnd,
|
|
INT32 nIndex,
|
|
UINT16 wNewWord
|
|
);
|
|
|
|
typedef
|
|
ATOM
|
|
(EFIAPI *H2O_WM_GLOBAL_FIND_ATOM) (
|
|
LPCWSTR lpString
|
|
);
|
|
|
|
typedef
|
|
ATOM
|
|
(EFIAPI *H2O_WM_GLOBAL_ADD_ATOM) (
|
|
LPCWSTR lpString
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_PROP) (
|
|
HWND hWnd,
|
|
LPCWSTR lpString,
|
|
HANDLE hData
|
|
);
|
|
|
|
typedef
|
|
HANDLE
|
|
(EFIAPI *H2O_WM_GET_PROP) (
|
|
HWND hWnd,
|
|
LPCWSTR lpString
|
|
);
|
|
|
|
typedef
|
|
HANDLE
|
|
(EFIAPI *H2O_WM_REMOVE_PROP) (
|
|
HWND hWnd,
|
|
LPCWSTR lpString
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_GET_CLASS_LONG) (
|
|
HWND hwnd,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
UINTN
|
|
(EFIAPI *H2O_WM_GET_CLASS_LONG_PTR) (
|
|
HWND hwnd,
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_WINDOW_TEXT_LENGTH) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_WINDOW_TEXT) (
|
|
HWND hwnd,
|
|
LPWSTR lpString,
|
|
INT32 nMaxCount
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_WINDOW_TEXT) (
|
|
HWND hwnd,
|
|
LPCWSTR lpString
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_MOVE_WINDOW) (
|
|
HWND hwnd,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 nWidth,
|
|
INT32 nHeight,
|
|
BOOL bRepaint
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_GET_CURSOR_POS) (
|
|
LPPOINT lpPoint
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_CAPTURE) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_SET_CAPTURE) (
|
|
HWND hwnd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_RELEASE_CAPTURE) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
UINT32
|
|
(EFIAPI *H2O_WM_SET_TIMER) (
|
|
HWND hwnd,
|
|
UINT32 idTimer,
|
|
UINT32 uTimeout,
|
|
TIMERPROC lpTimerFunc
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_KILL_TIMER) (
|
|
HWND hwnd,
|
|
UINT32 idTimer
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_SYSTEM_METRICS) (
|
|
INT32 nIndex
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SYSTEM_PARAMETERS_INFO ) (
|
|
UINT32 uiAction,
|
|
UINT32 uiParam,
|
|
PVOID pvParam,
|
|
UINT32 fWinIni
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_DLG_ITEM) (
|
|
HWND hDlg,
|
|
INT32 nIDDlgItem
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_ENUM_CHILD_WINDOWS) (
|
|
HWND hWndParent,
|
|
WNDENUMPROC lpEnumFunc,
|
|
LPARAM lParam
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_SET_WINDOW_POS) (
|
|
HWND hwnd,
|
|
HWND hwndInsertAfter,
|
|
INT32 x,
|
|
INT32 y,
|
|
INT32 cx,
|
|
INT32 cy,
|
|
UINT32 fuFlags
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GET_CLIP_BOX) (
|
|
HDC Hdc,
|
|
RECT *Rc
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_DC_PEN_COLOR) (
|
|
HDC Hdc,
|
|
COLORREF Color
|
|
);
|
|
|
|
typedef
|
|
COLORREF
|
|
(EFIAPI *H2O_WM_SET_DC_BRUSH_COLOR) (
|
|
HDC Hdc,
|
|
COLORREF Color
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_MW_OPEN) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_MW_CLOSE) (
|
|
VOID
|
|
);
|
|
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_GD_CLOSE_MOUSE) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
INT32
|
|
(EFIAPI *H2O_WM_GD_OPEN_MOUSE) (
|
|
VOID
|
|
);
|
|
|
|
typedef
|
|
int
|
|
(EFIAPI *H2O_WM_MW_FAST_FILL_RECT) (
|
|
IN HDC hDC,
|
|
IN CONST RECT *lprc,
|
|
IN COLORREF crColor
|
|
);
|
|
|
|
typedef
|
|
VOID
|
|
(EFIAPI *H2O_WM_GD_DRAW_IMAGE_PART_TO_FIT) (
|
|
PSD psd,
|
|
MWCOORD x,
|
|
MWCOORD y,
|
|
MWCOORD width,
|
|
MWCOORD height,
|
|
MWCOORD sx,
|
|
MWCOORD sy,
|
|
MWCOORD swidth,
|
|
MWCOORD sheight,
|
|
PSD pmd
|
|
);
|
|
|
|
typedef
|
|
PSD
|
|
(EFIAPI *H2O_WM_GD_LOAD_IMAGE_FROM_BUFFER) (
|
|
IN EFI_IMAGE_INPUT *Image
|
|
);
|
|
|
|
typedef
|
|
PSD
|
|
(EFIAPI *H2O_WM_GD_LOAD_IMAGE_FROM_BUFFER2) (
|
|
IN VOID *Buffer,
|
|
IN INT32 Size,
|
|
IN INT32 Flags
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *H2O_WM_GD_ADD_GOP_DEVICE) (
|
|
EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *H2O_WM_GD_REMOVE_GOP_DEVICE) (
|
|
EFI_GRAPHICS_OUTPUT_PROTOCOL *Gop
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *H2O_WM_GD_ADD_EFI_KEY_DATA) (
|
|
EFI_KEY_DATA *KeyData
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *H2O_WM_GD_ADD_POINTER_DATA) (
|
|
EFI_SIMPLE_POINTER_STATE *SimplePointerState OPTIONAL,
|
|
EFI_ABSOLUTE_POINTER_STATE *AbsolutePointerState OPTIONAL
|
|
);
|
|
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_REGISTER_HOT_KEY) (
|
|
HWND hWnd,
|
|
INT32 id,
|
|
UINT32 fsModifiers,
|
|
UINT32 vk
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_UNREGISTER_HOT_KEY)(
|
|
HWND hWnd,
|
|
INT32 id
|
|
);
|
|
|
|
typedef
|
|
HWND
|
|
(EFIAPI *H2O_WM_GET_WINDOW) (
|
|
HWND hWnd,
|
|
UINT uCmd
|
|
);
|
|
|
|
typedef
|
|
BOOL
|
|
(EFIAPI *H2O_WM_IS_CHILD) (
|
|
HWND Parent,
|
|
HWND Child
|
|
);
|
|
|
|
|
|
|
|
struct _H2O_WINDOW_PROTOCOL {
|
|
UINT32 Size;
|
|
|
|
H2O_WM_SEND_MESSAGE SendMessage;
|
|
H2O_WM_POST_MESSAGE PostMessage;
|
|
H2O_WM_POST_QUIT_MESSAGE PostQuitMessage;
|
|
H2O_WM_GET_MESSAGE GetMessage;
|
|
H2O_WM_PEEK_MESSAGE PeekMessage;
|
|
H2O_WM_TRANSLATE_MESSAGE TranslateMessage;
|
|
H2O_WM_DISPATCH_MESSAGE DispatchMessage;
|
|
|
|
H2O_WM_REGISTER_CLASS RegisterClass;
|
|
//H2O_WM_UNREGISTER_CLASS UnRegisterClass;
|
|
H2O_WM_CREATE_WINDOW_EX CreateWindowEx;
|
|
H2O_WM_DESTROY_WINDOW DestroyWindow;
|
|
//H2O_WM_GET_WINDOW_LONG GetWindowLong;
|
|
//H2O_WM_SET_WINDOW_LONG SetWindowLong;
|
|
H2O_WM_GET_WINDOW_WORD GetWindowWord;
|
|
H2O_WM_SET_WINDOW_WORD SetWindowWord;
|
|
//H2O_WM_GET_CLASS_LONG GetClassLong;
|
|
H2O_WM_GET_WINDOW_TEXT GetWindowText;
|
|
H2O_WM_SET_WINDOW_TEXT SetWindowText;
|
|
|
|
H2O_WM_SET_TEXT_COLOR SetTextColor;
|
|
H2O_WM_SET_BK_COLOR SetBkColor;
|
|
H2O_WM_GET_SYS_COLOR GetSysColor;
|
|
H2O_WM_SET_SYS_COLOR SetSysColor;
|
|
H2O_WM_SET_BK_MODE SetBkMode;
|
|
H2O_WM_SET_ROP2 SetROP2;
|
|
H2O_WM_SET_PIXEL SetPixel;
|
|
H2O_WM_MOVE_TO_EX MoveToEx;
|
|
H2O_WM_LINE_TO LineTo;
|
|
H2O_WM_RECTANGLE Rectangle;
|
|
H2O_WM_FILL_RECT FillRect;
|
|
H2O_WM_TEXT_OUT TextOut;
|
|
//H2O_WM_EXT_TEXT_OUT ExtTextOut;
|
|
H2O_WM_DRAW_TEXT DrawText;
|
|
//H2O_WM_DRAW_DIB DrawDIB;
|
|
H2O_WM_SELECT_OBJECT SelectObject;
|
|
H2O_WM_GET_STOCK_OBJECT GetStockObject;
|
|
H2O_WM_CREATE_PEN CreatePen;
|
|
H2O_WM_CREATE_SOLID_BRUSH CreateSolidBrush;
|
|
H2O_WM_CREATE_COMPATIBLE_BITMAP CreateCompatibleBitmap;
|
|
H2O_WM_DELETE_OBJECT DeleteObject;
|
|
H2O_WM_CREATE_COMPATIBLE_DC CreateCompatibleDC;
|
|
H2O_WM_DELETE_DC DeleteDC;
|
|
H2O_WM_BIT_BLT BitBlt;
|
|
//H2O_WM_GET_SYSTEM_PALETTE_ENTRIES GetSystemPaletteEntries;
|
|
|
|
//H2O_WM_WND_SET_DESKTOP_WALLPAPER WndSetSetDesktopWallpaper;
|
|
//H2O_WM_WND_SET_CURSOR WndSetCursor;
|
|
//H2O_WM_WND_RAISE_WINDOW WndRaiseWindow;
|
|
//H2O_WM_WND_LOWER_WINDOW WndLowerWindow;
|
|
//H2O_WM_WND_GET_TOP_WINDOW WndGetTopWindow;
|
|
|
|
H2O_WM_GET_TICK_COUNT GetTickCount;
|
|
//H2O_WM_SLEEP Sleep;
|
|
H2O_WM_SET_TIMER SetTimer;
|
|
H2O_WM_KILL_TIMER KillTimer;
|
|
H2O_WM_GET_CURSOR_POS GetCursorPos;
|
|
|
|
// H2O_WM_SET_RECT SetRect;
|
|
// H2O_WM_SET_RECT_EMPTY SetRectEmpty;
|
|
// H2O_WM_COPY_RECT CopyRect;
|
|
// H2O_WM_IS_RECT_EMPTY IsRectEmpty;
|
|
// H2O_WM_INFLATE_RECT InflateRect;
|
|
// H2O_WM_OFFSET_RECT OffsetRect;
|
|
// H2O_WM_PT_IN_RECT PtInRect;
|
|
// H2O_WM_INTERSECT_RECT IntersectRect;
|
|
// H2O_WM_UNION_RECT UnionRect;
|
|
// H2O_WM_SUBTRACT_RECT SubtractRect;
|
|
// H2O_WM_EQUAL_RECT EqualRect;
|
|
|
|
H2O_WM_CREATE_RECT_RGN CreateRectRgn;
|
|
H2O_WM_CREATE_RECT_RGN_INDIRECT CreateRectRgnIndirect;
|
|
H2O_WM_SET_RECT_RGN SetRectRgn;
|
|
H2O_WM_CREATE_ROUND_RECT_RGN CreateRoundRectRgn;
|
|
H2O_WM_CREATE_ELLIPTIC_RGN CreateEllipticRgn;
|
|
H2O_WM_CREATE_ELLIPTIC_RGN_INDIRECT CreateEllipticRgnIndirect;
|
|
H2O_WM_OFFSET_RGN OffsetRgn;
|
|
H2O_WM_GET_RGN_BOX GetRgnBox;
|
|
//H2O_WM_GET_RGN_DATA GetRgnData;
|
|
//H2O_WM_PT_IN_RGN PtInRgn;
|
|
//H2O_WM_RECT_IN_RGN RectInRgn;
|
|
H2O_WM_EQUAL_RGN EqualRgn;
|
|
H2O_WM_COMBINE_RGN CombineRgn;
|
|
|
|
//H2O_WM_SELECT_CLIP_REGION SelectClipRegion;
|
|
//H2O_WM_EXT_SELECT_CLIP_REGION ExtSelectClipRegion;
|
|
|
|
H2O_WM_DEF_WINDOW_PROC DefWindowProc;
|
|
H2O_WM_CALL_WINDOW_PROC CallWindowProc;
|
|
|
|
//
|
|
// addin
|
|
//
|
|
H2O_WM_MW_SET_KEYBOARD_TRANSLATOR MwSetKeyboardTranslator;
|
|
H2O_WM_GET_DC_EX GetDCEx;
|
|
H2O_WM_GET_DC GetDC;
|
|
H2O_WM_GET_WINDOW_DC GetWindowDC;
|
|
H2O_WM_RELEASE_DC ReleaseDC;
|
|
H2O_WM_BEGIN_PAINT BeginPaint;
|
|
H2O_WM_END_PAINT EndPaint;
|
|
H2O_WM_GET_TEXT_COLOR GetTextColor;
|
|
H2O_WM_SET_TEXT_ALIGN SetTextAlign;
|
|
H2O_WM_GET_TEXT_ALIGN GetTextAlign;
|
|
H2O_WM_GET_PIXEL GetPixel;
|
|
H2O_WM_POLYLINE Polyline;
|
|
//H2O_WM_ELLIPSE Ellipse;
|
|
//H2O_WM_PIE Pie;
|
|
H2O_WM_POLYGON Polygon;
|
|
H2O_WM_POLY_POLYGON PolyPolygon;
|
|
H2O_WM_MW_SET_TEXT_CODING MwSetTextCoding;
|
|
//H2O_WM_TEXT_OUT_W TextOutW;
|
|
//H2O_WM_EXT_TEXT_OUT_W ExtTextOutW;
|
|
//H2O_WM_DRAW_TEXT_A DrawTextA;
|
|
H2O_WM_GET_SYS_COLOR_BRUSH GetSysColorBrush;
|
|
H2O_WM_SELECT_CLIP_RGN SelectClipRgn;
|
|
H2O_WM_EXT_SELECT_CLIP_RGN ExtSelectClipRgn;
|
|
H2O_WM_GET_UPDATE_RGN GetUpdateRgn;
|
|
H2O_WM_GET_UPDATE_RECT GetUpdateRect;
|
|
H2O_WM_STRETCH_BLT StretchBlt;
|
|
H2O_WM_GET_DEVICE_CAPS GetDeviceCaps;
|
|
//H2O_WM_DRAW_FOCUS_RECT DrawFocusRect;
|
|
//H2O_WM_TABBED_TEXT_OUT TabbedTextOut;
|
|
//H2O_WM_GET_TABBED_TEXT_EXTENT GetTabbedTextExtent;
|
|
//H2O_WM_MUL_DIV MulDiv;
|
|
H2O_WM_GET_TEXT_EXTENT_POINT32 GetTextExtentPoint32;
|
|
//H2O_WM_SLEEP Sleep;
|
|
H2O_WM_CREATE_POLYGON_RGN CreatePolygonRgn;
|
|
H2O_WM_GET_REGION_DATA GetRegionData;
|
|
H2O_WM_PT_IN_REGION PtInRegion;
|
|
H2O_WM_RECT_IN_REGION RectInRegion;
|
|
H2O_WM_POST_THREAD_MESSAGE PostThreadMessage;
|
|
H2O_WM_UNREGISTER_CLASS UnregisterClass;
|
|
H2O_WM_IS_WINDOW IsWindow;
|
|
H2O_WM_SHOW_WINDOW ShowWindow;
|
|
H2O_WM_INVALIDATE_RECT InvalidateRect;
|
|
H2O_WM_INVALIDATE_RGN InvalidateRgn;
|
|
H2O_WM_VALIDATE_RECT ValidateRect;
|
|
H2O_WM_VALIDATE_RGN ValidateRgn;
|
|
H2O_WM_UPDATE_WINDOW UpdateWindow;
|
|
H2O_WM_GET_FOCUS GetFocus;
|
|
H2O_WM_SET_FOCUS SetFocus;
|
|
H2O_WM_SET_FOREGROUND_WINDOW SetForegroundWindow;
|
|
H2O_WM_SET_ACTIVE_WINDOW SetActiveWindow;
|
|
H2O_WM_GET_ACTIVE_WINDOW GetActiveWindow;
|
|
H2O_WM_BRING_WINDOW_TO_TOP BringWindowToTop;
|
|
H2O_WM_GET_DESKTOP_WINDOW GetDesktopWindow;
|
|
H2O_WM_GET_PARENT GetParent;
|
|
H2O_WM_ENABLE_WINDOW EnableWindow;
|
|
H2O_WM_ADJUST_WINDOW_RECT_EX AdjustWindowRectEx;
|
|
H2O_WM_GET_CLIENT_RECT GetClientRect;
|
|
H2O_WM_GET_WINDOW_RECT GetWindowRect;
|
|
H2O_WM_CLIENT_TO_SCREEN ClientToScreen;
|
|
H2O_WM_SCREEN_TO_CLIENT ScreenToClient;
|
|
H2O_WM_MAP_WINDOW_POINTS MapWindowPoints;
|
|
//H2O_WM_GET_WINDOW_LONG GetWindowLong;
|
|
H2O_WM_GET_WINDOW_LONG_PTR GetWindowLongPtr;
|
|
//H2O_WM_SET_WINDOW_LONG SetWindowLong;
|
|
H2O_WM_SET_WINDOW_LONG_PTR SetWindowLongPtr;
|
|
//H2O_WM_GLOBAL_FIND_ATOM GlobalFindAtom;
|
|
//H2O_WM_GLOBAL_ADD_ATOM GlobalAddAtom;
|
|
H2O_WM_SET_PROP SetProp;
|
|
H2O_WM_GET_PROP GetProp;
|
|
H2O_WM_REMOVE_PROP RemoveProp;
|
|
//H2O_WM_GET_CLASS_LONG GetClassLong;
|
|
H2O_WM_GET_CLASS_LONG_PTR GetClassLongPtr;
|
|
H2O_WM_GET_WINDOW_TEXT_LENGTH GetWindowTextLength;
|
|
H2O_WM_MOVE_WINDOW MoveWindow;
|
|
H2O_WM_GET_CAPTURE GetCapture;
|
|
H2O_WM_SET_CAPTURE SetCapture;
|
|
H2O_WM_RELEASE_CAPTURE ReleaseCapture;
|
|
H2O_WM_GET_SYSTEM_METRICS GetSystemMetrics;
|
|
H2O_WM_SYSTEM_PARAMETERS_INFO SystemParametersInfo;
|
|
H2O_WM_GET_DLG_ITEM GetDlgItem;
|
|
H2O_WM_ENUM_CHILD_WINDOWS EnumChildWindows;
|
|
H2O_WM_SET_WINDOW_POS SetWindowPos;
|
|
H2O_WM_GET_CLIP_BOX GetClipBox;
|
|
H2O_WM_SET_DC_PEN_COLOR SetDCPenColor;
|
|
H2O_WM_SET_DC_BRUSH_COLOR SetDCBrushColor;
|
|
H2O_WM_REGISTER_HOT_KEY RegisterHotKey;
|
|
H2O_WM_UNREGISTER_HOT_KEY UnregisterHotKey;
|
|
//
|
|
// microwindows functions
|
|
//
|
|
H2O_WM_MW_OPEN MwOpen;
|
|
H2O_WM_GD_CLOSE_MOUSE GdCloseMouse;
|
|
H2O_WM_GD_OPEN_MOUSE GdOpenMouse;
|
|
H2O_WM_MW_FAST_FILL_RECT MwFastFillRect;
|
|
H2O_WM_GD_DRAW_IMAGE_PART_TO_FIT GdDrawImagePartToFit;
|
|
H2O_WM_GD_LOAD_IMAGE_FROM_BUFFER GdLoadImageFromBuffer;
|
|
H2O_WM_GD_LOAD_IMAGE_FROM_BUFFER2 GdLoadImageFromBuffer2;
|
|
|
|
H2O_WM_GD_ADD_GOP_DEVICE GdAddGopDevice;
|
|
H2O_WM_GD_ADD_EFI_KEY_DATA GdAddEfiKeyData;
|
|
H2O_WM_GD_ADD_POINTER_DATA GdAddPointerData;
|
|
|
|
H2O_WM_GET_WINDOW GetWindow;
|
|
H2O_WM_IS_CHILD IsChild;
|
|
H2O_WM_GD_REMOVE_GOP_DEVICE GdRemoveGopDevice;
|
|
|
|
H2O_WM_MW_CLOSE MwClose;
|
|
};
|
|
|
|
extern EFI_GUID gH2OWindowProtocolGuid;
|
|
|
|
#endif
|