reactos/include/psdk/ntgdi.h
Amine Khaldi 527f2f9057 [SHELL/EXPERIMENTS]
* Create a branch for some evul shell experiments.

svn path=/branches/shell-experiments/; revision=61927
2014-02-02 19:37:27 +00:00

3494 lines
53 KiB
C

/*
* NtGdi Entrypoints
*/
#ifndef _NTGDI_
#define _NTGDI_
#ifndef W32KAPI
#define W32KAPI DECLSPEC_ADDRSAFE
#endif
#ifndef _WINDOWBLT_NOTIFICATION_
#define _WINDOWBLT_NOTIFICATION_
#endif
#define TRACE_SURFACE_ALLOCS (DBG || 0)
/* NtGdiGetLinkedUfis */
#define FL_UFI_PRIVATEFONT 1
#define FL_UFI_DESIGNVECTOR_PFF 2
#define FL_UFI_MEMORYFONT 4
/* NtGdiSetIcmMode */
#define ICM_SET_MODE 1
#define ICM_SET_CALIBRATE_MODE 2
#define ICM_SET_COLOR_MODE 3
#define ICM_CHECK_COLOR_MODE 4
/* NtGdiCreateColorSpace */
#define LCSEX_ANSICREATED 1
#define LCSEX_TEMPPROFILE 2
/* NtGdiGetStats */
#define GS_NUM_OBJS_ALL 0
#define GS_HANDOBJ_CURRENT 1
#define GS_HANDOBJ_MAX 2
#define GS_HANDOBJ_ALLOC 3
#define GS_LOOKASIDE_INFO 4
/* NtGdiEnumFontOpen */
#define TYPE_ENUMFONTS 1
#define TYPE_ENUMFONTFAMILIES 2
#define TYPE_ENUMFONTFAMILIESEX 3
typedef enum _COLORPALETTEINFO
{
ColorPaletteQuery,
ColorPaletteSet
} COLORPALETTEINFO, *PCOLORPALETTEINFO;
/* NtGdiIcmBrushInfo */
typedef enum _ICM_DIB_INFO_CMD
{
IcmQueryBrush,
IcmSetBrush
} ICM_DIB_INFO, *PICM_DIB_INFO;
/* NtGdiCreateColorSpace */
typedef struct _LOGCOLORSPACEEXW
{
LOGCOLORSPACEW lcsColorSpace;
DWORD dwFlags;
} LOGCOLORSPACEEXW, *PLOGCOLORSPACEEXW;
typedef struct _POLYPATBLT
{
INT nXLeft;
INT nYLeft;
INT nWidth;
INT nHeight;
HBRUSH hBrush;
} POLYPATBLT, *PPOLYPATBLT;
/* NtGdiAddRemoteMMInstanceToDC */
typedef struct tagDOWNLOADDESIGNVECTOR
{
UNIVERSAL_FONT_ID ufiBase;
DESIGNVECTOR dv;
} DOWNLOADDESIGNVECTOR;
W32KAPI
BOOL
APIENTRY
NtGdiInit(VOID);
W32KAPI
INT
APIENTRY
NtGdiSetDIBitsToDeviceInternal(
_In_ HDC hdcDest,
_In_ INT xDst,
_In_ INT yDst,
_In_ DWORD cx,
_In_ DWORD cy,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ DWORD iStartScan,
_In_ DWORD cNumScan,
_In_reads_bytes_(cjMaxBits) LPBYTE pInitBits,
_In_reads_bytes_(cjMaxInfo) LPBITMAPINFO pbmi,
_In_ DWORD iUsage,
_In_ UINT cjMaxBits,
_In_ UINT cjMaxInfo,
_In_ BOOL bTransformCoordinates,
_In_opt_ HANDLE hcmXform
);
W32KAPI
BOOL
APIENTRY
NtGdiGetFontResourceInfoInternalW(
_In_reads_z_(cwc) LPWSTR pwszFiles,
_In_ ULONG cwc,
_In_ ULONG cFiles,
_In_ UINT cjBuf,
_Out_ LPDWORD pdwBytes,
_Out_writes_bytes_(cjBuf) LPVOID pvBuf,
_In_ DWORD iType
);
W32KAPI
DWORD
APIENTRY
NtGdiGetGlyphIndicesW(
_In_ HDC hdc,
IN OPTIONAL LPWSTR pwc,
_In_ INT cwc,
OUT OPTIONAL LPWORD pgi,
_In_ DWORD iMode
);
W32KAPI
DWORD
APIENTRY
NtGdiGetGlyphIndicesWInternal(
_In_ HDC hdc,
IN OPTIONAL LPWSTR pwc,
_In_ INT cwc,
OUT OPTIONAL LPWORD pgi,
_In_ DWORD iMode,
_In_ BOOL bSubset
);
W32KAPI
HPALETTE
APIENTRY
NtGdiCreatePaletteInternal(
IN LPLOGPALETTE pLogPal,
_In_ UINT cEntries
);
W32KAPI
BOOL
APIENTRY
NtGdiArcInternal(
_In_ ARCTYPE arctype,
_In_ HDC hdc,
_In_ INT x1,
_In_ INT y1,
_In_ INT x2,
_In_ INT y2,
_In_ INT x3,
_In_ INT y3,
_In_ INT x4,
_In_ INT y4);
W32KAPI
INT
APIENTRY
NtGdiStretchDIBitsInternal(
_In_ HDC hdc,
_In_ INT xDst,
_In_ INT yDst,
_In_ INT cxDst,
_In_ INT cyDst,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ INT cxSrc,
_In_ INT cySrc,
_In_opt_ LPBYTE pjInit,
_In_ LPBITMAPINFO pbmi,
_In_ DWORD dwUsage,
_In_ DWORD dwRop4,
_In_ UINT cjMaxInfo,
_In_ UINT cjMaxBits,
_In_opt_ HANDLE hcmXform);
W32KAPI
ULONG
APIENTRY
NtGdiGetOutlineTextMetricsInternalW(
_In_ HDC hdc,
_In_ ULONG cjotm,
_Out_opt_ OUTLINETEXTMETRICW *potmw,
_Out_ TMDIFF *ptmd);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetAndSetDCDword(
_In_ HDC hdc,
_In_ UINT u,
_In_ DWORD dwIn,
_Out_ DWORD *pdwResult);
W32KAPI
HANDLE
APIENTRY
NtGdiGetDCObject(
_In_ HDC hdc,
_In_ INT itype);
W32KAPI
HDC
APIENTRY
NtGdiGetDCforBitmap(
_In_ HBITMAP hsurf);
W32KAPI
BOOL
APIENTRY
NtGdiGetMonitorID(
_In_ HDC hdc,
_In_ DWORD dwSize,
_Out_ LPWSTR pszMonitorID);
W32KAPI
INT
APIENTRY
NtGdiGetLinkedUFIs(
_In_ HDC hdc,
OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs,
_In_ INT BufferSize
);
W32KAPI
BOOL
APIENTRY
NtGdiSetLinkedUFIs(
_In_ HDC hdc,
IN PUNIVERSAL_FONT_ID pufiLinks,
_In_ ULONG uNumUFIs
);
W32KAPI
BOOL
APIENTRY
NtGdiGetUFI(
_In_ HDC hdc,
OUT PUNIVERSAL_FONT_ID pufi,
OUT OPTIONAL DESIGNVECTOR *pdv,
OUT ULONG *pcjDV,
OUT ULONG *pulBaseCheckSum,
OUT FLONG *pfl
);
W32KAPI
BOOL
APIENTRY
NtGdiForceUFIMapping(
_In_ HDC hdc,
IN PUNIVERSAL_FONT_ID pufi
);
W32KAPI
BOOL
APIENTRY
NtGdiGetUFIPathname(
IN PUNIVERSAL_FONT_ID pufi,
OUT OPTIONAL ULONG* pcwc,
OUT OPTIONAL LPWSTR pwszPathname,
OUT OPTIONAL ULONG* pcNumFiles,
_In_ FLONG fl,
OUT OPTIONAL BOOL *pbMemFont,
OUT OPTIONAL ULONG *pcjView,
OUT OPTIONAL PVOID pvView,
OUT OPTIONAL BOOL *pbTTC,
OUT OPTIONAL ULONG *piTTC
);
W32KAPI
BOOL
APIENTRY
NtGdiAddRemoteFontToDC(
_In_ HDC hdc,
_In_ PVOID pvBuffer,
_In_ ULONG cjBuffer,
IN OPTIONAL PUNIVERSAL_FONT_ID pufi
);
W32KAPI
HANDLE
APIENTRY
NtGdiAddFontMemResourceEx(
_In_ PVOID pvBuffer,
_In_ DWORD cjBuffer,
IN DESIGNVECTOR *pdv,
_In_ ULONG cjDV,
OUT DWORD *pNumFonts
);
W32KAPI
BOOL
APIENTRY
NtGdiRemoveFontMemResourceEx(
_In_ HANDLE hMMFont);
W32KAPI
BOOL
APIENTRY
NtGdiUnmapMemFont(
_In_ PVOID pvView);
W32KAPI
BOOL
APIENTRY
NtGdiRemoveMergeFont(
_In_ HDC hdc,
IN UNIVERSAL_FONT_ID *pufi
);
W32KAPI
BOOL
APIENTRY
NtGdiAnyLinkedFonts(VOID);
W32KAPI
BOOL
APIENTRY
NtGdiGetEmbUFI(
_In_ HDC hdc,
OUT PUNIVERSAL_FONT_ID pufi,
OUT OPTIONAL DESIGNVECTOR *pdv,
OUT ULONG *pcjDV,
OUT ULONG *pulBaseCheckSum,
OUT FLONG *pfl,
OUT KERNEL_PVOID *embFontID
);
W32KAPI
ULONG
APIENTRY
NtGdiGetEmbedFonts(VOID);
W32KAPI
BOOL
APIENTRY
NtGdiChangeGhostFont(
IN KERNEL_PVOID *pfontID,
_In_ BOOL bLoad
);
W32KAPI
BOOL
APIENTRY
NtGdiAddEmbFontToDC(
_In_ HDC hdc,
IN VOID **pFontID
);
W32KAPI
BOOL
APIENTRY
NtGdiFontIsLinked(
_In_ HDC hdc);
W32KAPI
ULONG_PTR
APIENTRY
NtGdiPolyPolyDraw(
_In_ HDC hdc,
_In_ PPOINT ppt,
_In_ PULONG pcpt,
_In_ ULONG ccpt,
_In_ INT iFunc);
W32KAPI
LONG
APIENTRY
NtGdiDoPalette(
_In_ HGDIOBJ hObj,
_In_ WORD iStart,
_In_ WORD cEntries,
_When_((iFunc == GdiPalGetEntries) || (iFunc == GdiPalGetSystemEntries), _Out_writes_bytes_(cEntries*sizeof(PALETTEENTRY)))
_When_((iFunc != GdiPalGetEntries) && (iFunc != GdiPalGetSystemEntries), _In_reads_bytes_(cEntries*sizeof(PALETTEENTRY))) LPVOID pEntries,
_In_ DWORD iFunc,
_In_ BOOL bInbound);
W32KAPI
BOOL
APIENTRY
NtGdiComputeXformCoefficients(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiGetWidthTable(
_In_ HDC hdc,
_In_ ULONG cSpecial,
IN WCHAR *pwc,
_In_ ULONG cwc,
OUT USHORT *psWidth,
OUT OPTIONAL WIDTHDATA *pwd,
OUT FLONG *pflInfo
);
_Success_(return != 0)
W32KAPI
INT
APIENTRY
NtGdiDescribePixelFormat(
_In_ HDC hdc,
_In_ INT ipfd,
_In_ UINT cjpfd,
_When_(cjpfd != 0, _Out_) PPIXELFORMATDESCRIPTOR ppfd);
W32KAPI
BOOL
APIENTRY
NtGdiSetPixelFormat(
_In_ HDC hdc,
_In_ INT ipfd);
W32KAPI
BOOL
APIENTRY
NtGdiSwapBuffers(
_In_ HDC hdc);
W32KAPI
INT
APIENTRY
NtGdiSetupPublicCFONT(
_In_ HDC hdc,
IN OPTIONAL HFONT hf,
_In_ ULONG ulAve
);
W32KAPI
DWORD
APIENTRY
NtGdiDxgGenericThunk(
_In_ ULONG_PTR ulIndex,
_In_ ULONG_PTR ulHandle,
IN OUT SIZE_T *pdwSizeOfPtr1,
IN OUT PVOID pvPtr1,
IN OUT SIZE_T *pdwSizeOfPtr2,
IN OUT PVOID pvPtr2
);
W32KAPI
DWORD
APIENTRY
NtGdiDdAddAttachedSurface(
_In_ HANDLE hSurface,
_In_ HANDLE hSurfaceAttached,
IN OUT PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData
);
W32KAPI
BOOL
APIENTRY
NtGdiDdAttachSurface(
_In_ HANDLE hSurfaceFrom,
_In_ HANDLE hSurfaceTo);
W32KAPI
DWORD
APIENTRY
NtGdiDdBlt(
_In_ HANDLE hSurfaceDest,
_In_ HANDLE hSurfaceSrc,
IN OUT PDD_BLTDATA puBltData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdCanCreateSurface(
_In_ HANDLE hDirectDraw,
IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdColorControl(
_In_ HANDLE hSurface,
IN OUT PDD_COLORCONTROLDATA puColorControlData
);
W32KAPI
HANDLE
APIENTRY
NtGdiDdCreateDirectDrawObject(
_In_ HDC hdc);
W32KAPI
DWORD
APIENTRY
NtGdiDdCreateSurface(
_In_ HANDLE hDirectDraw,
IN HANDLE* hSurface,
IN OUT DDSURFACEDESC* puSurfaceDescription,
IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData,
IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData,
IN OUT DD_SURFACE_MORE* puSurfaceMoreData,
IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData,
OUT HANDLE* puhSurface
);
W32KAPI
HANDLE
APIENTRY
NtGdiDdCreateSurfaceObject(
_In_ HANDLE hDirectDrawLocal,
_In_ HANDLE hSurface,
IN PDD_SURFACE_LOCAL puSurfaceLocal,
IN PDD_SURFACE_MORE puSurfaceMore,
IN PDD_SURFACE_GLOBAL puSurfaceGlobal,
_In_ BOOL bComplete
);
W32KAPI
BOOL
APIENTRY
NtGdiDdDeleteSurfaceObject(
_In_ HANDLE hSurface);
W32KAPI
BOOL
APIENTRY
NtGdiDdDeleteDirectDrawObject(
_In_ HANDLE hDirectDrawLocal);
W32KAPI
DWORD
APIENTRY
NtGdiDdDestroySurface(
_In_ HANDLE hSurface,
_In_ BOOL bRealDestroy);
W32KAPI
DWORD
APIENTRY
NtGdiDdFlip(
_In_ HANDLE hSurfaceCurrent,
_In_ HANDLE hSurfaceTarget,
_In_ HANDLE hSurfaceCurrentLeft,
_In_ HANDLE hSurfaceTargetLeft,
IN OUT PDD_FLIPDATA puFlipData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetAvailDriverMemory(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetBltStatus(
_In_ HANDLE hSurface,
IN OUT PDD_GETBLTSTATUSDATA puGetBltStatusData
);
W32KAPI
HDC
APIENTRY
NtGdiDdGetDC(
_In_ HANDLE hSurface,
IN PALETTEENTRY* puColorTable
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetDriverInfo(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETDRIVERINFODATA puGetDriverInfoData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetFlipStatus(
_In_ HANDLE hSurface,
IN OUT PDD_GETFLIPSTATUSDATA puGetFlipStatusData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetScanLine(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETSCANLINEDATA puGetScanLineData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdSetExclusiveMode(
_In_ HANDLE hDirectDraw,
IN OUT PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdFlipToGDISurface(
_In_ HANDLE hDirectDraw,
IN OUT PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdLock(
_In_ HANDLE hSurface,
IN OUT PDD_LOCKDATA puLockData,
_In_ HDC hdcClip
);
W32KAPI
BOOL
APIENTRY
NtGdiDdQueryDirectDrawObject(
_In_ HANDLE hDirectDrawLocal,
OUT PDD_HALINFO pHalInfo,
OUT DWORD* pCallBackFlags,
OUT OPTIONAL LPD3DNTHAL_CALLBACKS puD3dCallbacks,
OUT OPTIONAL LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
OUT OPTIONAL PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
OUT OPTIONAL LPDDSURFACEDESC puD3dTextureFormats,
OUT DWORD* puNumHeaps,
OUT OPTIONAL VIDEOMEMORY* puvmList,
OUT DWORD* puNumFourCC,
OUT OPTIONAL DWORD* puFourCC
);
W32KAPI
BOOL
APIENTRY
NtGdiDdReenableDirectDrawObject(
_In_ HANDLE hDirectDrawLocal,
IN OUT BOOL* pubNewMode
);
W32KAPI
BOOL
APIENTRY
NtGdiDdReleaseDC(
_In_ HANDLE hSurface);
W32KAPI
BOOL
APIENTRY
NtGdiDdResetVisrgn(
_In_ HANDLE hSurface,
_In_ HWND hwnd);
W32KAPI
DWORD
APIENTRY
NtGdiDdSetColorKey(
_In_ HANDLE hSurface,
IN OUT PDD_SETCOLORKEYDATA puSetColorKeyData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdSetOverlayPosition(
_In_ HANDLE hSurfaceSource,
_In_ HANDLE hSurfaceDestination,
IN OUT PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdUnattachSurface(
_In_ HANDLE hSurface,
_In_ HANDLE hSurfaceAttached
);
W32KAPI
DWORD
APIENTRY
NtGdiDdUnlock(
_In_ HANDLE hSurface,
IN OUT PDD_UNLOCKDATA puUnlockData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdUpdateOverlay(
_In_ HANDLE hSurfaceDestination,
_In_ HANDLE hSurfaceSource,
IN OUT PDD_UPDATEOVERLAYDATA puUpdateOverlayData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdWaitForVerticalBlank(
_In_ HANDLE hDirectDraw,
IN OUT PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData
);
W32KAPI
HANDLE
APIENTRY
NtGdiDdGetDxHandle(
_In_opt_ HANDLE hDirectDraw,
_In_opt_ HANDLE hSurface,
_In_ BOOL bRelease);
W32KAPI
BOOL
APIENTRY
NtGdiDdSetGammaRamp(
_In_ HANDLE hDirectDraw,
_In_ HDC hdc,
_In_ LPVOID lpGammaRamp);
W32KAPI
DWORD
APIENTRY
NtGdiDdLockD3D(
_In_ HANDLE hSurface,
IN OUT PDD_LOCKDATA puLockData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdUnlockD3D(
_In_ HANDLE hSurface,
IN OUT PDD_UNLOCKDATA puUnlockData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdCreateD3DBuffer(
_In_ HANDLE hDirectDraw,
IN OUT HANDLE* hSurface,
IN OUT DDSURFACEDESC* puSurfaceDescription,
IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData,
IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData,
IN OUT DD_SURFACE_MORE* puSurfaceMoreData,
IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData,
IN OUT HANDLE* puhSurface
);
W32KAPI
DWORD
APIENTRY
NtGdiDdCanCreateD3DBuffer(
_In_ HANDLE hDirectDraw,
IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdDestroyD3DBuffer(
_In_ HANDLE hSurface);
W32KAPI
BOOL
APIENTRY
NtGdiD3dContextCreate(
_In_ HANDLE hDirectDrawLocal,
_In_ HANDLE hSurfColor,
_In_ HANDLE hSurfZ,
IN OUT D3DNTHAL_CONTEXTCREATEI *pdcci
);
W32KAPI
DWORD
APIENTRY
NtGdiD3dContextDestroy(
IN LPD3DNTHAL_CONTEXTDESTROYDATA pdcdd
);
W32KAPI
DWORD
APIENTRY
NtGdiD3dContextDestroyAll(
OUT LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad
);
W32KAPI
DWORD
APIENTRY
NtGdiD3dValidateTextureStageState(
IN OUT LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData
);
W32KAPI
DWORD
APIENTRY
NtGdiD3dDrawPrimitives2(
_In_ HANDLE hCmdBuf,
_In_ HANDLE hVBuf,
IN OUT LPD3DNTHAL_DRAWPRIMITIVES2DATA pded,
IN OUT FLATPTR* pfpVidMemCmd,
IN OUT DWORD* pdwSizeCmd,
IN OUT FLATPTR* pfpVidMemVtx,
IN OUT DWORD* pdwSizeVtx
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetDriverState(
IN OUT PDD_GETDRIVERSTATEDATA pdata
);
W32KAPI
DWORD
APIENTRY
NtGdiDdCreateSurfaceEx(
_In_ HANDLE hDirectDraw,
_In_ HANDLE hSurface,
_In_ DWORD dwSurfaceHandle
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpCanCreateVideoPort(
_In_ HANDLE hDirectDraw,
IN OUT PDD_CANCREATEVPORTDATA puCanCreateVPortData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpColorControl(
_In_ HANDLE hVideoPort,
IN OUT PDD_VPORTCOLORDATA puVPortColorData
);
W32KAPI
HANDLE
APIENTRY
NtGdiDvpCreateVideoPort(
_In_ HANDLE hDirectDraw,
IN OUT PDD_CREATEVPORTDATA puCreateVPortData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpDestroyVideoPort(
_In_ HANDLE hVideoPort,
IN OUT PDD_DESTROYVPORTDATA puDestroyVPortData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpFlipVideoPort(
_In_ HANDLE hVideoPort,
_In_ HANDLE hDDSurfaceCurrent,
_In_ HANDLE hDDSurfaceTarget,
IN OUT PDD_FLIPVPORTDATA puFlipVPortData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortBandwidth(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortField(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTFIELDDATA puGetVPortFieldData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortFlipStatus(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortInputFormats(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortLine(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTLINEDATA puGetVPortLineData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortOutputFormats(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoPortConnectInfo(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETVPORTCONNECTDATA puGetVPortConnectData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpGetVideoSignalStatus(
_In_ HANDLE hVideoPort,
IN OUT PDD_GETVPORTSIGNALDATA puGetVPortSignalData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpUpdateVideoPort(
_In_ HANDLE hVideoPort,
IN HANDLE* phSurfaceVideo,
IN HANDLE* phSurfaceVbi,
IN OUT PDD_UPDATEVPORTDATA puUpdateVPortData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpWaitForVideoPortSync(
_In_ HANDLE hVideoPort,
IN OUT PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpAcquireNotification(
_In_ HANDLE hVideoPort,
IN OUT HANDLE* hEvent,
IN LPDDVIDEOPORTNOTIFY pNotify
);
W32KAPI
DWORD
APIENTRY
NtGdiDvpReleaseNotification(
_In_ HANDLE hVideoPort,
_In_ HANDLE hEvent);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetMoCompGuids(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetMoCompFormats(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetMoCompBuffInfo(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdGetInternalMoCompInfo(
_In_ HANDLE hDirectDraw,
IN OUT PDD_GETINTERNALMOCOMPDATA puGetInternalData
);
W32KAPI
HANDLE
APIENTRY
NtGdiDdCreateMoComp(
_In_ HANDLE hDirectDraw,
IN OUT PDD_CREATEMOCOMPDATA puCreateMoCompData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdDestroyMoComp(
_In_ HANDLE hMoComp,
IN OUT PDD_DESTROYMOCOMPDATA puDestroyMoCompData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdBeginMoCompFrame(
_In_ HANDLE hMoComp,
IN OUT PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdEndMoCompFrame(
_In_ HANDLE hMoComp,
IN OUT PDD_ENDMOCOMPFRAMEDATA puEndFrameData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdRenderMoComp(
_In_ HANDLE hMoComp,
IN OUT PDD_RENDERMOCOMPDATA puRenderMoCompData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdQueryMoCompStatus(
_In_ HANDLE hMoComp,
IN OUT PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData
);
W32KAPI
DWORD
APIENTRY
NtGdiDdAlphaBlt(
_In_ HANDLE hSurfaceDest,
_In_opt_ HANDLE hSurfaceSrc,
IN OUT PDD_BLTDATA puBltData
);
W32KAPI
BOOL
APIENTRY
NtGdiAlphaBlend(
_In_ HDC hdcDst,
_In_ LONG DstX,
_In_ LONG DstY,
_In_ LONG DstCx,
_In_ LONG DstCy,
_In_ HDC hdcSrc,
_In_ LONG SrcX,
_In_ LONG SrcY,
_In_ LONG SrcCx,
_In_ LONG SrcCy,
_In_ BLENDFUNCTION BlendFunction,
_In_ HANDLE hcmXform);
W32KAPI
BOOL
APIENTRY
NtGdiGradientFill(
_In_ HDC hdc,
_In_ PTRIVERTEX pVertex,
_In_ ULONG nVertex,
_In_ PVOID pMesh,
_In_ ULONG nMesh,
_In_ ULONG ulMode);
W32KAPI
BOOL
APIENTRY
NtGdiSetIcmMode(
_In_ HDC hdc,
_In_ ULONG nCommand,
_In_ ULONG ulMode);
W32KAPI
HANDLE
APIENTRY
NtGdiCreateColorSpace(
_In_ PLOGCOLORSPACEEXW pLogColorSpace);
W32KAPI
BOOL
APIENTRY
NtGdiDeleteColorSpace(
_In_ HANDLE hColorSpace);
W32KAPI
BOOL
APIENTRY
NtGdiSetColorSpace(
_In_ HDC hdc,
_In_ HCOLORSPACE hColorSpace);
W32KAPI
HANDLE
APIENTRY
NtGdiCreateColorTransform(
_In_ HDC hdc,
_In_ LPLOGCOLORSPACEW pLogColorSpaceW,
_In_reads_bytes_opt_(cjSrcProfile) PVOID pvSrcProfile,
_In_ ULONG cjSrcProfile,
_In_reads_bytes_opt_(cjDestProfile) PVOID pvDestProfile,
_In_ ULONG cjDestProfile,
_In_reads_bytes_opt_(cjTargetProfile) PVOID pvTargetProfile,
_In_ ULONG cjTargetProfile);
W32KAPI
BOOL
APIENTRY
NtGdiDeleteColorTransform(
_In_ HDC hdc,
_In_ HANDLE hColorTransform);
W32KAPI
BOOL
APIENTRY
NtGdiCheckBitmapBits(
_In_ HDC hdc,
_In_ HANDLE hColorTransform,
_In_ PVOID pvBits,
_In_ ULONG bmFormat,
_In_ DWORD dwWidth,
_In_ DWORD dwHeight,
_In_ DWORD dwStride,
OUT PBYTE paResults
);
W32KAPI
ULONG
APIENTRY
NtGdiColorCorrectPalette(
_In_ HDC hdc,
_In_ HPALETTE hpal,
_In_ ULONG FirstEntry,
_In_ ULONG NumberOfEntries,
IN OUT PALETTEENTRY *ppalEntry,
_In_ ULONG Command
);
W32KAPI
ULONG_PTR
APIENTRY
NtGdiGetColorSpaceforBitmap(
_In_ HBITMAP hsurf);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetDeviceGammaRamp(
_In_ HDC hdc,
_Out_writes_bytes_(sizeof(GAMMARAMP)) LPVOID lpGammaRamp);
W32KAPI
BOOL
APIENTRY
NtGdiSetDeviceGammaRamp(
_In_ HDC hdc,
_In_reads_bytes_(sizeof(GAMMARAMP)) LPVOID lpGammaRamp);
W32KAPI
BOOL
APIENTRY
NtGdiIcmBrushInfo(
_In_ HDC hdc,
_In_ HBRUSH hbrush,
IN OUT PBITMAPINFO pbmiDIB,
IN OUT PVOID pvBits,
IN OUT ULONG *pulBits,
OUT OPTIONAL DWORD *piUsage,
OUT OPTIONAL BOOL *pbAlreadyTran,
_In_ ULONG Command
);
W32KAPI
VOID
APIENTRY
NtGdiFlush(VOID);
W32KAPI
HDC
APIENTRY
NtGdiCreateMetafileDC(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiMakeInfoDC(
_In_ HDC hdc,
_In_ BOOL bSet);
W32KAPI
HANDLE
APIENTRY
NtGdiCreateClientObj(
_In_ ULONG ulType);
W32KAPI
BOOL
APIENTRY
NtGdiDeleteClientObj(
_In_ HANDLE h);
W32KAPI
LONG
APIENTRY
NtGdiGetBitmapBits(
_In_ HBITMAP hbm,
_In_ ULONG cjMax,
OUT OPTIONAL PBYTE pjOut
);
W32KAPI
BOOL
APIENTRY
NtGdiDeleteObjectApp(
_In_ HANDLE hobj);
W32KAPI
INT
APIENTRY
NtGdiGetPath(
_In_ HDC hdc,
OUT OPTIONAL LPPOINT pptlBuf,
OUT OPTIONAL LPBYTE pjTypes,
_In_ INT cptBuf
);
W32KAPI
HDC
APIENTRY
NtGdiCreateCompatibleDC(
_In_opt_ HDC hdc);
W32KAPI
HBITMAP
APIENTRY
NtGdiCreateDIBitmapInternal(
_In_ HDC hdc,
_In_ INT cx,
_In_ INT cy,
_In_ DWORD fInit,
_In_opt_ LPBYTE pjInit,
_In_opt_ LPBITMAPINFO pbmi,
_In_ DWORD iUsage,
_In_ UINT cjMaxInitInfo,
_In_ UINT cjMaxBits,
_In_ FLONG f,
_In_ HANDLE hcmXform);
W32KAPI
HBITMAP
APIENTRY
NtGdiCreateDIBSection(
_In_ HDC hdc,
_In_opt_ HANDLE hSectionApp,
_In_ DWORD dwOffset,
_In_ LPBITMAPINFO pbmi,
_In_ DWORD iUsage,
_In_ UINT cjHeader,
_In_ FLONG fl,
_In_ ULONG_PTR dwColorSpace,
_Out_opt_ PVOID *ppvBits);
W32KAPI
HBRUSH
APIENTRY
NtGdiCreateSolidBrush(
_In_ COLORREF cr,
_In_opt_ HBRUSH hbr);
W32KAPI
HBRUSH
APIENTRY
NtGdiCreateDIBBrush(
_In_ PVOID pv,
_In_ FLONG fl,
_In_ UINT cj,
_In_ BOOL b8X8,
_In_ BOOL bPen,
_In_ PVOID pClient);
W32KAPI
HBRUSH
APIENTRY
NtGdiCreatePatternBrushInternal(
_In_ HBITMAP hbm,
_In_ BOOL bPen,
_In_ BOOL b8X8);
W32KAPI
HBRUSH
APIENTRY
NtGdiCreateHatchBrushInternal(
_In_ ULONG ulStyle,
_In_ COLORREF clrr,
_In_ BOOL bPen);
W32KAPI
HPEN
APIENTRY
NtGdiExtCreatePen(
_In_ ULONG flPenStyle,
_In_ ULONG ulWidth,
_In_ ULONG iBrushStyle,
_In_ ULONG ulColor,
_In_ ULONG_PTR lClientHatch,
_In_ ULONG_PTR lHatch,
_In_ ULONG cstyle,
_In_opt_ PULONG pulStyle,
_In_ ULONG cjDIB,
_In_ BOOL bOldStylePen,
_In_opt_ HBRUSH hbrush);
W32KAPI
HRGN
APIENTRY
NtGdiCreateEllipticRgn(
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
HRGN
APIENTRY
NtGdiCreateRoundRectRgn(
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom,
_In_ INT xWidth,
_In_ INT yHeight);
W32KAPI
HANDLE
APIENTRY
NtGdiCreateServerMetaFile(
_In_ DWORD iType,
_In_ ULONG cjData,
_In_reads_bytes_(cjData) LPBYTE pjData,
_In_ DWORD mm,
_In_ DWORD xExt,
_In_ DWORD yExt);
W32KAPI
HRGN
APIENTRY
NtGdiExtCreateRegion(
_In_opt_ LPXFORM px,
_In_ DWORD cj,
_In_ LPRGNDATA prgn);
W32KAPI
ULONG
APIENTRY
NtGdiMakeFontDir(
_In_ FLONG flEmbed,
_Out_writes_bytes_(cjFontDir) PBYTE pjFontDir,
_In_ unsigned cjFontDir,
_In_z_bytecount_(cjPathname) LPWSTR pwszPathname,
_In_ unsigned cjPathname);
W32KAPI
BOOL
APIENTRY
NtGdiPolyDraw(
_In_ HDC hdc,
_In_count_(cpt) LPPOINT ppt,
_In_count_(cpt) LPBYTE pjAttr,
_In_ ULONG cpt);
W32KAPI
BOOL
APIENTRY
NtGdiPolyTextOutW(
_In_ HDC hdc,
_In_ POLYTEXTW *pptw,
_In_ UINT cStr,
_In_ DWORD dwCodePage);
W32KAPI
ULONG
APIENTRY
NtGdiGetServerMetaFileBits(
_In_ HANDLE hmo,
_In_ ULONG cjData,
OUT OPTIONAL LPBYTE pjData,
OUT PDWORD piType,
OUT PDWORD pmm,
OUT PDWORD pxExt,
OUT PDWORD pyExt
);
W32KAPI
BOOL
APIENTRY
NtGdiEqualRgn(
_In_ HRGN hrgn1,
_In_ HRGN hrgn2);
_Must_inspect_result_
W32KAPI
BOOL
APIENTRY
NtGdiGetBitmapDimension(
_In_ HBITMAP hbm,
_When_(return != FALSE, _Out_) LPSIZE psize);
W32KAPI
UINT
APIENTRY
NtGdiGetNearestPaletteIndex(
_In_ HPALETTE hpal,
_In_ COLORREF crColor);
W32KAPI
BOOL
APIENTRY
NtGdiPtVisible(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y);
W32KAPI
BOOL
APIENTRY
NtGdiRectVisible(
_In_ HDC hdc,
_In_ LPRECT prc);
W32KAPI
BOOL
APIENTRY
NtGdiRemoveFontResourceW(
_In_z_count_(cwc) WCHAR *pwszFiles,
_In_ ULONG cwc,
_In_ ULONG cFiles,
_In_ ULONG fl,
_In_ DWORD dwPidTid,
_In_opt_ DESIGNVECTOR *pdv);
W32KAPI
BOOL
APIENTRY
NtGdiResizePalette(
_In_ HPALETTE hpal,
_In_ UINT cEntry);
W32KAPI
BOOL
APIENTRY
NtGdiSetBitmapDimension(
_In_ HBITMAP hbm,
_In_ INT cx,
_In_ INT cy,
_In_opt_ LPSIZE psizeOut);
W32KAPI
INT
APIENTRY
NtGdiOffsetClipRgn(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y);
W32KAPI
INT
APIENTRY
NtGdiSetMetaRgn(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiSetTextJustification(
_In_ HDC hdc,
_In_ INT lBreakExtra,
_In_ INT cBreak);
W32KAPI
INT
APIENTRY
NtGdiGetAppClipBox(
_In_ HDC hdc,
_Out_ LPRECT prc);
W32KAPI
BOOL
APIENTRY
NtGdiGetTextExtentExW(
_In_ HDC hdc,
IN OPTIONAL LPWSTR lpwsz,
_In_ ULONG cwc,
_In_ ULONG dxMax,
OUT OPTIONAL ULONG *pcCh,
OUT OPTIONAL PULONG pdxOut,
OUT LPSIZE psize,
_In_ FLONG fl
);
W32KAPI
BOOL
APIENTRY
NtGdiGetCharABCWidthsW(
_In_ HDC hdc,
_In_ UINT wchFirst,
_In_ ULONG cwch,
IN OPTIONAL PWCHAR pwch,
_In_ FLONG fl,
OUT PVOID pvBuf
);
W32KAPI
DWORD
APIENTRY
NtGdiGetCharacterPlacementW(
_In_ HDC hdc,
IN LPWSTR pwsz,
_In_ INT nCount,
_In_ INT nMaxExtent,
IN OUT LPGCP_RESULTSW pgcpw,
_In_ DWORD dwFlags
);
W32KAPI
BOOL
APIENTRY
NtGdiAngleArc(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_In_ DWORD dwRadius,
_In_ DWORD dwStartAngle,
_In_ DWORD dwSweepAngle);
W32KAPI
BOOL
APIENTRY
NtGdiBeginPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiSelectClipPath(
_In_ HDC hdc,
_In_ INT iMode);
W32KAPI
BOOL
APIENTRY
NtGdiCloseFigure(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiEndPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiAbortPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiFillPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiStrokeAndFillPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiStrokePath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiWidenPath(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiFlattenPath(
_In_ HDC hdc);
W32KAPI
NTSTATUS
APIENTRY
NtGdiFlushUserBatch(VOID);
W32KAPI
HRGN
APIENTRY
NtGdiPathToRegion(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiSetMiterLimit(
_In_ HDC hdc,
_In_ DWORD dwNew,
_Out_opt_ PDWORD pdwOut);
W32KAPI
BOOL
APIENTRY
NtGdiSetFontXform(
_In_ HDC hdc,
_In_ DWORD dwxScale,
_In_ DWORD dwyScale);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetMiterLimit(
_In_ HDC hdc,
_Out_ PDWORD pdwOut);
W32KAPI
BOOL
APIENTRY
NtGdiEllipse(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
BOOL
APIENTRY
NtGdiRectangle(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
BOOL
APIENTRY
NtGdiRoundRect(
_In_ HDC hdc,
_In_ INT x1,
_In_ INT y1,
_In_ INT x2,
_In_ INT y2,
_In_ INT x3,
_In_ INT y3);
W32KAPI
BOOL
APIENTRY
NtGdiPlgBlt(
_In_ HDC hdcTrg,
_In_ LPPOINT pptlTrg,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ INT cxSrc,
_In_ INT cySrc,
_In_ HBITMAP hbmMask,
_In_ INT xMask,
_In_ INT yMask,
_In_ DWORD crBackColor);
W32KAPI
BOOL
APIENTRY
NtGdiMaskBlt(
_In_ HDC hdc,
_In_ INT xDst,
_In_ INT yDst,
_In_ INT cx,
_In_ INT cy,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_opt_ HBITMAP hbmMask,
_In_ INT xMask,
_In_ INT yMask,
_In_ DWORD dwRop4,
_In_ DWORD crBackColor);
W32KAPI
BOOL
APIENTRY
NtGdiExtFloodFill(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_In_ COLORREF crColor,
_In_ UINT iFillType);
W32KAPI
BOOL
APIENTRY
NtGdiFillRgn(
_In_ HDC hdc,
_In_ HRGN hrgn,
_In_ HBRUSH hbrush);
W32KAPI
BOOL
APIENTRY
NtGdiFrameRgn(
_In_ HDC hdc,
_In_ HRGN hrgn,
_In_ HBRUSH hbrush,
_In_ INT xWidth,
_In_ INT yHeight);
W32KAPI
COLORREF
APIENTRY
NtGdiSetPixel(
_In_ HDC hdcDst,
_In_ INT x,
_In_ INT y,
_In_ COLORREF crColor);
W32KAPI
DWORD
APIENTRY
NtGdiGetPixel(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y);
W32KAPI
BOOL
APIENTRY
NtGdiStartPage(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiEndPage(
_In_ HDC hdc);
W32KAPI
INT
APIENTRY
NtGdiStartDoc(
_In_ HDC hdc,
IN DOCINFOW *pdi,
OUT BOOL *pbBanding,
_In_ INT iJob
);
W32KAPI
BOOL
APIENTRY
NtGdiEndDoc(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiAbortDoc(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiUpdateColors(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiGetCharWidthW(
_In_ HDC hdc,
_In_ UINT wcFirst,
_In_ UINT cwc,
IN OPTIONAL PWCHAR pwc,
_In_ FLONG fl,
OUT PVOID pvBuf
);
W32KAPI
BOOL
APIENTRY
NtGdiGetCharWidthInfo(
_In_ HDC hdc,
OUT PCHWIDTHINFO pChWidthInfo
);
W32KAPI
INT
APIENTRY
NtGdiDrawEscape(
_In_ HDC hdc,
_In_ INT iEsc,
_In_ INT cjIn,
IN OPTIONAL LPSTR pjIn
);
W32KAPI
INT
APIENTRY
NtGdiExtEscape(
_In_ HDC hdc,
IN OPTIONAL PWCHAR pDriver,
_In_ INT nDriver,
_In_ INT iEsc,
_In_ INT cjIn,
IN OPTIONAL LPSTR pjIn,
_In_ INT cjOut,
OUT OPTIONAL LPSTR pjOut
);
W32KAPI
ULONG
APIENTRY
NtGdiGetFontData(
_In_ HDC hdc,
_In_ DWORD dwTable,
_In_ DWORD dwOffset,
OUT OPTIONAL PVOID pvBuf,
_In_ ULONG cjBuf
);
W32KAPI
ULONG
APIENTRY
NtGdiGetGlyphOutline(
_In_ HDC hdc,
IN WCHAR wch,
_In_ UINT iFormat,
OUT LPGLYPHMETRICS pgm,
_In_ ULONG cjBuf,
OUT OPTIONAL PVOID pvBuf,
IN LPMAT2 pmat2,
_In_ BOOL bIgnoreRotation
);
W32KAPI
BOOL
APIENTRY
NtGdiGetETM(
_In_ HDC hdc,
OUT EXTTEXTMETRIC *petm
);
W32KAPI
BOOL
APIENTRY
NtGdiGetRasterizerCaps(
OUT LPRASTERIZER_STATUS praststat,
_In_ ULONG cjBytes
);
W32KAPI
ULONG
APIENTRY
NtGdiGetKerningPairs(
_In_ HDC hdc,
_In_ ULONG cPairs,
OUT OPTIONAL KERNINGPAIR *pkpDst
);
W32KAPI
BOOL
APIENTRY
NtGdiMonoBitmap(
_In_ HBITMAP hbm);
W32KAPI
HBITMAP
APIENTRY
NtGdiGetObjectBitmapHandle(
_In_ HBRUSH hbr,
OUT UINT *piUsage
);
W32KAPI
ULONG
APIENTRY
NtGdiEnumObjects(
_In_ HDC hdc,
_In_ INT iObjectType,
_In_ ULONG cjBuf,
OUT OPTIONAL PVOID pvBuf
);
// Note from SDK:
//
// NtGdiResetDC
// The exact size of the buffer at pdm is pdm->dmSize + pdm->dmDriverExtra.
// But this can't be specified with current annotation language.
//
// typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;
//
// :end note.
W32KAPI
BOOL
APIENTRY
NtGdiResetDC(
_In_ HDC hdc,
_In_ LPDEVMODEW pdm,
OUT PBOOL pbBanding,
IN OPTIONAL VOID *pDriverInfo2, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
OUT VOID *ppUMdhpdev
);
W32KAPI
DWORD
APIENTRY
NtGdiSetBoundsRect(
_In_ HDC hdc,
_In_ LPRECT prc,
_In_ DWORD f);
W32KAPI
BOOL
APIENTRY
NtGdiGetColorAdjustment(
_In_ HDC hdc,
_Out_ PCOLORADJUSTMENT pcaOut);
W32KAPI
BOOL
APIENTRY
NtGdiSetColorAdjustment(
_In_ HDC hdc,
_In_ PCOLORADJUSTMENT pca);
W32KAPI
BOOL
APIENTRY
NtGdiCancelDC(
_In_ HDC hdc);
W32KAPI
HDC
APIENTRY
NtGdiOpenDCW(
IN OPTIONAL PUNICODE_STRING pustrDevice,
IN DEVMODEW *pdm, // See note for NtGdiResetDC
IN PUNICODE_STRING pustrLogAddr,
_In_ ULONG iType,
_In_ BOOL bDisplay,
IN OPTIONAL HANDLE hspool,
IN OPTIONAL VOID *pDriverInfo2, // this is "typedef struct _DRIVER_INFO_2W DRIVER_INFO_2W;"
OUT VOID *pUMdhpdev
);
W32KAPI
BOOL
APIENTRY
NtGdiGetDCDword(
_In_ HDC hdc,
_In_ UINT u,
OUT DWORD *Result
);
_Success_(return!=FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetDCPoint(
_In_ HDC hdc,
_In_ UINT iPoint,
_Out_ PPOINTL pptOut);
W32KAPI
BOOL
APIENTRY
NtGdiScaleViewportExtEx(
_In_ HDC hdc,
_In_ INT xNum,
_In_ INT xDenom,
_In_ INT yNum,
_In_ INT yDenom,
OUT OPTIONAL LPSIZE pszOut
);
W32KAPI
BOOL
APIENTRY
NtGdiScaleWindowExtEx(
_In_ HDC hdc,
_In_ INT xNum,
_In_ INT xDenom,
_In_ INT yNum,
_In_ INT yDenom,
OUT OPTIONAL LPSIZE pszOut
);
W32KAPI
BOOL
APIENTRY
NtGdiSetVirtualResolution(
_In_ HDC hdc,
_In_ INT cxVirtualDevicePixel,
_In_ INT cyVirtualDevicePixel,
_In_ INT cxVirtualDeviceMm,
_In_ INT cyVirtualDeviceMm);
W32KAPI
BOOL
APIENTRY
NtGdiSetSizeDevice(
_In_ HDC hdc,
_In_ INT cxVirtualDevice,
_In_ INT cyVirtualDevice);
_Success_(return !=FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetTransform(
_In_ HDC hdc,
_In_ DWORD iXform,
_Out_ LPXFORM pxf);
W32KAPI
BOOL
APIENTRY
NtGdiModifyWorldTransform(
_In_ HDC hdc,
_In_opt_ LPXFORM pxf,
_In_ DWORD iXform);
W32KAPI
BOOL
APIENTRY
NtGdiCombineTransform(
_Out_ LPXFORM pxfDst,
_In_ LPXFORM pxfSrc1,
_In_ LPXFORM pxfSrc2);
W32KAPI
BOOL
APIENTRY
NtGdiTransformPoints(
_In_ HDC hdc,
_In_reads_(c) PPOINT pptIn,
_Out_writes_(c) PPOINT pptOut,
_In_ INT c,
_In_ INT iMode);
W32KAPI
LONG
APIENTRY
NtGdiConvertMetafileRect(
_In_ HDC hdc,
_Inout_ PRECTL prect);
W32KAPI
INT
APIENTRY
NtGdiGetTextCharsetInfo(
_In_ HDC hdc,
OUT OPTIONAL LPFONTSIGNATURE lpSig,
_In_ DWORD dwFlags
);
W32KAPI
BOOL
APIENTRY
NtGdiDoBanding(
_In_ HDC hdc,
_In_ BOOL bStart,
OUT POINTL *pptl,
OUT PSIZE pSize
);
W32KAPI
ULONG
APIENTRY
NtGdiGetPerBandInfo(
_In_ HDC hdc,
IN OUT PERBANDINFO *ppbi
);
W32KAPI
NTSTATUS
APIENTRY
NtGdiGetStats(
_In_ HANDLE hProcess,
_In_ INT iIndex,
_In_ INT iPidType,
OUT PVOID pResults,
_In_ UINT cjResultSize
);
W32KAPI
BOOL
APIENTRY
NtGdiSetMagicColors(
_In_ HDC hdc,
IN PALETTEENTRY peMagic,
_In_ ULONG Index
);
W32KAPI
HBRUSH
APIENTRY
NtGdiSelectBrush(
_In_ HDC hdc,
_In_ HBRUSH hbrush
);
W32KAPI
HPEN
APIENTRY
NtGdiSelectPen(
_In_ HDC hdc,
_In_ HPEN hpen);
W32KAPI
HBITMAP
APIENTRY
NtGdiSelectBitmap(
_In_ HDC hdc,
_In_ HBITMAP hbm);
W32KAPI
HFONT
APIENTRY
NtGdiSelectFont(
_In_ HDC hdc,
_In_ HFONT hf);
W32KAPI
INT
APIENTRY
NtGdiExtSelectClipRgn(
_In_ HDC hdc,
_In_ HRGN hrgn,
_In_ INT iMode);
W32KAPI
HPEN
APIENTRY
NtGdiCreatePen(
_In_ INT iPenStyle,
_In_ INT iPenWidth,
_In_ COLORREF cr,
_In_ HBRUSH hbr);
#ifdef _WINDOWBLT_NOTIFICATION_
W32KAPI
BOOL
APIENTRY
NtGdiBitBlt(
_In_ HDC hdcDst,
_In_ INT x,
_In_ INT y,
_In_ INT cx,
_In_ INT cy,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ DWORD rop4,
_In_ DWORD crBackColor,
_In_ FLONG fl);
#else
W32KAPI
BOOL
APIENTRY
NtGdiBitBlt(
_In_ HDC hdcDst,
_In_ INT x,
_In_ INT y,
_In_ INT cx,
_In_ INT cy,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ DWORD rop4,
_In_ DWORD crBackColor);
#endif
W32KAPI
BOOL
APIENTRY
NtGdiTileBitBlt(
_In_ HDC hdcDst,
_In_ RECTL *prectDst,
_In_ HDC hdcSrc,
_In_ RECTL *prectSrc,
_In_ POINTL *pptlOrigin,
_In_ DWORD rop4,
_In_ DWORD crBackColor);
W32KAPI
BOOL
APIENTRY
NtGdiTransparentBlt(
_In_ HDC hdcDst,
_In_ INT xDst,
_In_ INT yDst,
_In_ INT cxDst,
_In_ INT cyDst,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ INT cxSrc,
_In_ INT cySrc,
_In_ COLORREF TransColor);
W32KAPI
BOOL
APIENTRY
NtGdiGetTextExtent(
_In_ HDC hdc,
_In_z_count_(cwc) LPWSTR lpwsz,
_In_ INT cwc,
_Out_ LPSIZE psize,
_In_ UINT flOpts);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetTextMetricsW(
_In_ HDC hdc,
_Out_bytecap_(cj) TMW_INTERNAL * ptm,
_In_ ULONG cj);
W32KAPI
INT
APIENTRY
NtGdiGetTextFaceW(
_In_ HDC hdc,
_In_ INT cChar,
OUT OPTIONAL LPWSTR pszOut,
_In_ BOOL bAliasName
);
W32KAPI
INT
APIENTRY
NtGdiGetRandomRgn(
_In_ HDC hdc,
_In_ HRGN hrgn,
_In_ INT iRgn);
W32KAPI
BOOL
APIENTRY
NtGdiExtTextOutW(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_In_ UINT flOpts,
IN OPTIONAL LPRECT prcl,
_In_z_count_(cwc) LPWSTR pwsz,
_In_ INT cwc,
IN OPTIONAL LPINT pdx,
_In_ DWORD dwCodePage
);
W32KAPI
INT
APIENTRY
NtGdiIntersectClipRect(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
HRGN
APIENTRY
NtGdiCreateRectRgn(
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
BOOL
APIENTRY
NtGdiPatBlt(
_In_ HDC hdcDest,
_In_ INT x,
_In_ INT y,
_In_ INT cx,
_In_ INT cy,
_In_ DWORD dwRop);
W32KAPI
BOOL
APIENTRY
NtGdiPolyPatBlt(
_In_ HDC hdc,
_In_ DWORD rop4,
_In_ PPOLYPATBLT pPoly,
_In_ DWORD Count,
_In_ DWORD Mode);
W32KAPI
BOOL
APIENTRY
NtGdiUnrealizeObject(
_In_ HANDLE h);
W32KAPI
HANDLE
APIENTRY
NtGdiGetStockObject(
_In_ INT iObject);
W32KAPI
HBITMAP
APIENTRY
NtGdiCreateCompatibleBitmap(
_In_ HDC hdc,
_In_ INT cx,
_In_ INT cy);
W32KAPI
BOOL
APIENTRY
NtGdiLineTo(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiMoveTo(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_Out_opt_ LPPOINT pptOut);
_Success_(return != 0)
W32KAPI
INT
APIENTRY
NtGdiExtGetObjectW(
_In_ HANDLE h,
_In_ INT cj,
_Out_opt_bytecap_(cj) LPVOID pvOut);
W32KAPI
INT
APIENTRY
NtGdiGetDeviceCaps(
_In_ HDC hdc,
_In_ INT i);
_Success_(return!=FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiGetDeviceCapsAll (
_In_ HDC hdc,
_Out_ PDEVCAPS pDevCaps);
W32KAPI
BOOL
APIENTRY
NtGdiStretchBlt(
_In_ HDC hdcDst,
_In_ INT xDst,
_In_ INT yDst,
_In_ INT cxDst,
_In_ INT cyDst,
_In_ HDC hdcSrc,
_In_ INT xSrc,
_In_ INT ySrc,
_In_ INT cxSrc,
_In_ INT cySrc,
_In_ DWORD dwRop,
_In_ DWORD dwBackColor);
_Success_(return != FALSE)
W32KAPI
BOOL
APIENTRY
NtGdiSetBrushOrg(
_In_ HDC hdc,
_In_ INT x,
_In_ INT y,
_Out_opt_ LPPOINT pptOut);
W32KAPI
HBITMAP
APIENTRY
NtGdiCreateBitmap(
_In_ INT cx,
_In_ INT cy,
_In_ UINT cPlanes,
_In_ UINT cBPP,
_In_opt_ LPBYTE pjInit);
W32KAPI
HPALETTE
APIENTRY
NtGdiCreateHalftonePalette(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiRestoreDC(
_In_ HDC hdc,
_In_ INT iLevel);
W32KAPI
INT
APIENTRY
NtGdiExcludeClipRect(
_In_ HDC hdc,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
INT
APIENTRY
NtGdiSaveDC(
_In_ HDC hdc);
W32KAPI
INT
APIENTRY
NtGdiCombineRgn(
_In_ HRGN hrgnDst,
_In_ HRGN hrgnSrc1,
_In_opt_ HRGN hrgnSrc2,
_In_ INT iMode);
W32KAPI
BOOL
APIENTRY
NtGdiSetRectRgn(
_In_ HRGN hrgn,
_In_ INT xLeft,
_In_ INT yTop,
_In_ INT xRight,
_In_ INT yBottom);
W32KAPI
LONG
APIENTRY
NtGdiSetBitmapBits(
_In_ HBITMAP hbm,
_In_ ULONG cj,
_In_bytecount_(cj) PBYTE pjInit);
W32KAPI
INT
APIENTRY
NtGdiGetDIBitsInternal(
_In_ HDC hdc,
_In_ HBITMAP hbm,
_In_ UINT iStartScan,
_In_ UINT cScans,
_Out_opt_ LPBYTE pBits,
_Inout_ LPBITMAPINFO pbmi,
_In_ UINT iUsage,
_In_ UINT cjMaxBits,
_In_ UINT cjMaxInfo);
W32KAPI
INT
APIENTRY
NtGdiOffsetRgn(
_In_ HRGN hrgn,
_In_ INT cx,
_In_ INT cy);
_Success_(return!=ERROR)
W32KAPI
INT
APIENTRY
NtGdiGetRgnBox(
_In_ HRGN hrgn,
_Out_ LPRECT prcOut);
W32KAPI
BOOL
APIENTRY
NtGdiRectInRegion(
_In_ HRGN hrgn,
IN OUT LPRECT prcl
);
_Success_(return!=0)
W32KAPI
DWORD
APIENTRY
NtGdiGetBoundsRect(
_In_ HDC hdc,
_Out_ LPRECT prc,
_In_ DWORD f);
W32KAPI
BOOL
APIENTRY
NtGdiPtInRegion(
_In_ HRGN hrgn,
_In_ INT x,
_In_ INT y);
W32KAPI
COLORREF
APIENTRY
NtGdiGetNearestColor(
_In_ HDC hdc,
_In_ COLORREF cr);
W32KAPI
UINT
APIENTRY
NtGdiGetSystemPaletteUse(
_In_ HDC hdc);
W32KAPI
UINT
APIENTRY
NtGdiSetSystemPaletteUse(
_In_ HDC hdc,
_In_ UINT ui);
_Success_(return!=0)
W32KAPI
ULONG
APIENTRY
NtGdiGetRegionData(
_In_ HRGN hrgn,
_In_ ULONG cjBuffer,
_Out_opt_bytecap_(cjBuffer) LPRGNDATA lpRgnData);
W32KAPI
BOOL
APIENTRY
NtGdiInvertRgn(
_In_ HDC hdc,
_In_ HRGN hrgn);
INT
W32KAPI
APIENTRY
NtGdiAddFontResourceW(
_In_z_count_(cwc) WCHAR *pwszFiles,
_In_ ULONG cwc,
_In_ ULONG cFiles,
_In_ FLONG f,
_In_ DWORD dwPidTid,
_In_opt_ DESIGNVECTOR *pdv);
#if (_WIN32_WINNT >= 0x0500)
W32KAPI
HFONT
APIENTRY
NtGdiHfontCreate(
_In_bytecount_(cjElfw) ENUMLOGFONTEXDVW *pelfw,
_In_ ULONG cjElfw,
_In_ LFTYPE lft,
_In_ FLONG fl,
_In_ PVOID pvCliData);
#else
W32KAPI
HFONT
APIENTRY
NtGdiHfontCreate(
_In_bytecount_(cjElfw) LPEXTLOGFONTW pelfw,
_In_ ULONG cjElfw,
_In_ LFTYPE lft,
_In_ FLONG fl,
_In_ PVOID pvCliData
);
#endif
W32KAPI
ULONG
APIENTRY
NtGdiSetFontEnumeration(
_In_ ULONG ulType);
W32KAPI
BOOL
APIENTRY
NtGdiEnumFontClose(
_In_ ULONG_PTR idEnum);
#if (_WIN32_WINNT >= 0x0500)
W32KAPI
BOOL
APIENTRY
NtGdiEnumFontChunk(
_In_ HDC hdc,
_In_ ULONG_PTR idEnum,
_In_ ULONG cjEfdw,
OUT ULONG *pcjEfdw,
OUT PENUMFONTDATAW pefdw
);
#endif
W32KAPI
ULONG_PTR
APIENTRY
NtGdiEnumFontOpen(
_In_ HDC hdc,
_In_ ULONG iEnumType,
_In_ FLONG flWin31Compat,
_In_ ULONG cwchMax,
IN OPTIONAL LPWSTR pwszFaceName,
_In_ ULONG lfCharSet,
OUT ULONG *pulCount
);
W32KAPI
INT
APIENTRY
NtGdiQueryFonts(
OUT PUNIVERSAL_FONT_ID pufiFontList,
_In_ ULONG nBufferSize,
OUT PLARGE_INTEGER pTimeStamp
);
W32KAPI
BOOL
APIENTRY
NtGdiConsoleTextOut(
_In_ HDC hdc,
_In_ POLYTEXTW *lpto,
_In_ UINT nStrings,
_In_ RECTL *prclBounds);
W32KAPI
NTSTATUS
APIENTRY
NtGdiFullscreenControl(
IN FULLSCREENCONTROL FullscreenCommand,
IN PVOID FullscreenInput,
_In_ DWORD FullscreenInputLength,
OUT PVOID FullscreenOutput,
IN OUT PULONG FullscreenOutputLength
);
W32KAPI
DWORD
APIENTRY
NtGdiGetCharSet(
_In_ HDC hdc);
W32KAPI
BOOL
APIENTRY
NtGdiEnableEudc(
_In_ BOOL b);
W32KAPI
BOOL
APIENTRY
NtGdiEudcLoadUnloadLink(
IN OPTIONAL LPCWSTR pBaseFaceName,
_In_ UINT cwcBaseFaceName,
IN LPCWSTR pEudcFontPath,
_In_ UINT cwcEudcFontPath,
_In_ INT iPriority,
_In_ INT iFontLinkType,
_In_ BOOL bLoadLin
);
W32KAPI
UINT
APIENTRY
NtGdiGetStringBitmapW(
_In_ HDC hdc,
IN LPWSTR pwsz,
_In_ UINT cwc,
OUT BYTE *lpSB,
_In_ UINT cj
);
W32KAPI
ULONG
APIENTRY
NtGdiGetEudcTimeStampEx(
_In_opt_z_count_(cwcBaseFaceName) LPWSTR lpBaseFaceName,
_In_ ULONG cwcBaseFaceName,
_In_ BOOL bSystemTimeStamp);
W32KAPI
ULONG
APIENTRY
NtGdiQueryFontAssocInfo(
_In_ HDC hdc);
#if (_WIN32_WINNT >= 0x0500)
W32KAPI
DWORD
APIENTRY
NtGdiGetFontUnicodeRanges(
_In_ HDC hdc,
_Out_opt_ LPGLYPHSET pgs);
#endif
#ifdef LANGPACK
W32KAPI
BOOL
APIENTRY
NtGdiGetRealizationInfo(
_In_ HDC hdc,
_Out_ PREALIZATION_INFO pri,
_In_ HFONT hf);
#endif
W32KAPI
BOOL
APIENTRY
NtGdiAddRemoteMMInstanceToDC(
_In_ HDC hdc,
_In_ DOWNLOADDESIGNVECTOR *pddv,
_In_ ULONG cjDDV);
W32KAPI
BOOL
APIENTRY
NtGdiUnloadPrinterDriver(
_In_z_bytecount_(cbDriverName) LPWSTR pDriverName,
_In_ ULONG cbDriverName);
W32KAPI
BOOL
APIENTRY
NtGdiEngAssociateSurface(
_In_ HSURF hsurf,
_In_ HDEV hdev,
_In_ FLONG flHooks);
W32KAPI
BOOL
APIENTRY
NtGdiEngEraseSurface(
_In_ SURFOBJ *pso,
_In_ RECTL *prcl,
_In_ ULONG iColor);
W32KAPI
HBITMAP
APIENTRY
NtGdiEngCreateBitmap(
_In_ SIZEL sizl,
_In_ LONG lWidth,
_In_ ULONG iFormat,
_In_ FLONG fl,
_In_opt_ PVOID pvBits);
W32KAPI
BOOL
APIENTRY
NtGdiEngDeleteSurface(
_In_ HSURF hsurf);
W32KAPI
SURFOBJ*
APIENTRY
NtGdiEngLockSurface(
_In_ HSURF hsurf);
W32KAPI
VOID
APIENTRY
NtGdiEngUnlockSurface(
_In_ SURFOBJ *pso);
W32KAPI
BOOL
APIENTRY
NtGdiEngMarkBandingSurface(
_In_ HSURF hsurf);
W32KAPI
HSURF
APIENTRY
NtGdiEngCreateDeviceSurface(
_In_ DHSURF dhsurf,
_In_ SIZEL sizl,
_In_ ULONG iFormatCompat);
W32KAPI
HBITMAP
APIENTRY
NtGdiEngCreateDeviceBitmap(
_In_ DHSURF dhsurf,
_In_ SIZEL sizl,
_In_ ULONG iFormatCompat);
W32KAPI
BOOL
APIENTRY
NtGdiEngCopyBits(
_In_ SURFOBJ *psoDst,
_In_ SURFOBJ *psoSrc,
_In_opt_ CLIPOBJ *pco,
_In_opt_ XLATEOBJ *pxlo,
_In_ RECTL *prclDst,
_In_ POINTL *pptlSrc);
W32KAPI
BOOL
APIENTRY
NtGdiEngStretchBlt(
_In_ SURFOBJ *psoDest,
_In_ SURFOBJ *psoSrc,
_In_opt_ SURFOBJ *psoMask,
_In_opt_ CLIPOBJ *pco,
_In_opt_ XLATEOBJ *pxlo,
_In_opt_ COLORADJUSTMENT *pca,
_In_ POINTL *pptlHTOrg,
_In_ RECTL *prclDest,
_In_ RECTL *prclSrc,
_When_(psoMask, _In_) POINTL *pptlMask,
_In_ ULONG iMode);
W32KAPI
BOOL
APIENTRY
NtGdiEngBitBlt(
_In_ SURFOBJ *psoTrg,
_In_opt_ SURFOBJ *psoSrc,
_In_opt_ SURFOBJ *psoMask,
_In_opt_ CLIPOBJ *pco,
_In_opt_ XLATEOBJ *pxlo,
_In_ RECTL *prclTrg,
_When_(psoSrc, _In_) POINTL *pptlSrc,
_When_(psoMask, _In_) POINTL *pptlMask,
_In_opt_ BRUSHOBJ *pbo,
_When_(pbo, _In_) POINTL *pptlBrush,
_In_ ROP4 rop4);
W32KAPI
BOOL
APIENTRY
NtGdiEngPlgBlt(
_In_ SURFOBJ *psoTrg,
_In_ SURFOBJ *psoSrc,
_In_opt_ SURFOBJ *psoMsk,
_In_ CLIPOBJ *pco,
_In_opt_ XLATEOBJ *pxlo,
_In_ COLORADJUSTMENT *pca,
_In_ POINTL *pptlBrushOrg,
_In_ POINTFIX *pptfx,
_In_ RECTL *prcl,
_When_(psoMsk, _In_) POINTL *pptl,
_In_ ULONG iMode);
W32KAPI
HPALETTE
APIENTRY
NtGdiEngCreatePalette(
_In_ ULONG iMode,
_In_ ULONG cColors,
_In_ ULONG *pulColors,
_In_ FLONG flRed,
_In_ FLONG flGreen,
_In_ FLONG flBlue);
W32KAPI
BOOL
APIENTRY
NtGdiEngDeletePalette(
_In_ HPALETTE hPal);
W32KAPI
BOOL
APIENTRY
NtGdiEngStrokePath(
IN SURFOBJ *pso,
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN XFORMOBJ *pxo,
IN BRUSHOBJ *pbo,
IN POINTL *pptlBrushOrg,
IN LINEATTRS *plineattrs,
IN MIX mix
);
W32KAPI
BOOL
APIENTRY
NtGdiEngFillPath(
IN SURFOBJ *pso,
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN BRUSHOBJ *pbo,
IN POINTL *pptlBrushOrg,
IN MIX mix,
IN FLONG flOptions
);
W32KAPI
BOOL
APIENTRY
NtGdiEngStrokeAndFillPath(
IN SURFOBJ *pso,
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,IN XFORMOBJ *pxo,
IN BRUSHOBJ *pboStroke,
IN LINEATTRS *plineattrs,
IN BRUSHOBJ *pboFill,
IN POINTL *pptlBrushOrg,
IN MIX mix,
IN FLONG flOptions
);
W32KAPI
BOOL
APIENTRY
NtGdiEngPaint(
IN SURFOBJ *pso,
IN CLIPOBJ *pco,
IN BRUSHOBJ *pbo,
IN POINTL *pptlBrushOrg,
IN MIX mix
);
W32KAPI
BOOL
APIENTRY
NtGdiEngLineTo(
IN SURFOBJ *pso,
IN CLIPOBJ *pco,
IN BRUSHOBJ *pbo,
_In_ LONG x1,
_In_ LONG y1,
_In_ LONG x2,
_In_ LONG y2,
IN RECTL *prclBounds,
IN MIX mix
);
W32KAPI
BOOL
APIENTRY
NtGdiEngAlphaBlend(
IN SURFOBJ *psoDest,
IN SURFOBJ *psoSrc,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN RECTL *prclDest,
IN RECTL *prclSrc,
IN BLENDOBJ *pBlendObj
);
W32KAPI
BOOL
APIENTRY
NtGdiEngGradientFill(
IN SURFOBJ *psoDest,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN TRIVERTEX *pVertex,
_In_ ULONG nVertex,
IN PVOID pMesh,
_In_ ULONG nMesh,
IN RECTL *prclExtents,
IN POINTL *pptlDitherOrg,
_In_ ULONG ulMode
);
W32KAPI
BOOL
APIENTRY
NtGdiEngTransparentBlt(
IN SURFOBJ *psoDst,
IN SURFOBJ *psoSrc,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN RECTL *prclDst,
IN RECTL *prclSrc,
_In_ ULONG iTransColor,
_In_ ULONG ulReserved
);
W32KAPI
BOOL
APIENTRY
NtGdiEngTextOut(
IN SURFOBJ *pso,
IN STROBJ *pstro,
IN FONTOBJ *pfo,
IN CLIPOBJ *pco,
IN RECTL *prclExtra,
IN RECTL *prclOpaque,
IN BRUSHOBJ *pboFore,
IN BRUSHOBJ *pboOpaque,
IN POINTL *pptlOrg,
IN MIX mix
);
W32KAPI
BOOL
APIENTRY
NtGdiEngStretchBltROP(
IN SURFOBJ *psoTrg,
IN SURFOBJ *psoSrc,
IN SURFOBJ *psoMask,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN COLORADJUSTMENT *pca,
IN POINTL *pptlBrushOrg,
IN RECTL *prclTrg,
IN RECTL *prclSrc,
IN POINTL *pptlMask,
_In_ ULONG iMode,
IN BRUSHOBJ *pbo,
IN ROP4 rop4
);
W32KAPI
ULONG
APIENTRY
NtGdiXLATEOBJ_cGetPalette(
IN XLATEOBJ *pxlo,
_In_ ULONG iPal,
_In_ ULONG cPal,
OUT ULONG *pPal
);
W32KAPI
ULONG
APIENTRY
NtGdiCLIPOBJ_cEnumStart(
IN CLIPOBJ *pco,
_In_ BOOL bAll,
_In_ ULONG iType,
_In_ ULONG iDirection,
_In_ ULONG cLimit
);
W32KAPI
BOOL
APIENTRY
NtGdiCLIPOBJ_bEnum(
IN CLIPOBJ *pco,
_In_ ULONG cj,
OUT ULONG *pul
);
W32KAPI
PATHOBJ*
APIENTRY
NtGdiCLIPOBJ_ppoGetPath(
IN CLIPOBJ *pco
);
W32KAPI
CLIPOBJ*
APIENTRY
NtGdiEngCreateClip(VOID);
W32KAPI
VOID
APIENTRY
NtGdiEngDeleteClip(
IN CLIPOBJ*pco
);
W32KAPI
PVOID
APIENTRY
NtGdiBRUSHOBJ_pvAllocRbrush(
IN BRUSHOBJ *pbo,
_In_ ULONG cj
);
W32KAPI
PVOID
APIENTRY
NtGdiBRUSHOBJ_pvGetRbrush(
IN BRUSHOBJ *pbo
);
W32KAPI
ULONG
APIENTRY
NtGdiBRUSHOBJ_ulGetBrushColor(
IN BRUSHOBJ *pbo
);
W32KAPI
HANDLE
APIENTRY
NtGdiBRUSHOBJ_hGetColorTransform(
IN BRUSHOBJ *pbo
);
W32KAPI
BOOL
APIENTRY
NtGdiXFORMOBJ_bApplyXform(
IN XFORMOBJ *pxo,
_In_ ULONG iMode,
_In_ ULONG cPoints,
IN PVOID pvIn,
OUT PVOID pvOut
);
W32KAPI
ULONG
APIENTRY
NtGdiXFORMOBJ_iGetXform(
IN XFORMOBJ *pxo,
OUT OPTIONAL XFORML *pxform
);
W32KAPI
VOID
APIENTRY
NtGdiFONTOBJ_vGetInfo(
IN FONTOBJ *pfo,
_In_ ULONG cjSize,
OUT FONTINFO *pfi
);
W32KAPI
ULONG
APIENTRY
NtGdiFONTOBJ_cGetGlyphs(
IN FONTOBJ *pfo,
_In_ ULONG iMode,
_In_ ULONG cGlyph,
IN HGLYPH *phg,
OUT PVOID *ppvGlyph
);
W32KAPI
XFORMOBJ*
APIENTRY
NtGdiFONTOBJ_pxoGetXform(
IN FONTOBJ *pfo
);
W32KAPI
IFIMETRICS*
APIENTRY
NtGdiFONTOBJ_pifi(
IN FONTOBJ *pfo
);
W32KAPI
FD_GLYPHSET*
APIENTRY
NtGdiFONTOBJ_pfdg(
IN FONTOBJ *pfo
);
W32KAPI
ULONG
APIENTRY
NtGdiFONTOBJ_cGetAllGlyphHandles(
IN FONTOBJ *pfo,
OUT OPTIONAL HGLYPH *phg
);
W32KAPI
PVOID
APIENTRY
NtGdiFONTOBJ_pvTrueTypeFontFile(
IN FONTOBJ *pfo,
OUT ULONG *pcjFile
);
W32KAPI
PFD_GLYPHATTR
APIENTRY
NtGdiFONTOBJ_pQueryGlyphAttrs(
IN FONTOBJ *pfo,
_In_ ULONG iMode
);
W32KAPI
BOOL
APIENTRY
NtGdiSTROBJ_bEnum(
IN STROBJ *pstro,
OUT ULONG *pc,
OUT PGLYPHPOS *ppgpos
);
W32KAPI
BOOL
APIENTRY
NtGdiSTROBJ_bEnumPositionsOnly(
IN STROBJ *pstro,
OUT ULONG *pc,
OUT PGLYPHPOS *ppgpos
);
W32KAPI
VOID
APIENTRY
NtGdiSTROBJ_vEnumStart(
_Inout_ STROBJ *pstro);
W32KAPI
DWORD
APIENTRY
NtGdiSTROBJ_dwGetCodePage(
IN STROBJ *pstro
);
W32KAPI
BOOL
APIENTRY
NtGdiSTROBJ_bGetAdvanceWidths(
IN STROBJ*pstro,
_In_ ULONG iFirst,
_In_ ULONG c,
OUT POINTQF*pptqD
);
W32KAPI
FD_GLYPHSET*
APIENTRY
NtGdiEngComputeGlyphSet(
_In_ INT nCodePage,
_In_ INT nFirstChar,
_In_ INT cChars
);
W32KAPI
ULONG
APIENTRY
NtGdiXLATEOBJ_iXlate(
IN XLATEOBJ *pxlo,
_In_ ULONG iColor
);
W32KAPI
HANDLE
APIENTRY
NtGdiXLATEOBJ_hGetColorTransform(
IN XLATEOBJ *pxlo
);
W32KAPI
VOID
APIENTRY
NtGdiPATHOBJ_vGetBounds(
IN PATHOBJ *ppo,
OUT PRECTFX prectfx
);
W32KAPI
BOOL
APIENTRY
NtGdiPATHOBJ_bEnum(
IN PATHOBJ *ppo,
OUT PATHDATA *ppd
);
W32KAPI
VOID
APIENTRY
NtGdiPATHOBJ_vEnumStart(
IN PATHOBJ *ppo
);
W32KAPI
VOID
APIENTRY
NtGdiEngDeletePath(
IN PATHOBJ *ppo
);
W32KAPI
VOID
APIENTRY
NtGdiPATHOBJ_vEnumStartClipLines(
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN SURFOBJ *pso,
IN LINEATTRS *pla
);
W32KAPI
BOOL
APIENTRY
NtGdiPATHOBJ_bEnumClipLines(
IN PATHOBJ *ppo,
_In_ ULONG cb,
OUT CLIPLINE *pcl
);
W32KAPI
BOOL
APIENTRY
NtGdiEngCheckAbort(
IN SURFOBJ *pso
);
W32KAPI
DHPDEV
APIENTRY
NtGdiGetDhpdev(
IN HDEV hdev
);
W32KAPI
LONG
APIENTRY
NtGdiHT_Get8BPPFormatPalette(
OUT OPTIONAL LPPALETTEENTRY pPaletteEntry,
IN USHORT RedGamma,
IN USHORT GreenGamma,
IN USHORT BlueGamma
);
W32KAPI
LONG
APIENTRY
NtGdiHT_Get8BPPMaskPalette(
OUT OPTIONAL LPPALETTEENTRY pPaletteEntry,
_In_ BOOL Use8BPPMaskPal,
IN BYTE CMYMask,
IN USHORT RedGamma,
IN USHORT GreenGamma,
IN USHORT BlueGamma
);
W32KAPI
BOOL
APIENTRY
NtGdiUpdateTransform(
_In_ HDC hdc
);
W32KAPI
DWORD
APIENTRY
NtGdiSetLayout(
_In_ HDC hdc,
_In_ LONG wox,
_In_ DWORD dwLayout
);
W32KAPI
BOOL
APIENTRY
NtGdiMirrorWindowOrg(
_In_ HDC hdc
);
W32KAPI
LONG
APIENTRY
NtGdiGetDeviceWidth(
_In_ HDC hdc
);
W32KAPI
BOOL
APIENTRY
NtGdiSetPUMPDOBJ(
IN HUMPD humpd,
_In_ BOOL bStoreID,
OUT HUMPD *phumpd,
OUT BOOL *pbWOW64
);
W32KAPI
BOOL
APIENTRY
NtGdiBRUSHOBJ_DeleteRbrush(
IN BRUSHOBJ *pbo,
IN BRUSHOBJ *pboB
);
W32KAPI
BOOL
APIENTRY
NtGdiUMPDEngFreeUserMem(
IN KERNEL_PVOID *ppv
);
W32KAPI
HBITMAP
APIENTRY
NtGdiSetBitmapAttributes(
IN HBITMAP hbm,
_In_ DWORD dwFlags
);
W32KAPI
HBITMAP
APIENTRY
NtGdiClearBitmapAttributes(
IN HBITMAP hbm,
_In_ DWORD dwFlags
);
W32KAPI
HBRUSH
APIENTRY
NtGdiSetBrushAttributes(
_In_ HBRUSH hbm,
_In_ DWORD dwFlags
);
W32KAPI
HBRUSH
APIENTRY
NtGdiClearBrushAttributes(
_In_ HBRUSH hbm,
_In_ DWORD dwFlags
);
W32KAPI
BOOL
APIENTRY
NtGdiDrawStream(
_In_ HDC hdcDst,
_In_ ULONG cjIn,
IN VOID *pvIn
);
W32KAPI
BOOL
APIENTRY
NtGdiMakeObjectXferable(
_In_ HANDLE h,
_In_ DWORD dwProcessId
);
W32KAPI
BOOL
APIENTRY
NtGdiMakeObjectUnXferable(
_In_ HANDLE h
);
W32KAPI
BOOL
APIENTRY
NtGdiInitSpool(VOID);
/* FIXME wrong prototypes fix the build */
W32KAPI
INT
APIENTRY
NtGdiGetSpoolMessage( DWORD u1,
DWORD u2,
DWORD u3,
DWORD u4);
#endif