📄 gwmesrv.c
字号:
//#define GDI_GETTEXTALIGN
(PFNVOID)WinGdi_GetTextAlign,
//#define GDI_GETTEXTEXTENTPOINT32
(PFNVOID)WinGdi_GetTextExtentPoint32,
//#define GDI_GETTEXTEXTENTEXPOINT 130
(PFNVOID)WinGdi_GetTextExtentExPoint,
//#define GDI_GETVIEWPORTORG
(PFNVOID)WinGdi_GetViewportOrg,
//#define GDI_GETWINDOWORG
(PFNVOID)WinGdi_GetWindowOrg,
//#define GDI_INVERTRECT
(PFNVOID)WinGdi_InvertRect,
//#define GDI_INVERTRGN
(PFNVOID)WinGdi_InvertRgn,
//#define GDI_LINETO
(PFNVOID)WinGdi_LineTo,
//#define GDI_LINE
(PFNVOID)WinGdi_Line,
//#define GDI_LPTODP
(PFNVOID)WinGdi_LPtoDP,
//#define GDI_MOVETO
(PFNVOID)WinGdi_MoveTo,
//#define GDI_OFFSETCLIPRGN
(PFNVOID)WinGdi_OffsetClipRgn,
//#define GDI_OFFSETVIEWPORTORG 140
(PFNVOID)WinGdi_OffsetViewportOrg,
//#define GDI_OFFSETWINDOWORG
(PFNVOID)WinGdi_OffsetWindowOrg,
//#define GDI_POLYLINE
(PFNVOID)WinGdi_Polyline,
//#define GDI_PTVISIBLE
(PFNVOID)WinGdi_PtVisible,
//#define GDI_RECTANGLE
(PFNVOID)WinGdi_Rectangle,
//#define GDI_ROUNDRECT
(PFNVOID)WinGdi_RoundRect,
//#define GDI_RECTVISIBLE
(PFNVOID)WinGdi_RectVisible,
//#define GDI_SELECTOBJECT
(PFNVOID)WinGdi_SelectObject,
//#define GDI_DELETEOBJECT
(PFNVOID)WinGdi_DeleteObject,
//#define GDI_DELETEDC
(PFNVOID)WinGdi_DeleteDC,
//#define GDI_SELECTCLIPRGN
(PFNVOID)WinGdi_SelectClipRgn,
//#define GDI_EXTSELECTCLIPRGN 150
(PFNVOID)WinGdi_ExtSelectClipRgn,
//#define GDI_SETBKCOLOR
(PFNVOID)WinGdi_SetBkColor,
//#define GDI_SETBKMODE
(PFNVOID)WinGdi_SetBkMode,
//#define GDI_SETBRUSHORG
(PFNVOID)WinGdi_SetBrushOrg,
//#define GDI_SETMAPMODE
(PFNVOID)WinGdi_SetMapMode,
//#define GDI_SETPIXEL
(PFNVOID)WinGdi_SetPixel,
//#define GDI_SETROP2
(PFNVOID)WinGdi_SetROP2,
//#define GDI_SETTEXTCOLOR
(PFNVOID)WinGdi_SetTextColor,
//#define GDI_SETTEXTALIGN
(PFNVOID)WinGdi_SetTextAlign,
//#define GDI_SETVIEWPORTORG
(PFNVOID)WinGdi_SetViewportOrg,
//#define GDI_SETWINDOWORG
(PFNVOID)WinGdi_SetWindowOrg,
//#define GDI_TEXTOUT 160
(PFNVOID)WinGdi_TextOut,
//#define GDI_CREATEPENINDIRECT
(PFNVOID)WinGdi_CreatePenIndirect,
//#define GDI_CREATEPEN
(PFNVOID)WinGdi_CreatePen,
//#define GDI_CREATEBRUSHINDIRECT
(PFNVOID)WinGdi_CreateBrushIndirect,
//#define GDI_CREATEHATCHBRUSH
(PFNVOID)WinGdi_CreateHatchBrush,
//#define GDI_CREATESOLIDBRUSH
(PFNVOID)WinGdi_CreateSolidBrush,
//#define GDI_CREATEBITMAP
(PFNVOID)WinGdi_CreateBitmap,
//#define GDI_CREATECOMPATIBLEBITMAP
(PFNVOID)WinGdi_CreateCompatibleBitmap,
//#define GDI_CREATEBITMAPINDIRECT
NULL,//(PFNVOID)WinGdi_CreateBitmapIndirect,
//#define GDI_CREATECOMPATIBLEDC
(PFNVOID)WinGdi_CreateCompatibleDC,
//#define GDI_CREATEDIBSECTION 170
(PFNVOID)WinGdi_CreateDIBSection,
//#define GDI_SETDIBITS
(PFNVOID)WinGdi_SetDIBits,
//#define GDI_CREATEDIBITMAP
(PFNVOID)WinGdi_CreateDIBitmap,
//#define GDI_GETSTOCKOBJECT
(PFNVOID)WinGdi_GetStockObject,
//#define GDI_GETTEXTMETRICS
(PFNVOID)WinGdi_GetTextMetrics,
//#define GDI_GETCHARWIDTH
(PFNVOID)WinGdi_GetCharWidth,
//#define GDI_LOADIMAGE
(PFNVOID)WinGdi_LoadImage,
//#define GDI_LOADICON
(PFNVOID)WinGdi_LoadIcon,
//#define GDI_LOADCURSOR 168
(PFNVOID)WinGdi_LoadCursor,
//#define RGN_CREATERECT 169
(PFNVOID)WinRgn_CreateRect,
//#define RGN_CREATERECTINDIRECT 170
(PFNVOID)WinRgn_CreateRectIndirect,
//#define RGN_COMBINE 171
(PFNVOID)WinRgn_Combine,
//#define RGN_EQUAL 172
(PFNVOID)WinRgn_Equal,
//#define RGN_OFFSET 173
(PFNVOID)WinRgn_Offset,
//#define RGN_GETBOX 174
(PFNVOID)WinRgn_GetBox,
//#define RGN_RECTINREGION 175
(PFNVOID)WinRgn_RectInRegion,
//#define RGN_PTINREGION 176
(PFNVOID)WinRgn_PtInRegion,
//#define RGN_SETRECT 177
(PFNVOID)WinRgn_SetRect,
//
(PFNVOID)WinGdi_Arc,
(PFNVOID)WinGdi_SetDIBitsToDevice,
(PFNVOID)WinGdi_GetMapMode,
(PFNVOID)WinGdi_TextOutW,
(PFNVOID)WinGdi_GetTextExtentPoint32W,
(PFNVOID)WinFont_CreateIndirect,
(PFNVOID)WinGdi_TransparentBlt,
(PFNVOID)WinGdi_StretchBlt
};
//定义系统API(图形设备)参数界面
static const DWORD dwGdiArgs[] = {
NULL,
///////////////////////////////////////
ARG9_MAKE( DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD ),//WinGdi_BitBlt,
ARG6_MAKE( DWORD,DWORD,DWORD,DWORD,DWORD,DWORD ),//WinGdi_PatBlt,
ARG12_MAKE( DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD ),//WinGdi_MaskBlt,
ARG4_MAKE( DWORD, PTR, DWORD, DWORD ),//WinGdi_DrawEdge,
ARG4_MAKE( DWORD,DWORD,DWORD,DWORD ),//WinGdi_DrawIcon,
ARG9_MAKE( DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD ),//WinGdi_DrawIconEx,
ARG5_MAKE( DWORD, PTR, DWORD, PTR, DWORD ),//WinGdi_DrawText,
ARG2_MAKE( DWORD, PTR ),//WinGdi_DrawFocusRect,
ARG3_MAKE( DWORD, PTR, DWORD ),//WinGdi_DPtoLP,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),
ARG8_MAKE( DWORD, DWORD, DWORD, DWORD, PTR, PTR, DWORD, PTR ),//WinGdi_ExtTextOut,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_ExcludeClipRect,
ARG3_MAKE( DWORD, PTR, DWORD ),//WinGdi_FillRect,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_FillRgn,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_IntersectClipRect,
ARG1_MAKE( DWORD ),//WinGdi_GetBkColor,
ARG1_MAKE( DWORD ),//WinGdi_GetBkMode,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetCurrentPosition,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetClipBox,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_GetClipRgn,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_GetCurrentObject,
ARG7_MAKE( DWORD, DWORD, DWORD, DWORD, PTR, PTR, DWORD ),//(PFNVOID)WinGdi_GetDIBits,
ARG1_MAKE( PTR ),//WinGdi_CreateIconIndirect,
ARG1_MAKE( DWORD ),//WinGdi_DestroyIcon,
ARG1_MAKE( DWORD ),//WinGdi_DestroyCursor,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetIconInfo,
ARG1_MAKE( DWORD ),//WinGdi_GetObjectType,
ARG3_MAKE( DWORD, DWORD, PTR ),//WinGdi_GetObjectInfo,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_GetPixel,
ARG1_MAKE( DWORD ),//WinGdi_GetROP2,
ARG1_MAKE( DWORD ),//WinGdi_GetTextColor,
ARG1_MAKE( DWORD ),//WinGdi_GetTextAlign,
ARG4_MAKE( DWORD, PTR, DWORD, PTR ),//WinGdi_GetTextExtentPoint32,
ARG7_MAKE( DWORD, PTR, DWORD, DWORD, PTR, PTR, PTR ),//WinGdi_GetTextExtentExPoint,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetViewportOrg,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetWindowOrg,
ARG2_MAKE( DWORD, PTR ),//WinGdi_InvertRect,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_InvertRgn,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_LineTo,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_Line,
ARG3_MAKE( DWORD, PTR, DWORD ),//WinGdi_LPtoDP,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_MoveTo,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_OffsetClipRgn,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_OffsetViewportOrg,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_OffsetWindowOrg,
ARG3_MAKE( DWORD, PTR, DWORD ),//WinGdi_Polyline,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_PtVisible,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_Rectangle,
ARG7_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_RoundRect,
ARG2_MAKE( DWORD, PTR ),//WinGdi_RectVisible,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SelectObject,
ARG1_MAKE( DWORD ),//WinGdi_DeleteObject,
ARG1_MAKE( DWORD ),//WinGdi_DeleteDC,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SelectClipRgn,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_ExtSelectClipRgn,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetBkColor,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetBkMode,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_SetBrushOrg,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetMapMode,
ARG4_MAKE( DWORD, DWORD, DWORD, DWORD ),//WinGdi_SetPixel,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetROP2,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetTextColor,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_SetTextAlign
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_SetViewportOrg,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_SetWindowOrg,
ARG5_MAKE( DWORD, DWORD, DWORD, PTR, DWORD ),//WinGdi_TextOut,
ARG1_MAKE( PTR ),//WinGdi_CreatePenIndirect,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_CreatePen,
ARG1_MAKE( PTR ),//WinGdi_CreateBrushIndirect,
ARG2_MAKE( DWORD, DWORD ),//WinGdi_CreateHatchBrush,
ARG1_MAKE( DWORD ),//WinGdi_CreateSolidBrush,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, PTR ),//WinGdi_CreateBitmap,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinGdi_CreateCompatibleBitmap,
0,//(PFNVOID)WinGdi_CreateBitmapIndirect,
ARG1_MAKE( DWORD ),//WinGdi_CreateCompatibleDC,
ARG6_MAKE( DWORD, PTR, DWORD, PTR, DWORD, DWORD ),//WinGdi_CreateDIBSection,
ARG7_MAKE( DWORD, DWORD, DWORD, DWORD, PTR, PTR, DWORD ),//WinGdi_SetDIBits,
ARG6_MAKE( DWORD, PTR, DWORD, PTR, PTR, DWORD ),//WinGdi_CreateDIBitmap,
ARG1_MAKE( DWORD ),//WinGdi_GetStockObject,
ARG2_MAKE( DWORD, PTR ),//WinGdi_GetTextMetrics,
ARG4_MAKE( DWORD, DWORD, DWORD, PTR ),//WinGdi_GetCharWidth,
ARG6_MAKE( DWORD, PTR, DWORD, DWORD, DWORD, DWORD ),//WinGdi_LoadImage,
ARG2_MAKE( DWORD, PTR ),//WinGdi_LoadIcon,
ARG2_MAKE( DWORD, PTR ),//WinGdi_LoadCursor,
// region
ARG4_MAKE( DWORD, DWORD, DWORD, DWORD ),//WinRgn_CreateRect,
ARG1_MAKE( PTR ),//WinRgn_CreateRectIndirect,
ARG4_MAKE( DWORD, DWORD, DWORD, DWORD ),//WinRgn_Combine,
ARG2_MAKE( DWORD, DWORD ),//WinRgn_Equal,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinRgn_Offset,
ARG2_MAKE( DWORD, PTR ),//WinRgn_GetBox,
ARG2_MAKE( DWORD, PTR ),//WinRgn_RectInRegion,
ARG3_MAKE( DWORD, DWORD, DWORD ),//WinRgn_PtInRegion,
ARG5_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD ),//WinRgn_SetRect,
//
ARG9_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_Arc
ARG12_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PTR, PTR, DWORD ),//WinGdi_SetDIBitsToDevice
ARG1_MAKE( DWORD ),//WinGdi_GetMapMode
ARG5_MAKE( DWORD, DWORD, DWORD, PTR, DWORD ),//WinGdi_TextOutW
ARG4_MAKE( DWORD, PTR, DWORD, PTR ),//WinGdi_GetTextExtentPoint32W,
ARG1_MAKE( PTR ), //WinFont_CreateIndirect
ARG11_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_TransparentBlt
ARG11_MAKE( DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD ),//WinGdi_StretchBlt
};
// **************************************************
// 声明:void InstallGwmeServer( void )
// 参数:
// 无
// 返回值:
// 无
// 功能描述:
// 初始化 GWME 系统
// 引用:
//
// ************************************************
void InstallGwmeServer( void )
{ //注册 GWME 系统 API
API_RegisterEx( API_GDI, lpGdiAPI, dwGdiArgs, sizeof( lpGdiAPI ) / sizeof( PFNVOID ) );
API_RegisterEx( API_WND, lpWndAPI, dwWndArgs, sizeof( lpWndAPI ) / sizeof( PFNVOID ) );
API_RegisterEx( API_MSG, lpMsgAPI, dwMsgArgs, sizeof( lpMsgAPI ) / sizeof( PFNVOID ) );
API_RegisterEx( API_GWE, lpGwmeAPI, dwGwmeArgs, sizeof( lpGwmeAPI ) / sizeof( PFNVOID ) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -