74#define HANDLE_LIST_INC 20
76#define METAFILE_MEMORY 1
77#define METAFILE_DISK 2
79#define SAPCALLBACKDELAY 244
88#define ROP_USES_SOURCE(Rop) (((Rop) << 2 ^ Rop) & 0xCC0000)
89#define RCAST(_Type, _Value) (*((_Type*)&_Value))
149#define PDEV_UMPD_ID 0xFEDCBA98
151#define UMPDEV_NO_ESCAPE 0x0002
152#define UMPDEV_SUPPORT_ESCAPE 0x0004
171#define LOCALFONT_COUNT 10
287 UINT *BitmapInfoSize,
490#define FOtoF(pfo) EFtoF((EFLOAT_S*)pfo)
492#define FOtoF(pfo) (*(pfo))
500#if defined(_M_IX86) && defined(__GNUC__)
502 __asm__ __volatile__ (
"fistpl %0" :
"=m" (
result) :
"t" (
f) :
"st");
504#elif defined(_M_IX86) && defined(_MSC_VER)
513 return (
int)(
f >= 0 ?
f+0.5 :
f-0.5);
589#define HANDLE_METADC(_RetType, _Func, dwError, hdc, ...) \
590 if (GDI_HANDLE_GET_TYPE(hdc) != GDILoObjType_LO_DC_TYPE) \
592 if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_METADC16_TYPE) \
594 return (_RetType)METADC_##_Func(hdc, __VA_ARGS__); \
598 PLDC pLDC = GdiGetLDC(hdc); \
599 _RetType _Ret = dwError; \
602 SetLastError(ERROR_INVALID_HANDLE); \
603 return (_RetType)_Ret; \
605 if ( pLDC->iType == LDC_EMFLDC && !(EMFDC_##_Func(pLDC, __VA_ARGS__)) ) \
607 return (_RetType)_Ret; \
613#define HANDLE_METADC16(_RetType, _Func, dwError, hdc, ...) \
614 if (GDI_HANDLE_GET_TYPE(hdc) != GDILoObjType_LO_DC_TYPE) \
616 if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_METADC16_TYPE) \
618 return METADC_##_Func(hdc, __VA_ARGS__); \
622#define HANDLE_METADC0P(_RetType, _Func, dwError, hdc, ...) \
623 if (GDI_HANDLE_GET_TYPE(hdc) != GDILoObjType_LO_DC_TYPE) \
626 _RetType _Ret = dwError; \
627 if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_METADC16_TYPE) \
629 return (_RetType)_Ret; \
631 pLDC = GdiGetLDC(hdc); \
634 SetLastError(ERROR_INVALID_HANDLE); \
635 return (_RetType)_Ret; \
637 if ( pLDC->iType == LDC_EMFLDC && !(EMFDC_##_Func(pLDC)) ) \
639 return (_RetType)_Ret; \
644#define HANDLE_EMETAFDC(_RetType, _Func, dwError, hdc, ...) \
645 if (GDI_HANDLE_GET_TYPE(hdc) != GDILoObjType_LO_DC_TYPE) \
648 _RetType _Ret = dwError; \
649 if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_METADC16_TYPE) \
651 return (_RetType)_Ret; \
653 pLDC = GdiGetLDC(hdc); \
656 SetLastError(ERROR_INVALID_HANDLE); \
657 return (_RetType)_Ret; \
659 if ( pLDC->iType == LDC_EMFLDC && !(EMFDC_##_Func(pLDC, __VA_ARGS__)) ) \
661 return (_RetType)_Ret; \
666#define HANDLE_METADC1P(_RetType, _Func, dwError, hdc, ...) \
667 if (GDI_HANDLE_GET_TYPE(hdc) != GDILoObjType_LO_DC_TYPE) \
669 if (GDI_HANDLE_GET_TYPE(hdc) == GDILoObjType_LO_METADC16_TYPE) \
671 return (_RetType)METADC_##_Func(hdc); \
675 PLDC pLDC = GdiGetLDC(hdc); \
676 _RetType _Ret = dwError; \
679 SetLastError(ERROR_INVALID_HANDLE); \
680 return (_RetType)_Ret; \
682 if ( pLDC->iType == LDC_EMFLDC && !(EMFDC_##_Func(pLDC)) ) \
684 return (_RetType)_Ret; \
876BOOL EMFDC_MaskBlt(
LDC *dc_attr,
INT xDest,
INT yDest,
INT cx,
INT cy,
HDC hdcSrc,
INT xSrc,
INT ySrc,
HBITMAP hbmMask,
INT xMask,
INT yMask,
DWORD dwRop);
878BOOL EMFDC_TransparentBlt(
LDC *dc_attr,
INT xDst,
INT yDst,
INT cxDst,
INT cyDst,
HDC hdcSrc,
INT xSrc,
INT ySrc,
INT cxSrc,
INT cySrc,
UINT crTransparent);
static unsigned char bytes[4]
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
static const WCHAR fontW[]
int align(int length, int align)
FLOATL FASTCALL EFtoF(EFLOAT_S *efp)
BOOL EMFDC_FillRgn(LDC *dc_attr, HRGN hrgn, HBRUSH hbrush) DECLSPEC_HIDDEN
VOID WINAPI EnumLogFontExW2A(LPENUMLOGFONTEXA fontA, CONST ENUMLOGFONTEXW *fontW)
HDC WINAPI GdiConvertAndCheckDC(HDC hdc)
BOOL METADC_LineTo(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
FORCEINLINE PVOID GdiAllocBatchCommand(HDC hdc, USHORT Cmd)
OPENPRINTERW fpOpenPrinterW
BOOL EMFDC_SetMetaRgn(LDC *dc_attr)
BOOL EMFDC_StretchDIBits(LDC *dc_attr, INT x_dst, INT y_dst, INT width_dst, INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, const BITMAPINFO *info, UINT coloruse, DWORD rop) DECLSPEC_HIDDEN
BOOL(WINAPI * OPENPRINTERW)(LPWSTR, PHANDLE, LPPRINTER_DEFAULTSW)
BOOL EMFDC_PolyDraw(LDC *dc_attr, const POINT *points, const BYTE *types, DWORD count) DECLSPEC_HIDDEN
BOOL WINAPI CalculateColorTableSize(CONST BITMAPINFOHEADER *BitmapInfoHeader, UINT *ColorSpec, UINT *ColorTableSize)
BOOL(WINAPI * QUERYCOLORPROFILE)(HANDLE, PDEVMODEW, ULONG, VOID *, ULONG, FLONG)
VOID FASTCALL NewTextMetricExW2A(NEWTEXTMETRICEXA *tma, NEWTEXTMETRICEXW *tmw)
PGDI_TABLE_ENTRY GdiHandleTable
BOOL WINAPI GdiValidateHandle(HGDIOBJ)
VOID NTAPI LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA)
BOOL METADC_BitBlt(HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src, INT x_src, INT y_src, DWORD rop)
BOOL METADC_OffsetClipRgn(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
BOOL METADC_SetViewportExtEx(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
BOOL METADC_SetTextJustification(HDC hdc, INT extra, INT breaks) DECLSPEC_HIDDEN
BOOL EMFDC_SetBkMode(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL METADC_SetPixel(HDC hdc, INT x, INT y, COLORREF color) DECLSPEC_HIDDEN
BOOL METADC_FrameRgn(HDC hdc, HRGN hrgn, HBRUSH hbrush, INT x, INT y) DECLSPEC_HIDDEN
HBRUSH WINAPI GdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbr)
BOOL EMFDC_SetStretchBltMode(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL WINAPI GetETM(HDC hdc, EXTTEXTMETRIC *petm)
BOOL(WINAPI * GETPRINTERDRIVERW)(HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD)
struct tagENHMETAFILE * PENHMETAFILE
BOOL METADC_Rectangle(HDC hdc, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL EMFDC_MaskBlt(LDC *dc_attr, INT xDest, INT yDest, INT cx, INT cy, HDC hdcSrc, INT xSrc, INT ySrc, HBITMAP hbmMask, INT xMask, INT yMask, DWORD dwRop)
HGDIOBJ WINAPI GdiFixUpHandle(HGDIOBJ hGO)
BOOL METADC_ExtSelectClipRgn(HDC hdc, HRGN hrgn, INT mode) DECLSPEC_HIDDEN
BOOL WINAPI EMFDC_SetD(_In_ PLDC pldc, _In_ DWORD dwIn, _In_ ULONG ulMFId)
BOOL EMFDC_CloseFigure(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL EMFDC_SetWindowExtEx(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL(WINAPI * LPKETO)(HDC hdc, int x, int y, UINT fuOptions, const RECT *lprc, LPCWSTR lpString, UINT uCount, const INT *lpDx, INT unknown)
struct _LOCALFONT LOCALFONT
FORCEINLINE int _lrintf(float f)
BOOL EMFDC_SetBrushOrg(LDC *dc_attr, INT x, INT y)
BOOL METADC_SetROP2(HDC hdc, INT rop) DECLSPEC_HIDDEN
BOOL EMFDC_PatBlt(LDC *dc_attr, INT left, INT top, INT width, INT height, DWORD rop)
BOOL EMFDC_DeleteDC(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL EMFDC_PlgBlt(LDC *dc_attr, const POINT *ppt, HDC hdcSrc, INT xSrc, INT ySrc, INT cx, INT cy, HBITMAP hbmMask, INT xMask, INT yMask)
PVOID HEAP_alloc(DWORD len)
VOID GdiSAPCallback(PLDC pldc)
HGDIOBJ WINAPI GdiCreateClientObj(_In_ PVOID pvObject, _In_ GDILOOBJTYPE eObjType)
HFONT WINAPI GdiSelectFont(_In_ HDC hdc, _In_ HFONT hfont)
VOID FASTCALL NewTextMetricW2A(NEWTEXTMETRICA *tma, NEWTEXTMETRICW *tmw)
BOOL EMFDC_ScaleWindowExtEx(LDC *dc_attr, INT x_num, INT x_denom, INT y_num, INT y_denom) DECLSPEC_HIDDEN
BOOL EMFDC_RestoreDC(LDC *dc_attr, INT level) DECLSPEC_HIDDEN
BOOL EMFDC_ExcludeClipRect(LDC *dc_attr, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL EMFDC_FillPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL METADC_SetMapMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_ExtSelectClipRgn(LDC *dc_attr, HRGN hrgn, INT mode) DECLSPEC_HIDDEN
LPKGCP LpkGetCharacterPlacement
INT METADC_SetDIBitsToDevice(HDC hdc, INT x_dest, INT y_dest, DWORD width, DWORD height, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, const BITMAPINFO *info, UINT coloruse) DECLSPEC_HIDDEN
BOOL EMFDC_PolyBezier(LDC *dc_attr, const POINT *points, DWORD count) DECLSPEC_HIDDEN
RTL_CRITICAL_SECTION semLocal
BOOL EMFDC_IntersectClipRect(LDC *dc_attr, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL EMFDC_PolylineTo(LDC *dc_attr, const POINT *points, INT count) DECLSPEC_HIDDEN
BOOL EMFDC_WriteNamedEscape(LDC *dc_attr, PWCHAR pDriver, INT nEscape, INT cbInput, LPCSTR lpszInData)
BOOL EMFDC_SaveDC(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL EMFDC_ScaleViewportExtEx(LDC *dc_attr, INT x_num, INT x_denom, INT y_num, INT y_denom) DECLSPEC_HIDDEN
VOID NTAPI LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW)
INT METADC_GetDeviceCaps(HDC hdc, INT cap)
BOOL FASTCALL EndPagePrinterEx(PVOID, HANDLE)
BOOL WINAPI METADC_ExtTextOutW(HDC hdc, INT x, INT y, UINT fuOptions, const RECT *lprc, LPCWSTR lpString, UINT cchString, const INT *lpDx)
DWORD(WINAPI * STARTDOCPRINTERW)(HANDLE, DWORD, PBYTE)
BOOL EMFDC_LineTo(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL(WINAPI * RESETPRINTERW)(HANDLE, LPPRINTER_DEFAULTSW)
BOOL METADC_MoveTo(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
BOOL METADC_StretchDIBits(HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, const BITMAPINFO *info, UINT coloruse, DWORD rop) DECLSPEC_HIDDEN
BOOL WINAPI METADC_RosGlueDeleteDC(_In_ HDC hdc)
BOOL GdiGetHandleUserData(HGDIOBJ hGdiObj, DWORD ObjectType, PVOID *UserData)
BOOL METADC_SetStretchBltMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_SetBkColor(LDC *dc_attr, COLORREF color) DECLSPEC_HIDDEN
BOOL EMFDC_MoveTo(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL EMFDC_Polygon(LDC *dc_attr, const POINT *points, INT count) DECLSPEC_HIDDEN
BOOL METADC_ExtFloodFill(HDC hdc, INT x, INT y, COLORREF color, UINT fill_type) DECLSPEC_HIDDEN
BOOL METADC_Pie(HDC hdc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
BOOL FASTCALL GdiSetLDC(HDC hdc, PVOID pvLDC)
BOOL WINAPI GdiCreateClientObjLink(_In_ HGDIOBJ hobj, _In_ PVOID pvObject)
BOOL(WINAPI * SPLREADPRINTER)(HANDLE, LPBYTE *, DWORD)
NTSTATUS HEAP_strdupA2W(LPWSTR *ppszW, LPCSTR lpszA)
BOOL METADC_RoundRect(HDC hdc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height) DECLSPEC_HIDDEN
BOOL METADC_ExtEscape(HDC hdc, INT escape, INT input_size, LPCSTR input, INT output_size, LPVOID output) DECLSPEC_HIDDEN
CLOSEPRINTER fpClosePrinter
BOOL METADC_SetTextColor(HDC hdc, COLORREF color) DECLSPEC_HIDDEN
struct tagMF_ENTRY MF_ENTRY
BOOL EMFDC_SetWindowOrgEx(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL EMFDC_SelectClipPath(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_WriteEscape(LDC *dc_attr, INT nEscape, INT cbInput, LPSTR lpszInData, DWORD emrType)
BOOL EMFDC_ModifyWorldTransform(LDC *dc_attr, const XFORM *xform, DWORD mode) DECLSPEC_HIDDEN
BOOL EMFDC_StrokePath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL EMFDC_BeginPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL METADC_StretchBlt(HDC hdc_dst, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src, DWORD rop)
BOOL EMFDC_FrameRgn(LDC *dc_attr, HRGN hrgn, HBRUSH hbrush, INT width, INT height) DECLSPEC_HIDDEN
BOOL METADC_FillRgn(HDC hdc, HRGN hrgn, HBRUSH hbrush) DECLSPEC_HIDDEN
BOOL EMFDC_AlphaBlend(LDC *dc_attr, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src, BLENDFUNCTION blend_function)
BOOL WINAPI EMFDC_GdiComment(HDC hdc, UINT bytes, const BYTE *buffer)
struct tagENHMETAFILE ENHMETAFILE
LONG(WINAPI * DOCUMENTPROPERTIESW)(HWND, HANDLE, LPWSTR, PDEVMODEW, PDEVMODEW, DWORD)
BOOL EMFDC_EndPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL WINAPI METADC_SetD(_In_ HDC hdc, _In_ DWORD dwIn, _In_ USHORT usMF16Id)
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
BOOL EMFDC_Rectangle(LDC *dc_attr, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL EMFDC_GradientFill(LDC *dc_attr, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode) DECLSPEC_HIDDEN
VOID WINAPI METADC_RosGlueDeleteObject(HGDIOBJ hobj)
DWORD WINAPI GetAndSetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwIn, _In_ ULONG ulMFId, _In_ USHORT usMF16Id, _In_ DWORD dwError)
PVOID WINAPI GdiGetClientObjLink(_In_ HGDIOBJ hobj)
BOOL(WINAPI * ENDPAGEPRINTER)(HANDLE)
struct tagMETAFILEDC METAFILEDC
BOOL EMFDC_PolyBezierTo(LDC *dc_attr, const POINT *points, DWORD count) DECLSPEC_HIDDEN
VOID FASTCALL FONT_TextMetricWToA(const TEXTMETRICW *ptmW, LPTEXTMETRICA ptmA)
BOOL METADC_SetLayout(HDC hdc, DWORD layout) DECLSPEC_HIDDEN
BOOL EMFDC_ArcChordPie(LDC *dc_attr, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend, DWORD type) DECLSPEC_HIDDEN
BOOL EMFDC_SelectPalette(LDC *dc_attr, HPALETTE palette) DECLSPEC_HIDDEN
BOOL METADC_SetBkColor(HDC hdc, COLORREF color) DECLSPEC_HIDDEN
BOOL EMFDC_SetROP2(LDC *dc_attr, INT rop) DECLSPEC_HIDDEN
VOID WINAPI InitializeLpkHooks(_In_ FARPROC *hookfuncs)
VOID WINAPI GdiInitializeLanguagePack(_In_ DWORD InitParam)
BOOL EMFDC_TransparentBlt(LDC *dc_attr, INT xDst, INT yDst, INT cxDst, INT cyDst, HDC hdcSrc, INT xSrc, INT ySrc, INT cxSrc, INT cySrc, UINT crTransparent)
BOOL EMFDC_BitBlt(LDC *dc_attr, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src, INT x_src, INT y_src, DWORD rop)
BOOL EMFDC_OffsetClipRgn(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
HANDLE(WINAPI * GETSPOOLFILEHANDLE)(HANDLE)
INT(WINAPI * DOCUMENTEVENT)(HANDLE, HDC, INT, ULONG, PVOID, ULONG, PVOID)
BOOL METADC_Arc(HDC hdc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable
BOOL EMFDC_SetMapMode(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_FlattenPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL METADC_Polyline(HDC hdc, const POINT *points, INT count) DECLSPEC_HIDDEN
BOOL EMFDC_InvertRgn(LDC *dc_attr, HRGN hrgn) DECLSPEC_HIDDEN
BOOL METADC_SetBkMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
int WINAPI GdiGetBitmapBitsSize(BITMAPINFO *lpbmi)
BOOL EMFDC_SelectObject(LDC *dc_attr, HGDIOBJ obj) DECLSPEC_HIDDEN
BOOL METADC_RealizePalette(HDC hdc) DECLSPEC_HIDDEN
struct tagMF_ENTRY * PMF_ENTRY
BOOL EMFDC_AngleArc(LDC *dc_attr, INT x, INT y, DWORD radius, FLOAT start, FLOAT sweep) DECLSPEC_HIDDEN
BOOL(WINAPI * SPLDRIVERUNLOADCOMPLETE)(LPWSTR)
BOOL(WINAPI * SEEKPRINTER)(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD, BOOL)
DWORD(WINAPI * QUERYREMOTEFONTS)(DWORD, DWORD, DWORD)
BOOL EMFDC_SetTextJustification(LDC *dc_attr, INT extra, INT breaks) DECLSPEC_HIDDEN
BOOL WINAPI LoadLPK(INT LpkFunctionID)
BOOL METADC_SetWindowExtEx(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
int FASTCALL DocumentEventEx(PVOID, HANDLE, HDC, int, ULONG, PVOID, ULONG, PVOID)
BOOL EMFDC_ExtTextOut(LDC *dc_attr, INT x, INT y, UINT flags, const RECT *rect, const WCHAR *str, UINT count, const INT *dx) DECLSPEC_HIDDEN
BOOL EMFDC_SetPolyFillMode(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL METADC_SetMapperFlags(HDC hdc, DWORD flags) DECLSPEC_HIDDEN
int WINAPI GdiAddFontResourceW(LPCWSTR lpszFilename, FLONG fl, DESIGNVECTOR *pdv)
HENHMETAFILE WINAPI SetEnhMetaFileBitsAlt(PDWORD pdw, LPWSTR FilePart, HANDLE hFile, LARGE_INTEGER li)
BOOL EMFDC_SetMapperFlags(LDC *dc_attr, DWORD flags) DECLSPEC_HIDDEN
BOOL EMFDC_PolyPolyline(LDC *dc_attr, const POINT *points, const DWORD *counts, DWORD polys) DECLSPEC_HIDDEN
BOOL EMFDC_Polyline(LDC *dc_attr, const POINT *points, INT count) DECLSPEC_HIDDEN
BOOL EMFDC_SetWorldTransform(LDC *dc_attr, const XFORM *xform) DECLSPEC_HIDDEN
LPBITMAPINFO WINAPI ConvertBitmapInfo(CONST BITMAPINFO *BitmapInfo, UINT ColorSpec, UINT *BitmapInfoSize, BOOL FollowedByData)
DWORD WINAPI GdiGetCodePage(HDC)
BOOL METADC_SetPolyFillMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_AbortPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL METADC_PatBlt(HDC hdc, INT left, INT top, INT width, INT height, DWORD rop)
INT(CALLBACK * EMFPLAYPROC)(HDC hdc, INT iFunction, HANDLE hPageQuery)
HPEN WINAPI GdiSelectPen(_In_ HDC hdc, _In_ HPEN hpen)
BOOL EMFDC_PaintRgn(LDC *dc_attr, HRGN hrgn) DECLSPEC_HIDDEN
BOOL(WINAPI * LPKGTEP)(HDC hdc, LPCWSTR lpString, INT cString, INT nMaxExtent, LPINT lpnFit, LPINT lpnDx, LPSIZE lpSize, DWORD dwUnused, int unknown)
BOOL METADC_ExtTextOut(HDC hdc, INT x, INT y, UINT flags, const RECT *rect, const WCHAR *str, UINT count, const INT *dx) DECLSPEC_HIDDEN
BOOL EMFDC_SetArcDirection(LDC *dc_attr, INT dir) DECLSPEC_HIDDEN
BOOL METADC_Polygon(HDC hdc, const POINT *points, INT count) DECLSPEC_HIDDEN
BOOL METADC_ScaleWindowExtEx(HDC hdc, INT x_num, INT x_denom, INT y_num, INT y_denom) DECLSPEC_HIDDEN
LPWSTR(WINAPI * STARTDOCDLGW)(HANDLE, DOCINFOW *)
BOOL EMFDC_StrokeAndFillPath(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL(WINAPI * READPRINTER)(HANDLE, PVOID, DWORD, PDWORD)
BOOL EMFDC_SetTextColor(LDC *dc_attr, COLORREF color) DECLSPEC_HIDDEN
HGDIOBJ WINAPI GetDCObject(HDC, INT)
BOOL EMFDC_RoundRect(LDC *dc_attr, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height) DECLSPEC_HIDDEN
FORCEINLINE BOOL EMFDC_Arc(PLDC dc_attr, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL METADC_DeleteDC(HDC hdc)
BOOL METADC_SetViewportOrgEx(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
PVOID WINAPI GdiDeleteClientObj(_In_ HGDIOBJ hobj)
FORCEINLINE BOOL EMFDC_Chord(PLDC dc_attr, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL(WINAPI * ABORTPRINTER)(HANDLE)
BOOL(WINAPI * STARTPAGEPRINTER)(HANDLE)
BOOL EMFDC_SetLayout(LDC *dc_attr, DWORD layout) DECLSPEC_HIDDEN
FORCEINLINE BOOL EMFDC_ArcTo(PLDC dc_attr, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL METADC_InvertRgn(HDC hdc, HRGN hrgn) DECLSPEC_HIDDEN
BOOL METADC_ExcludeClipRect(HDC hdc, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
VOID HEAP_free(LPVOID memory)
VOID WINAPI GdiSetLastError(DWORD dwErrCode)
HGDIOBJ METADC_SelectObject(HDC hdc, HGDIOBJ obj) DECLSPEC_HIDDEN
FORCEINLINE BOOL EMFDC_Pie(PLDC dc_attr, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
BOOL EMFDC_SetDCPenColor(LDC *dc_attr, COLORREF color) DECLSPEC_HIDDEN
BOOL METADC_SetTextAlign(HDC hdc, UINT align) DECLSPEC_HIDDEN
BOOL FASTCALL DeleteRegion(HRGN)
BOOL METADC_PaintRgn(HDC hdc, HRGN hrgn) DECLSPEC_HIDDEN
BOOL METADC_OffsetWindowOrgEx(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
BOOL EMFDC_StretchBlt(LDC *dc_attr, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src, DWORD rop)
BOOL METADC_PolyPolygon(HDC hdc, const POINT *points, const INT *counts, UINT polygons) DECLSPEC_HIDDEN
BOOL(WINAPI * GETPRINTERW)(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD)
struct _LOCALFONT * PLOCALFONT
DWORD(WINAPI * LPKGCP)(HDC hdc, LPCWSTR lpString, INT uCount, INT nMaxExtent, LPGCP_RESULTSW lpResults, DWORD dwFlags, DWORD dwUnused)
LPKGTEP LpkGetTextExtentExPoint
BOOL METADC_SaveDC(HDC hdc) DECLSPEC_HIDDEN
FORCEINLINE PRGN_ATTR GdiGetRgnAttr(HRGN hrgn)
HGDIOBJ FASTCALL hGetPEBHandle(HANDLECACHETYPE, COLORREF)
DWORD(WINAPI * QUERYSPOOLMODE)(HANDLE, DWORD, DWORD)
BOOL METADC_SetWindowOrgEx(HDC, INT x, INT y) DECLSPEC_HIDDEN
FORCEINLINE PDC_ATTR GdiGetDcAttr(HDC hdc)
BOOL EMFDC_SetViewportExtEx(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL METADC_SetTextCharacterExtra(HDC hdc, INT extra) DECLSPEC_HIDDEN
BOOL METADC_IntersectClipRect(HDC hdc, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL METADC_Chord(HDC hdc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend) DECLSPEC_HIDDEN
BOOL(WINAPI * CLOSESPOOLFILEHANDLE)(HANDLE, HANDLE)
BOOL EMFDC_SetDIBitsToDevice(LDC *dc_attr, INT x_dest, INT y_dest, DWORD width, DWORD height, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, const BITMAPINFO *info, UINT coloruse) DECLSPEC_HIDDEN
BOOL EMFDC_SetPixel(LDC *dc_attr, INT x, INT y, COLORREF color) DECLSPEC_HIDDEN
BOOL METADC_Ellipse(HDC hdc, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL(WINAPI * ISVALIDDEVMODEW)(PDEVMODEW, size_t)
BOOL EMFDC_PolyPolygon(LDC *dc_attr, const POINT *points, const INT *counts, UINT polys) DECLSPEC_HIDDEN
struct tagMETAFILEDC * PMETAFILEDC
BOOL METADC_SelectPalette(HDC hdc, HPALETTE palette) DECLSPEC_HIDDEN
BOOL METADC_ScaleViewportExtEx(HDC hdc, INT x_num, INT x_denom, INT y_num, INT y_denom) DECLSPEC_HIDDEN
BOOL EMFDC_SetDCBrushColor(LDC *dc_attr, COLORREF color) DECLSPEC_HIDDEN
BOOL METADC_SetRelAbs(HDC hdc, INT mode) DECLSPEC_HIDDEN
BOOL(WINAPI * ENDDOCPRINTER)(HANDLE)
BOOL METADC_OffsetViewportOrgEx(HDC hdc, INT x, INT y) DECLSPEC_HIDDEN
HANDLE(WINAPI * COMMITSPOOLDATA)(HANDLE, HANDLE, DWORD)
PLDC FASTCALL GdiGetLDC(HDC hDC)
UINT WINAPI UserRealizePalette(HDC hDC)
BOOL EMFDC_SetTextAlign(LDC *dc_attr, UINT align) DECLSPEC_HIDDEN
BOOL METADC_RestoreDC(HDC hdc, INT level) DECLSPEC_HIDDEN
BOOL(WINAPI * CLOSEPRINTER)(HANDLE)
BOOL EMFDC_ExtFloodFill(LDC *dc_attr, INT x, INT y, COLORREF color, UINT fill_type) DECLSPEC_HIDDEN
BOOL FASTCALL LoadTheSpoolerDrv(VOID)
PVOID WINAPI GdiRemoveClientObjLink(_In_ HGDIOBJ hobj)
BOOL EMFDC_Ellipse(LDC *dc_attr, INT left, INT top, INT right, INT bottom) DECLSPEC_HIDDEN
BOOL EMFDC_SetViewportOrgEx(LDC *dc_attr, INT x, INT y) DECLSPEC_HIDDEN
BOOL EMFDC_WidenPath(LDC *dc_attr) DECLSPEC_HIDDEN
#define GDI_HANDLE_GET_TYPE(h)
@ GDILoObjType_LO_REGION_TYPE
@ GDILoObjType_LO_DC_TYPE
@ GDILoObjType_LO_ALTDC_TYPE
enum GDILoObjType GDILOOBJTYPE
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble top
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLenum GLenum GLenum input
GLsizei const GLfloat * points
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static char memory[1024 *256]
static int rop(int rop, int src, int dst)
__kernel_entry W32KAPI NTSTATUS APIENTRY NtGdiFlush(VOID)
_In_ UINT _In_ DWORD dwIn
struct _GDIBSTEXTOUT GDIBSTEXTOUT
enum _HANDLECACHETYPE HANDLECACHETYPE
struct _GDIBSEXTTEXTOUT GDIBSEXTTEXTOUT
struct _GDIBSOBJECT GDIBSOBJECT
struct _GDIBSEXTSELCLPRGN GDIBSEXTSELCLPRGN
struct _GDIBSPPATBLT GDIBSPPATBLT
struct _GDIBSSETBRHORG GDIBSSETBRHORG
struct _GDIBSPATBLT GDIBSPATBLT
_Out_opt_ int _Out_opt_ int * cy
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
ULONG Buffer[GDI_BATCH_BUFFER_SIZE]
FONT_ATTR lfa[LOCALFONT_COUNT]
GDI_TEB_BATCH GdiTebBatch
struct _UMPDEV * pumpdNext
union _LARGE_INTEGER LARGE_INTEGER
union _LARGE_INTEGER * PLARGE_INTEGER
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ ULONG_PTR _In_opt_ DESIGNVECTOR * pdv
struct _devicemodeW * PDEVMODEW
struct _PRINTER_DEFAULTSW * LPPRINTER_DEFAULTSW
_In_ int _Inout_ LPRECT lprc