- Added ntgdityps.h for structures needed to use the header (which were sadly not publically shipped).
- Removed internal win32k header data from public headers and put it to internal win32k headers.
- Fixed ntuser.h STDCALL->WINAPI.
- Added ntgdihdl.h for shared GDI Handle information between gdi32/win32k
- Added ntusrtyp.h for some shared NtUser types.
- Added ntgdibad.h which contains all non-compatible NtGdi prototypes, along with a detailed comment for each, and information on how to fix it. I had a 20 000+ line patch fixing all these issues, but it contained many bugs and I scrapped it in place for this approach, which while dirtier at first, simplifies the number of changes needed so that others can work on it as well.
- Fixed some gdi32/win32k/user32 header issues.
svn path=/trunk/; revision=20367
+++ /dev/null
-#ifndef __WIN32K_BITMAPS_H
-#define __WIN32K_BITMAPS_H
-
-/* GDI logical bitmap object */
-typedef struct _BITMAPOBJ
-{
- SURFOBJ SurfObj;
- FLONG flHooks;
- FLONG flFlags;
- SIZE dimension; /* For SetBitmapDimension(), do NOT use
- to get width/height of bitmap, use
- bitmap.bmWidth/bitmap.bmHeight for
- that */
-#ifdef NTOS_MODE_USER
- PVOID BitsLock;
-#else
- PFAST_MUTEX BitsLock; /* You need to hold this lock before you touch
- the actual bits in the bitmap */
-#endif
-
- /* For device-independent bitmaps: */
- DIBSECTION *dib;
- HPALETTE hDIBPalette;
-} BITMAPOBJ, *PBITMAPOBJ;
-
-#define BITMAPOBJ_IS_APIBITMAP 0x1
-
-/* Internal interface */
-
-#define BITMAPOBJ_AllocBitmap() \
- ((HBITMAP) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BITMAP))
-#define BITMAPOBJ_FreeBitmap(hBMObj) \
- GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)
-/* NOTE: Use shared locks! */
-#define BITMAPOBJ_LockBitmap(hBMObj) (PBITMAPOBJ)EngLockSurface((HSURF)hBMObj)
-#define BITMAPOBJ_UnlockBitmap(pBMObj) EngUnlockSurface(&pBMObj->SurfObj)
-BOOL INTERNAL_CALL BITMAP_Cleanup(PVOID ObjectBody);
-
-BOOL INTERNAL_CALL BITMAPOBJ_InitBitsLock(BITMAPOBJ *pBMObj);
-#define BITMAPOBJ_LockBitmapBits(pBMObj) ExEnterCriticalRegionAndAcquireFastMutexUnsafe((pBMObj)->BitsLock)
-#define BITMAPOBJ_UnlockBitmapBits(pBMObj) ExReleaseFastMutexUnsafeAndLeaveCriticalRegion((pBMObj)->BitsLock)
-void INTERNAL_CALL BITMAPOBJ_CleanupBitsLock(BITMAPOBJ *pBMObj);
-
-INT FASTCALL BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);
-HBITMAP FASTCALL BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);
-INT FASTCALL DIB_GetDIBWidthBytes (INT width, INT depth);
-int STDCALL DIB_GetDIBImageBytes (INT width, INT height, INT depth);
-INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);
-INT STDCALL BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer);
-HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj, HDEV GDIDevice);
-
-HBITMAP FASTCALL IntCreateCompatibleBitmap(PDC Dc, INT Width, INT Height);
-
-/* User Entry Points */
-BOOL
-STDCALL
-NtGdiAlphaBlend(
- HDC hDCDest,
- INT XOriginDest,
- INT YOriginDest,
- INT WidthDest,
- INT HeightDest,
- HDC hDCSrc,
- INT XOriginSrc,
- INT YOriginSrc,
- INT WidthSrc,
- INT HeightSrc,
- BLENDFUNCTION BlendFunc);
-
-BOOL
-STDCALL
-NtGdiBitBlt (
- HDC hDCDest,
- INT XDest,
- INT YDest,
- INT Width,
- INT Height,
- HDC hDCSrc,
- INT XSrc,
- INT YSrc,
- DWORD ROP
- );
-HBITMAP
-STDCALL
-NtGdiCreateBitmap (
- INT Width,
- INT Height,
- UINT Planes,
- UINT BitsPerPel,
- CONST VOID * Bits
- );
-HBITMAP
-STDCALL
-NtGdiCreateCompatibleBitmap (
- HDC hDC,
- INT Width,
- INT Height
- );
-HBITMAP
-STDCALL
-NtGdiCreateBitmapIndirect (
- CONST BITMAP * BM
- );
-HBITMAP
-STDCALL
-NtGdiCreateDIBitmap (
- HDC hDC,
- CONST BITMAPINFOHEADER * bmih,
- DWORD Init,
- CONST VOID * bInit,
- CONST BITMAPINFO * bmi,
- UINT Usage
- );
-HBITMAP
-STDCALL
-NtGdiCreateDIBSection (
- HDC hDC,
- CONST BITMAPINFO * bmi,
- UINT Usage,
- VOID * Bits,
- HANDLE hSection,
- DWORD dwOffset
- );
-HBITMAP
-STDCALL
-NtGdiCreateDiscardableBitmap (
- HDC hDC,
- INT Width,
- INT Height
- );
-BOOL
-STDCALL
-NtGdiExtFloodFill (
- HDC hDC,
- INT XStart,
- INT YStart,
- COLORREF Color,
- UINT FillType
- );
-BOOL
-STDCALL
-NtGdiFloodFill (
- HDC hDC,
- INT XStart,
- INT YStart,
- COLORREF Fill
- );
-LONG
-STDCALL
-NtGdiGetBitmapBits (
- HBITMAP hBitmap,
- LONG Buffer,
- LPVOID Bits
- );
-BOOL
-STDCALL
-NtGdiGetBitmapDimensionEx (
- HBITMAP hBitmap,
- LPSIZE Dimension
- );
-UINT
-STDCALL
-NtGdiGetDIBColorTable (
- HDC hDC,
- UINT StartIndex,
- UINT Entries,
- RGBQUAD * Colors
- );
-INT
-STDCALL
-NtGdiGetDIBits (
- HDC hDC,
- HBITMAP hBitmap,
- UINT StartScan,
- UINT ScanLines,
- LPVOID Bits,
- LPBITMAPINFO bi,
- UINT Usage
- );
-COLORREF
-STDCALL
-NtGdiGetPixel (
- HDC hDC,
- INT XPos,
- INT YPos
- );
-BOOL
-STDCALL
-NtGdiGradientFill (
- HDC hdc,
- PTRIVERTEX pVertex,
- ULONG uVertex,
- PVOID pMesh,
- ULONG uMesh,
- ULONG ulMode
- );
-BOOL
-STDCALL
-NtGdiMaskBlt (
- HDC hDCDest,
- INT XDest,
- INT YDest,
- INT Width,
- INT Height,
- HDC hDCSrc,
- INT XSrc,
- INT YSrc,
- HBITMAP hMaskBitmap,
- INT xMask,
- INT yMask,
- DWORD ROP
- );
-BOOL
-STDCALL
-NtGdiPlgBlt (
- HDC hDCDest,
- CONST POINT * Point,
- HDC hDCSrc,
- INT XSrc,
- INT YSrc,
- INT Width,
- INT Height,
- HBITMAP hMaskBitmap,
- INT xMask,
- INT yMask
- );
-LONG
-STDCALL
-NtGdiSetBitmapBits (
- HBITMAP hBitmap,
- DWORD Bytes,
- CONST VOID * Bits
- );
-BOOL
-STDCALL
-NtGdiSetBitmapDimensionEx (
- HBITMAP hBitmap,
- INT Width,
- INT Height,
- LPSIZE Size
- );
-UINT
-STDCALL
-NtGdiSetDIBColorTable (
- HDC hDC,
- UINT StartIndex,
- UINT Entries,
- CONST RGBQUAD * Colors
- );
-INT
-STDCALL
-NtGdiSetDIBits (
- HDC hDC,
- HBITMAP hBitmap,
- UINT StartScan,
- UINT ScanLines,
- CONST VOID * Bits,
- CONST BITMAPINFO * bmi,
- UINT ColorUse
- );
-INT
-STDCALL
-NtGdiSetDIBitsToDevice (
- HDC hDC,
- INT XDest,
- INT YDest,
- DWORD Width,
- DWORD Height,
- INT XSrc,
- INT YSrc,
- UINT StartScan,
- UINT ScanLines,
- CONST VOID * Bits,
- CONST BITMAPINFO * bmi,
- UINT ColorUse
- );
-COLORREF
-STDCALL
-NtGdiSetPixel (
- HDC hDC,
- INT X,
- INT Y,
- COLORREF Color
- );
-BOOL
-STDCALL
-NtGdiSetPixelV (
- HDC hDC,
- INT X,
- INT Y,
- COLORREF Color
- );
-BOOL
-STDCALL
-NtGdiStretchBlt (
- HDC hDCDest,
- INT XOriginDest,
- INT YOriginDest,
- INT WidthDest,
- INT HeightDest,
- HDC hDCSrc,
- INT XOriginSrc,
- INT YOriginSrc,
- INT WidthSrc,
- INT HeightSrc,
- DWORD ROP
- );
-INT
-STDCALL
-NtGdiStretchDIBits (
- HDC hDC,
- INT XDest,
- INT YDest,
- INT DestWidth,
- INT DestHeight,
- INT XSrc,
- INT YSrc,
- INT SrcWidth,
- INT SrcHeight,
- CONST VOID * Bits,
- CONST BITMAPINFO * BitsInfo,
- UINT Usage,
- DWORD ROP
- );
-
-BOOL
-STDCALL
-NtGdiTransparentBlt(
- HDC hdcDst,
- INT xDst,
- INT yDst,
- INT cxDst,
- INT cyDst,
- HDC hdcSrc,
- INT xSrc,
- INT ySrc,
- INT cxSrc,
- INT cySrc,
- COLORREF TransColor
- );
-
-#endif
-
+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: include/win32k/caret.h
- * PURPOSE: GDI32/Win32k Caret interface
- * PROGRAMMER:
- *
- */
-
-#ifndef WIN32K_CARET_H_INCLUDED
-#define WIN32K_CARET_H_INCLUDED
-
-typedef struct _THRDCARETINFO
-{
- HWND hWnd;
- HBITMAP Bitmap;
- POINT Pos;
- SIZE Size;
- BYTE Visible;
- BYTE Showing;
-} THRDCARETINFO, *PTHRDCARETINFO;
-
-#endif /* WIN32K_FONT_H_INCLUDED */
+++ /dev/null
-#ifndef _WIN32K_CLIPRGN_H
-#define _WIN32K_CLIPRGN_H
-
-HRGN WINAPI SaveVisRgn(HDC hdc);
-INT WINAPI SelectVisRgn(HDC hdc, HRGN hrgn);
-
-int
-STDCALL
-NtGdiExcludeClipRect (
- HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect
- );
-int
-STDCALL
-NtGdiExtSelectClipRgn (
- HDC hDC,
- HRGN hrgn,
- int fnMode
- );
-int
-STDCALL
-NtGdiGetClipBox (
- HDC hDC,
- LPRECT rc
- );
-int
-STDCALL
-NtGdiGetMetaRgn (
- HDC hDC,
- HRGN hrgn
- );
-int
-STDCALL
-NtGdiIntersectClipRect (
- HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect
- );
-int
-STDCALL
-NtGdiOffsetClipRgn (
- HDC hDC,
- int XOffset,
- int YOffset
- );
-BOOL
-STDCALL
-NtGdiPtVisible (
- HDC hDC,
- int X,
- int Y
- );
-BOOL
-STDCALL
-NtGdiRectVisible (
- HDC hDC,
- CONST PRECT rc
- );
-BOOL
-STDCALL
-NtGdiSelectClipPath (
- HDC hDC,
- int Mode
- );
-int
-STDCALL
-NtGdiSelectClipRgn (
- HDC hDC,
- HRGN hrgn
- );
-int
-STDCALL
-NtGdiSetMetaRgn (
- HDC hDC
- );
-#endif
+++ /dev/null
-#ifndef __WIN32K_COLOR_H
-#define __WIN32K_COLOR_H
-
-#ifndef CLR_INVALID
-#define CLR_INVALID 0xffffffff
-#endif
-#define PC_SYS_USED 0x80 /* palentry is used (both system and logical) */
-#define PC_SYS_RESERVED 0x40 /* system palentry is not to be mapped to */
-#define PC_SYS_MAPPED 0x10 /* logical palentry is a direct alias for system palentry */
-
-BOOL
-STDCALL
-NtGdiAnimatePalette (
- HPALETTE hpal,
- UINT StartIndex,
- UINT Entries,
- CONST PPALETTEENTRY ppe
- );
-HPALETTE
-STDCALL
-NtGdiCreateHalftonePalette (
- HDC hDC
- );
-HPALETTE
-STDCALL
-NtGdiCreatePalette (
- CONST PLOGPALETTE lgpl
- );
-BOOL
-STDCALL
-NtGdiGetColorAdjustment (
- HDC hDC,
- LPCOLORADJUSTMENT ca
- );
-COLORREF
-STDCALL
-NtGdiGetNearestColor (
- HDC hDC,
- COLORREF Color
- );
-UINT
-STDCALL
-NtGdiGetNearestPaletteIndex (
- HPALETTE hpal,
- COLORREF Color
- );
-UINT
-STDCALL
-NtGdiGetPaletteEntries (
- HPALETTE hpal,
- UINT StartIndex,
- UINT Entries,
- LPPALETTEENTRY pe
- );
-UINT
-STDCALL
-NtGdiGetSystemPaletteEntries (
- HDC hDC,
- UINT StartIndex,
- UINT Entries,
- LPPALETTEENTRY pe
- );
-UINT
-STDCALL
-NtGdiGetSystemPaletteUse (
- HDC hDC
- );
-UINT
-STDCALL
-NtGdiRealizePalette (
- HDC hDC
- );
-BOOL
-STDCALL
-NtGdiResizePalette (
- HPALETTE hpal,
- UINT Entries
- );
-HPALETTE
-STDCALL
-NtGdiSelectPalette (
- HDC hDC,
- HPALETTE hpal,
- BOOL ForceBackground
- );
-BOOL
-STDCALL
-NtGdiSetColorAdjustment (
- HDC hDC,
- CONST LPCOLORADJUSTMENT ca
- );
-UINT
-STDCALL
-NtGdiSetPaletteEntries (
- HPALETTE hpal,
- UINT Start,
- UINT Entries,
- CONST LPPALETTEENTRY pe
- );
-UINT
-STDCALL
-NtGdiSetSystemPaletteUse (
- HDC hDC,
- UINT Usage
- );
-BOOL
-STDCALL
-NtGdiUnrealizeObject (
- HGDIOBJ hgdiobj
- );
-BOOL
-STDCALL
-NtGdiUpdateColors (
- HDC hDC
- );
-#endif
+++ /dev/null
-#ifndef __WIN32K_COORD_H
-#define __WIN32K_COORD_H
-
-BOOL
-STDCALL
-NtGdiCombineTransform (
- LPXFORM XformResult,
- CONST LPXFORM xform1,
- CONST LPXFORM xform2
- );
-
-VOID
-FASTCALL
-IntDPtoLP ( PDC dc, LPPOINT Points, INT Count );
-
-VOID
-FASTCALL
-CoordDPtoLP ( PDC Dc, LPPOINT Point );
-
-BOOL
-STDCALL
-NtGdiDPtoLP (
- HDC hDC,
- LPPOINT Points,
- int Count
- );
-
-int
-FASTCALL
-IntGetGraphicsMode ( PDC dc );
-
-int
-STDCALL
-NtGdiGetGraphicsMode ( HDC hDC );
-
-BOOL
-STDCALL
-NtGdiGetWorldTransform (
- HDC hDC,
- LPXFORM Xform
- );
-
-VOID
-FASTCALL
-CoordLPtoDP ( PDC Dc, LPPOINT Point );
-
-VOID
-FASTCALL
-IntLPtoDP ( PDC dc, LPPOINT Points, INT Count );
-
-BOOL
-STDCALL
-NtGdiLPtoDP (
- HDC hDC,
- LPPOINT Points,
- int Count
- );
-BOOL
-STDCALL
-NtGdiModifyWorldTransform (
- HDC hDC,
- CONST LPXFORM Xform,
- DWORD Mode
- );
-BOOL
-STDCALL
-NtGdiOffsetViewportOrgEx (
- HDC hDC,
- int XOffset,
- int YOffset,
- LPPOINT Point
- );
-BOOL
-STDCALL
-NtGdiOffsetWindowOrgEx (
- HDC hDC,
- int XOffset,
- int YOffset,
- LPPOINT Point
- );
-BOOL
-STDCALL
-NtGdiScaleViewportExtEx (
- HDC hDC,
- int Xnum,
- int Xdenom,
- int Ynum,
- int Ydenom,
- LPSIZE Size
- );
-BOOL
-STDCALL
-NtGdiScaleWindowExtEx (
- HDC hDC,
- int Xnum,
- int Xdenom,
- int Ynum,
- int Ydenom,
- LPSIZE Size
- );
-int
-STDCALL
-NtGdiSetGraphicsMode (
- HDC hDC,
- int Mode
- );
-int
-STDCALL
-NtGdiSetMapMode (
- HDC hDC,
- int MapMode
- );
-BOOL
-STDCALL
-NtGdiSetViewportExtEx (
- HDC hDC,
- int XExtent,
- int YExtent,
- LPSIZE Size
- );
-BOOL
-STDCALL
-NtGdiSetViewportOrgEx (
- HDC hDC,
- int X,
- int Y,
- LPPOINT Point
- );
-BOOL
-STDCALL
-NtGdiSetWindowExtEx (
- HDC hDC,
- int XExtent,
- int YExtent,
- LPSIZE Size
- );
-BOOL
-STDCALL
-NtGdiSetWindowOrgEx (
- HDC hDC,
- int X,
- int Y,
- LPPOINT Point
- );
-BOOL
-STDCALL
-NtGdiSetWorldTransform (
- HDC hDC,
- CONST LPXFORM Xform
- );
-#endif
+++ /dev/null
-
-#ifndef __WIN32K_CURSORICON_H
-#define __WIN32K_CURSORICON_H
-
-#include <pshpack1.h>
-
-/* Structures for reading icon/cursor files and resources */
-// Structures for reading icon files and resources
-typedef struct _ICONIMAGE
-{
- BITMAPINFOHEADER icHeader; // DIB header
- RGBQUAD icColors[1]; // Color table
- BYTE icXOR[1]; // DIB bits for XOR mask
- BYTE icAND[1]; // DIB bits for AND mask
-} ICONIMAGE, *LPICONIMAGE;
-
-typedef struct _CURSORIMAGE
-{
- BITMAPINFOHEADER icHeader; // DIB header
- RGBQUAD icColors[1]; // Color table
- BYTE icXOR[1]; // DIB bits for XOR mask
- BYTE icAND[1]; // DIB bits for AND mask
-} CURSORIMAGE, *LPCURSORIMAGE;
-
-typedef struct
-{
- BYTE bWidth;
- BYTE bHeight;
- BYTE bColorCount;
- BYTE bReserved;
-} ICONRESDIR;
-
-typedef struct
-{
- WORD wWidth;
- WORD wHeight;
-} CURSORRESDIR;
-
-typedef struct
-{
- WORD wPlanes; // Number of Color Planes in the XOR image
- WORD wBitCount; // Bits per pixel in the XOR image
-} ICONDIR;
-
-typedef struct
-{
- WORD wXHotspot; // Number of Color Planes in the XOR image
- WORD wYHotspot; // Bits per pixel in the XOR image
-} CURSORDIR;
-
-typedef struct
-{
- BYTE bWidth; // Width, in pixels, of the icon image
- BYTE bHeight; // Height, in pixels, of the icon image
- BYTE bColorCount; // Number of colors in image (0 if >=8bpp)
- BYTE bReserved; // Reserved ( must be 0)
- union
- { ICONDIR icon;
- CURSORDIR cursor;
- } Info;
- DWORD dwBytesInRes; // How many bytes in this resource?
- DWORD dwImageOffset; // Where in the file is this image?
-} CURSORICONDIRENTRY;
-
-typedef struct
-{
- WORD idReserved; // Reserved (must be 0)
- WORD idType; // Resource Type (1 for icons, 0 for cursors)
- WORD idCount; // How many images?
- CURSORICONDIRENTRY idEntries[1]; // An entry for idCount number of images
-} CURSORICONDIR;
-
-typedef struct
-{
- union
- { ICONRESDIR icon;
- CURSORRESDIR cursor;
- } ResInfo;
- WORD wPlanes; // Color Planes
- WORD wBitCount; // Bits per pixel
- DWORD dwBytesInRes; // how many bytes in this resource?
- WORD nID; // the ID
-} GRPCURSORICONDIRENTRY;
-
-typedef struct
-{
- WORD idReserved; // Reserved (must be 0)
- WORD idType; // Resource type (1 for icons)
- WORD idCount; // How many images?
- GRPCURSORICONDIRENTRY idEntries[1]; // The entries for each image
-} GRPCURSORICONDIR;
-
-#include <poppack.h>
-
-#endif
+++ /dev/null
-#ifndef __WIN32K_FILLSHAP_H
-#define __WIN32K_FILLSHAP_H
-
-BOOL
-STDCALL
-NtGdiChord(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect,
- int XRadial1,
- int YRadial1,
- int XRadial2,
- int YRadial2);
-
-BOOL
-STDCALL
-NtGdiEllipse(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect);
-
-BOOL
-STDCALL
-NtGdiPie(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect,
- int XRadial1,
- int YRadial1,
- int XRadial2,
- int YRadial2);
-
-BOOL
-STDCALL
-NtGdiPolygon(HDC hDC,
- CONST PPOINT Points,
- int Count);
-
-BOOL
-STDCALL
-NtGdiPolyPolygon(HDC hDC,
- CONST LPPOINT Points,
- CONST LPINT PolyCounts,
- int Count);
-
-BOOL
-STDCALL
-NtGdiRectangle(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect);
-
-BOOL
-STDCALL
-NtGdiRoundRect(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect,
- int Width,
- int Height);
-
-#endif
-
+++ /dev/null
-/* $Id$
- *
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS system libraries
- * FILE: include/win32k/font.h
- * PURPOSE: GDI32/Win32k font interface
- * PROGRAMMER:
- *
- */
-
-#ifndef WIN32K_FONT_H_INCLUDED
-#define WIN32K_FONT_H_INCLUDED
-
-typedef struct tagFONTFAMILYINFO
-{
- ENUMLOGFONTEXW EnumLogFontEx;
- NEWTEXTMETRICEXW NewTextMetricEx;
- DWORD FontType;
-} FONTFAMILYINFO, *PFONTFAMILYINFO;
-
-int STDCALL NtGdiGetFontFamilyInfo(HDC Dc, LPLOGFONTW LogFont, PFONTFAMILYINFO Info, DWORD Size);
-BOOL STDCALL NtGdiTranslateCharsetInfo(PDWORD Src, LPCHARSETINFO CSI, DWORD Flags);
-DWORD STDCALL NtGdiGetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
-
-#endif /* WIN32K_FONT_H_INCLUDED */
+++ /dev/null
-
-#ifndef __WIN32K_ICM_H
-#define __WIN32K_ICM_H
-
-BOOL
-STDCALL
-NtGdiCheckColorsInGamut(HDC hDC,
- LPVOID RGBTriples,
- LPVOID Buffer,
- UINT Count);
-
-BOOL
-STDCALL
-NtGdiColorMatchToTarget(HDC hDC,
- HDC hDCTarget,
- DWORD Action);
-
-HCOLORSPACE
-STDCALL
-NtGdiCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace);
-
-BOOL
-STDCALL
-NtGdiDeleteColorSpace(HCOLORSPACE hColorSpace);
-
-INT
-STDCALL
-NtGdiEnumICMProfiles(HDC hDC,
- LPWSTR lpstrBuffer,
- UINT cch );
-
-HCOLORSPACE
-STDCALL
-NtGdiGetColorSpace(HDC hDC);
-
-BOOL
-STDCALL
-NtGdiGetDeviceGammaRamp(HDC hDC,
- LPVOID Ramp);
-
-BOOL
-STDCALL
-NtGdiGetICMProfile(HDC hDC,
- LPDWORD NameSize,
- LPWSTR Filename);
-
-BOOL
-STDCALL
-NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,
- LPLOGCOLORSPACEW Buffer,
- DWORD Size);
-
-HCOLORSPACE
-STDCALL
-NtGdiSetColorSpace(HDC hDC,
- HCOLORSPACE hColorSpace);
-
-BOOL
-STDCALL
-NtGdiSetDeviceGammaRamp(HDC hDC,
- LPVOID Ramp);
-
-INT
-STDCALL
-NtGdiSetICMMode(HDC hDC,
- INT EnableICM);
-
-BOOL
-STDCALL
-NtGdiSetICMProfile(HDC hDC,
- LPWSTR Filename);
-
-BOOL
-STDCALL
-NtGdiUpdateICMRegKey(DWORD Reserved,
- LPWSTR CMID,
- LPWSTR Filename,
- UINT Command);
-
-#endif
-
+++ /dev/null
-#ifndef _WIN32K_KAPI_H
-#define _WIN32K_KAPI_H
-
-#ifndef INTERNAL_CALL
-#define INTERNAL_CALL STDCALL
-#endif
-
-#include <win32k/brush.h>
-#include <win32k/callback.h>
-#include <win32k/caret.h>
-#include <win32k/cliprgn.h>
-#include <win32k/color.h>
-#include <win32k/cursoricon.h>
-#include <win32k/path.h>
-#include <win32k/driver.h>
-#include <win32k/dc.h>
-#include <win32k/coord.h>
-#include <win32k/bitmaps.h>
-#include <win32k/fillshap.h>
-#include <win32k/font.h>
-#include <win32k/icm.h>
-#include <win32k/line.h>
-#include <win32k/metafile.h>
-#include <win32k/menu.h>
-#include <win32k/misc.h>
-#include <win32k/ntuser.h>
-#include <win32k/paint.h>
-#include <win32k/pen.h>
-#include <win32k/print.h>
-#include <win32k/region.h>
-#include <win32k/text.h>
-#include <win32k/wingl.h>
-#endif /* ndef _WIN32K_KAPI_H */
+++ /dev/null
-#ifndef __WIN32K_LINE_H
-#define __WIN32K_LINE_H
-
-BOOL
-STDCALL
-NtGdiAngleArc(HDC hDC,
- int X,
- int Y,
- DWORD Radius,
- FLOAT StartAngle,
- FLOAT SweepAngle);
-
-BOOL
-STDCALL
-NtGdiArc(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect,
- int XStartArc,
- int YStartArc,
- int XEndArc,
- int YEndArc);
-
-BOOL
-STDCALL
-NtGdiArcTo(HDC hDC,
- int LeftRect,
- int TopRect,
- int RightRect,
- int BottomRect,
- int XRadial1,
- int YRadial1,
- int XRadial2,
- int YRadial2);
-
-INT
-FASTCALL
-IntGetArcDirection ( PDC dc );
-
-INT
-STDCALL
-NtGdiGetArcDirection ( HDC hDC );
-
-BOOL
-STDCALL
-NtGdiLineTo(HDC hDC,
- int XEnd,
- int YEnd );
-
-BOOL
-STDCALL
-NtGdiMoveToEx(HDC hDC,
- int X,
- int Y,
- LPPOINT Point);
-
-BOOL
-STDCALL
-NtGdiPolyBezier(HDC hDC,
- CONST LPPOINT pt,
- DWORD Count);
-
-BOOL
-STDCALL
-NtGdiPolyBezierTo(HDC hDC,
- CONST LPPOINT pt,
- DWORD Count);
-
-BOOL
-STDCALL
-NtGdiPolyDraw(HDC hDC,
- CONST LPPOINT pt,
- CONST LPBYTE Types,
- int Count);
-
-BOOL
-STDCALL
-NtGdiPolyline(HDC hDC,
- CONST LPPOINT pt,
- int Count);
-
-BOOL
-STDCALL
-NtGdiPolylineTo(HDC hDC,
- CONST LPPOINT pt,
- DWORD Count);
-
-BOOL
-STDCALL
-NtGdiPolyPolyline(HDC hDC,
- CONST LPPOINT pt,
- CONST LPDWORD PolyPoints,
- DWORD Count);
-
-int
-STDCALL
-NtGdiSetArcDirection(HDC hDC,
- int ArcDirection);
-
-#endif
+++ /dev/null
-/*
- * math.h
- *
- * Mathematical functions.
- *
- * This file is part of the Mingw32 package.
- *
- * Contributors:
- * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Revision: 1.4 $
- * $Author$
- * $Date$
- *
- */
-/* added modfl */
-
-#ifndef _MATH_H_
-#define _MATH_H_
-
-#include_next <math.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * HUGE_VAL is returned by strtod when the value would overflow the
- * representation of 'double'. There are other uses as well.
- *
- * __imp__HUGE is a pointer to the actual variable _HUGE in
- * MSVCRT.DLL. If we used _HUGE directly we would get a pointer
- * to a thunk function.
- *
- * NOTE: The CRTDLL version uses _HUGE_dll instead.
- */
-#ifdef __MSVCRT__
-extern double* __imp__HUGE;
-#define HUGE_VAL (*__imp__HUGE)
-#else
-/* CRTDLL */
-extern double* _HUGE_dll;
-#define HUGE_VAL (*_HUGE_dll)
-#endif
-
-#define M_PI 22 / 7
-#define M_PI_2 M_PI * 2
-
-struct _exception
-{
- int type;
- char *name;
- double arg1;
- double arg2;
- double retval;
-};
-
-/*
- * Types for the above _exception structure.
- */
-
-#define _DOMAIN 1 /* domain error in argument */
-#define _SING 2 /* singularity */
-#define _OVERFLOW 3 /* range overflow */
-#define _UNDERFLOW 4 /* range underflow */
-#define _TLOSS 5 /* total loss of precision */
-#define _PLOSS 6 /* partial loss of precision */
-
-/*
- * Exception types with non-ANSI names for compatibility.
- */
-
-#ifndef __STRICT_ANSI__
-#ifndef _NO_OLDNAMES
-
-#define DOMAIN _DOMAIN
-#define SING _SING
-#define OVERFLOW _OVERFLOW
-#define UNDERFLOW _UNDERFLOW
-#define TLOSS _TLOSS
-#define PLOSS _PLOSS
-
-#endif /* Not _NO_OLDNAMES */
-#endif /* Not __STRICT_ANSI__ */
-
-
-double sin (double x);
-double cos (double x);
-double tan (double x);
-double sinh (double x);
-double cosh (double x);
-double tanh (double x);
-double asin (double x);
-double acos (double x);
-double atan (double x);
-double atan2 (double y, double x);
-double exp (double x);
-double log (double x);
-double log10 (double x);
-double pow (double x, double y);
-long double powl (long double x,long double y);
-double sqrt (double x);
-double ceil (double x);
-double floor (double x);
-double fabs (double x);
-double ldexp (double x, int n);
-double frexp (double x, int* exp);
-double modf (double x, double* ip);
-long double modfl (long double x,long double* ip);
-double fmod (double x, double y);
-
-
-#ifndef __STRICT_ANSI__
-
-/* Complex number (for cabs) */
-struct _complex
-{
- double x; /* Real part */
- double y; /* Imaginary part */
-};
-
-double _cabs (struct _complex x);
-double _hypot (double x, double y);
-double _j0 (double x);
-double _j1 (double x);
-double _jn (int n, double x);
-double _y0 (double x);
-double _y1 (double x);
-double _yn (int n, double x);
-
-#ifndef _NO_OLDNAMES
-
-/*
- * Non-underscored versions of non-ANSI functions. These reside in
- * liboldnames.a. Provided for extra portability.
- */
-#if 0
-/* GCC 3.4 warns that this is not equal to it's internal definition for cabs */
-double cabs (struct _complex x);
-#endif
-double hypot (double x, double y);
-double j0 (double x);
-double j1 (double x);
-double jn (int n, double x);
-double y0 (double x);
-double y1 (double x);
-double yn (int n, double x);
-
-#endif /* Not _NO_OLDNAMES */
-
-#endif /* Not __STRICT_ANSI__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Not _MATH_H_ */
-
+++ /dev/null
-/* $Id$ */
-
-#ifndef WIN32K_MENU_H_INCLUDED
-#define WIN32K_MENU_H_INCLUDED
-
-typedef struct tagROSMENUINFO {
- /* ----------- MENUINFO ----------- */
- DWORD cbSize;
- DWORD fMask;
- DWORD dwStyle;
- UINT cyMax;
- HBRUSH hbrBack;
- DWORD dwContextHelpID;
- ULONG_PTR dwMenuData;
- /* ----------- Extra ----------- */
- HMENU Self; /* Handle of this menu */
- WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
- UINT FocusedItem; /* Currently focused item */
- UINT MenuItemCount; /* Number of items in the menu */
- HWND Wnd; /* Window containing the menu */
- WORD Width; /* Width of the whole menu */
- WORD Height; /* Height of the whole menu */
- HWND WndOwner; /* window receiving the messages for ownerdraw */
- BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
- SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */
-} ROSMENUINFO, *PROSMENUINFO;
-
-/* (other FocusedItem values give the position of the focused item) */
-#define NO_SELECTED_ITEM 0xffff
-
-typedef struct tagROSMENUITEMINFO
-{
- /* ----------- MENUITEMINFOW ----------- */
- UINT cbSize;
- UINT fMask;
- UINT fType;
- UINT fState;
- UINT wID;
- HMENU hSubMenu;
- HBITMAP hbmpChecked;
- HBITMAP hbmpUnchecked;
- DWORD dwItemData;
- LPWSTR dwTypeData;
- UINT cch;
- HBITMAP hbmpItem;
- /* ----------- Extra ----------- */
- RECT Rect; /* Item area (relative to menu window) */
- UINT XTab; /* X position of text after Tab */
-} ROSMENUITEMINFO, *PROSMENUITEMINFO;
-
-typedef struct _SETMENUITEMRECT
-{
- UINT uItem;
- BOOL fByPosition;
- RECT rcRect;
-} SETMENUITEMRECT, *PSETMENUITEMRECT;
-
-DWORD
-STDCALL
-NtUserBuildMenuItemList(
- HMENU hMenu,
- PVOID Buffer,
- ULONG nBufSize,
- DWORD Reserved);
-
-DWORD
-STDCALL
-NtUserCheckMenuItem(
- HMENU hmenu,
- UINT uIDCheckItem,
- UINT uCheck);
-
-HMENU
-STDCALL
-NtUserCreateMenu(BOOL PopupMenu);
-
-BOOL
-STDCALL
-NtUserDeleteMenu(
- HMENU hMenu,
- UINT uPosition,
- UINT uFlags);
-
-BOOL
-STDCALL
-NtUserDestroyMenu(
- HMENU hMenu);
-
-DWORD
-STDCALL
-NtUserDrawMenuBarTemp(
- HWND hWnd,
- HDC hDC,
- PRECT hRect,
- HMENU hMenu,
- HFONT hFont);
-
-UINT
-STDCALL
-NtUserEnableMenuItem(
- HMENU hMenu,
- UINT uIDEnableItem,
- UINT uEnable);
-
-DWORD
-STDCALL
-NtUserInsertMenuItem(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- LPCMENUITEMINFOW lpmii);
-
-BOOL
-STDCALL
-NtUserEndMenu(VOID);
-
-UINT STDCALL
-NtUserGetMenuDefaultItem(
- HMENU hMenu,
- UINT fByPos,
- UINT gmdiFlags);
-
-BOOL
-STDCALL
-NtUserGetMenuBarInfo(
- HWND hwnd,
- LONG idObject,
- LONG idItem,
- PMENUBARINFO pmbi);
-
-UINT
-STDCALL
-NtUserGetMenuIndex(
- HMENU hMenu,
- UINT wID);
-
-BOOL
-STDCALL
-NtUserGetMenuItemRect(
- HWND hWnd,
- HMENU hMenu,
- UINT uItem,
- LPRECT lprcItem);
-
-HMENU
-STDCALL
-NtUserGetSystemMenu(
- HWND hWnd,
- BOOL bRevert);
-
-BOOL
-STDCALL
-NtUserHiliteMenuItem(
- HWND hwnd,
- HMENU hmenu,
- UINT uItemHilite,
- UINT uHilite);
-
-BOOL
-STDCALL
-NtUserMenuInfo(
- HMENU hmenu,
- PROSMENUINFO lpmi,
- BOOL fsog
-);
-
-int
-STDCALL
-NtUserMenuItemFromPoint(
- HWND hWnd,
- HMENU hMenu,
- DWORD X,
- DWORD Y);
-
-BOOL
-STDCALL
-NtUserMenuItemInfo(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- PROSMENUITEMINFO lpmii,
- BOOL fsog
-);
-
-BOOL
-STDCALL
-NtUserRemoveMenu(
- HMENU hMenu,
- UINT uPosition,
- UINT uFlags);
-
-BOOL
-STDCALL
-NtUserSetMenu(
- HWND hWnd,
- HMENU hMenu,
- BOOL bRepaint);
-
-BOOL
-STDCALL
-NtUserSetMenuContextHelpId(
- HMENU hmenu,
- DWORD dwContextHelpId);
-
-BOOL
-STDCALL
-NtUserSetMenuDefaultItem(
- HMENU hMenu,
- UINT uItem,
- UINT fByPos);
-
-BOOL
-STDCALL
-NtUserSetMenuFlagRtoL(
- HMENU hMenu);
-
-BOOL
-STDCALL
-NtUserSetSystemMenu(
- HWND hWnd,
- HMENU hMenu);
-
-DWORD
-STDCALL
-NtUserThunkedMenuInfo(
- HMENU hMenu,
- LPCMENUINFO lpcmi);
-
-DWORD
-STDCALL
-NtUserThunkedMenuItemInfo(
- HMENU hMenu,
- UINT uItem,
- BOOL fByPosition,
- BOOL bInsert,
- LPMENUITEMINFOW lpmii,
- PUNICODE_STRING lpszCaption);
-
-BOOL
-STDCALL
-NtUserTrackPopupMenuEx(
- HMENU hmenu,
- UINT fuFlags,
- int x,
- int y,
- HWND hwnd,
- LPTPMPARAMS lptpm);
-
-#endif /* WIN32K_MENU_H_INCLUDED */
-
+++ /dev/null
-#ifndef __WIN32K_METAFILE_H
-#define __WIN32K_METAFILE_H
-
-HENHMETAFILE
-STDCALL
-NtGdiCloseEnhMetaFile (
- HDC hDC
- );
-HMETAFILE
-STDCALL
-NtGdiCloseMetaFile (
- HDC hDC
- );
-HENHMETAFILE
-STDCALL
-NtGdiCopyEnhMetaFile (
- HENHMETAFILE Src,
- LPCWSTR File
- );
-HMETAFILE
-STDCALL
-NtGdiCopyMetaFile (
- HMETAFILE Src,
- LPCWSTR File
- );
-HDC
-STDCALL
-NtGdiCreateEnhMetaFile (
- HDC hDCRef,
- LPCWSTR File,
- CONST LPRECT Rect,
- LPCWSTR Description
- );
-HDC
-STDCALL
-NtGdiCreateMetaFile (
- LPCWSTR File
- );
-BOOL
-STDCALL
-NtGdiDeleteEnhMetaFile (
- HENHMETAFILE emf
- );
-BOOL
-STDCALL
-NtGdiDeleteMetaFile (
- HMETAFILE mf
- );
-BOOL
-STDCALL
-NtGdiEnumEnhMetaFile (
- HDC hDC,
- HENHMETAFILE emf,
- ENHMFENUMPROC EnhMetaFunc,
- LPVOID Data,
- CONST LPRECT Rect
- );
-BOOL
-STDCALL
-NtGdiEnumMetaFile (
- HDC hDC,
- HMETAFILE mf,
- MFENUMPROC MetaFunc,
- LPARAM lParam
- );
-BOOL
-STDCALL
-NtGdiGdiComment (
- HDC hDC,
- UINT Size,
- CONST LPBYTE Data
- );
-HENHMETAFILE
-STDCALL
-NtGdiGetEnhMetaFile (
- LPCWSTR MetaFile
- );
-UINT
-STDCALL
-NtGdiGetEnhMetaFileBits (
- HENHMETAFILE hemf,
- UINT BufSize,
- LPBYTE Buffer
- );
-UINT
-STDCALL
-NtGdiGetEnhMetaFileDescription (
- HENHMETAFILE hemf,
- UINT BufSize,
- LPWSTR Description
- );
-UINT
-STDCALL
-NtGdiGetEnhMetaFileHeader (
- HENHMETAFILE hemf,
- UINT BufSize,
- LPENHMETAHEADER emh
- );
-UINT
-STDCALL
-NtGdiGetEnhMetaFilePaletteEntries (
- HENHMETAFILE hemf,
- UINT Entries,
- LPPALETTEENTRY pe
- );
-HMETAFILE
-STDCALL
-NtGdiGetMetaFile (
- LPCWSTR MetaFile
- );
-UINT
-STDCALL
-NtGdiGetMetaFileBitsEx (
- HMETAFILE hmf,
- UINT Size,
- LPVOID Data
- );
-UINT
-STDCALL
-NtGdiGetWinMetaFileBits (
- HENHMETAFILE hemf,
- UINT BufSize,
- LPBYTE Buffer,
- INT MapMode,
- HDC Ref
- );
-BOOL
-STDCALL
-NtGdiPlayEnhMetaFile (
- HDC hDC,
- HENHMETAFILE hemf,
- CONST PRECT Rect
- );
-BOOL
-STDCALL
-NtGdiPlayEnhMetaFileRecord (
- HDC hDC,
- LPHANDLETABLE Handletable,
- CONST ENHMETARECORD * EnhMetaRecord,
- UINT Handles
- );
-BOOL
-STDCALL
-NtGdiPlayMetaFile (
- HDC hDC,
- HMETAFILE hmf
- );
-BOOL
-STDCALL
-NtGdiPlayMetaFileRecord (
- HDC hDC,
- LPHANDLETABLE Handletable,
- LPMETARECORD MetaRecord,
- UINT Handles
- );
-HENHMETAFILE
-STDCALL
-NtGdiSetEnhMetaFileBits (
- UINT BufSize,
- CONST PBYTE Data
- );
-HMETAFILE
-STDCALL
-NtGdiSetMetaFileBitsEx (
- UINT Size,
- CONST PBYTE Data
- );
-#if 0
-HENHMETAFILE
-STDCALL
-NtGdiSetWinMetaFileBits (
- UINT BufSize,
- CONST PBYTE Buffer,
- HDC Ref,
- CONST METAFILEPICT * mfp
- );
-#endif
-
-#endif
-
+++ /dev/null
-
-#ifndef __WIN32K_NTDDRAW_H
-#define __WIN32K_NTDDRAW_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-BOOL STDCALL NtGdiD3dContextCreate(
- HANDLE hDirectDrawLocal,
- HANDLE hSurfColor,
- HANDLE hSurfZ,
- /* Is msdn wrong on D3DNTHAL_CONTEXTCREATEDATA ?? */
- D3DNTHAL_CONTEXTCREATEDATA *pdcci
-);
-
-
-DWORD STDCALL NtGdiD3dContextDestroy(
- LPD3DNTHAL_CONTEXTDESTROYDATA pContextDestroyData
-);
-
-DWORD STDCALL NtGdiD3dContextDestroyAll(VOID);
-
-DWORD STDCALL NtGdiD3dDrawPrimitives2(
- HANDLE hCmdBuf,
- HANDLE hVBuf,
- LPD3DNTHAL_DRAWPRIMITIVES2DATA pded,
- FLATPTR *pfpVidMemCmd,
- DWORD *pdwSizeCmd,
- FLATPTR *pfpVidMemVtx,
- DWORD *pdwSizeVtx
-
-);
-
-DWORD STDCALL NtGdiD3dValidateTextureStageState(
- LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData
-);
-
-DWORD STDCALL NtGdiDdAddAttachedSurface(
- HANDLE hSurface,
- HANDLE hSurfaceAttached,
- PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData
-);
-
-DWORD STDCALL NtGdiDdAlphaBlt(VOID);
-
-BOOL STDCALL NtGdiDdAttachSurface(
- HANDLE hSurfaceFrom,
- HANDLE hSurfaceTo
-);
-
-DWORD STDCALL NtGdiDdBeginMoCompFrame(
- HANDLE hMoComp,
- PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData
-);
-
-DWORD STDCALL NtGdiDdBlt(
- HANDLE hSurfaceDest,
- HANDLE hSurfaceSrc,
- PDD_BLTDATA puBltData
-);
-
-DWORD STDCALL NtGdiDdCanCreateD3DBuffer(
- HANDLE hDirectDraw,
- PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
-);
-
-DWORD STDCALL NtGdiDdCanCreateSurface(
- HANDLE hDirectDraw,
- PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
-);
-
-DWORD STDCALL NtGdiDdColorControl(
- HANDLE hSurface,
- PDD_COLORCONTROLDATA puColorControlData
-);
-
-DWORD STDCALL NtGdiDdCreateD3DBuffer(
- HANDLE hDirectDraw,
- HANDLE *hSurface,
- DDSURFACEDESC *puSurfaceDescription,
- DD_SURFACE_GLOBAL *puSurfaceGlobalData,
- DD_SURFACE_LOCAL *puSurfaceLocalData,
- DD_SURFACE_MORE *puSurfaceMoreData,
- PDD_CREATESURFACEDATA puCreateSurfaceData,
- HANDLE *puhSurface
-);
-
-HANDLE STDCALL NtGdiDdCreateDirectDrawObject(
- HDC hdc
-);
-
-HANDLE STDCALL NtGdiDdCreateMoComp(
- HANDLE hDirectDraw,
- PDD_CREATEMOCOMPDATA puCreateMoCompData
-);
-
-DWORD STDCALL NtGdiDdCreateSurface(
- HANDLE hDirectDraw,
- HANDLE *hSurface,
- DDSURFACEDESC *puSurfaceDescription,
- DD_SURFACE_GLOBAL *puSurfaceGlobalData,
- DD_SURFACE_LOCAL *puSurfaceLocalData,
- DD_SURFACE_MORE *puSurfaceMoreData,
- PDD_CREATESURFACEDATA puCreateSurfaceData,
- HANDLE *puhSurface
-);
-
-DWORD STDCALL NtGdiDdCreateSurfaceEx(
- HANDLE hDirectDraw,
- HANDLE hSurface,
- DWORD dwSurfaceHandle
-);
-
-HANDLE STDCALL NtGdiDdCreateSurfaceObject(
- HANDLE hDirectDrawLocal,
- HANDLE hSurface,
- PDD_SURFACE_LOCAL puSurfaceLocal,
- PDD_SURFACE_MORE puSurfaceMore,
- PDD_SURFACE_GLOBAL puSurfaceGlobal,
- BOOL bComplete
-);
-
-BOOL STDCALL NtGdiDdDeleteDirectDrawObject(
- HANDLE hDirectDrawLocal
-);
-
-BOOL STDCALL NtGdiDdDeleteSurfaceObject(
- HANDLE hSurface
-);
-
-DWORD STDCALL NtGdiDdDestroyD3DBuffer(
- HANDLE hSurface
-);
-
-DWORD STDCALL NtGdiDdDestroyMoComp(
- HANDLE hMoComp,
- PDD_DESTROYMOCOMPDATA puBeginFrameData
-);
-
-DWORD STDCALL NtGdiDdDestroySurface(
- HANDLE hSurface,
- BOOL bRealDestroy
-);
-
-DWORD STDCALL NtGdiDdEndMoCompFrame(
- HANDLE hMoComp,
- PDD_ENDMOCOMPFRAMEDATA puEndFrameData
-);
-
-DWORD STDCALL NtGdiDdFlip(
- HANDLE hSurfaceCurrent,
- HANDLE hSurfaceTarget,
- HANDLE hSurfaceCurrentLeft,
- HANDLE hSurfaceTargetLeft,
- PDD_FLIPDATA puFlipData
-);
-
-DWORD STDCALL NtGdiDdFlipToGDISurface(
- HANDLE hDirectDraw,
- PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData
-);
-
-DWORD STDCALL NtGdiDdGetAvailDriverMemory(
- HANDLE hDirectDraw,
- PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData
-);
-
-DWORD STDCALL NtGdiDdGetBltStatus(
- HANDLE hSurface,
- PDD_GETBLTSTATUSDATA puGetBltStatusData
-);
-
-HDC STDCALL NtGdiDdGetDC(
- HANDLE hSurface,
- PALETTEENTRY *puColorTable
-);
-
-DWORD STDCALL NtGdiDdGetDriverInfo(
- HANDLE hDirectDraw,
- PDD_GETDRIVERINFODATA puGetDriverInfoData
-);
-
-DWORD STDCALL NtGdiDdGetDriverState(
- PDD_GETDRIVERSTATEDATA pdata
-);
-
-DWORD STDCALL NtGdiDdGetDxHandle(
- HANDLE hDirectDraw,
- HANDLE hSurface,
- BOOL bRelease
-);
-
-DWORD STDCALL NtGdiDdGetFlipStatus(
- HANDLE hSurface,
- PDD_GETFLIPSTATUSDATA puGetFlipStatusData
-);
-
-DWORD STDCALL NtGdiDdGetInternalMoCompInfo(
- HANDLE hDirectDraw,
- PDD_GETINTERNALMOCOMPDATA puGetInternalData
-);
-
-DWORD STDCALL NtGdiDdGetMoCompBuffInfo(
- HANDLE hDirectDraw,
- PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData
-);
-
-DWORD STDCALL NtGdiDdGetMoCompFormats(
- HANDLE hDirectDraw,
- PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData
-);
-
-DWORD STDCALL NtGdiDdGetMoCompGuids(
- HANDLE hDirectDraw,
- PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData
-);
-
-DWORD STDCALL NtGdiDdGetScanLine(
- HANDLE hDirectDraw,
- PDD_GETSCANLINEDATA puGetScanLineData
-);
-
-DWORD STDCALL NtGdiDdLock(
- HANDLE hSurface,
- PDD_LOCKDATA puLockData,
- HDC hdcClip
-);
-
-DWORD STDCALL NtGdiDdLockD3D(
- HANDLE hSurface,
- PDD_LOCKDATA puLockData
-);
-
-BOOL STDCALL NtGdiDdQueryDirectDrawObject(
- HANDLE hDirectDrawLocal,
- DD_HALINFO *pHalInfo,
- DWORD *pCallBackFlags,
- LPD3DNTHAL_CALLBACKS puD3dCallbacks,
- LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
- PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
- LPDDSURFACEDESC puD3dTextureFormats,
- DWORD *puNumHeaps,
- VIDEOMEMORY *puvmList,
- DWORD *puNumFourCC,
- DWORD *puFourCC
-);
-
-DWORD STDCALL NtGdiDdQueryMoCompStatus(
- HANDLE hMoComp,
- PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData
-);
-
-BOOL STDCALL NtGdiDdReenableDirectDrawObject(
- HANDLE hDirectDrawLocal,
- BOOL *pubNewMode
-);
-
-BOOL STDCALL NtGdiDdReleaseDC(
- HANDLE hSurface
-);
-
-DWORD STDCALL NtGdiDdRenderMoComp(
- HANDLE hMoComp,
- PDD_RENDERMOCOMPDATA puRenderMoCompData
-);
-
-BOOL STDCALL NtGdiDdResetVisrgn(
- HANDLE hSurface,
- HWND hwnd
-);
-
-DWORD STDCALL NtGdiDdSetColorKey(
- HANDLE hSurface,
- PDD_SETCOLORKEYDATA puSetColorKeyData
-);
-
-DWORD STDCALL NtGdiDdSetExclusiveMode(
- HANDLE hDirectDraw,
- PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData
-);
-
-BOOL STDCALL NtGdiDdSetGammaRamp(
- HANDLE hDirectDraw,
- HDC hdc,
- LPVOID lpGammaRamp
-);
-
-DWORD STDCALL NtGdiDdSetOverlayPosition(
- HANDLE hSurfaceSource,
- HANDLE hSurfaceDestination,
- PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData
-);
-
-VOID STDCALL NtGdiDdUnattachSurface(
- HANDLE hSurface,
- HANDLE hSurfaceAttached
-);
-
-DWORD STDCALL NtGdiDdUnlock(
- HANDLE hSurface,
- PDD_UNLOCKDATA puUnlockData
-);
-
-DWORD STDCALL NtGdiDdUnlockD3D(
- HANDLE hSurface,
- PDD_UNLOCKDATA puUnlockData
-);
-
-DWORD STDCALL NtGdiDdUpdateOverlay(
- HANDLE hSurfaceDestination,
- HANDLE hSurfaceSource,
- PDD_UPDATEOVERLAYDATA puUpdateOverlayData
-);
-
-DWORD STDCALL NtGdiDdWaitForVerticalBlank(
- HANDLE hDirectDraw,
- PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData
-);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif
--- /dev/null
+#ifndef WIN32K_NTGDI_BAD_INCLUDED\r
+#define WIN32K_NTGDI_BAD_INCLUDED\r
+\r
+/*\r
+ *\r
+ * If you want to help, please read this:\r
+ *\r
+ * This file contains NtGdi APIs which are specific to ROS, including\r
+ * a short comment describing the solution on how to use the actual NtGdi\r
+ * call documented in ntgdi.h. Here are the main cases and information on\r
+ * how to remove them from this header.\r
+ *\r
+ * - Simple rename. This deals with an API simply having a different name,\r
+ * with absolutely no other changes needed.\r
+ * - Rename and new parameters. This deals with a case similar to the one\r
+ * above, except that new parameters have now\r
+ * been added. This is also usually extremly\r
+ * simple to fix. Either pass the right params\r
+ * or pass null/0 values that you ignore.\r
+ * - Rename and new structure. This is similar to the above, except that the\r
+ * information is now passed in a differently\r
+ * named and organized structure. Ask Alex for\r
+ * the structure you need and he will add it to\r
+ * ntgdityp.h\r
+ * - Rename and different semantics. Similar to the previous examples, except\r
+ * that parameters have usually been removed\r
+ * or need to be converted in user-mode in\r
+ * one form of another.\r
+ * - Does not exist: user-mode. This means that the API can be fully done in\r
+ * user mode. In 80% of cases, our API was already\r
+ * returning NOT_IMPLEMENTED in kernel-mode, so\r
+ * the work to be done is minimal. A good example\r
+ * are the ICM and Metafile APIs, which can simply\r
+ * be removed and added into gdi32.\r
+ * - Does not exist: GDI Shared Objects. This is by far the hardest case. This\r
+ * class cannot be fixed until ReactOS\r
+ * has a working Shared GDI Object table\r
+ * and a DC_ATTR structure in which the\r
+ * attributes, selection and deletion of\r
+ * objects can be quickly done from user-\r
+ * mode without requiring a kernel mode\r
+ * call.\r
+ */\r
+/* Should be using ENUMFONTDATAW */\r
+typedef struct tagFONTFAMILYINFO\r
+{\r
+ ENUMLOGFONTEXW EnumLogFontEx;\r
+ NEWTEXTMETRICEXW NewTextMetricEx;\r
+ DWORD FontType;\r
+} FONTFAMILYINFO, *PFONTFAMILYINFO;\r
+\r
+/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */\r
+HFONT\r
+NTAPI\r
+NtGdiCreateFontIndirect(CONST LPLOGFONTW lf);\r
+\r
+/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */\r
+HFONT\r
+NTAPI\r
+NtGdiCreateFont(\r
+ int Height,\r
+ int Width,\r
+ int Escapement,\r
+ int Orientation,\r
+ int Weight,\r
+ DWORD Italic,\r
+ DWORD Underline,\r
+ DWORD StrikeOut,\r
+ DWORD CharSet,\r
+ DWORD OutputPrecision,\r
+ DWORD ClipPrecision,\r
+ DWORD Quality,\r
+ DWORD PitchAndFamily,\r
+ LPCWSTR Face\r
+);\r
+\r
+/* Should be using NtGdiEnumFontChunk */\r
+INT\r
+NTAPI\r
+NtGdiGetFontFamilyInfo(\r
+ HDC Dc,\r
+ LPLOGFONTW LogFont,\r
+ PFONTFAMILYINFO Info,\r
+ DWORD Size\r
+);\r
+\r
+/* Should be using NtGdiEnumFontChunk */\r
+BOOL\r
+NTAPI\r
+NtGdiTranslateCharsetInfo(\r
+ PDWORD Src,\r
+ LPCHARSETINFO CSI,\r
+ DWORD Flags\r
+);\r
+\r
+/* The gdi32 call does all the work in user-mode, save for NtGdiMakeFontDir */\r
+BOOL\r
+NTAPI\r
+NtGdiCreateScalableFontResource(\r
+ DWORD Hidden,\r
+ LPCWSTR FontRes,\r
+ LPCWSTR FontFile,\r
+ LPCWSTR CurrentPath\r
+);\r
+\r
+/* The gdi32 call Should Use NtGdiGetRandomRgn and nothing else */\r
+HRGN\r
+NTAPI\r
+NtGdiGetClipRgn(HDC hDC);\r
+\r
+/* The gdi32 call Should Use NtGdiGetTextExtent */\r
+BOOL\r
+NTAPI\r
+NtGdiGetTextExtentPoint32(\r
+ HDC hDC,\r
+ LPCWSTR String,\r
+ int Count,\r
+ LPSIZE \r
+);\r
+\r
+BOOL\r
+STDCALL\r
+NtGdiGetCharWidth32(\r
+ HDC hDC,\r
+ UINT FirstChar,\r
+ UINT LastChar,\r
+ LPINT Buffer\r
+);\r
+\r
+/* Use NtGdiOpenDCW */\r
+HDC\r
+NTAPI \r
+NtGdiCreateDC(\r
+ PUNICODE_STRING Driver,\r
+ PUNICODE_STRING Device,\r
+ PUNICODE_STRING Output,\r
+ CONST PDEVMODEW InitData\r
+);\r
+\r
+HDC\r
+NTAPI\r
+NtGdiCreateIC(\r
+ PUNICODE_STRING Driver,\r
+ PUNICODE_STRING Device,\r
+ PUNICODE_STRING Output,\r
+ CONST PDEVMODEW DevMode\r
+);\r
+\r
+/* Use NtGdiAddFontResourceW */\r
+int\r
+STDCALL\r
+NtGdiAddFontResource(PUNICODE_STRING Filename,\r
+ DWORD fl);\r
+\r
+/* Use NtGdiDoPalette with GdiPalAnimate */\r
+BOOL\r
+STDCALL\r
+NtGdiAnimatePalette (\r
+ HPALETTE hpal,\r
+ UINT StartIndex,\r
+ UINT Entries,\r
+ CONST PPALETTEENTRY ppe\r
+ );\r
+\r
+/* Use NtGdiArcInternal with GdiTypeArc */\r
+BOOL\r
+STDCALL\r
+NtGdiArc(HDC hDC,\r
+ int LeftRect,\r
+ int TopRect,\r
+ int RightRect, \r
+ int BottomRect,\r
+ int XStartArc,\r
+ int YStartArc,\r
+ int XEndArc, \r
+ int YEndArc);\r
+\r
+/* Use NtGdiArcInternal with GdiTypeArcTo */\r
+BOOL\r
+STDCALL\r
+NtGdiArcTo(HDC hDC,\r
+ int LeftRect,\r
+ int TopRect,\r
+ int RightRect,\r
+ int BottomRect,\r
+ int XRadial1,\r
+ int YRadial1,\r
+ int XRadial2,\r
+ int YRadial2);\r
+\r
+/* Does not exist */\r
+BOOL\r
+STDCALL\r
+NtGdiCheckColorsInGamut(HDC hDC,\r
+ LPVOID RGBTriples,\r
+ LPVOID Buffer,\r
+ UINT Count);\r
+\r
+/* Use NtGdiArcInternal with GdiTypeChord */\r
+BOOL\r
+STDCALL\r
+NtGdiChord(HDC hDC,\r
+ int LeftRect,\r
+ int TopRect,\r
+ int RightRect,\r
+ int BottomRect,\r
+ int XRadial1,\r
+ int YRadial1,\r
+ int XRadial2,\r
+ int YRadial2);\r
+\r
+/* Metafiles are user mode */\r
+HENHMETAFILE\r
+STDCALL\r
+NtGdiCloseEnhMetaFile (\r
+ HDC hDC\r
+ );\r
+\r
+/* Metafiles are user mode */\r
+HMETAFILE\r
+STDCALL\r
+NtGdiCloseMetaFile (\r
+ HDC hDC\r
+ );\r
+\r
+/* Does not exist */\r
+BOOL\r
+STDCALL\r
+NtGdiColorMatchToTarget(HDC hDC,\r
+ HDC hDCTarget, \r
+ DWORD Action);\r
+\r
+/* Metafiles are user mode */\r
+HENHMETAFILE\r
+STDCALL\r
+NtGdiCopyEnhMetaFile (\r
+ HENHMETAFILE Src,\r
+ LPCWSTR File\r
+ );\r
+\r
+/* Metafiles are user mode */\r
+HMETAFILE\r
+STDCALL\r
+NtGdiCopyMetaFile (\r
+ HMETAFILE Src,\r
+ LPCWSTR File\r
+ );\r
+\r
+/* Use NtGdiCreateBitmap and expand the pbm-> */\r
+HBITMAP\r
+STDCALL\r
+NtGdiCreateBitmapIndirect (\r
+ CONST BITMAP * BM\r
+ );\r
+\r
+/* Use NtGdiCreateDIBitmapInternal */\r
+HBITMAP\r
+STDCALL\r
+NtGdiCreateDIBitmap (\r
+ HDC hDC,\r
+ CONST BITMAPINFOHEADER * bmih,\r
+ DWORD Init,\r
+ CONST VOID * bInit,\r
+ CONST BITMAPINFO * bmi,\r
+ UINT Usage\r
+ );\r
+\r
+/* Use NtGdiCreateCompatibleBitmap */\r
+HBITMAP\r
+STDCALL\r
+NtGdiCreateDiscardableBitmap (\r
+ HDC hDC,\r
+ INT Width,\r
+ INT Height\r
+ );\r
+\r
+/* Use NtGdiCreateEllipticRgn and expand the lprect-> */\r
+HRGN\r
+STDCALL\r
+NtGdiCreateEllipticRgnIndirect(CONST PRECT rc);\r
+\r
+/* Metafiles are user mode */\r
+HDC\r
+STDCALL\r
+NtGdiCreateEnhMetaFile (\r
+ HDC hDCRef,\r
+ LPCWSTR File,\r
+ CONST LPRECT Rect,\r
+ LPCWSTR Description\r
+ );\r
+\r
+/* Use NtGdiCreateHatchBrushInternal with FALSE at the end. */\r
+HBRUSH STDCALL\r
+NtGdiCreateHatchBrush(\r
+ INT Style,\r
+ COLORREF Color);\r
+\r
+/* Metafiles are user mode */\r
+HDC\r
+STDCALL\r
+NtGdiCreateMetaFile (\r
+ LPCWSTR File\r
+ );\r
+\r
+/* Use NtGdiCreatePaletteInternal with palNumEntries at the end. */\r
+HPALETTE\r
+STDCALL\r
+NtGdiCreatePalette (\r
+ CONST PLOGPALETTE lgpl\r
+ );\r
+\r
+/* Use NtGdiCreatePatternBrushInternal with false, false at the end. */\r
+HBRUSH STDCALL\r
+NtGdiCreatePatternBrush(\r
+ HBITMAP hBitmap);\r
+\r
+/* Use NtGdiCreatePen with -> as parameters. */\r
+HPEN STDCALL\r
+NtGdiCreatePenIndirect(\r
+ CONST PLOGPEN LogBrush);\r
+\r
+/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */\r
+HRGN\r
+STDCALL\r
+NtGdiCreatePolygonRgn(CONST PPOINT pt,\r
+ INT Count,\r
+ INT PolyFillMode);\r
+\r
+/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */\r
+HRGN\r
+STDCALL\r
+NtGdiCreatePolyPolygonRgn(CONST PPOINT pt,\r
+ CONST PINT PolyCounts,\r
+ INT Count,\r
+ INT PolyFillMode);\r
+\r
+/* Use NtGdiCreateRectRgn with expanded paraemters. */\r
+HRGN\r
+STDCALL\r
+NtGdiCreateRectRgnIndirect(CONST PRECT rc);\r
+\r
+/* Use NtGdiTransformPoints with GdiDpToLp. */\r
+BOOL\r
+STDCALL\r
+NtGdiDPtoLP (\r
+ HDC hDC,\r
+ LPPOINT Points,\r
+ int Count\r
+ );\r
+\r
+/* Use NtGdiDeleteObjectApp. */\r
+BOOL STDCALL NtGdiDeleteDC(HDC hDC);\r
+\r
+/* Meta are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiDeleteEnhMetaFile (\r
+ HENHMETAFILE emf\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiDeleteMetaFile (\r
+ HMETAFILE mf\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject);\r
+\r
+/* Meta are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiEnumEnhMetaFile (\r
+ HDC hDC,\r
+ HENHMETAFILE emf,\r
+ ENHMFENUMPROC EnhMetaFunc,\r
+ LPVOID Data,\r
+ CONST LPRECT Rect\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+int\r
+STDCALL\r
+NtGdiEnumFonts(HDC hDC,\r
+ LPCWSTR FaceName,\r
+ FONTENUMPROCW FontFunc,\r
+ LPARAM lParam);\r
+\r
+/* Should be done in user-mode. */\r
+INT\r
+STDCALL\r
+NtGdiEnumICMProfiles(HDC hDC,\r
+ LPWSTR lpstrBuffer,\r
+ UINT cch );\r
+\r
+/* Meta are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiEnumMetaFile (\r
+ HDC hDC,\r
+ HMETAFILE mf,\r
+ MFENUMPROC MetaFunc,\r
+ LPARAM lParam\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+INT\r
+STDCALL\r
+NtGdiEscape(HDC hDC,\r
+ INT Escape,\r
+ INT InSize,\r
+ LPCSTR InData,\r
+ LPVOID OutData);\r
+\r
+/* Use NtGdiExtTextOutW with 0, 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiExtTextOut(HDC hdc,\r
+ int X,\r
+ int Y,\r
+ UINT fuOptions,\r
+ CONST RECT *lprc,\r
+ LPCWSTR lpString,\r
+ UINT cbCount,\r
+ CONST INT *lpDx);\r
+\r
+/* Use NtGdiExtFloodFill with FLOODFILLBORDER. */\r
+BOOL\r
+STDCALL\r
+NtGdiFloodFill (\r
+ HDC hDC,\r
+ INT XStart,\r
+ INT YStart,\r
+ COLORREF Fill\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGdiComment (\r
+ HDC hDC,\r
+ UINT Size,\r
+ CONST LPBYTE Data\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL STDCALL NtGdiGdiFlush (VOID);\r
+\r
+/* Should be done in user-mode. */\r
+DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);\r
+\r
+/* Should be done in user-mode. */\r
+DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);\r
+\r
+/* Use NtGdiGetDCDword with GdiGetArcDirection. */\r
+INT\r
+STDCALL\r
+NtGdiGetArcDirection ( HDC hDC );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetAspectRatioFilterEx(HDC hDC,\r
+ LPSIZE AspectRatio);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetBitmapDimensionEx (\r
+ HBITMAP hBitmap,\r
+ LPSIZE Dimension\r
+ );\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+COLORREF STDCALL NtGdiGetBkColor(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetBkMode(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg);\r
+\r
+/* Use NtGdiGetCharABCWidthsW */\r
+BOOL\r
+STDCALL\r
+NtGdiGetCharABCWidths(HDC hDC,\r
+ UINT FirstChar,\r
+ UINT LastChar,\r
+ LPABC abc);\r
+\r
+/* Should be done in user mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetCharABCWidthsFloat(HDC hDC,\r
+ UINT FirstChar,\r
+ UINT LastChar,\r
+ LPABCFLOAT abcF);\r
+\r
+/* Should be done in user mode. */\r
+DWORD\r
+STDCALL\r
+NtGdiGetCharacterPlacement(HDC hDC,\r
+ LPCWSTR String,\r
+ int Count,\r
+ int MaxExtent,\r
+ LPGCP_RESULTSW Results,\r
+ DWORD Flags);\r
+\r
+/* Should be done in user mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetCharWidthFloat(HDC hDC,\r
+ UINT FirstChar,\r
+ UINT LastChar,\r
+ PFLOAT Buffer);\r
+\r
+/* Use NtGdiGetAppClipBox. */\r
+int\r
+STDCALL\r
+NtGdiGetClipBox (\r
+ HDC hDC,\r
+ LPRECT rc\r
+ );\r
+\r
+/* Use NtGdiGetColorSpaceforBitmap. */\r
+HCOLORSPACE\r
+STDCALL\r
+NtGdiGetColorSpace(HDC hDC);\r
+\r
+/* Should be done in user-mode and/or NtGdiGetDCObject. */\r
+HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType);\r
+\r
+/* Should be done in user mode. */\r
+BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition);\r
+\r
+/* Use NtGdiGetDCPoint with GdiGetDCOrg. */\r
+BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point);\r
+\r
+/* Use NtGdiDoPalette with GdiPalGetColorTable. */\r
+UINT\r
+STDCALL\r
+NtGdiGetDIBColorTable (\r
+ HDC hDC,\r
+ UINT StartIndex,\r
+ UINT Entries,\r
+ RGBQUAD * Colors\r
+ );\r
+\r
+/* Use NtGdiGetDIBitsInternal. */\r
+INT\r
+STDCALL\r
+NtGdiGetDIBits (\r
+ HDC hDC,\r
+ HBITMAP hBitmap,\r
+ UINT StartScan,\r
+ UINT ScanLines,\r
+ LPVOID Bits,\r
+ LPBITMAPINFO bi,\r
+ UINT Usage\r
+ );\r
+\r
+\r
+/* Meta are user-mode. */\r
+HENHMETAFILE\r
+STDCALL\r
+NtGdiGetEnhMetaFile (\r
+ LPCWSTR MetaFile\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetEnhMetaFileBits (\r
+ HENHMETAFILE hemf,\r
+ UINT BufSize,\r
+ LPBYTE Buffer\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetEnhMetaFileDescription (\r
+ HENHMETAFILE hemf,\r
+ UINT BufSize,\r
+ LPWSTR Description\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetEnhMetaFileHeader (\r
+ HENHMETAFILE hemf,\r
+ UINT BufSize,\r
+ LPENHMETAHEADER emh\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetEnhMetaFilePaletteEntries (\r
+ HENHMETAFILE hemf,\r
+ UINT Entries,\r
+ LPPALETTEENTRY pe\r
+ );\r
+\r
+/* Meta are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,\r
+ DWORD BufSize, \r
+ CONST PPIXELFORMATDESCRIPTOR pfd);\r
+\r
+/* Should be done in user-mode. */\r
+DWORD\r
+STDCALL\r
+NtGdiGetFontLanguageInfo(HDC hDC);\r
+\r
+/* Should be done in user-mode. */\r
+int\r
+STDCALL\r
+NtGdiGetGraphicsMode ( HDC hDC );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetICMProfile(HDC hDC, \r
+ LPDWORD NameSize,\r
+ LPWSTR Filename);\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,\r
+ LPLOGCOLORSPACEW Buffer,\r
+ DWORD Size);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetMapMode(HDC hDC);\r
+\r
+/* Meta files are user-mode. */\r
+HMETAFILE\r
+STDCALL\r
+NtGdiGetMetaFile (\r
+ LPCWSTR MetaFile\r
+ );\r
+\r
+/* Meta files are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetMetaFileBitsEx (\r
+ HMETAFILE hmf,\r
+ UINT Size,\r
+ LPVOID Data\r
+ );\r
+\r
+/* Meta files are user-mode. */\r
+int\r
+STDCALL\r
+NtGdiGetMetaRgn (\r
+ HDC hDC,\r
+ HRGN hrgn\r
+ );\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj,\r
+ INT BufSize,\r
+ LPVOID Object);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj);\r
+\r
+/* Use NtGdiGetOutlineTextMetricsInternalW. */\r
+UINT\r
+STDCALL\r
+NtGdiGetOutlineTextMetrics(HDC hDC,\r
+ UINT Data,\r
+ LPOUTLINETEXTMETRICW otm);\r
+\r
+/* Use NtGdiDoPalette with GdiPalGetEntries. */\r
+UINT\r
+STDCALL\r
+NtGdiGetPaletteEntries (\r
+ HPALETTE hpal,\r
+ UINT StartIndex,\r
+ UINT Entries,\r
+ LPPALETTEENTRY pe\r
+ );\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT\r
+STDCALL\r
+NtGdiGetPixelFormat(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetPolyFillMode(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetROP2(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetRelAbs(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+INT STDCALL NtGdiGetStretchBltMode(HDC hDC);\r
+\r
+/* Use NtGdiDoPalette with GdiPalSetSystemEntries. */\r
+UINT\r
+STDCALL\r
+NtGdiGetSystemPaletteEntries (\r
+ HDC hDC,\r
+ UINT StartIndex,\r
+ UINT Entries,\r
+ LPPALETTEENTRY pe\r
+ );\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+UINT STDCALL NtGdiGetTextAlign(HDC hDC);\r
+\r
+/* Should be done in user-mode using shared GDI Objects. */\r
+UINT\r
+STDCALL\r
+NtGdiGetTextCharset(HDC hDC);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+COLORREF STDCALL NtGdiGetTextColor(HDC hDC);\r
+\r
+/* Rename to NtGdiGetTextExtentExW. Add 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetTextExtentExPoint(HDC hDC,\r
+ LPCWSTR String,\r
+ int Count,\r
+ int MaxExtent,\r
+ LPINT Fit,\r
+ LPINT Dx,\r
+ LPSIZE Size);\r
+\r
+/* Rename to NtGdiGetTextExtent. Add 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiGetTextExtentPoint(HDC hDC,\r
+ LPCWSTR String,\r
+ int Count,\r
+ LPSIZE Size);\r
+\r
+/* Rename to NtGdiGetTextFaceW, add FALSE at the end. */\r
+int\r
+STDCALL\r
+NtGdiGetTextFace(HDC hDC,\r
+ int Count,\r
+ LPWSTR FaceName);\r
+\r
+/* Use NtGdiGetTextMetricsW with 0 at the end */\r
+BOOL\r
+STDCALL\r
+NtGdiGetTextMetrics(HDC hDC,\r
+ LPTEXTMETRICW tm);\r
+\r
+/* Use NtGdiGetDCPoint with GdiGetViewPortExt */\r
+BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg);\r
+\r
+/* Metafiles are user-mode. */\r
+UINT\r
+STDCALL\r
+NtGdiGetWinMetaFileBits (\r
+ HENHMETAFILE hemf,\r
+ UINT BufSize,\r
+ LPBYTE Buffer,\r
+ INT MapMode,\r
+ HDC Ref\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt);\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg);\r
+\r
+/* Use NtGdiGetTransform with GdiWorldSpaceToPageSpace */\r
+BOOL\r
+STDCALL\r
+NtGdiGetWorldTransform (\r
+ HDC hDC,\r
+ LPXFORM Xform\r
+ );\r
+\r
+/* Use NtGdiTransformPoints with GdiDpToLp */\r
+BOOL\r
+STDCALL\r
+NtGdiLPtoDP (\r
+ HDC hDC,\r
+ LPPOINT Points,\r
+ int Count\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiMoveToEx(HDC hDC,\r
+ int X,\r
+ int Y,\r
+ LPPOINT Point);\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiOffsetViewportOrgEx (\r
+ HDC hDC,\r
+ int XOffset,\r
+ int YOffset,\r
+ LPPOINT Point\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiOffsetWindowOrgEx (\r
+ HDC hDC,\r
+ int XOffset,\r
+ int YOffset,\r
+ LPPOINT Point\r
+ );\r
+\r
+/* Use NtGdiFillRgn. Add 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiPaintRgn(HDC hDC,\r
+ HRGN hRgn);\r
+\r
+/* Use NtGdiArcInternal with GdiTypePie. */\r
+BOOL\r
+STDCALL\r
+NtGdiPie(HDC hDC,\r
+ int LeftRect,\r
+ int TopRect,\r
+ int RightRect,\r
+ int BottomRect,\r
+ int XRadial1,\r
+ int YRadial1,\r
+ int XRadial2,\r
+ int YRadial2);\r
+\r
+/* Metafiles are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiPlayEnhMetaFile (\r
+ HDC hDC,\r
+ HENHMETAFILE hemf,\r
+ CONST PRECT Rect\r
+ );\r
+\r
+/* Metafiles are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiPlayEnhMetaFileRecord (\r
+ HDC hDC,\r
+ LPHANDLETABLE Handletable,\r
+ CONST ENHMETARECORD * EnhMetaRecord,\r
+ UINT Handles\r
+ );\r
+\r
+/* Metafiles are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiPlayMetaFile (\r
+ HDC hDC,\r
+ HMETAFILE hmf\r
+ );\r
+\r
+/* Metafiles are user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiPlayMetaFileRecord (\r
+ HDC hDC,\r
+ LPHANDLETABLE Handletable,\r
+ LPMETARECORD MetaRecord,\r
+ UINT Handles\r
+ );\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyBezier. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyBezier(HDC hDC,\r
+ CONST LPPOINT pt,\r
+ DWORD Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyBezierTo. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyBezierTo(HDC hDC,\r
+ CONST LPPOINT pt,\r
+ DWORD Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyline(HDC hDC,\r
+ CONST LPPOINT pt,\r
+ int Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyLineTo. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolylineTo(HDC hDC,\r
+ CONST LPPOINT pt,\r
+ DWORD Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyPolyline(HDC hDC,\r
+ CONST LPPOINT pt,\r
+ CONST LPDWORD PolyPoints,\r
+ DWORD Count);\r
+\r
+/* Use NtGdiPolyTextOutW with 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyTextOut(HDC hDC,\r
+ CONST LPPOLYTEXTW txt,\r
+ int Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolygon(HDC hDC,\r
+ CONST PPOINT Points,\r
+ int Count);\r
+\r
+/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */\r
+BOOL\r
+STDCALL\r
+NtGdiPolyPolygon(HDC hDC,\r
+ CONST LPPOINT Points,\r
+ CONST LPINT PolyCounts,\r
+ int Count);\r
+\r
+/* Call UserRealizePalette. */\r
+UINT\r
+STDCALL\r
+NtGdiRealizePalette (\r
+ HDC hDC\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiRemoveFontResource(LPCWSTR FileName);\r
+\r
+/* Use NtGdiExtSelectClipRgn with RGN_COPY. */\r
+int\r
+STDCALL\r
+NtGdiSelectClipRgn (\r
+ HDC hDC,\r
+ HRGN hrgn\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);\r
+\r
+/* Use NtUserSelectPalette. */\r
+HPALETTE\r
+STDCALL\r
+NtGdiSelectPalette (\r
+ HDC hDC,\r
+ HPALETTE hpal,\r
+ BOOL ForceBackground\r
+ );\r
+\r
+/* Should be done in user-mode. */\r
+INT\r
+STDCALL\r
+NtGdiSetAbortProc(HDC hDC,\r
+ ABORTPROC AbortProc);\r
+\r
+/* Use NtGdiGetAndSetDCDword with GdiGetSetArcDirection. */\r
+int\r
+STDCALL\r
+NtGdiSetArcDirection(HDC hDC,\r
+ int ArcDirection);\r
+\r
+/* Use NtGdiSetBitmapDimension. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetBitmapDimensionEx (\r
+ HBITMAP hBitmap,\r
+ INT Width,\r
+ INT Height,\r
+ LPSIZE Size\r
+ );\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode);\r
+\r
+/* Use NtGdiSetBrushOrg. */\r
+BOOL STDCALL\r
+NtGdiSetBrushOrgEx(\r
+ HDC hDC,\r
+ INT XOrg,\r
+ INT YOrg,\r
+ LPPOINT Point);\r
+\r
+/* Use NtGdiDoPalette with GdiPalSetColorTable, TRUE. */\r
+UINT\r
+STDCALL\r
+NtGdiSetDIBColorTable (\r
+ HDC hDC,\r
+ UINT StartIndex,\r
+ UINT Entries,\r
+ CONST RGBQUAD * Colors\r
+ );\r
+\r
+/* Use SetDIBitsToDevice in gdi32. */\r
+INT\r
+STDCALL\r
+NtGdiSetDIBits (\r
+ HDC hDC,\r
+ HBITMAP hBitmap,\r
+ UINT StartScan,\r
+ UINT ScanLines,\r
+ CONST VOID * Bits,\r
+ CONST BITMAPINFO * bmi,\r
+ UINT ColorUse\r
+ );\r
+\r
+/* Use NtGdiSetDIBitsToDeviceInternal. */\r
+INT\r
+STDCALL\r
+NtGdiSetDIBitsToDevice (\r
+ HDC hDC,\r
+ INT XDest,\r
+ INT YDest,\r
+ DWORD Width,\r
+ DWORD Height,\r
+ INT XSrc,\r
+ INT YSrc,\r
+ UINT StartScan,\r
+ UINT ScanLines,\r
+ CONST VOID * Bits,\r
+ CONST BITMAPINFO * bmi,\r
+ UINT ColorUse\r
+ );\r
+\r
+/* Metafiles are user-mode. */\r
+HENHMETAFILE\r
+STDCALL\r
+NtGdiSetEnhMetaFileBits (\r
+ UINT BufSize,\r
+ CONST PBYTE Data\r
+ );\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+int\r
+STDCALL\r
+NtGdiSetGraphicsMode (\r
+ HDC hDC,\r
+ int Mode\r
+ );\r
+\r
+/* Use NtGdiSetIcmMode. */\r
+INT\r
+STDCALL\r
+NtGdiSetICMMode(HDC hDC,\r
+ INT EnableICM);\r
+\r
+/* Should be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetICMProfile(HDC hDC,\r
+ LPWSTR Filename);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+int\r
+STDCALL\r
+NtGdiSetMapMode (\r
+ HDC hDC,\r
+ int MapMode\r
+ );\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+DWORD\r
+STDCALL\r
+NtGdiSetMapperFlags(HDC hDC,\r
+ DWORD Flag);\r
+\r
+/* Metafiles are user-mode. */\r
+HMETAFILE\r
+STDCALL\r
+NtGdiSetMetaFileBitsEx (\r
+ UINT Size,\r
+ CONST PBYTE Data\r
+ );\r
+\r
+/* Use NtGdiDoPalette with GdiPalSetEntries, TRUE. */\r
+UINT\r
+STDCALL\r
+NtGdiSetPaletteEntries (\r
+ HPALETTE hpal,\r
+ UINT Start,\r
+ UINT Entries,\r
+ CONST LPPALETTEENTRY pe\r
+ );\r
+\r
+/* Use NtGdiSetPixel(hdc, x, y, color) != CLR_INVALID; */\r
+BOOL\r
+STDCALL\r
+NtGdiSetPixelV (\r
+ HDC hDC,\r
+ INT X,\r
+ INT Y,\r
+ COLORREF Color\r
+ );\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+UINT\r
+STDCALL\r
+NtGdiSetTextAlign(HDC hDC,\r
+ UINT Mode);\r
+\r
+/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
+COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color);\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetWindowExtEx (\r
+ HDC hDC,\r
+ int XExtent,\r
+ int YExtent,\r
+ LPSIZE Size\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetViewportOrgEx (\r
+ HDC hDC,\r
+ int X,\r
+ int Y,\r
+ LPPOINT Point\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetViewportExtEx (\r
+ HDC hDC,\r
+ int XExtent,\r
+ int YExtent,\r
+ LPSIZE Size\r
+ );\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiSetWindowOrgEx (\r
+ HDC hDC,\r
+ int X,\r
+ int Y,\r
+ LPPOINT Point\r
+ );\r
+\r
+/* Use NtGdiModifyWorldTransform with MWT_MAX + 1; */\r
+BOOL\r
+STDCALL\r
+NtGdiSetWorldTransform (\r
+ HDC hDC,\r
+ CONST LPXFORM Xform\r
+ );\r
+\r
+/* Use NtGdiStretchDIBitsInternal. */\r
+INT\r
+STDCALL\r
+NtGdiStretchDIBits (\r
+ HDC hDC,\r
+ INT XDest,\r
+ INT YDest,\r
+ INT DestWidth,\r
+ INT DestHeight,\r
+ INT XSrc,\r
+ INT YSrc,\r
+ INT SrcWidth,\r
+ INT SrcHeight,\r
+ CONST VOID * Bits,\r
+ CONST BITMAPINFO * BitsInfo,\r
+ UINT Usage,\r
+ DWORD ROP\r
+ );\r
+\r
+/* Use NtGdiExtTextOutW with 0, 0 at the end. */\r
+BOOL\r
+STDCALL\r
+NtGdiTextOut(HDC hDC,\r
+ int XStart,\r
+ int YStart,\r
+ LPCWSTR String,\r
+ int Count);\r
+\r
+/* Needs to be done in user-mode. */\r
+BOOL\r
+STDCALL\r
+NtGdiUpdateICMRegKey(DWORD Reserved, \r
+ LPWSTR CMID, \r
+ LPWSTR Filename,\r
+ UINT Command);\r
+\r
+/* These shouldn't even be called NtGdi */\r
+HDC STDCALL NtGdiGetDCState(HDC hDC);\r
+WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags);\r
+INT\r
+STDCALL\r
+NtGdiSelectVisRgn(HDC hdc,\r
+ HRGN hrgn);\r
+VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave );\r
+\r
+/* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */\r
+DWORD\r
+NTAPI\r
+NtUserCallTwoParam(\r
+ DWORD Param1,\r
+ DWORD Param2,\r
+ DWORD Routine);\r
+\r
+#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45\r
+#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46\r
+#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47\r
+\r
+#define NtUserGetDCBrushColor(hbr) \\r
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)\r
+\r
+#define NtUserGetDCPenColor(hbr) \\r
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)\r
+\r
+#define NtUserSetDCBrushColor(hbr, crColor) \\r
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)\r
+\r
+#define NtUserSetDCPenColor(hbr, crColor) \\r
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)\r
+\r
+#endif /* WIN32K_NTGDI_BAD_INCLUDED */\r
--- /dev/null
+/*\r
+ * COPYRIGHT: See COPYING in the top level directory\r
+ * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)\r
+ * FILE: include/win32k/ntgdihal.h\r
+ * PURPOSE: Win32 Shared GDI Handle/Object Types\r
+ * PROGRAMMER: Alex Ionescu (alex@relsoft.net)\r
+ */\r
+\r
+/* INCLUDES ******************************************************************/\r
+\r
+#ifndef _NTGDIHDL_\r
+#define _NTGDIHDL_\r
+\r
+/* DEFINES *******************************************************************/\r
+\r
+/* Base address where the handle table is mapped to */\r
+#define GDI_HANDLE_TABLE_BASE_ADDRESS (0x400000)\r
+\r
+/* GDI handle table can hold 0x4000 handles */\r
+#define GDI_HANDLE_COUNT 0x4000\r
+#define GDI_GLOBAL_PROCESS (0x0)\r
+\r
+/* Handle Masks and shifts */\r
+#define GDI_HANDLE_INDEX_MASK (GDI_HANDLE_COUNT - 1)\r
+#define GDI_HANDLE_TYPE_MASK 0x007f0000\r
+#define GDI_HANDLE_STOCK_MASK 0x00800000\r
+#define GDI_HANDLE_REUSE_MASK 0xff000000\r
+#define GDI_HANDLE_REUSECNT_SHIFT 24\r
+\r
+/*! \defgroup GDI object types\r
+ *\r
+ * GDI object types\r
+ *\r
+ */\r
+/*@{*/\r
+#define GDI_OBJECT_TYPE_DC 0x00010000\r
+#define GDI_OBJECT_TYPE_REGION 0x00040000\r
+#define GDI_OBJECT_TYPE_BITMAP 0x00050000\r
+#define GDI_OBJECT_TYPE_PALETTE 0x00080000\r
+#define GDI_OBJECT_TYPE_FONT 0x000a0000\r
+#define GDI_OBJECT_TYPE_BRUSH 0x00100000\r
+#define GDI_OBJECT_TYPE_EMF 0x00210000\r
+#define GDI_OBJECT_TYPE_PEN 0x00300000\r
+#define GDI_OBJECT_TYPE_EXTPEN 0x00500000\r
+/* Following object types made up for ROS */\r
+#define GDI_OBJECT_TYPE_METADC 0x00710000\r
+#define GDI_OBJECT_TYPE_METAFILE 0x00720000\r
+#define GDI_OBJECT_TYPE_ENHMETAFILE 0x00730000\r
+#define GDI_OBJECT_TYPE_ENHMETADC 0x00740000\r
+#define GDI_OBJECT_TYPE_MEMDC 0x00750000\r
+#define GDI_OBJECT_TYPE_DCE 0x00770000\r
+#define GDI_OBJECT_TYPE_DONTCARE 0x007f0000\r
+/** Not really an object type. Forces GDI_FreeObj to be silent. */\r
+#define GDI_OBJECT_TYPE_SILENT 0x80000000\r
+/*@}*/\r
+\r
+/* Handle macros */\r
+#define GDI_HANDLE_CREATE(i, t) \\r
+ ((HANDLE)(((i) & GDI_HANDLE_INDEX_MASK) | ((t) & GDI_HANDLE_TYPE_MASK)))\r
+\r
+#define GDI_HANDLE_GET_INDEX(h) \\r
+ (((ULONG_PTR)(h)) & GDI_HANDLE_INDEX_MASK)\r
+\r
+#define GDI_HANDLE_GET_TYPE(h) \\r
+ (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)\r
+\r
+#define GDI_HANDLE_IS_TYPE(h, t) \\r
+ ((t) == (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK))\r
+\r
+#define GDI_HANDLE_IS_STOCKOBJ(h) \\r
+ (0 != (((ULONG_PTR)(h)) & GDI_HANDLE_STOCK_MASK))\r
+\r
+#define GDI_HANDLE_SET_STOCKOBJ(h) \\r
+ ((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))\r
+\r
+/* TYPES *********************************************************************/\r
+\r
+typedef struct _GDI_TABLE_ENTRY\r
+{\r
+ PVOID KernelData; /* Points to the kernel mode structure */\r
+ HANDLE ProcessId; /* process id that created the object, 0 for stock objects */\r
+ LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */\r
+ PVOID UserData; /* Points to the user mode structure, usually NULL though */\r
+} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;\r
+\r
+#endif\r
--- /dev/null
+/*\r
+ * COPYRIGHT: See COPYING in the top level directory\r
+ * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)\r
+ * FILE: include/win32k/ntgdityp.h\r
+ * PURPOSE: Win32 Shared GDI Types for NtGdi*\r
+ * PROGRAMMER: Alex Ionescu (alex@relsoft.net)\r
+ */\r
+\r
+/* INCLUDES ******************************************************************/\r
+\r
+#ifndef _NTGDITYP_\r
+#define _NTGDITYP_\r
+\r
+/* ENUMERATIONS **************************************************************/\r
+\r
+typedef enum _ARCTYPE\r
+{\r
+ GdiTypeArc,\r
+ GdiTypeArcTo,\r
+ GdiTypeChord,\r
+ GdiTypePie,\r
+} ARCTYPE, *PARCTYPE;\r
+\r
+typedef enum _PALFUNCTYPE\r
+{\r
+ GdiPalAnimate,\r
+ GdiPalSetEntries,\r
+ GdiPalGetEntries,\r
+ GdiPalGetSystemEntries,\r
+ GdiPalSetColorTable,\r
+ GdiPalGetColorTable,\r
+} PALFUNCTYPE, *PPALFUNCTYPE;\r
+\r
+typedef enum _POLYFUNCTYPE\r
+{\r
+ GdiPolyPolygon = 1,\r
+ GdiPolyPolyLine,\r
+ GdiPolyBezier,\r
+ GdiPolyLineTo,\r
+ GdiPolyBezierTo,\r
+ GdiPolyPolyRgn,\r
+} POLYFUNCTYPE, *PPOLYFUNCTYPE;\r
+\r
+typedef enum _GETDCDWORD\r
+{\r
+ GdiGetRelAbs = 1,\r
+ GdiGetArcDirection = 4,\r
+} GETDCDWORD, *PGETDCDWORD;\r
+\r
+typedef enum _GETSETDCDWORD\r
+{\r
+ GdiGetSetArcDirection = 9,\r
+} GETSETDCDWORD, *PGETSETDCDWORD;\r
+\r
+typedef enum _GETDCPOINT\r
+{\r
+ GdiGetViewPortExt = 1,\r
+ GdiGetDCOrg = 7,\r
+} GETDCPOINT, *PGETDCPOINT;\r
+\r
+typedef enum _TRANSFORMTYPE\r
+{\r
+ GdiDpToLp,\r
+ GdiLpToDp,\r
+} TRANSFORMTYPE, *PTRANSFORMTYPE;\r
+\r
+#define GdiWorldSpaceToPageSpace 0x203\r
+\r
+/* FIXME: Unknown */\r
+typedef DWORD FULLSCREENCONTROL;\r
+typedef DWORD LFTYPE;\r
+\r
+/* TYPES *********************************************************************/\r
+\r
+typedef PVOID KERNEL_PVOID;\r
+typedef DWORD UNIVERSAL_FONT_ID;\r
+typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;\r
+typedef DWORD CHWIDTHINFO;\r
+typedef CHWIDTHINFO *PCHWIDTHINFO;\r
+typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI;\r
+\r
+/* FIXME: Unknown; easy to guess, usually based on public types and converted */\r
+typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA;\r
+typedef struct _TMDIFF TMDIFF, *PTMDIFF;\r
+typedef struct _TMW_INTERNAL TMW_INTERNAL, *PTMW_INTERNAL;\r
+typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW;\r
+typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS;\r
+typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO;\r
+\r
+#endif\r
#define __WIN32K_NTUSER_H
-ULONG STDCALL
+DWORD
+NTAPI
+NtUserBuildMenuItemList(
+ HMENU hMenu,
+ PVOID Buffer,
+ ULONG nBufSize,
+ DWORD Reserved);
+
+DWORD
+NTAPI
+NtUserCheckMenuItem(
+ HMENU hmenu,
+ UINT uIDCheckItem,
+ UINT uCheck);
+
+HMENU
+NTAPI
+NtUserCreateMenu(BOOL PopupMenu);
+
+BOOL
+NTAPI
+NtUserDeleteMenu(
+ HMENU hMenu,
+ UINT uPosition,
+ UINT uFlags);
+
+BOOL
+NTAPI
+NtUserDestroyMenu(
+ HMENU hMenu);
+
+DWORD
+NTAPI
+NtUserDrawMenuBarTemp(
+ HWND hWnd,
+ HDC hDC,
+ PRECT hRect,
+ HMENU hMenu,
+ HFONT hFont);
+
+UINT
+NTAPI
+NtUserEnableMenuItem(
+ HMENU hMenu,
+ UINT uIDEnableItem,
+ UINT uEnable);
+
+DWORD
+NTAPI
+NtUserInsertMenuItem(
+ HMENU hMenu,
+ UINT uItem,
+ BOOL fByPosition,
+ LPCMENUITEMINFOW lpmii);
+
+BOOL
+NTAPI
+NtUserEndMenu(VOID);
+
+UINT NTAPI
+NtUserGetMenuDefaultItem(
+ HMENU hMenu,
+ UINT fByPos,
+ UINT gmdiFlags);
+
+BOOL
+NTAPI
+NtUserGetMenuBarInfo(
+ HWND hwnd,
+ LONG idObject,
+ LONG idItem,
+ PMENUBARINFO pmbi);
+
+UINT
+NTAPI
+NtUserGetMenuIndex(
+ HMENU hMenu,
+ UINT wID);
+
+BOOL
+NTAPI
+NtUserGetMenuItemRect(
+ HWND hWnd,
+ HMENU hMenu,
+ UINT uItem,
+ LPRECT lprcItem);
+
+HMENU
+NTAPI
+NtUserGetSystemMenu(
+ HWND hWnd,
+ BOOL bRevert);
+
+BOOL
+NTAPI
+NtUserHiliteMenuItem(
+ HWND hwnd,
+ HMENU hmenu,
+ UINT uItemHilite,
+ UINT uHilite);
+
+BOOL
+NTAPI
+NtUserMenuInfo(
+ HMENU hmenu,
+ PROSMENUINFO lpmi,
+ BOOL fsog
+);
+
+int
+NTAPI
+NtUserMenuItemFromPoint(
+ HWND hWnd,
+ HMENU hMenu,
+ DWORD X,
+ DWORD Y);
+
+BOOL
+NTAPI
+NtUserMenuItemInfo(
+ HMENU hMenu,
+ UINT uItem,
+ BOOL fByPosition,
+ PROSMENUITEMINFO lpmii,
+ BOOL fsog
+);
+
+BOOL
+NTAPI
+NtUserRemoveMenu(
+ HMENU hMenu,
+ UINT uPosition,
+ UINT uFlags);
+
+BOOL
+NTAPI
+NtUserSetMenu(
+ HWND hWnd,
+ HMENU hMenu,
+ BOOL bRepaint);
+
+BOOL
+NTAPI
+NtUserSetMenuContextHelpId(
+ HMENU hmenu,
+ DWORD dwContextHelpId);
+
+BOOL
+NTAPI
+NtUserSetMenuDefaultItem(
+ HMENU hMenu,
+ UINT uItem,
+ UINT fByPos);
+
+BOOL
+NTAPI
+NtUserSetMenuFlagRtoL(
+ HMENU hMenu);
+
+BOOL
+NTAPI
+NtUserSetSystemMenu(
+ HWND hWnd,
+ HMENU hMenu);
+
+DWORD
+NTAPI
+NtUserThunkedMenuInfo(
+ HMENU hMenu,
+ LPCMENUINFO lpcmi);
+
+DWORD
+NTAPI
+NtUserThunkedMenuItemInfo(
+ HMENU hMenu,
+ UINT uItem,
+ BOOL fByPosition,
+ BOOL bInsert,
+ LPMENUITEMINFOW lpmii,
+ PUNICODE_STRING lpszCaption);
+
+BOOL
+NTAPI
+NtUserTrackPopupMenuEx(
+ HMENU hmenu,
+ UINT fuFlags,
+ int x,
+ int y,
+ HWND hwnd,
+ LPTPMPARAMS lptpm);
+
+ULONG NTAPI
NtUserGetSystemMetrics(ULONG Index);
-DWORD STDCALL
+DWORD NTAPI
NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi);
-LONG STDCALL
+LONG NTAPI
NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi);
-INT STDCALL
+INT NTAPI
NtUserReleaseDC(HWND hWnd, HDC hDc);
-BOOL STDCALL
+BOOL NTAPI
NtUserGetWindowRect(HWND hWnd, LPRECT Rect);
-BOOL STDCALL
+BOOL NTAPI
NtUserGetClientRect(HWND hWnd, LPRECT Rect);
-HANDLE STDCALL
+HANDLE NTAPI
NtUserGetProp(HWND hWnd, ATOM Atom);
-BOOL STDCALL
+BOOL NTAPI
NtUserGetClientOrigin(HWND hWnd, LPPOINT Point);
-HWND STDCALL
+HWND NTAPI
NtUserGetDesktopWindow();
NTSTATUS
-STDCALL
+NTAPI
NtUserAcquireOrReleaseInputOwnership(
BOOLEAN Release);
DWORD
-STDCALL
+NTAPI
NtUserActivateKeyboardLayout(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserAlterWindowStyle(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserAttachThreadInput(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
-HDC STDCALL
+HDC NTAPI
NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs);
DWORD
-STDCALL
+NTAPI
NtUserBitBltSysBmp(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown7);
BOOL
-STDCALL
+NTAPI
NtUserBlockInput(
BOOL BlockIt);
ULONG
-STDCALL
+NTAPI
NtUserBuildHwndList(
HDESK hDesktop,
HWND hwndParent,
HWND* pWnd,
ULONG nBufSize);
-NTSTATUS STDCALL
+NTSTATUS NTAPI
NtUserBuildNameList(
HWINSTA hWinSta,
ULONG dwSize,
PULONG pRequiredSize);
NTSTATUS
-STDCALL
+NTAPI
NtUserBuildPropList(
HWND hWnd,
LPVOID Buffer,
};
DWORD
-STDCALL
+NTAPI
NtUserCallHwnd(
DWORD Unknown0,
DWORD Unknown1);
#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B
#define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E
BOOL
-STDCALL
+NTAPI
NtUserCallHwndLock(
HWND hWnd,
DWORD Routine);
#define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
#define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
HWND
-STDCALL
+NTAPI
NtUserCallHwndOpt(
HWND Param,
DWORD Routine);
DWORD
-STDCALL
+NTAPI
NtUserCallHwndParam(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserCallHwndParamLock(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
BOOL
-STDCALL
+NTAPI
NtUserCallMsgFilter(
LPMSG msg,
INT code);
LRESULT
-STDCALL
+NTAPI
NtUserCallNextHookEx(
HHOOK Hook,
int Code,
#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006
#define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007
DWORD
-STDCALL
+NTAPI
NtUserCallNoParam(
DWORD Routine);
#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28
#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29
DWORD
-STDCALL
+NTAPI
NtUserCallOneParam(
DWORD Param,
DWORD Routine);
#define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66
#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000
DWORD
-STDCALL
+NTAPI
NtUserCallTwoParam(
DWORD Param1,
DWORD Param2,
DWORD Routine);
BOOL
-STDCALL
+NTAPI
NtUserChangeClipboardChain(
HWND hWndRemove,
HWND hWndNewNext);
LONG
-STDCALL
+NTAPI
NtUserChangeDisplaySettings(
PUNICODE_STRING lpszDeviceName,
LPDEVMODEW lpDevMode,
DWORD dwflags,
LPVOID lParam);
-HWND STDCALL
+HWND NTAPI
NtUserChildWindowFromPointEx(HWND Parent,
LONG x,
LONG y,
UINT Flags);
BOOL
-STDCALL
+NTAPI
NtUserClipCursor(
RECT *lpRect);
BOOL
-STDCALL
+NTAPI
NtUserCloseClipboard(VOID);
BOOL
-STDCALL
+NTAPI
NtUserCloseDesktop(
HDESK hDesktop);
BOOL
-STDCALL
+NTAPI
NtUserCloseWindowStation(
HWINSTA hWinSta);
DWORD
-STDCALL
+NTAPI
NtUserConvertMemHandle(
DWORD Unknown0,
DWORD Unknown1);
int
-STDCALL
+NTAPI
NtUserCopyAcceleratorTable(
HACCEL Table,
LPACCEL Entries,
int EntriesCount);
DWORD
-STDCALL
+NTAPI
NtUserCountClipboardFormats(VOID);
HACCEL
-STDCALL
+NTAPI
NtUserCreateAcceleratorTable(
LPACCEL Entries,
SIZE_T EntriesCount);
BOOL
-STDCALL
+NTAPI
NtUserCreateCaret(
HWND hWnd,
HBITMAP hBitmap,
int nHeight);
HANDLE
-STDCALL
+NTAPI
NtUserCreateCursorIconHandle(
PICONINFO IconInfo,
BOOL Indirect);
HDESK
-STDCALL
+NTAPI
NtUserCreateDesktop(
PUNICODE_STRING lpszDesktopName,
DWORD dwFlags,
HWINSTA hWindowStation);
DWORD
-STDCALL
+NTAPI
NtUserCreateLocalMemHandle(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
HWND
-STDCALL
+NTAPI
NtUserCreateWindowEx(
DWORD dwExStyle,
PUNICODE_STRING lpClassName,
BOOL bUnicodeWindow);
HWINSTA
-STDCALL
+NTAPI
NtUserCreateWindowStation(
PUNICODE_STRING lpszWindowStationName,
ACCESS_MASK dwDesiredAccess,
DWORD Unknown5);
DWORD
-STDCALL
+NTAPI
NtUserDdeGetQualityOfService(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserDdeInitialize(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown4);
DWORD
-STDCALL
+NTAPI
NtUserDdeSetQualityOfService(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
-HDWP STDCALL
+HDWP NTAPI
NtUserDeferWindowPos(HDWP WinPosInfo,
HWND Wnd,
HWND WndInsertAfter,
int cx,
int cy,
UINT Flags);
-BOOL STDCALL
+BOOL NTAPI
NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText);
BOOLEAN
-STDCALL
+NTAPI
NtUserDestroyAcceleratorTable(
HACCEL Table);
BOOL
-STDCALL
+NTAPI
NtUserDestroyCursorIcon(
HANDLE Handle,
DWORD Unknown);
-BOOLEAN STDCALL
+BOOLEAN NTAPI
NtUserDestroyWindow(HWND Wnd);
typedef struct tagNTUSERDISPATCHMESSAGEINFO
} NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO;
LRESULT
-STDCALL
+NTAPI
NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo);
BOOL
-STDCALL
+NTAPI
NtUserDragDetect(
HWND hWnd,
LONG x,
LONG y);
DWORD
-STDCALL
+NTAPI
NtUserDragObject(
HWND hwnd1,
HWND hwnd2,
);
DWORD
-STDCALL
+NTAPI
NtUserDrawAnimatedRects(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserDrawCaption(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserDrawCaptionTemp(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown6);
BOOL
-STDCALL
+NTAPI
NtUserDrawIconEx(
HDC hdc,
int xLeft,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserEmptyClipboard(VOID);
BOOL
-STDCALL
+NTAPI
NtUserEnableScrollBar(
HWND hWnd,
UINT wSBflags,
UINT wArrows);
DWORD
-STDCALL
+NTAPI
NtUserEndDeferWindowPosEx(
DWORD Unknown0,
DWORD Unknown1);
-BOOL STDCALL
+BOOL NTAPI
NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs);
BOOL
-STDCALL
+NTAPI
NtUserEnumDisplayDevices (
PUNICODE_STRING lpDevice, /* device name */
DWORD iDevNum, /* display device */
DWORD dwFlags ); /* reserved */
/*BOOL
-STDCALL
+NTAPI
NtUserEnumDisplayMonitors (
HDC hdc,
LPCRECT lprcClip,
MONITORENUMPROC lpfnEnum,
LPARAM dwData );*/
-#define MONITORINFOF_PRIMARY 1
-#define MONITOR_DEFAULTTONULL 0
-#define MONITOR_DEFAULTTOPRIMARY 1
-#define MONITOR_DEFAULTTONEAREST 2
INT
-STDCALL
+NTAPI
NtUserEnumDisplayMonitors(
OPTIONAL IN HDC hDC,
OPTIONAL IN LPCRECT pRect,
BOOL
-STDCALL
+NTAPI
NtUserEnumDisplaySettings(
PUNICODE_STRING lpszDeviceName,
DWORD iModeNum,
DWORD dwFlags );
DWORD
-STDCALL
+NTAPI
NtUserEvent(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserExcludeUpdateRgn(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserFillWindow(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
HICON
-STDCALL
+NTAPI
NtUserFindExistingCursorIcon(
HMODULE hModule,
HRSRC hRsrc,
LONG cy);
HWND
-STDCALL
+NTAPI
NtUserFindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
);
DWORD
-STDCALL
+NTAPI
NtUserFlashWindowEx(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserGetAltTabInfo(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown4,
DWORD Unknown5);
-HWND STDCALL
+HWND NTAPI
NtUserGetAncestor(HWND hWnd, UINT Flags);
DWORD
-STDCALL
+NTAPI
NtUserGetAsyncKeyState(
DWORD Unknown0);
UINT
-STDCALL
+NTAPI
NtUserGetCaretBlinkTime(VOID);
BOOL
-STDCALL
+NTAPI
NtUserGetCaretPos(
LPPOINT lpPoint);
-DWORD STDCALL
+DWORD NTAPI
NtUserGetClassInfo(HINSTANCE hInst,
LPCWSTR str,
LPWNDCLASSEXW wcex,
DWORD unknown3);
DWORD
-STDCALL
+NTAPI
NtUserGetClassName(HWND hWnd,
LPWSTR lpClassName,
ULONG nMaxCount);
HANDLE
-STDCALL
+NTAPI
NtUserGetClipboardData(
UINT uFormat,
DWORD Unknown1);
INT
-STDCALL
+NTAPI
NtUserGetClipboardFormatName(
UINT format,
PUNICODE_STRING FormatName,
INT cchMaxCount);
HWND
-STDCALL
+NTAPI
NtUserGetClipboardOwner(VOID);
DWORD
-STDCALL
+NTAPI
NtUserGetClipboardSequenceNumber(VOID);
HWND
-STDCALL
+NTAPI
NtUserGetClipboardViewer(VOID);
BOOL
-STDCALL
+NTAPI
NtUserGetClipCursor(
RECT *lpRect);
DWORD
-STDCALL
+NTAPI
NtUserGetComboBoxInfo(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserGetControlBrush(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserGetControlColor(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserGetCPD(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserGetCursorFrameInfo(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
BOOL
-STDCALL
+NTAPI
NtUserGetCursorInfo(
PCURSORINFO pci);
HDC
-STDCALL
+NTAPI
NtUserGetDC(
HWND hWnd);
HDC
-STDCALL
+NTAPI
NtUserGetDCEx(
HWND hWnd,
HANDLE hRegion,
ULONG Flags);
UINT
-STDCALL
+NTAPI
NtUserGetDoubleClickTime(VOID);
HWND
-STDCALL
+NTAPI
NtUserGetForegroundWindow(VOID);
DWORD
-STDCALL
+NTAPI
NtUserGetGuiResources(
HANDLE hProcess,
DWORD uiFlags);
BOOL
-STDCALL
+NTAPI
NtUserGetGUIThreadInfo(
DWORD idThread,
LPGUITHREADINFO lpgui);
BOOL
-STDCALL
+NTAPI
NtUserGetCursorIconInfo(
HANDLE Handle,
PICONINFO IconInfo);
BOOL
-STDCALL
+NTAPI
NtUserGetCursorIconSize(
HANDLE Handle,
BOOL *fIcon,
SIZE *Size);
DWORD
-STDCALL
+NTAPI
NtUserGetImeHotKey(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserGetInternalWindowPos(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
HKL
-STDCALL
+NTAPI
NtUserGetKeyboardLayout(
DWORD dwThreadid);
DWORD
-STDCALL
+NTAPI
NtUserGetKeyboardLayoutList(
DWORD Unknown0,
DWORD Unknown1);
BOOL
-STDCALL
+NTAPI
NtUserGetKeyboardLayoutName(
LPWSTR lpszName);
DWORD
-STDCALL
+NTAPI
NtUserGetKeyboardState(
LPBYTE Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserGetKeyboardType(
DWORD TypeFlag);
DWORD
-STDCALL
+NTAPI
NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize );
DWORD
-STDCALL
+NTAPI
NtUserGetKeyState(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserGetListBoxInfo(
DWORD Unknown0);
} NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO;
BOOL
-STDCALL
+NTAPI
NtUserGetMessage(
PNTUSERGETMESSAGEINFO MsgInfo,
HWND hWnd,
UINT wMsgFilterMax);
BOOL
-STDCALL
+NTAPI
NtUserGetMonitorInfo(
IN HMONITOR hMonitor,
OUT LPMONITORINFO pMonitorInfo);
DWORD
-STDCALL
+NTAPI
NtUserGetMouseMovePointsEx(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown4);
BOOL
-STDCALL
+NTAPI
NtUserGetObjectInformation(
HANDLE hObject,
DWORD nIndex,
PDWORD nLengthNeeded);
HWND
-STDCALL
+NTAPI
NtUserGetOpenClipboardWindow(VOID);
INT
-STDCALL
+NTAPI
NtUserGetPriorityClipboardFormat(
UINT *paFormatPriorityList,
INT cFormats);
HWINSTA
-STDCALL
+NTAPI
NtUserGetProcessWindowStation(VOID);
BOOL
-STDCALL
+NTAPI
NtUserGetScrollBarInfo(
HWND hWnd,
LONG idObject,
PSCROLLBARINFO psbi);
BOOL
-STDCALL
+NTAPI
NtUserGetScrollInfo(
HWND hwnd,
int fnBar,
LPSCROLLINFO lpsi);
HDESK
-STDCALL
+NTAPI
NtUserGetThreadDesktop(
DWORD dwThreadId,
DWORD Unknown1);
#define THREADSTATE_FOCUSWINDOW (1)
#define THREADSTATE_INSENDMESSAGE (2)
DWORD
-STDCALL
+NTAPI
NtUserGetThreadState(
DWORD Routine);
DWORD
-STDCALL
+NTAPI
NtUserGetTitleBarInfo(
DWORD Unknown0,
DWORD Unknown1);
-BOOL STDCALL
+BOOL NTAPI
NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase);
int
-STDCALL
+NTAPI
NtUserGetUpdateRgn(
HWND hWnd,
HRGN hRgn,
BOOL bErase);
DWORD
-STDCALL
+NTAPI
NtUserGetWindowDC(
HWND hWnd);
BOOL
-STDCALL
+NTAPI
NtUserGetWindowPlacement(
HWND hWnd,
WINDOWPLACEMENT *lpwndpl);
DWORD
-STDCALL
+NTAPI
NtUserGetWOWClass(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserImpersonateDdeClientWindow(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserInitializeClientPfnArrays(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserInitTask(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown10);
INT
-STDCALL
+NTAPI
NtUserInternalGetWindowText(
HWND hWnd,
LPWSTR lpString,
BOOL
-STDCALL
+NTAPI
NtUserIsClipboardFormatAvailable(
UINT format);
BOOL
-STDCALL
+NTAPI
NtUserKillSystemTimer
(
HWND hWnd,
);
BOOL
-STDCALL
+NTAPI
NtUserKillTimer
(
HWND hWnd,
);
DWORD
-STDCALL
+NTAPI
NtUserLoadKeyboardLayoutEx(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown5);
BOOL
-STDCALL
+NTAPI
NtUserLockWindowStation(
HWINSTA hWindowStation);
DWORD
-STDCALL
+NTAPI
NtUserLockWindowUpdate(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserLockWorkStation(VOID);
UINT
-STDCALL
+NTAPI
NtUserMapVirtualKeyEx( UINT keyCode,
UINT transType,
DWORD keyboardId,
HKL dwhkl );
DWORD
-STDCALL
+NTAPI
NtUserMessageCall(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown6);
BOOL
-STDCALL
+NTAPI
NtUserGetMinMaxInfo(
HWND hwnd,
MINMAXINFO *MinMaxInfo,
BOOL SendMessage);
DWORD
-STDCALL
+NTAPI
NtUserMNDragLeave(VOID);
DWORD
-STDCALL
+NTAPI
NtUserMNDragOver(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserModifyUserStartupInfoFlags(
DWORD Unknown0,
DWORD Unknown1);
HMONITOR
-STDCALL
+NTAPI
NtUserMonitorFromPoint(
IN POINT point,
IN DWORD dwFlags);
HMONITOR
-STDCALL
+NTAPI
NtUserMonitorFromRect(
IN LPCRECT pRect,
IN DWORD dwFlags);
HMONITOR
-STDCALL
+NTAPI
NtUserMonitorFromWindow(
IN HWND hWnd,
IN DWORD dwFlags);
BOOL
-STDCALL
+NTAPI
NtUserMoveWindow(
HWND hWnd,
int X,
);
DWORD
-STDCALL
+NTAPI
NtUserNotifyIMEStatus(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserNotifyWinEvent(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
BOOL
-STDCALL
+NTAPI
NtUserOpenClipboard(
HWND hWnd,
DWORD Unknown1);
HDESK
-STDCALL
+NTAPI
NtUserOpenDesktop(
PUNICODE_STRING lpszDesktopName,
DWORD dwFlags,
ACCESS_MASK dwDesiredAccess);
HDESK
-STDCALL
+NTAPI
NtUserOpenInputDesktop(
DWORD dwFlags,
BOOL fInherit,
ACCESS_MASK dwDesiredAccess);
HWINSTA
-STDCALL
+NTAPI
NtUserOpenWindowStation(
PUNICODE_STRING lpszWindowStationName,
ACCESS_MASK dwDesiredAccess);
BOOL
-STDCALL
+NTAPI
NtUserPaintDesktop(
HDC hDC);
BOOL
-STDCALL
+NTAPI
NtUserPeekMessage(
PNTUSERGETMESSAGEINFO MsgInfo,
HWND hWnd,
UINT wRemoveMsg);
BOOL
-STDCALL
+NTAPI
NtUserPostMessage(
HWND hWnd,
UINT Msg,
LPARAM lParam);
BOOL
-STDCALL
+NTAPI
NtUserPostThreadMessage(
DWORD idThread,
UINT Msg,
LPARAM lParam);
DWORD
-STDCALL
+NTAPI
NtUserQuerySendMessage(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserQueryUserCounters(
DWORD Unknown0,
DWORD Unknown1,
#define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01
#define QUERY_WINDOW_ISHUNG 0x04
DWORD
-STDCALL
+NTAPI
NtUserQueryWindow(
HWND hWnd,
DWORD Index);
+UINT
+NTAPI
+NtUserRealizePalette(HDC hDC);
+
DWORD
-STDCALL
+NTAPI
NtUserRealChildWindowFromPoint(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
BOOL
-STDCALL
+NTAPI
NtUserRedrawWindow
(
HWND hWnd,
#define REGISTERCLASS_SYSTEM 4
#define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM)
-RTL_ATOM STDCALL
+RTL_ATOM NTAPI
NtUserRegisterClassExWOW(
CONST WNDCLASSEXW* lpwcx,
PUNICODE_STRING ClassName,
HMENU hMenu);
BOOL
-STDCALL
+NTAPI
NtUserRegisterHotKey(HWND hWnd,
int id,
UINT fsModifiers,
UINT vk);
DWORD
-STDCALL
+NTAPI
NtUserRegisterTasklist(
DWORD Unknown0);
-UINT STDCALL
+UINT NTAPI
NtUserRegisterWindowMessage(PUNICODE_STRING MessageName);
-HANDLE STDCALL
+HANDLE NTAPI
NtUserRemoveProp(HWND hWnd, ATOM Atom);
DWORD
-STDCALL
+NTAPI
NtUserResolveDesktopForWOW(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserSBGetParms(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserScrollDC(
HDC hDC,
int dx,
HRGN hrgnUpdate,
LPRECT lprcUpdate);
-DWORD STDCALL
+DWORD NTAPI
NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect,
const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags);
UINT
-STDCALL
+NTAPI
NtUserSendInput(
UINT nInputs,
LPINPUT pInput,
WNDPROC Proc;
} NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO;
-LRESULT STDCALL
+LRESULT NTAPI
NtUserSendMessage(HWND hWnd,
UINT Msg,
WPARAM wParam,
PNTUSERSENDMESSAGEINFO Info);
BOOL
-STDCALL
+NTAPI
NtUserSendMessageCallback(
HWND hWnd,
UINT Msg,
SENDASYNCPROC lpCallBack,
ULONG_PTR dwData);
-LRESULT STDCALL
+LRESULT NTAPI
NtUserSendMessageTimeout(HWND hWnd,
UINT Msg,
WPARAM wParam,
PNTUSERSENDMESSAGEINFO Info);
BOOL
-STDCALL
+NTAPI
NtUserSendNotifyMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam);
-HWND STDCALL
+HWND NTAPI
NtUserSetActiveWindow(HWND Wnd);
-HWND STDCALL
+HWND NTAPI
NtUserGetActiveWindow(VOID);
-HWND STDCALL
+HWND NTAPI
NtUserSetCapture(HWND Wnd);
-HWND STDCALL
+HWND NTAPI
NtUserGetCapture(VOID);
-DWORD STDCALL
+DWORD NTAPI
NtUserSetClassLong(
HWND hWnd,
DWORD Offset,
DWORD
-STDCALL
+NTAPI
NtUserSetClassWord(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
HANDLE
-STDCALL
+NTAPI
NtUserSetClipboardData(
UINT uFormat,
HANDLE hMem,
DWORD Unknown2);
HWND
-STDCALL
+NTAPI
NtUserSetClipboardViewer(
HWND hWndNewViewer);
-DWORD
+HPALETTE
STDCALL
+NtUserSelectPalette(
+ HDC hDC,
+ HPALETTE hpal,
+ BOOL ForceBackground
+);
+
+DWORD
+NTAPI
NtUserSetConsoleReserveKeys(
DWORD Unknown0,
DWORD Unknown1);
HCURSOR
-STDCALL
+NTAPI
NtUserSetCursor(
HCURSOR hCursor);
BOOL
-STDCALL
+NTAPI
NtUserSetCursorIconContents(
HANDLE Handle,
PICONINFO IconInfo);
BOOL
-STDCALL
+NTAPI
NtUserSetCursorIconData(
HANDLE Handle,
PBOOL fIcon,
HRSRC hGroupRsrc);
DWORD
-STDCALL
+NTAPI
NtUserSetDbgTag(
DWORD Unknown0,
DWORD Unknown1);
HWND
-STDCALL
+NTAPI
NtUserSetFocus(
HWND hWnd);
DWORD
-STDCALL
+NTAPI
NtUserSetImeHotKey(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown4);
DWORD
-STDCALL
+NTAPI
NtUserSetImeOwnerWindow(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserSetInternalWindowPos(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserSetKeyboardState(
LPBYTE Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserSetLayeredWindowAttributes(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
DWORD
-STDCALL
+NTAPI
NtUserSetLogonNotifyWindow(
DWORD Unknown0);
BOOL
-STDCALL
+NTAPI
NtUserSetObjectInformation(
HANDLE hObject,
DWORD nIndex,
DWORD nLength);
HWND
-STDCALL
+NTAPI
NtUserSetParent(
HWND hWndChild,
HWND hWndNewParent);
BOOL
-STDCALL
+NTAPI
NtUserSetProcessWindowStation(
HWINSTA hWindowStation);
-BOOL STDCALL
+BOOL NTAPI
NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data);
DWORD
-STDCALL
+NTAPI
NtUserSetRipFlags(
DWORD Unknown0,
DWORD Unknown1);
DWORD
-STDCALL
+NTAPI
NtUserSetScrollInfo(
HWND hwnd,
int fnBar,
BOOL bRedraw);
BOOL
-STDCALL
+NTAPI
NtUserSetShellWindowEx(
HWND hwndShell,
HWND hwndShellListView);
HWND
-STDCALL
+NTAPI
NtUserGetShellWindow();
DWORD
-STDCALL
+NTAPI
NtUserSetSysColors(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown3);
BOOL
-STDCALL
+NTAPI
NtUserSetSystemCursor(
HCURSOR hcur,
DWORD id);
BOOL
-STDCALL
+NTAPI
NtUserSetThreadDesktop(
HDESK hDesktop);
DWORD
-STDCALL
+NTAPI
NtUserSetThreadState(
DWORD Unknown0,
DWORD Unknown1);
UINT_PTR
-STDCALL
+NTAPI
NtUserSetSystemTimer
(
HWND hWnd,
);
UINT_PTR
-STDCALL
+NTAPI
NtUserSetTimer
(
HWND hWnd,
);
DWORD
-STDCALL
+NTAPI
NtUserSetWindowFNID(
DWORD Unknown0,
DWORD Unknown1);
LONG
-STDCALL
+NTAPI
NtUserSetWindowLong(
HWND hWnd,
DWORD Index,
BOOL Ansi);
BOOL
-STDCALL
+NTAPI
NtUserSetWindowPlacement(
HWND hWnd,
WINDOWPLACEMENT *lpwndpl);
BOOL
-STDCALL NtUserSetWindowPos(
+NTAPI NtUserSetWindowPos(
HWND hWnd,
HWND hWndInsertAfter,
int X,
);
INT
-STDCALL
+NTAPI
NtUserSetWindowRgn(
HWND hWnd,
HRGN hRgn,
BOOL bRedraw);
DWORD
-STDCALL
+NTAPI
NtUserSetWindowsHookAW(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
HHOOK
-STDCALL
+NTAPI
NtUserSetWindowsHookEx(
HINSTANCE Mod,
PUNICODE_STRING ModuleName,
BOOL Ansi);
DWORD
-STDCALL
+NTAPI
NtUserSetWindowStationUser(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3);
-WORD STDCALL
+WORD NTAPI
NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
DWORD
-STDCALL
+NTAPI
NtUserSetWinEventHook(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown7);
BOOL
-STDCALL
+NTAPI
NtUserShowCaret(
HWND hWnd,
BOOL bShow);
DWORD
-STDCALL
+NTAPI
NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow);
BOOL
-STDCALL
+NTAPI
NtUserShowWindow(
HWND hWnd,
LONG nCmdShow);
BOOL
-STDCALL
+NTAPI
NtUserShowWindowAsync(
HWND hWnd,
LONG nCmdShow);
BOOL
-STDCALL
+NTAPI
NtUserSwitchDesktop(
HDESK hDesktop);
BOOL
-STDCALL
+NTAPI
NtUserSystemParametersInfo(
UINT uiAction,
UINT uiParam,
UINT fWinIni);
int
-STDCALL
+NTAPI
NtUserToUnicodeEx(
UINT wVirtKey,
UINT wScanCode,
HKL dwhkl );
DWORD
-STDCALL
+NTAPI
NtUserTrackMouseEvent(
DWORD Unknown0);
int
-STDCALL
+NTAPI
NtUserTranslateAccelerator(
HWND Window,
HACCEL Table,
LPMSG Message);
BOOL
-STDCALL
+NTAPI
NtUserTranslateMessage(
LPMSG lpMsg,
HKL dwhkl );
BOOL
-STDCALL
+NTAPI
NtUserUnhookWindowsHookEx(
HHOOK Hook);
DWORD
-STDCALL
+NTAPI
NtUserUnhookWinEvent(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserUnloadKeyboardLayout(
DWORD Unknown0);
BOOL
-STDCALL
+NTAPI
NtUserUnlockWindowStation(
HWINSTA hWindowStation);
BOOL
-STDCALL
+NTAPI
NtUserUnregisterClass(
LPCWSTR ClassNameOrAtom,
HINSTANCE hInstance,
DWORD Unknown);
BOOL
-STDCALL
+NTAPI
NtUserUnregisterHotKey(HWND hWnd,
int id);
DWORD
-STDCALL
+NTAPI
NtUserUpdateInputContext(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserUpdateInstance(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserUpdateLayeredWindow(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown8);
BOOL
-STDCALL
+NTAPI
NtUserUpdatePerUserSystemParameters(
DWORD dwReserved,
BOOL bEnable);
DWORD
-STDCALL
+NTAPI
NtUserUserHandleGrantAccess(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserValidateHandleSecure(
DWORD Unknown0);
DWORD
-STDCALL
+NTAPI
NtUserVkKeyScanEx(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserWaitForInputIdle(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2);
DWORD
-STDCALL
+NTAPI
NtUserWaitForMsgAndEvent(
DWORD Unknown0);
BOOL
-STDCALL
+NTAPI
NtUserWaitMessage(VOID);
DWORD
-STDCALL
+NTAPI
NtUserWin32PoolAllocationStats(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown5);
HWND
-STDCALL
+NTAPI
NtUserWindowFromPoint(
LONG X,
LONG Y);
DWORD
-STDCALL
+NTAPI
NtUserYieldTask(VOID);
-DWORD STDCALL
+DWORD NTAPI
NtUserGetWindowThreadProcessId(HWND hWnd, LPDWORD UnsafePid);
-DWORD STDCALL
+DWORD NTAPI
NtUserGetQueueStatus(BOOL ClearChanges);
-HWND STDCALL
+HWND NTAPI
NtUserGetParent(HWND hWnd);
-HWND STDCALL
+HWND NTAPI
NtUserGetWindow(HWND hWnd, UINT Relationship);
-HWND STDCALL
+HWND NTAPI
NtUserGetLastActivePopup(HWND hWnd);
typedef struct _WndProcHandle
{
HANDLE ProcessID;
} WndProcHandle;
-DWORD STDCALL
+DWORD NTAPI
NtUserDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data);
-VOID STDCALL
+VOID NTAPI
NtUserManualGuiCheck(LONG Check);
+#define NtUserGetDCBrushColor(hbr) \
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
+
+#define NtUserGetDCPenColor(hbr) \
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
+
+#define NtUserSetDCBrushColor(hbr, crColor) \
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
+
+#define NtUserSetDCPenColor(hbr, crColor) \
+ (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
+
typedef struct _SETSCROLLBARINFO
{
int nTrackPos;
} SETSCROLLBARINFO, *PSETSCROLLBARINFO;
BOOL
-STDCALL
+NTAPI
NtUserSetScrollBarInfo(
HWND hwnd,
LONG idObject,
} Value;
} KMDDELPARAM, *PKMDDELPARAM;
-typedef struct _GDI_TABLE_ENTRY
-{
- PVOID KernelData; /* Points to the kernel mode structure */
- HANDLE ProcessId; /* process id that created the object, 0 for stock objects */
- LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */
- PVOID UserData; /* Points to the user mode structure, usually NULL though */
-} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;
-
#endif /* __WIN32K_NTUSER_H */
/* EOF */
--- /dev/null
+/*\r
+ * COPYRIGHT: See COPYING in the top level directory\r
+ * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)\r
+ * FILE: include/win32k/ntusrtyp.h\r
+ * PURPOSE: Win32 Shared USER Types for NtUser*\r
+ * PROGRAMMER: Alex Ionescu (alex@relsoft.net)\r
+ */\r
+\r
+/* INCLUDES ******************************************************************/\r
+\r
+#ifndef _NTUSRTYP_\r
+#define _NTUSRTYP_\r
+\r
+/* ENUMERATIONS **************************************************************/\r
+\r
+/* TYPES *********************************************************************/\r
+\r
+typedef struct _PATRECT\r
+{\r
+ RECT r;\r
+ HBRUSH hBrush;\r
+} PATRECT, * PPATRECT;\r
+\r
+/* Structures for reading icon/cursor files and resources */\r
+typedef struct _ICONIMAGE\r
+{\r
+ BITMAPINFOHEADER icHeader; // DIB header\r
+ RGBQUAD icColors[1]; // Color table\r
+ BYTE icXOR[1]; // DIB bits for XOR mask\r
+ BYTE icAND[1]; // DIB bits for AND mask\r
+} ICONIMAGE, *LPICONIMAGE;\r
+\r
+typedef struct _CURSORIMAGE\r
+{\r
+ BITMAPINFOHEADER icHeader; // DIB header\r
+ RGBQUAD icColors[1]; // Color table\r
+ BYTE icXOR[1]; // DIB bits for XOR mask\r
+ BYTE icAND[1]; // DIB bits for AND mask\r
+} CURSORIMAGE, *LPCURSORIMAGE;\r
+\r
+typedef struct\r
+{\r
+ BYTE bWidth;\r
+ BYTE bHeight;\r
+ BYTE bColorCount;\r
+ BYTE bReserved;\r
+} ICONRESDIR;\r
+\r
+typedef struct\r
+{\r
+ WORD wWidth;\r
+ WORD wHeight;\r
+} CURSORRESDIR;\r
+\r
+typedef struct\r
+{\r
+ WORD wPlanes; // Number of Color Planes in the XOR image\r
+ WORD wBitCount; // Bits per pixel in the XOR image\r
+} ICONDIR;\r
+\r
+typedef struct\r
+{\r
+ WORD wXHotspot; // Number of Color Planes in the XOR image\r
+ WORD wYHotspot; // Bits per pixel in the XOR image\r
+} CURSORDIR;\r
+\r
+typedef struct\r
+{\r
+ BYTE bWidth; // Width, in pixels, of the icon image\r
+ BYTE bHeight; // Height, in pixels, of the icon image\r
+ BYTE bColorCount; // Number of colors in image (0 if >=8bpp)\r
+ BYTE bReserved; // Reserved ( must be 0)\r
+ union\r
+ {\r
+ ICONDIR icon;\r
+ CURSORDIR cursor;\r
+ } Info;\r
+ DWORD dwBytesInRes; // How many bytes in this resource?\r
+ DWORD dwImageOffset; // Where in the file is this image?\r
+} CURSORICONDIRENTRY;\r
+\r
+typedef struct\r
+{\r
+ WORD idReserved; // Reserved (must be 0)\r
+ WORD idType; // Resource Type (1 for icons, 0 for cursors)\r
+ WORD idCount; // How many images?\r
+ CURSORICONDIRENTRY idEntries[1];// An entry for idCount number of images\r
+} CURSORICONDIR;\r
+\r
+typedef struct\r
+{\r
+ union\r
+ {\r
+ ICONRESDIR icon;\r
+ CURSORRESDIR cursor;\r
+ } ResInfo;\r
+ WORD wPlanes; // Color Planes\r
+ WORD wBitCount; // Bits per pixel\r
+ DWORD dwBytesInRes; // how many bytes in this resource?\r
+ WORD nID; // the ID\r
+} GRPCURSORICONDIRENTRY;\r
+\r
+typedef struct\r
+{\r
+ WORD idReserved; // Reserved (must be 0)\r
+ WORD idType; // Resource type (1 for icons)\r
+ WORD idCount; // How many images?\r
+ GRPCURSORICONDIRENTRY idEntries[1]; // The entries for each image\r
+} GRPCURSORICONDIR;\r
+\r
+typedef struct _THRDCARETINFO\r
+{\r
+ HWND hWnd;\r
+ HBITMAP Bitmap;\r
+ POINT Pos;\r
+ SIZE Size;\r
+ BYTE Visible;\r
+ BYTE Showing;\r
+} THRDCARETINFO, *PTHRDCARETINFO;\r
+\r
+typedef struct tagROSMENUINFO\r
+{\r
+ /* ----------- MENUINFO ----------- */\r
+ DWORD cbSize;\r
+ DWORD fMask;\r
+ DWORD dwStyle;\r
+ UINT cyMax;\r
+ HBRUSH hbrBack;\r
+ DWORD dwContextHelpID;\r
+ ULONG_PTR dwMenuData;\r
+ /* ----------- Extra ----------- */\r
+ HMENU Self; /* Handle of this menu */\r
+ WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */\r
+ UINT FocusedItem; /* Currently focused item */\r
+ UINT MenuItemCount; /* Number of items in the menu */\r
+ HWND Wnd; /* Window containing the menu */\r
+ WORD Width; /* Width of the whole menu */\r
+ WORD Height; /* Height of the whole menu */\r
+ HWND WndOwner; /* window receiving the messages for ownerdraw */\r
+ BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */\r
+ SIZE maxBmpSize; /* Maximum size of the bitmap items in MIIM_BITMAP state */\r
+} ROSMENUINFO, *PROSMENUINFO;\r
+\r
+/* (other FocusedItem values give the position of the focused item) */\r
+#define NO_SELECTED_ITEM 0xffff\r
+\r
+typedef struct tagROSMENUITEMINFO\r
+{\r
+ /* ----------- MENUITEMINFOW ----------- */\r
+ UINT cbSize;\r
+ UINT fMask;\r
+ UINT fType;\r
+ UINT fState;\r
+ UINT wID;\r
+ HMENU hSubMenu;\r
+ HBITMAP hbmpChecked;\r
+ HBITMAP hbmpUnchecked;\r
+ DWORD dwItemData;\r
+ LPWSTR dwTypeData;\r
+ UINT cch;\r
+ HBITMAP hbmpItem;\r
+ /* ----------- Extra ----------- */\r
+ RECT Rect; /* Item area (relative to menu window) */\r
+ UINT XTab; /* X position of text after Tab */\r
+} ROSMENUITEMINFO, *PROSMENUITEMINFO;\r
+\r
+#endif\r
+++ /dev/null
-#ifndef __WIN32K_PAINT_H
-#define __WIN32K_PAINT_H
-
-typedef struct _PATRECT {
- RECT r;
- HBRUSH hBrush;
-} PATRECT, * PPATRECT;
-
-BOOL STDCALL
-NtGdiPatBlt(
- HDC hDC,
- INT XLeft,
- INT YLeft,
- INT Width,
- INT Height,
- DWORD ROP);
-
-BOOL STDCALL
-NtGdiPolyPatBlt(
- HDC hDC,
- DWORD dwRop,
- PPATRECT pRects,
- INT cRects,
- ULONG Reserved);
-
-BOOL STDCALL
-NtGdiPatBlt(
- HDC hDC,
- INT XLeft,
- INT YLeft,
- INT Width,
- INT Height,
- DWORD ROP);
-
-BOOL STDCALL NtGdiGdiFlush (VOID);
-DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);
-DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);
-UINT STDCALL NtGdiGetBoundsRect (HDC hDC, LPRECT Bounds, UINT Flags);
-COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
-UINT STDCALL NtGdiSetBoundsRect (HDC hDC, CONST PRECT Bounds, UINT Flags);
-
-#endif
-
+++ /dev/null
-#ifndef __WIN32K_PATH_H
-#define __WIN32K_PATH_H
-
-typedef enum tagGdiPathState
-{
- PATH_Null,
- PATH_Open,
- PATH_Closed
-} GdiPathState;
-
-typedef struct tagGdiPath
-{
- GdiPathState state;
- POINT *pPoints;
- BYTE *pFlags;
- int numEntriesUsed, numEntriesAllocated;
- BOOL newStroke;
-} GdiPath;
-
-#define PATH_IsPathOpen(path) ((path).state==PATH_Open)
-
-BOOL STDCALL NtGdiAbortPath(HDC hDC);
-
-BOOL STDCALL NtGdiBeginPath(HDC hDC);
-
-BOOL STDCALL NtGdiCloseFigure(HDC hDC);
-
-BOOL STDCALL NtGdiEndPath(HDC hDC);
-
-BOOL STDCALL NtGdiFillPath(HDC hDC);
-
-BOOL STDCALL NtGdiFlattenPath(HDC hDC);
-
-BOOL STDCALL NtGdiGetMiterLimit(HDC hDC,
- PFLOAT Limit);
-
-INT STDCALL NtGdiGetPath(HDC hDC,
- LPPOINT Points,
- LPBYTE Types,
- INT nSize);
-
-HRGN STDCALL NtGdiPathToRegion(HDC hDC);
-
-BOOL STDCALL NtGdiSetMiterLimit(HDC hDC,
- FLOAT NewLimit,
- PFLOAT OldLimit);
-
-BOOL STDCALL NtGdiStrokeAndFillPath(HDC hDC);
-
-BOOL STDCALL NtGdiStrokePath(HDC hDC);
-
-BOOL STDCALL NtGdiWidenPath(HDC hDC);
-
-#endif
+++ /dev/null
-
-#ifndef __WIN32K_PRINT_H
-#define __WIN32K_PRINT_H
-
-INT
-STDCALL
-NtGdiAbortDoc(HDC hDC);
-
-INT
-STDCALL
-NtGdiEndDoc(HDC hDC);
-
-INT
-STDCALL
-NtGdiEndPage(HDC hDC);
-
-INT
-STDCALL
-NtGdiEscape(HDC hDC,
- INT Escape,
- INT InSize,
- LPCSTR InData,
- LPVOID OutData);
-
-INT
-STDCALL
-NtGdiExtEscape(HDC hDC,
- INT Escape,
- INT InSize,
- LPCSTR InData,
- INT OutSize,
- LPSTR OutData);
-
-INT
-STDCALL
-NtGdiSetAbortProc(HDC hDC,
- ABORTPROC AbortProc);
-
-INT
-STDCALL
-NtGdiStartDoc(HDC hDC,
- CONST LPDOCINFOW di);
-
-INT
-STDCALL
-NtGdiStartPage(HDC hDC);
-
-#endif
+++ /dev/null
-
-#ifndef __WIN32K_REGION_H
-#define __WIN32K_REGION_H
-
-#include <win32k/gdiobj.h>
-
-/* Internal region data. Can't use RGNDATA structure because buffer is allocated statically */
-typedef struct _ROSRGNDATA {
- RGNDATAHEADER rdh;
- PRECT Buffer;
-} ROSRGNDATA, *PROSRGNDATA, *LPROSRGNDATA;
-
-
-#define RGNDATA_FreeRgn(hRgn) GDIOBJ_FreeObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION)
-#define RGNDATA_LockRgn(hRgn) ((PROSRGNDATA)GDIOBJ_LockObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION))
-#define RGNDATA_UnlockRgn(pRgn) GDIOBJ_UnlockObjByPtr(pRgn)
-HRGN FASTCALL RGNDATA_AllocRgn(INT n);
-BOOL INTERNAL_CALL RGNDATA_Cleanup(PVOID ObjectBody);
-
-/* User entry points */
-HRGN STDCALL
-NtGdiUnionRectWithRgn(HRGN hDest, CONST PRECT Rect);
-
-INT
-STDCALL
-NtGdiCombineRgn(HRGN hDest,
- HRGN hSrc1,
- HRGN hSrc2,
- INT CombineMode);
-
-HRGN
-STDCALL
-NtGdiCreateEllipticRgn(INT LeftRect,
- INT TopRect,
- INT RightRect,
- INT BottomRect);
-
-HRGN
-STDCALL
-NtGdiCreateEllipticRgnIndirect(CONST PRECT rc);
-
-HRGN
-STDCALL
-NtGdiCreatePolygonRgn(CONST PPOINT pt,
- INT Count,
- INT PolyFillMode);
-
-HRGN
-STDCALL
-NtGdiCreatePolyPolygonRgn(CONST PPOINT pt,
- CONST PINT PolyCounts,
- INT Count,
- INT PolyFillMode);
-
-HRGN
-STDCALL
-NtGdiCreateRectRgn(INT LeftRect,
- INT TopRect,
- INT RightRect,
- INT BottomRect);
-
-HRGN
-STDCALL
-NtGdiCreateRectRgnIndirect(CONST PRECT rc);
-
-HRGN
-STDCALL
-NtGdiCreateRoundRectRgn(INT LeftRect,
- INT TopRect,
- INT RightRect,
- INT BottomRect,
- INT WidthEllipse,
- INT HeightEllipse);
-
-BOOL
-STDCALL
-NtGdiEqualRgn(HRGN hSrcRgn1,
- HRGN hSrcRgn2);
-
-HRGN
-STDCALL
-NtGdiExtCreateRegion(CONST XFORM *Xform,
- DWORD Count,
- CONST RGNDATA *RgnData);
-
-BOOL
-STDCALL
-NtGdiFillRgn(HDC hDC,
- HRGN hRgn,
- HBRUSH hBrush);
-
-BOOL
-STDCALL
-NtGdiFrameRgn(HDC hDC,
- HRGN hRgn,
- HBRUSH hBrush,
- INT Width,
- INT Height);
-
-INT
-STDCALL
-NtGdiGetRgnBox(HRGN hRgn,
- LPRECT Rect);
-
-BOOL
-STDCALL
-NtGdiInvertRgn(HDC hDC,
- HRGN hRgn);
-
-INT
-STDCALL
-NtGdiOffsetRgn(HRGN hRgn,
- INT XOffset,
- INT YOffset);
-
-BOOL
-STDCALL
-NtGdiPaintRgn(HDC hDC,
- HRGN hRgn);
-
-BOOL
-STDCALL
-NtGdiPtInRegion(HRGN hRgn,
- INT X,
- INT Y);
-
-BOOL
-STDCALL
-NtGdiRectInRegion(HRGN hRgn,
- CONST LPRECT rc);
-
-INT
-STDCALL
-NtGdiSelectVisRgn(HDC hdc,
- HRGN hrgn);
-
-BOOL
-STDCALL
-NtGdiSetRectRgn(HRGN hRgn,
- INT LeftRect,
- INT TopRect,
- INT RightRect,
- INT BottomRect);
-
-DWORD
-STDCALL
-NtGdiGetRegionData(HRGN hrgn,
- DWORD count,
- LPRGNDATA rgndata);
-#endif
-
+++ /dev/null
-
-#ifndef __WIN32K_TEXT_H
-#define __WIN32K_TEXT_H
-
-/* GDI logical font object */
-typedef struct
-{
- LOGFONTW logfont;
- FONTOBJ *Font;
- BOOLEAN Initialized; /* Don't reinitialize for each DC */
-} TEXTOBJ, *PTEXTOBJ;
-
-/* Internal interface */
-
-#define TEXTOBJ_AllocText() \
- ((HFONT) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_FONT))
-#define TEXTOBJ_FreeText(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
-#define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
-#define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr (pBMObj)
-
-NTSTATUS FASTCALL TextIntRealizeFont(HFONT FontHandle);
-NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont);
-
-int
-STDCALL
-NtGdiAddFontResource(PUNICODE_STRING Filename,
- DWORD fl);
-
-HFONT
-STDCALL
-NtGdiCreateFont(int Height,
- int Width,
- int Escapement,
- int Orientation,
- int Weight,
- DWORD Italic,
- DWORD Underline,
- DWORD StrikeOut,
- DWORD CharSet,
- DWORD OutputPrecision,
- DWORD ClipPrecision,
- DWORD Quality,
- DWORD PitchAndFamily,
- LPCWSTR Face);
-
-HFONT
-STDCALL
-NtGdiCreateFontIndirect(CONST LPLOGFONTW lf);
-
-BOOL
-STDCALL
-NtGdiCreateScalableFontResource(DWORD Hidden,
- LPCWSTR FontRes,
- LPCWSTR FontFile,
- LPCWSTR CurrentPath);
-
-int
-STDCALL
-NtGdiEnumFonts(HDC hDC,
- LPCWSTR FaceName,
- FONTENUMPROCW FontFunc,
- LPARAM lParam);
-
-BOOL
-STDCALL
-NtGdiExtTextOut(HDC hdc,
- int X,
- int Y,
- UINT fuOptions,
- CONST RECT *lprc,
- LPCWSTR lpString,
- UINT cbCount,
- CONST INT *lpDx);
-
-BOOL
-STDCALL
-NtGdiGetAspectRatioFilterEx(HDC hDC,
- LPSIZE AspectRatio);
-
-BOOL
-STDCALL
-NtGdiGetCharABCWidths(HDC hDC,
- UINT FirstChar,
- UINT LastChar,
- LPABC abc);
-
-BOOL
-STDCALL
-NtGdiGetCharABCWidthsFloat(HDC hDC,
- UINT FirstChar,
- UINT LastChar,
- LPABCFLOAT abcF);
-
-DWORD
-STDCALL
-NtGdiGetCharacterPlacement(HDC hDC,
- LPCWSTR String,
- int Count,
- int MaxExtent,
- LPGCP_RESULTSW Results,
- DWORD Flags);
-
-BOOL
-STDCALL
-NtGdiGetCharWidth32(HDC hDC,
- UINT FirstChar,
- UINT LastChar,
- LPINT Buffer);
-
-BOOL
-STDCALL
-NtGdiGetCharWidthFloat(HDC hDC,
- UINT FirstChar,
- UINT LastChar,
- PFLOAT Buffer);
-
-DWORD
-STDCALL
-NtGdiGetFontLanguageInfo(HDC hDC);
-
-DWORD
-STDCALL
-NtGdiGetGlyphOutline(HDC hDC,
- UINT Char,
- UINT Format,
- LPGLYPHMETRICS gm,
- DWORD Bufsize,
- LPVOID Buffer,
- CONST LPMAT2 mat2);
-
-DWORD
-STDCALL
-NtGdiGetKerningPairs(HDC hDC,
- DWORD NumPairs,
- LPKERNINGPAIR krnpair);
-
-UINT
-STDCALL
-NtGdiGetOutlineTextMetrics(HDC hDC,
- UINT Data,
- LPOUTLINETEXTMETRICW otm);
-
-BOOL
-STDCALL
-NtGdiGetRasterizerCaps(LPRASTERIZER_STATUS rs,
- UINT Size);
-
-UINT
-STDCALL
-NtGdiGetTextCharset(HDC hDC);
-
-UINT
-STDCALL
-NtGdiGetTextCharsetInfo(HDC hDC,
- LPFONTSIGNATURE Sig,
- DWORD Flags);
-
-BOOL
-STDCALL
-NtGdiGetTextExtentExPoint(HDC hDC,
- LPCWSTR String,
- int Count,
- int MaxExtent,
- LPINT Fit,
- LPINT Dx,
- LPSIZE Size);
-
-BOOL
-STDCALL
-NtGdiGetTextExtentPoint(HDC hDC,
- LPCWSTR String,
- int Count,
- LPSIZE Size);
-
-BOOL
-STDCALL
-NtGdiGetTextExtentPoint32(HDC hDC,
- LPCWSTR String,
- int Count,
- LPSIZE Size);
-
-int
-STDCALL
-NtGdiGetTextFace(HDC hDC,
- int Count,
- LPWSTR FaceName);
-
-BOOL
-STDCALL
-NtGdiGetTextMetrics(HDC hDC,
- LPTEXTMETRICW tm);
-
-BOOL
-STDCALL
-NtGdiPolyTextOut(HDC hDC,
- CONST LPPOLYTEXTW txt,
- int Count);
-
-BOOL
-STDCALL
-NtGdiRemoveFontResource(LPCWSTR FileName);
-
-DWORD
-STDCALL
-NtGdiSetMapperFlags(HDC hDC,
- DWORD Flag);
-
-UINT
-STDCALL
-NtGdiSetTextAlign(HDC hDC,
- UINT Mode);
-
-COLORREF
-STDCALL
-NtGdiSetTextColor(HDC hDC,
- COLORREF Color);
-
-BOOL
-STDCALL
-NtGdiSetTextJustification(HDC hDC,
- int BreakExtra,
- int BreakCount);
-
-BOOL
-STDCALL
-NtGdiTextOut(HDC hDC,
- int XStart,
- int YStart,
- LPCWSTR String,
- int Count);
-
-#endif
-
+++ /dev/null
-#include <win32k/kapi.h>
+++ /dev/null
-
-#ifndef __WIN32K_WINGL_H
-#define __WIN32K_WINGL_H
-
-INT
-STDCALL
-NtGdiChoosePixelFormat(HDC hDC,
- CONST PPIXELFORMATDESCRIPTOR pfd);
-
-INT
-STDCALL
-NtGdiDescribePixelFormat(HDC hDC,
- INT PixelFormat,
- UINT BufSize,
- PPIXELFORMATDESCRIPTOR pfd);
-
-UINT
-STDCALL
-NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
- DWORD BufSize,
- CONST PPIXELFORMATDESCRIPTOR pfd);
-
-INT
-STDCALL
-NtGdiGetPixelFormat(HDC hDC);
-
-BOOL
-STDCALL
-NtGdiSetPixelFormat(HDC hDC,
- INT PixelFormat,
- CONST PPIXELFORMATDESCRIPTOR pfd);
-
-BOOL
-STDCALL
-NtGdiSwapBuffers(HDC hDC);
-
-#endif
-
BRUSHOBJ_pvAllocRbrush@8
BRUSHOBJ_pvGetRbrush@4
BRUSHOBJ_ulGetBrushColor@4
-BitBlt@36=NtGdiBitBlt@36
+BitBlt@36
CancelDC@4
CheckColorsInGamut@16
ChoosePixelFormat@8
CreateRoundRectRgn@24=NtGdiCreateRoundRectRgn@24
CreateScalableFontResourceA@16
CreateScalableFontResourceW@16
-CreateSolidBrush@4=NtGdiCreateSolidBrush@4
+CreateSolidBrush@4
DPtoLP@12=NtGdiDPtoLP@12
DeleteColorSpace@4
DeleteDC@4=NtGdiDeleteDC@4
GetGlyphIndicesW@20
GetGlyphOutline=GetGlyphOutlineA@28
GetGlyphOutlineA@28
-GetGlyphOutlineW@28=NtGdiGetGlyphOutline@28
+GetGlyphOutlineW@28
GetGlyphOutlineWow@28
GetGraphicsMode@4=NtGdiGetGraphicsMode@4
GetHFONT@4
--- /dev/null
+/*\r
+ * COPYRIGHT: See COPYING in the top level directory\r
+ * PROJECT: ReactOS System Libraries\r
+ * FILE: lib/gdi32/include/gdi32p.h\r
+ * PURPOSE: User-Mode Win32 GDI Library Private Header\r
+ * PROGRAMMER: Alex Ionescu (alex@relsoft.net)\r
+ */\r
+\r
+/* DATA **********************************************************************/\r
+\r
+extern PGDI_TABLE_ENTRY GdiHandleTable;\r
+extern HANDLE hProcessHeap;\r
+extern HANDLE CurrentProcessId;\r
+\r
+typedef INT\r
+(CALLBACK* EMFPLAYPROC)(\r
+ HDC hdc,\r
+ INT iFunction,\r
+ HANDLE hPageQuery\r
+);\r
+\r
+/* FUNCTIONS *****************************************************************/\r
+\r
+PVOID\r
+HEAP_alloc(DWORD len);\r
+\r
+NTSTATUS\r
+HEAP_strdupA2W(\r
+ LPWSTR* ppszW,\r
+ LPCSTR lpszA\r
+);\r
+\r
+VOID\r
+HEAP_free(LPVOID memory);\r
+\r
+BOOL\r
+FASTCALL\r
+TextMetricW2A(\r
+ TEXTMETRICA *tma,\r
+ TEXTMETRICW *tmw\r
+);\r
+\r
+BOOL\r
+FASTCALL\r
+NewTextMetricW2A(\r
+ NEWTEXTMETRICA *tma,\r
+ NEWTEXTMETRICW *tmw\r
+);\r
+\r
+BOOL\r
+FASTCALL\r
+NewTextMetricExW2A(\r
+ NEWTEXTMETRICEXA *tma,\r
+ NEWTEXTMETRICEXW *tmw\r
+);\r
+\r
+BOOL\r
+GdiIsHandleValid(HGDIOBJ hGdiObj);\r
+\r
+BOOL\r
+GdiGetHandleUserData(\r
+ HGDIOBJ hGdiObj,\r
+ PVOID *UserData\r
+);\r
+\r
+BOOL\r
+WINAPI\r
+CalculateColorTableSize(\r
+ CONST BITMAPINFOHEADER *BitmapInfoHeader,\r
+ UINT *ColorSpec,\r
+ UINT *ColorTableSize\r
+);\r
+\r
+LPBITMAPINFO\r
+WINAPI\r
+ConvertBitmapInfo(\r
+ CONST BITMAPINFO *BitmapInfo,\r
+ UINT ColorSpec,\r
+ UINT *BitmapInfoSize,\r
+ BOOL FollowedByData\r
+);\r
+\r
+DEVMODEW *\r
+NTAPI\r
+GdiConvertToDevmodeW(DEVMODEA *dm);\r
+\r
+VOID\r
+NTAPI\r
+LogFontA2W(\r
+ LPLOGFONTW pW,\r
+ CONST LOGFONTA *pA\r
+);\r
+\r
+VOID\r
+NTAPI\r
+LogFontW2A(\r
+ LPLOGFONTA pA,\r
+ CONST LOGFONTW *pW\r
+);\r
+\r
+/* FIXME: Put in some public header */\r
+UINT\r
+WINAPI\r
+UserRealizePalette(HDC hDC);\r
+\r
+/* EOF */\r
/* INCLUDES ******************************************************************/
-/* SDK/DDK/NDK Headers. */
+/* Definitions */
#define WIN32_NO_STATUS
#define NTOS_MODE_USER
-#define __GDI32__
+
+/* SDK/DDK/NDK Headers. */
#include <windows.h>
-#include <ddraw.h>
-#include <ddrawi.h>
+#include <ndk/ntndk.h>
#include <winddi.h>
+#include <d3dnthal.h>
#include <prntfont.h>
-#include <ddrawgdi.h>
-#include <ndk/ntndk.h>
-#include <tchar.h>
-
-/* Win32K External Headers */
-#include <win32k/kapi.h>
-
-/* directdraw syscall */
-#include <win32k/ntddraw.h>
-
-
-#define NtUserGetDCBrushColor(hbr) \
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
-
-#define NtUserGetDCPenColor(hbr) \
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
-
-#define NtUserSetDCBrushColor(hbr, crColor) \
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
-
-#define NtUserSetDCPenColor(hbr, crColor) \
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
-
-typedef int (CALLBACK* EMFPLAYPROC)( HDC, INT, HANDLE );
-typedef DWORD FULLSCREENCONTROL;
-typedef DWORD UNIVERSAL_FONT_ID;
-typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID;
-typedef DWORD REALIZATION_INFO;
-typedef REALIZATION_INFO *PREALIZATION_INFO;
-typedef DWORD CHWIDTHINFO;
-typedef CHWIDTHINFO *PCHWIDTHINFO;
-
-/* == GLOBAL VARIABLES ====================================================== */
-
-extern PGDI_TABLE_ENTRY GdiHandleTable;
-extern HANDLE hProcessHeap;
-extern HANDLE CurrentProcessId;
-
-/* == HEAP ================================================================== */
-
-PVOID HEAP_alloc ( DWORD len );
-NTSTATUS HEAP_strdupA2W ( LPWSTR* ppszW, LPCSTR lpszA );
-VOID HEAP_free ( LPVOID memory );
-
-/* == FONT ================================================================== */
-
-BOOL FASTCALL TextMetricW2A(TEXTMETRICA *tma, TEXTMETRICW *tmw);
-BOOL FASTCALL NewTextMetricW2A(NEWTEXTMETRICA *tma, NEWTEXTMETRICW *tmw);
-BOOL FASTCALL NewTextMetricExW2A(NEWTEXTMETRICEXA *tma, NEWTEXTMETRICEXW *tmw);
-
-/* == GDI HANDLES =========================================================== */
-
-BOOL GdiIsHandleValid(HGDIOBJ hGdiObj);
-BOOL GdiGetHandleUserData(HGDIOBJ hGdiObj, PVOID *UserData);
-
-/* == BITMAP UTILITY FUNCTIONS ============================================== */
-
-BOOL STDCALL CalculateColorTableSize(CONST BITMAPINFOHEADER *BitmapInfoHeader, UINT *ColorSpec, UINT *ColorTableSize);
-LPBITMAPINFO STDCALL ConvertBitmapInfo(CONST BITMAPINFO *BitmapInfo, UINT ColorSpec, UINT *BitmapInfoSize, BOOL FollowedByData);
-/* == CONVERSION FUNCTIONS ================================================== */
-DEVMODEW *
-STDCALL
-GdiConvertToDevmodeW(DEVMODEA *dm);
+/* Public Win32K Headers */
+#include <win32k/ntgdityp.h>
+#include <ntgdi.h>
+#include <win32k/ntgdihdl.h>
-VOID
-STDCALL
-LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA);
+/* Private GDI32 Header */
+#include "gdi32p.h"
-VOID
-STDCALL
-LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW);
+/* Deprecated NTGDI calls which shouldn't exist */
+#include <win32k/ntgdibad.h>
-/* == Directx FUNCTIONS ================================================== */
-BOOL
-intDDCreateSurface ( LPDDRAWI_DDRAWSURFACE_LCL pSurface, BOOL bComplete);
/* EOF */
#include "precomp.h"
+#include <ddraw.h>
+#include <ddrawi.h>
+#include <ddrawint.h>
+#include <ddrawgdi.h>
static LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobalInternal;
static ULONG RemberDdQueryDisplaySettingsUniquenessID = 0;
+BOOL
+intDDCreateSurface ( LPDDRAWI_DDRAWSURFACE_LCL pSurface,
+ BOOL bComplete);
/*
* @implemented
return TRUE;
}
+/*
+ * @unimplemented
+ */
+BOOL
+STDCALL
+DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
+ LPDDHALINFO pHalInfo,
+ LPDDHAL_DDCALLBACKS pDDCallbacks,
+ LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
+ LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
+ LPD3DHAL_CALLBACKS pD3dCallbacks,
+ LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
+ LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
+ LPDDSURFACEDESC pD3dTextureFormats,
+ LPDWORD pdwFourCC,
+ LPVIDMEM pvmList)
+{
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
+}
-
+/*
+ * @unimplemented
+ */
+HBITMAP
+STDCALL
+DdCreateDIBSection(HDC hdc,
+ CONST BITMAPINFO *pbmi,
+ UINT iUsage,
+ VOID **ppvBits,
+ HANDLE hSectionApp,
+ DWORD dwOffset)
+{
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ return 0;
+}
/*
* @implemented
return 0;
}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL DdQueryDirectDrawObject(
-LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
-LPDDHALINFO pHalInfo,
-LPDDHAL_DDCALLBACKS pDDCallbacks,
-LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
-LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
-LPD3DHAL_CALLBACKS pD3dCallbacks,
-LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
-LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
-LPDDSURFACEDESC pD3dTextureFormats,
-LPDWORD pdwFourCC,
-LPVIDMEM pvmList
-)
-{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
-
-/*
- * @unimplemented
- */
-HBITMAP STDCALL DdCreateDIBSection(
-HDC hdc,
-CONST BITMAPINFO *pbmi,
-UINT iUsage,
-VOID **ppvBits,
-HANDLE hSectionApp,
-DWORD dwOffset
-)
-{
- UNIMPLEMENTED;
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
- return 0;
-}
-
-
/*
* @unimplemented
*/
BOOL
STDCALL
GetICMProfileA(
- HDC a0,
- DWORD a1, /* MS says LPDWORD! */
- LPSTR a2
+ HDC hdc,
+ LPDWORD pBufSize,
+ LPSTR pszFilename
)
{
UNIMPLEMENTED;
STDCALL
UpdateICMRegKeyA(
DWORD a0,
- DWORD a1,
+ LPSTR a1,
LPSTR a2,
UINT a3
)
STDCALL
GetICMProfileW(
HDC a0,
- DWORD a1, /* MS says LPDWORD! */
+ LPDWORD a1,
LPWSTR a2
)
{
STDCALL
UpdateICMRegKeyW(
DWORD a0,
- DWORD a1,
+ LPWSTR a1,
LPWSTR a2,
UINT a3
)
STDCALL
GetEnhMetaFilePixelFormat(
HENHMETAFILE hemf,
- DWORD cbBuffer,
- CONST PIXELFORMATDESCRIPTOR *ppfd
+ UINT cbBuffer,
+ PIXELFORMATDESCRIPTOR *ppfd
)
{
ENHMETAHEADER pemh;
{
if(pemh.cbPixelFormat)
{
- memcpy((void*)ppfd, (const void *)pemh.offPixelFormat, cbBuffer );
+ memcpy((void*)ppfd, UlongToPtr(pemh.offPixelFormat), cbBuffer );
return(pemh.cbPixelFormat);
}
}
&ConvertedInfoSize, FALSE);
if (pConvertedInfo)
{
- hBitmap = NtGdiCreateDIBSection(hDC, pConvertedInfo, Usage, Bits,
- hSection, dwOffset);
+ hBitmap = NtGdiCreateDIBSection(hDC, hSection, dwOffset, pConvertedInfo, Usage, 0, 0, 0, Bits);
if (BitmapInfo != pConvertedInfo)
RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
}
return hBitmap;
}
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+BitBlt(HDC hdcDest, /* handle to destination DC */
+ int nXOriginDest, /* x-coord of destination upper-left corner */
+ int nYOriginDest, /* y-coord of destination upper-left corner */
+ int nWidthDest, /* width of destination rectangle */
+ int nHeightDest, /* height of destination rectangle */
+ HDC hdcSrc, /* handle to source DC */
+ int nXSrc, /* x-coordinate of source upper-left corner */
+ int nYSrc, /* y-coordinate of source upper-left corner */
+ DWORD dwRop) /* raster operation code */
+{
+ return NtGdiBitBlt(hdcDest,
+ nXOriginDest,
+ nYOriginDest,
+ nWidthDest,
+ nHeightDest,
+ hdcSrc,
+ nXSrc,
+ nYSrc,
+ dwRop,
+ 0,
+ 0);
+}
+
/*
* @implemented
*/
{
return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc,
- nWidthSrc, nHeightSrc, dwRop);
+ nWidthSrc, nHeightSrc, dwRop, 0);
}
return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
- nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop);
+ nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop, 0, 0);
}
if (pConvertedInfo)
{
hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
- ConvertedInfoSize, lpPackedDIB);
+ ConvertedInfoSize, FALSE, FALSE, lpPackedDIB);
if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
}
if (pConvertedInfo)
{
hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
- ConvertedInfoSize, lpPackedDIB);
+ ConvertedInfoSize, FALSE, FALSE, (PVOID)lpPackedDIB);
if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
}
return hBrush;
}
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreateSolidBrush(IN COLORREF crColor)
+{
+ /* Call Server-Side API */
+ return NtGdiCreateSolidBrush(crColor, NULL);
+}
+
/*
* @implemented
*/
break;
case BS_SOLID:
- hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor);
+ hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor, 0);
break;
case BS_HATCHED:
CONST DEVMODEW *lpInitData
)
{
- return NtGdiResetDC ( hdc, lpInitData );
+ NtGdiResetDC ( hdc, (PDEVMODEW)lpInitData, NULL, NULL, NULL);
+ return hdc;
}
)
{
LPDEVMODEW InitDataW;
- HDC hDc;
InitDataW = GdiConvertToDevmodeW((LPDEVMODEA)lpInitData);
- hDc = NtGdiResetDC ( hdc, InitDataW );
+ NtGdiResetDC ( hdc, InitDataW, NULL, NULL, NULL);
HEAP_free(InitDataW);
- return hDc;
+ return hdc;
}
CONST DOCINFOW *a1
)
{
- return NtGdiStartDoc ( hdc, (DOCINFOW *)a1 );
+ return NtGdiStartDoc ( hdc, (DOCINFOW *)a1, NULL, 0);
}
CONST MAT2 *lpmat2
)
{
- return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2 );
+ return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2, TRUE);
}
+/*
+ * @implemented
+ */
+DWORD
+STDCALL
+GetGlyphOutlineW(
+ HDC hdc,
+ UINT uChar,
+ UINT uFormat,
+ LPGLYPHMETRICS lpgm,
+ DWORD cbBuffer,
+ LPVOID lpvBuffer,
+ CONST MAT2 *lpmat2
+ )
+{
+ return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2, TRUE);
+}
+
+
/*
* @implemented
PFLOAT a2
)
{
- return NtGdiSetMiterLimit ( hdc, a1, a2 );
+ return NtGdiSetMiterLimit ( hdc, a1, (PDWORD)a2 );
}
PFLOAT a1
)
{
- return NtGdiGetMiterLimit ( hdc, a1 );
+ return NtGdiGetMiterLimit ( hdc, (PDWORD)a1 );
}
/*
/* CSRSS Headers */
#include <csrss/csrss.h>
-/* External Win32K Headers */
+/* Public Win32K Headers */
+#include <win32k/ntusrtyp.h>
#include <win32k/ntuser.h>
-#include <win32k/caret.h>
#include <win32k/callback.h>
-#include <win32k/cursoricon.h>
-#include <win32k/menu.h>
-#include <win32k/paint.h>
/* WINE Headers */
#include <wine/debug.h>
/* Internal User32 Headers */
#include "user32p.h"
-/* FIXME: FILIP */
+/* FIXME: Use ntgdi.h then cleanup... */
HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
-DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
+BOOL STDCALL NtGdiPatBlt(HDC hdcDst, INT x, INT y, INT cx, INT cy, DWORD rop4);
+DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, DWORD *);
STROBJ StrObj;
} STRGDI;
-typedef BOOL STDCALL (*PFN_BitBlt)(SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *,
+typedef BOOL (STDCALL *PFN_BitBlt)(SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *,
XLATEOBJ *, RECTL *, POINTL *, POINTL *,
BRUSHOBJ *, POINTL *, ROP4);
-typedef BOOL STDCALL (*PFN_TransparentBlt)(SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, ULONG, ULONG);
+typedef BOOL (STDCALL *PFN_TransparentBlt)(SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, ULONG, ULONG);
-typedef BOOL STDCALL (*PFN_StretchBlt)(SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *,
+typedef BOOL (STDCALL *PFN_StretchBlt)(SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *,
XLATEOBJ *, COLORADJUSTMENT *, POINTL *,
RECTL *, RECTL *, PPOINT, ULONG);
-typedef BOOL STDCALL (*PFN_TextOut)(SURFOBJ *, STROBJ *, FONTOBJ *, CLIPOBJ *,
+typedef BOOL (STDCALL *PFN_TextOut)(SURFOBJ *, STROBJ *, FONTOBJ *, CLIPOBJ *,
RECTL *, RECTL *, BRUSHOBJ *, BRUSHOBJ *,
POINTL *, MIX);
-typedef BOOL STDCALL (*PFN_Paint)(SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX);
+typedef BOOL (STDCALL *PFN_Paint)(SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX);
-typedef BOOL STDCALL (*PFN_StrokePath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *,
+typedef BOOL (STDCALL *PFN_StrokePath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *,
BRUSHOBJ *, POINTL *, LINEATTRS *, MIX);
-typedef BOOL STDCALL (*PFN_FillPath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *, BRUSHOBJ *,
+typedef BOOL (STDCALL *PFN_FillPath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *, BRUSHOBJ *,
POINTL *, MIX, ULONG);
-typedef BOOL STDCALL (*PFN_StrokeAndFillPath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *,
+typedef BOOL (STDCALL *PFN_StrokeAndFillPath)(SURFOBJ *, PATHOBJ *, CLIPOBJ *,
XFORMOBJ *, BRUSHOBJ *, LINEATTRS *, BRUSHOBJ *,
POINTL *, MIX, ULONG);
-typedef BOOL STDCALL (*PFN_LineTo)(SURFOBJ *, CLIPOBJ *, BRUSHOBJ *,
+typedef BOOL (STDCALL *PFN_LineTo)(SURFOBJ *, CLIPOBJ *, BRUSHOBJ *,
LONG, LONG, LONG, LONG, RECTL *, MIX);
-typedef BOOL STDCALL (*PFN_CopyBits)(SURFOBJ *, SURFOBJ *, CLIPOBJ *,
+typedef BOOL (STDCALL *PFN_CopyBits)(SURFOBJ *, SURFOBJ *, CLIPOBJ *,
XLATEOBJ *, RECTL *, POINTL *);
-typedef VOID STDCALL (*PFN_Synchronize)(DHPDEV, RECTL *);
+typedef VOID (STDCALL *PFN_Synchronize)(DHPDEV, RECTL *);
-typedef VOID STDCALL (*PFN_MovePointer)(SURFOBJ *, LONG, LONG, RECTL *);
+typedef VOID (STDCALL *PFN_MovePointer)(SURFOBJ *, LONG, LONG, RECTL *);
-typedef ULONG STDCALL (*PFN_SetPointerShape)(SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *,
+typedef ULONG (STDCALL *PFN_SetPointerShape)(SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *,
LONG, LONG, LONG, LONG, RECTL *, FLONG);
-typedef HBITMAP STDCALL (*PFN_CreateDeviceBitmap)(DHPDEV, SIZEL, ULONG);
+typedef HBITMAP (STDCALL *PFN_CreateDeviceBitmap)(DHPDEV, SIZEL, ULONG);
-typedef BOOL STDCALL (*PFN_SetPalette)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
+typedef BOOL (STDCALL *PFN_SetPalette)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
-typedef BOOL STDCALL (*PFN_GradientFill)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);
+typedef BOOL (STDCALL *PFN_GradientFill)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);
typedef struct _WNDGDI {
WNDOBJ WndObj;
--- /dev/null
+\r
+#ifndef __WIN32K_BITMAPS_H\r
+#define __WIN32K_BITMAPS_H\r
+\r
+/* GDI logical bitmap object */\r
+typedef struct _BITMAPOBJ\r
+{\r
+ SURFOBJ SurfObj;\r
+ FLONG flHooks;\r
+ FLONG flFlags;\r
+ SIZE dimension; /* For SetBitmapDimension(), do NOT use\r
+ to get width/height of bitmap, use\r
+ bitmap.bmWidth/bitmap.bmHeight for\r
+ that */\r
+ PFAST_MUTEX BitsLock; /* You need to hold this lock before you touch\r
+ the actual bits in the bitmap */\r
+\r
+ /* For device-independent bitmaps: */\r
+ DIBSECTION *dib;\r
+ HPALETTE hDIBPalette;\r
+} BITMAPOBJ, *PBITMAPOBJ;\r
+\r
+#define BITMAPOBJ_IS_APIBITMAP 0x1\r
+\r
+/* Internal interface */\r
+\r
+#define BITMAPOBJ_AllocBitmap() \\r
+ ((HBITMAP) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BITMAP))\r
+#define BITMAPOBJ_FreeBitmap(hBMObj) \\r
+ GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_BITMAP)\r
+/* NOTE: Use shared locks! */\r
+#define BITMAPOBJ_LockBitmap(hBMObj) (PBITMAPOBJ)EngLockSurface((HSURF)hBMObj)\r
+#define BITMAPOBJ_UnlockBitmap(pBMObj) EngUnlockSurface(&pBMObj->SurfObj)\r
+BOOL INTERNAL_CALL BITMAP_Cleanup(PVOID ObjectBody);\r
+\r
+BOOL INTERNAL_CALL BITMAPOBJ_InitBitsLock(BITMAPOBJ *pBMObj);\r
+#define BITMAPOBJ_LockBitmapBits(pBMObj) ExAcquireFastMutex((pBMObj)->BitsLock)\r
+#define BITMAPOBJ_UnlockBitmapBits(pBMObj) ExReleaseFastMutex((pBMObj)->BitsLock)\r
+void INTERNAL_CALL BITMAPOBJ_CleanupBitsLock(BITMAPOBJ *pBMObj);\r
+\r
+INT FASTCALL BITMAPOBJ_GetWidthBytes (INT bmWidth, INT bpp);\r
+HBITMAP FASTCALL BITMAPOBJ_CopyBitmap (HBITMAP hBitmap);\r
+INT FASTCALL DIB_GetDIBWidthBytes (INT width, INT depth);\r
+int NTAPI DIB_GetDIBImageBytes (INT width, INT height, INT depth);\r
+INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);\r
+INT NTAPI BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer);\r
+HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj, HDEV GDIDevice);\r
+\r
+#endif\r
+\r
-#ifndef __WIN32K_BRUSH_H
-#define __WIN32K_BRUSH_H
-
-#include <win32k/gdiobj.h>
-
-/* Internal interface */
-
-#define NB_HATCH_STYLES 6
-
-/*
- * The layout of this structure is taken from "Windows Graphics Programming"
- * book written by Feng Yuan.
- *
- * DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
- * A MAILING LIST FIRST.
- */
-
-typedef struct
-{
- ULONG AttrFlags;
- COLORREF lbColor;
-} BRUSHATTR, *PBRUSHATTR;
-
-typedef struct
-{
- ULONG ulStyle;
- HBITMAP hbmPattern;
- HANDLE hbmClient;
- ULONG flAttrs;
-
- ULONG ulBrushUnique;
- BRUSHATTR *pBrushAttr;
- BRUSHATTR BrushAttr;
- POINT ptOrigin;
- ULONG bCacheGrabbed;
- COLORREF crBack;
- COLORREF crFore;
- ULONG ulPalTime;
- ULONG ulSurfTime;
- PVOID ulRealization;
- ULONG Unknown4C[3];
- POINT ptPenWidth;
- ULONG ulPenStyle;
- DWORD *pStyle;
- ULONG dwStyleCount;
- ULONG Unknown6C;
-} GDIBRUSHOBJ, *PGDIBRUSHOBJ;
-
-typedef struct
-{
- BRUSHOBJ BrushObject;
- PGDIBRUSHOBJ GdiBrushObject;
- XLATEOBJ *XlateObject;
-} GDIBRUSHINST, *PGDIBRUSHINST;
-
-/* GDI Brush Attributes */
-
-#define GDIBRUSH_NEED_BK_CLR 0x0002 /* Background color is needed */
-#define GDIBRUSH_DITHER_OK 0x0004 /* Allow color dithering */
-#define GDIBRUSH_IS_SOLID 0x0010 /* Solid brush */
-#define GDIBRUSH_IS_HATCH 0x0020 /* Hatch brush */
-#define GDIBRUSH_IS_BITMAP 0x0040 /* DDB pattern brush */
-#define GDIBRUSH_IS_DIB 0x0080 /* DIB pattern brush */
-#define GDIBRUSH_IS_NULL 0x0100 /* Null/hollow brush */
-#define GDIBRUSH_IS_GLOBAL 0x0200 /* Stock objects */
-#define GDIBRUSH_IS_PEN 0x0400 /* Pen */
-#define GDIBRUSH_IS_OLDSTYLEPEN 0x0800 /* Geometric pen */
-#define GDIBRUSH_IS_MASKING 0x8000 /* Pattern bitmap is used as transparent mask (?) */
-#define GDIBRUSH_CACHED_IS_SOLID 0x80000000
-
-#define BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BRUSH))
-#define BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)
-#define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
-#define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(pBrush)
-BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);
-
-HBRUSH STDCALL
-NtGdiCreateBrushIndirect(
- CONST LOGBRUSH *LogBrush);
-
-HBRUSH STDCALL
-NtGdiCreateDIBBrush(
- CONST BITMAPINFO *BitmapInfoAndData,
- UINT ColorSpec,
- UINT BitmapInfoSize,
- CONST VOID *PackedDIB);
-
-HBRUSH STDCALL
-NtGdiCreateHatchBrush(
- INT Style,
- COLORREF Color);
-
-HBRUSH STDCALL
-NtGdiCreatePatternBrush(
- HBITMAP hBitmap);
-
-HBRUSH STDCALL
-NtGdiCreateSolidBrush(
- COLORREF Color);
-
-BOOL STDCALL
-NtGdiFixBrushOrgEx(
- VOID);
-
-BOOL STDCALL
-NtGdiSetBrushOrgEx(
- HDC hDC,
- INT XOrg,
- INT YOrg,
- LPPOINT Point);
-
-#endif
+#ifndef __WIN32K_BRUSH_H\r
+#define __WIN32K_BRUSH_H\r
+\r
+#include "gdiobj.h"\r
+\r
+/* Internal interface */\r
+\r
+#define NB_HATCH_STYLES 6\r
+\r
+/*\r
+ * The layout of this structure is taken from "Windows Graphics Programming"\r
+ * book written by Feng Yuan.\r
+ *\r
+ * DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON\r
+ * A MAILING LIST FIRST.\r
+ */\r
+\r
+typedef struct\r
+{\r
+ ULONG AttrFlags;\r
+ COLORREF lbColor;\r
+} BRUSHATTR, *PBRUSHATTR;\r
+\r
+typedef struct\r
+{\r
+ ULONG ulStyle;\r
+ HBITMAP hbmPattern;\r
+ HANDLE hbmClient;\r
+ ULONG flAttrs;\r
+\r
+ ULONG ulBrushUnique;\r
+ BRUSHATTR *pBrushAttr;\r
+ BRUSHATTR BrushAttr;\r
+ POINT ptOrigin;\r
+ ULONG bCacheGrabbed;\r
+ COLORREF crBack;\r
+ COLORREF crFore;\r
+ ULONG ulPalTime;\r
+ ULONG ulSurfTime;\r
+ PVOID ulRealization;\r
+ ULONG Unknown4C[3];\r
+ POINT ptPenWidth;\r
+ ULONG ulPenStyle;\r
+ DWORD *pStyle;\r
+ ULONG dwStyleCount;\r
+ ULONG Unknown6C;\r
+} GDIBRUSHOBJ, *PGDIBRUSHOBJ;\r
+\r
+typedef struct\r
+{\r
+ BRUSHOBJ BrushObject;\r
+ PGDIBRUSHOBJ GdiBrushObject;\r
+ XLATEOBJ *XlateObject;\r
+} GDIBRUSHINST, *PGDIBRUSHINST;\r
+\r
+/* GDI Brush Attributes */\r
+\r
+#define GDIBRUSH_NEED_BK_CLR 0x0002 /* Background color is needed */\r
+#define GDIBRUSH_DITHER_OK 0x0004 /* Allow color dithering */\r
+#define GDIBRUSH_IS_SOLID 0x0010 /* Solid brush */\r
+#define GDIBRUSH_IS_HATCH 0x0020 /* Hatch brush */\r
+#define GDIBRUSH_IS_BITMAP 0x0040 /* DDB pattern brush */\r
+#define GDIBRUSH_IS_DIB 0x0080 /* DIB pattern brush */ \r
+#define GDIBRUSH_IS_NULL 0x0100 /* Null/hollow brush */\r
+#define GDIBRUSH_IS_GLOBAL 0x0200 /* Stock objects */\r
+#define GDIBRUSH_IS_PEN 0x0400 /* Pen */\r
+#define GDIBRUSH_IS_OLDSTYLEPEN 0x0800 /* Geometric pen */\r
+#define GDIBRUSH_IS_MASKING 0x8000 /* Pattern bitmap is used as transparent mask (?) */\r
+#define GDIBRUSH_CACHED_IS_SOLID 0x80000000 \r
+\r
+#define BRUSHOBJ_AllocBrush() ((HBRUSH) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_BRUSH))\r
+#define BRUSHOBJ_FreeBrush(hBrush) GDIOBJ_FreeObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH)\r
+#define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))\r
+#define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(pBrush)\r
+BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);\r
+\r
+#endif\r
#ifndef _WIN32K_COLOR_H
#define _WIN32K_COLOR_H
+#ifndef CLR_INVALID
+#define CLR_INVALID 0xffffffff
+#endif
+#define PC_SYS_USED 0x80 /* palentry is used (both system and logical) */
+#define PC_SYS_RESERVED 0x40 /* system palentry is not to be mapped to */
+#define PC_SYS_MAPPED 0x10 /* logical palentry is a direct alias for system palentry */
+
#define NB_RESERVED_COLORS 20 /* number of fixed colors in system palette */
const PALETTEENTRY* FASTCALL COLOR_GetSystemPaletteTemplate (VOID);
INT STDCALL COLOR_PaletteLookupExactIndex (PALETTEENTRY* palPalEntry, INT size, COLORREF col);
INT STDCALL COLOR_PaletteLookupPixel(PALETTEENTRY *palPalEntry, INT size, XLATEOBJ *XlateObj, COLORREF col, BOOL skipReserved);
+
#endif /* _WIN32K_COLOR_H */
--- /dev/null
+#ifndef __WIN32K_COORD_H\r
+#define __WIN32K_COORD_H\r
+\r
+VOID\r
+FASTCALL\r
+IntDPtoLP ( PDC dc, LPPOINT Points, INT Count );\r
+\r
+VOID\r
+FASTCALL\r
+CoordDPtoLP ( PDC Dc, LPPOINT Point );\r
+\r
+int\r
+FASTCALL\r
+IntGetGraphicsMode ( PDC dc );\r
+\r
+VOID\r
+FASTCALL\r
+CoordLPtoDP ( PDC Dc, LPPOINT Point );\r
+\r
+VOID\r
+FASTCALL\r
+IntLPtoDP ( PDC dc, LPPOINT Points, INT Count );\r
+\r
+#endif\r
-
-#ifndef __WIN32K_DC_H
-#define __WIN32K_DC_H
-
-typedef struct _WIN_DC_INFO
-{
- int flags;
- HRGN hClipRgn; /* Clip region (may be 0) */
- HRGN hVisRgn; /* Visible region (must never be 0) */
- HRGN hGCClipRgn; /* GC clip region (ClipRgn AND VisRgn) */
- HPEN hPen;
- HBRUSH hBrush;
- HFONT hFont;
- HBITMAP hBitmap;
- HBITMAP hFirstBitmap; /* Bitmap selected at creation of the DC */
-
-/* #if 0 */
- HANDLE hDevice;
- HPALETTE hPalette;
-
- GdiPath path;
-/* #endif */
-
- WORD ROPmode;
- WORD polyFillMode;
- WORD stretchBltMode;
- WORD relAbsMode;
- WORD backgroundMode;
- COLORREF backgroundColor;
- COLORREF textColor;
-
- short brushOrgX;
- short brushOrgY;
-
- WORD textAlign; /* Text alignment from SetTextAlign() */
- short charExtra; /* Spacing from SetTextCharacterExtra() */
- short breakTotalExtra; /* Total extra space for justification */
- short breakCount; /* Break char. count */
- short breakExtra; /* breakTotalExtra / breakCount */
- short breakRem; /* breakTotalExtra % breakCount */
-
- RECT totalExtent;
- BYTE bitsPerPixel;
-
- INT MapMode;
- INT GraphicsMode; /* Graphics mode */
- INT DCOrgX; /* DC origin */
- INT DCOrgY;
-
-#if 0
- FARPROC lpfnPrint; /* AbortProc for Printing */
-#endif
-
- INT CursPosX; /* Current position */
- INT CursPosY;
- INT ArcDirection;
-
- XFORM xformWorld2Wnd; /* World-to-window transformation */
- XFORM xformWorld2Vport; /* World-to-viewport transformation */
- XFORM xformVport2World; /* Inverse of the above transformation */
- BOOL vport2WorldValid; /* Is xformVport2World valid? */
-} WIN_DC_INFO;
-
- /* DC flags */
-#define DC_MEMORY 0x0001 /* It is a memory DC */
-#define DC_SAVED 0x0002 /* It is a saved DC */
-#define DC_DIRTY 0x0004 /* hVisRgn has to be updated */
-#define DC_THUNKHOOK 0x0008 /* DC hook is in the 16-bit code */
-
-#define GDI_DC_TYPE (1)
-
-typedef struct _DC
-{
- HDC hSelf;
- HDC hNext;
- DHPDEV PDev;
- HSURF FillPatternSurfaces[HS_DDI_MAX];
- PGDIINFO GDIInfo;
- PDEVINFO DevInfo;
- HDEV GDIDevice;
-
- DRIVER_FUNCTIONS DriverFunctions;
- UNICODE_STRING DriverName;
- HANDLE DeviceDriver;
-
- INT wndOrgX; /* Window origin */
- INT wndOrgY;
- INT wndExtX; /* Window extent */
- INT wndExtY;
- INT vportOrgX; /* Viewport origin */
- INT vportOrgY;
- INT vportExtX; /* Viewport extent */
- INT vportExtY;
-
- CLIPOBJ *CombinedClip;
-
- XLATEOBJ *XlateBrush;
- XLATEOBJ *XlatePen;
-
- INT saveLevel;
- BOOL IsIC;
-
- HPALETTE PalIndexed;
-
- WIN_DC_INFO w;
-} DC, *PDC;
-
-typedef struct _GDIPOINTER /* should stay private to ENG */
-{
- /* private GDI pointer handling information, required for software emulation */
- BOOL Enabled;
- POINTL Pos;
- SIZEL Size;
- POINTL HotSpot;
- XLATEOBJ *XlateObject;
- HSURF ColorSurface;
- HSURF MaskSurface;
- HSURF SaveSurface;
-
- /* public pointer information */
- RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */
- PGD_MOVEPOINTER MovePointer;
- ULONG Status;
-} GDIPOINTER, *PGDIPOINTER;
-
-typedef struct
-{
- HANDLE Handle;
- DHPDEV PDev;
- DEVMODEW DMW;
- HSURF FillPatterns[HS_DDI_MAX];
- GDIINFO GDIInfo;
- DEVINFO DevInfo;
- DRIVER_FUNCTIONS DriverFunctions;
-#ifdef NTOS_MODE_USER
- PVOID VideoFileObject;
-#else
- PFILE_OBJECT VideoFileObject;
-#endif
- BOOLEAN PreparedDriver;
- ULONG DisplayNumber;
-
- GDIPOINTER Pointer;
-
- /* Stuff to keep track of software cursors; win32k gdi part */
- UINT SafetyRemoveLevel; /* at what level was the cursor removed?
- 0 for not removed */
- UINT SafetyRemoveCount;
-} GDIDEVICE;
-
-/* Internal functions */
-
-#ifndef NTOS_MODE_USER
-
-#define DC_LockDc(hDC) \
- ((PDC) GDIOBJ_LockObj ((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC))
-#define DC_UnlockDc(pDC) \
- GDIOBJ_UnlockObjByPtr (pDC)
-
-HDC FASTCALL RetrieveDisplayHDC(VOID);
-HDC FASTCALL DC_AllocDC(PUNICODE_STRING Driver);
-VOID FASTCALL DC_InitDC(HDC DCToInit);
-HDC FASTCALL DC_FindOpenDC(PUNICODE_STRING Driver);
-VOID FASTCALL DC_FreeDC(HDC DCToFree);
-BOOL INTERNAL_CALL DC_Cleanup(PVOID ObjectBody);
-HDC FASTCALL DC_GetNextDC (PDC pDC);
-VOID FASTCALL DC_SetNextDC (PDC pDC, HDC hNextDC);
-VOID FASTCALL DC_SetOwnership(HDC DC, PEPROCESS Owner);
-
-VOID FASTCALL DC_UpdateXforms(PDC dc);
-BOOL FASTCALL DC_InvertXform(const XFORM *xformSrc, XFORM *xformDest);
-
-#endif
-
-/* User entry points */
-
-BOOL STDCALL NtGdiCancelDC(HDC hDC);
-HDC STDCALL NtGdiCreateCompatibleDC(HDC hDC);
-HDC STDCALL NtGdiCreateDC(PUNICODE_STRING Driver,
- PUNICODE_STRING Device,
- PUNICODE_STRING Output,
- CONST PDEVMODEW InitData);
-HDC STDCALL NtGdiCreateIC(PUNICODE_STRING Driver,
- PUNICODE_STRING Device,
- PUNICODE_STRING Output,
- CONST PDEVMODEW DevMode);
-BOOL STDCALL NtGdiDeleteDC(HDC hDC);
-BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject);
-INT STDCALL NtGdiDrawEscape(HDC hDC,
- INT nEscape,
- INT cbInput,
- LPCSTR lpszInData);
-
-INT STDCALL NtGdiEnumObjects(HDC hDC,
- INT ObjectType,
- GOBJENUMPROC ObjectFunc,
- LPARAM lParam);
-
-COLORREF STDCALL NtGdiGetBkColor(HDC hDC);
-INT STDCALL NtGdiGetBkMode(HDC hDC);
-BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg);
-HRGN STDCALL NtGdiGetClipRgn(HDC hDC);
-HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType);
-VOID FASTCALL IntGetCurrentPositionEx (PDC dc, LPPOINT currentPosition);
-BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition);
-BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point);
-HDC STDCALL NtGdiGetDCState(HDC hDC);
-INT STDCALL NtGdiGetDeviceCaps(HDC hDC, INT Index);
-INT STDCALL NtGdiGetMapMode(HDC hDC);
-INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj,
- INT BufSize,
- LPVOID Object);
-DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj);
-INT STDCALL NtGdiGetPolyFillMode(HDC hDC);
-INT STDCALL NtGdiGetRelAbs(HDC hDC);
-INT STDCALL NtGdiGetROP2(HDC hDC);
-HGDIOBJ STDCALL NtGdiGetStockObject(INT Object);
-INT STDCALL NtGdiGetStretchBltMode(HDC hDC);
-COLORREF STDCALL NtGdiGetTextColor(HDC hDC);
-UINT STDCALL NtGdiGetTextAlign(HDC hDC);
-BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
-BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg);
-BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt);
-BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg);
-HDC STDCALL NtGdiResetDC(HDC hDC, CONST DEVMODEW *InitData);
-BOOL STDCALL NtGdiRestoreDC(HDC hDC, INT SavedDC);
-INT STDCALL NtGdiSaveDC(HDC hDC);
-HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
-INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode);
-VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave );
-WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags);
-INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode);
-INT STDCALL NtGdiSetRelAbs(HDC hDC, INT relAbsMode);
-INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode);
-INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode);
-COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color);
-
-#endif
+\r
+#ifndef __WIN32K_DC_H\r
+#define __WIN32K_DC_H\r
+\r
+#include "driver.h"\r
+\r
+typedef enum tagGdiPathState\r
+{\r
+ PATH_Null,\r
+ PATH_Open,\r
+ PATH_Closed\r
+} GdiPathState;\r
+\r
+typedef struct tagGdiPath\r
+{\r
+ GdiPathState state;\r
+ POINT *pPoints;\r
+ BYTE *pFlags;\r
+ int numEntriesUsed, numEntriesAllocated;\r
+ BOOL newStroke;\r
+} GdiPath;\r
+\r
+typedef struct _WIN_DC_INFO\r
+{\r
+ int flags;\r
+ HRGN hClipRgn; /* Clip region (may be 0) */\r
+ HRGN hVisRgn; /* Visible region (must never be 0) */\r
+ HRGN hGCClipRgn; /* GC clip region (ClipRgn AND VisRgn) */\r
+ HPEN hPen;\r
+ HBRUSH hBrush;\r
+ HFONT hFont;\r
+ HBITMAP hBitmap;\r
+ HBITMAP hFirstBitmap; /* Bitmap selected at creation of the DC */\r
+\r
+/* #if 0 */\r
+ HANDLE hDevice;\r
+ HPALETTE hPalette;\r
+\r
+ GdiPath path;\r
+/* #endif */\r
+\r
+ WORD ROPmode;\r
+ WORD polyFillMode;\r
+ WORD stretchBltMode;\r
+ WORD relAbsMode;\r
+ WORD backgroundMode;\r
+ COLORREF backgroundColor;\r
+ COLORREF textColor;\r
+\r
+ short brushOrgX;\r
+ short brushOrgY;\r
+\r
+ WORD textAlign; /* Text alignment from SetTextAlign() */\r
+ short charExtra; /* Spacing from SetTextCharacterExtra() */\r
+ short breakTotalExtra; /* Total extra space for justification */\r
+ short breakCount; /* Break char. count */\r
+ short breakExtra; /* breakTotalExtra / breakCount */\r
+ short breakRem; /* breakTotalExtra % breakCount */\r
+\r
+ RECT totalExtent;\r
+ BYTE bitsPerPixel;\r
+\r
+ INT MapMode;\r
+ INT GraphicsMode; /* Graphics mode */\r
+ INT DCOrgX; /* DC origin */\r
+ INT DCOrgY;\r
+\r
+#if 0\r
+ FARPROC lpfnPrint; /* AbortProc for Printing */\r
+#endif\r
+\r
+ INT CursPosX; /* Current position */\r
+ INT CursPosY;\r
+ INT ArcDirection;\r
+\r
+ XFORM xformWorld2Wnd; /* World-to-window transformation */\r
+ XFORM xformWorld2Vport; /* World-to-viewport transformation */\r
+ XFORM xformVport2World; /* Inverse of the above transformation */\r
+ BOOL vport2WorldValid; /* Is xformVport2World valid? */\r
+} WIN_DC_INFO;\r
+\r
+ /* DC flags */\r
+#define DC_MEMORY 0x0001 /* It is a memory DC */\r
+#define DC_SAVED 0x0002 /* It is a saved DC */\r
+#define DC_DIRTY 0x0004 /* hVisRgn has to be updated */\r
+#define DC_THUNKHOOK 0x0008 /* DC hook is in the 16-bit code */\r
+\r
+#define GDI_DC_TYPE (1)\r
+\r
+typedef struct _DC\r
+{\r
+ HDC hSelf;\r
+ HDC hNext;\r
+ DHPDEV PDev;\r
+ HSURF FillPatternSurfaces[HS_DDI_MAX];\r
+ PGDIINFO GDIInfo;\r
+ PDEVINFO DevInfo;\r
+ HDEV GDIDevice;\r
+\r
+ DRIVER_FUNCTIONS DriverFunctions;\r
+ UNICODE_STRING DriverName;\r
+ HANDLE DeviceDriver;\r
+\r
+ INT wndOrgX; /* Window origin */\r
+ INT wndOrgY;\r
+ INT wndExtX; /* Window extent */\r
+ INT wndExtY;\r
+ INT vportOrgX; /* Viewport origin */\r
+ INT vportOrgY;\r
+ INT vportExtX; /* Viewport extent */\r
+ INT vportExtY;\r
+\r
+ CLIPOBJ *CombinedClip;\r
+\r
+ XLATEOBJ *XlateBrush;\r
+ XLATEOBJ *XlatePen;\r
+\r
+ INT saveLevel;\r
+ BOOL IsIC;\r
+\r
+ HPALETTE PalIndexed;\r
+\r
+ WIN_DC_INFO w;\r
+} DC, *PDC;\r
+\r
+typedef struct _GDIPOINTER /* should stay private to ENG */\r
+{\r
+ /* private GDI pointer handling information, required for software emulation */\r
+ BOOL Enabled;\r
+ POINTL Pos;\r
+ SIZEL Size;\r
+ POINTL HotSpot;\r
+ XLATEOBJ *XlateObject;\r
+ HSURF ColorSurface;\r
+ HSURF MaskSurface;\r
+ HSURF SaveSurface;\r
+ \r
+ /* public pointer information */\r
+ RECTL Exclude; /* required publicly for SPS_ACCEPT_EXCLUDE */\r
+ PGD_MOVEPOINTER MovePointer;\r
+ ULONG Status;\r
+} GDIPOINTER, *PGDIPOINTER;\r
+\r
+typedef struct\r
+{\r
+ HANDLE Handle;\r
+ DHPDEV PDev;\r
+ DEVMODEW DMW;\r
+ HSURF FillPatterns[HS_DDI_MAX];\r
+ GDIINFO GDIInfo;\r
+ DEVINFO DevInfo;\r
+ DRIVER_FUNCTIONS DriverFunctions;\r
+ PFILE_OBJECT VideoFileObject;\r
+ BOOLEAN PreparedDriver;\r
+ ULONG DisplayNumber;\r
+\r
+ GDIPOINTER Pointer;\r
+\r
+ /* Stuff to keep track of software cursors; win32k gdi part */\r
+ UINT SafetyRemoveLevel; /* at what level was the cursor removed?\r
+ 0 for not removed */\r
+ UINT SafetyRemoveCount;\r
+} GDIDEVICE;\r
+\r
+/* Internal functions */\r
+\r
+#define DC_LockDc(hDC) \\r
+ ((PDC) GDIOBJ_LockObj ((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC))\r
+#define DC_UnlockDc(pDC) \\r
+ GDIOBJ_UnlockObjByPtr (pDC)\r
+\r
+HDC FASTCALL RetrieveDisplayHDC(VOID);\r
+HDC FASTCALL DC_AllocDC(PUNICODE_STRING Driver);\r
+VOID FASTCALL DC_InitDC(HDC DCToInit);\r
+HDC FASTCALL DC_FindOpenDC(PUNICODE_STRING Driver);\r
+VOID FASTCALL DC_FreeDC(HDC DCToFree);\r
+BOOL INTERNAL_CALL DC_Cleanup(PVOID ObjectBody);\r
+HDC FASTCALL DC_GetNextDC (PDC pDC);\r
+VOID FASTCALL DC_SetNextDC (PDC pDC, HDC hNextDC);\r
+VOID FASTCALL DC_SetOwnership(HDC DC, PEPROCESS Owner);\r
+\r
+VOID FASTCALL DC_UpdateXforms(PDC dc);\r
+BOOL FASTCALL DC_InvertXform(const XFORM *xformSrc, XFORM *xformDest);\r
+\r
+#endif\r
#ifndef _WIN32K_DIB_H
#define _WIN32K_DIB_H
-#include <win32k/dc.h>
+#include "dc.h"
INT FASTCALL
DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse);
-
-#ifndef __WIN32K_DRIVER_H
-#define __WIN32K_DRIVER_H
-
-#include <winddi.h>
-
-typedef BOOL (STDCALL *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);
-typedef DHPDEV (STDCALL *PGD_ENABLEPDEV)(DEVMODEW *,
- LPWSTR,
- ULONG,
- HSURF *,
- ULONG,
- ULONG *,
- ULONG,
- DEVINFO *,
- LPWSTR,
- LPWSTR,
- HANDLE);
-typedef VOID (STDCALL *PGD_COMPLETEPDEV)(DHPDEV, HDEV);
-typedef VOID (STDCALL *PGD_DISABLEPDEV)(DHPDEV);
-typedef HSURF (STDCALL *PGD_ENABLESURFACE)(DHPDEV);
-typedef VOID (STDCALL *PGD_DISABLESURFACE)(DHPDEV);
-typedef BOOL (STDCALL *PGD_ASSERTMODE)(DHPDEV, BOOL);
-typedef BOOL (STDCALL *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);
-typedef BOOL (STDCALL *PGD_RESETPDEV)(DHPDEV, DHPDEV);
-typedef VOID (STDCALL *PGD_DISABLEDRIVER)(VOID);
-typedef HBITMAP (STDCALL *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG);
-typedef VOID (STDCALL *PGD_DELETEDEVICEBITMAP)(DHSURF);
-typedef BOOL (STDCALL *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, RECTL*, BLENDOBJ*);
-typedef BOOL (STDCALL *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,
- XLATEOBJ*, ULONG);
-typedef ULONG (STDCALL *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG);
-typedef BOOL (STDCALL *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,
- BRUSHOBJ*, POINTL*, PLINEATTRS, MIX);
-typedef BOOL (STDCALL *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*,
- POINTL*, MIX, ULONG);
-typedef BOOL (STDCALL *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*,
- XFORMOBJ*, BRUSHOBJ*, PLINEATTRS,
- BRUSHOBJ*, POINTL*, MIX, ULONG);
-typedef BOOL (STDCALL *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX);
-typedef BOOL (STDCALL *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
- XLATEOBJ*, RECTL*, POINTL*, POINTL*, BRUSHOBJ*,
- POINTL*, ROP4);
-typedef BOOL (STDCALL *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
- RECTL*, RECTL*, ULONG, ULONG);
-typedef BOOL (STDCALL *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,
- RECTL*, POINTL*);
-typedef BOOL (STDCALL *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
- XLATEOBJ*, COLORADJUSTMENT*, POINTL*,
- RECTL*, RECTL*, POINTL*, ULONG);
-typedef BOOL (STDCALL *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,
- XLATEOBJ*, COLORADJUSTMENT*, POINTL*,
- RECTL*, RECTL*, POINTL*, ULONG,
- BRUSHOBJ*, DWORD);
-typedef BOOL (STDCALL *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG);
-typedef BOOL (STDCALL *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*,
- RECTL*, BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX);
-typedef ULONG (STDCALL *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *);
-typedef ULONG (STDCALL *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG,
- PVOID *);
-typedef PIFIMETRICS (STDCALL *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG);
-typedef PVOID (STDCALL *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG);
-typedef LONG (STDCALL *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,
- PVOID, ULONG);
-typedef ULONG (STDCALL *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*,
- LONG, LONG, LONG, LONG, RECTL*, ULONG);
-typedef VOID (STDCALL *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*);
-typedef BOOL (STDCALL *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG,
- LONG, RECTL*, MIX);
-typedef BOOL (STDCALL *PGD_SENDPAGE)(SURFOBJ*);
-typedef BOOL (STDCALL *PGD_STARTPAGE)(SURFOBJ*);
-typedef BOOL (STDCALL *PGD_ENDDOC)(SURFOBJ*, ULONG);
-typedef BOOL (STDCALL *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);
-typedef ULONG (STDCALL *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);
-typedef VOID (STDCALL *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);
-typedef ULONG (STDCALL *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);
-typedef ULONG (STDCALL *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);
-typedef VOID (STDCALL *PGD_FREE)(PVOID, ULONG);
-typedef VOID (STDCALL *PGD_DESTROYFONT)(FONTOBJ*);
-typedef LONG (STDCALL *PGD_QUERYFONTCAPS)(ULONG, PULONG);
-typedef ULONG (STDCALL *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);
-typedef BOOL (STDCALL *PGD_UNLOADFONTFILE)(ULONG);
-typedef ULONG (STDCALL *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID,
- ULONG, PVOID);
-typedef LONG (STDCALL *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,
- PBYTE);
-typedef LONG (STDCALL *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,
- GLYPHDATA*, ULONG, TTPOLYGONHEADER*);
-typedef PVOID (STDCALL *PGD_GETTRUETYPEFILE)(ULONG, PULONG);
-typedef LONG (STDCALL *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);
-typedef BOOL (STDCALL *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *,
- PVOID *, ULONG);
-typedef BOOL (STDCALL *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);
-typedef LONG (STDCALL *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,
- PPIXELFORMATDESCRIPTOR);
-typedef BOOL (STDCALL *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);
-typedef BOOL (STDCALL *PGD_STARTBANDING)(SURFOBJ*, POINTL*);
-typedef BOOL (STDCALL *PGD_NEXTBAND)(SURFOBJ*, POINTL*);
-
-typedef BOOL (STDCALL *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*, PDWORD, PDWORD);
-typedef BOOL (STDCALL *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS, PDD_PALETTECALLBACKS);
-typedef VOID (STDCALL *PGD_DISABLEDIRECTDRAW)(DHPDEV);
-
-typedef LONG (STDCALL *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);
-
-typedef BOOL (STDCALL *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);
-
-typedef VOID (STDCALL *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);
-
-typedef struct _DRIVER_FUNCTIONS
-{
- PGD_ENABLEDRIVER EnableDriver;
- PGD_ENABLEPDEV EnablePDEV;
- PGD_COMPLETEPDEV CompletePDEV;
- PGD_DISABLEPDEV DisablePDEV;
- PGD_ENABLESURFACE EnableSurface;
- PGD_DISABLESURFACE DisableSurface;
- PGD_ASSERTMODE AssertMode;
- PGD_OFFSET Offset;
- PGD_RESETPDEV ResetPDEV;
- PGD_DISABLEDRIVER DisableDriver;
- PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;
- PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;
- PGD_REALIZEBRUSH RealizeBrush;
- PGD_DITHERCOLOR DitherColor;
- PGD_STROKEPATH StrokePath;
- PGD_FILLPATH FillPath;
- PGD_STROKEANDFILLPATH StrokeAndFillPath;
- PGD_PAINT Paint;
- PGD_BITBLT BitBlt;
- PGD_TRANSPARENTBLT TransparentBlt;
- PGD_COPYBITS CopyBits;
- PGD_STRETCHBLT StretchBlt;
- PGD_STRETCHBLTROP StretchBltROP;
- PGD_SETPALETTE SetPalette;
- PGD_TEXTOUT TextOut;
- PGD_ESCAPE Escape;
- PGD_DRAWESCAPE DrawEscape;
- PGD_QUERYFONT QueryFont;
- PGD_QUERYFONTTREE QueryFontTree;
- PGD_QUERYFONTDATA QueryFontData;
- PGD_SETPOINTERSHAPE SetPointerShape;
- PGD_MOVEPOINTER MovePointer;
- PGD_LINETO LineTo;
- PGD_SENDPAGE SendPage;
- PGD_STARTPAGE StartPage;
- PGD_ENDDOC EndDoc;
- PGD_STARTDOC StartDoc;
- PGD_GETGLYPHMODE GetGlyphMode;
- PGD_SYNCHRONIZE Synchronize;
- PGD_SAVESCREENBITS SaveScreenBits;
- PGD_GETMODES GetModes;
- PGD_FREE Free;
- PGD_DESTROYFONT DestroyFont;
- PGD_QUERYFONTCAPS QueryFontCaps;
- PGD_LOADFONTFILE LoadFontFile;
- PGD_UNLOADFONTFILE UnloadFontFile;
- PGD_FONTMANAGEMENT FontManagement;
- PGD_QUERYTRUETYPETABLE QueryTrueTypeTable;
- PGD_QUERYTRUETYPEOUTLINE QueryTrueTypeOutline;
- PGD_GETTRUETYPEFILE GetTrueTypeFile;
- PGD_QUERYFONTFILE QueryFontFile;
- PGD_QUERYADVANCEWIDTHS QueryAdvanceWidths;
- PGD_SETPIXELFORMAT SetPixelFormat;
- PGD_DESCRIBEPIXELFORMAT DescribePixelFormat;
- PGD_SWAPBUFFERS SwapBuffers;
- PGD_STARTBANDING StartBanding;
- PGD_NEXTBAND NextBand;
- PGD_GETDIRECTDRAWINFO GetDirectDrawInfo;
- PGD_ENABLEDIRECTDRAW EnableDirectDraw;
- PGD_DISABLEDIRECTDRAW DisableDirectDraw;
- PGD_QUERYSPOOLTYPE QuerySpoolType;
- PGD_GRADIENTFILL GradientFill;
- PGD_SYNCHRONIZESURFACE SynchronizeSurface;
- PGD_ALPHABLEND AlphaBlend;
-} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
-
-#ifndef NTOS_MODE_USER
-
-BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);
-PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name);
-PFILE_OBJECT DRIVER_FindMPDriver(ULONG DisplayNumber);
-BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
- PDRIVER_FUNCTIONS DF);
-BOOL DRIVER_UnregisterDriver(LPCWSTR Name);
-INT DRIVER_ReferenceDriver (LPCWSTR Name);
-INT DRIVER_UnreferenceDriver (LPCWSTR Name);
-
-#endif
-
-#endif
-
+\r
+#ifndef __WIN32K_DRIVER_H\r
+#define __WIN32K_DRIVER_H\r
+\r
+#include <winddi.h>\r
+\r
+typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA);\r
+typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW *,\r
+ LPWSTR,\r
+ ULONG,\r
+ HSURF *,\r
+ ULONG,\r
+ ULONG *,\r
+ ULONG,\r
+ DEVINFO *,\r
+ LPWSTR,\r
+ LPWSTR,\r
+ HANDLE);\r
+typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV);\r
+typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV); \r
+typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV);\r
+typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV);\r
+typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL);\r
+typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG);\r
+typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV);\r
+typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID);\r
+typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG); \r
+typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF); \r
+typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, RECTL*, BLENDOBJ*);\r
+typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*,\r
+ XLATEOBJ*, ULONG); \r
+typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG); \r
+typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*,\r
+ BRUSHOBJ*, POINTL*, PLINEATTRS, MIX); \r
+typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*,\r
+ POINTL*, MIX, ULONG); \r
+typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*,\r
+ XFORMOBJ*, BRUSHOBJ*, PLINEATTRS,\r
+ BRUSHOBJ*, POINTL*, MIX, ULONG); \r
+typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX); \r
+typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,\r
+ XLATEOBJ*, RECTL*, POINTL*, POINTL*, BRUSHOBJ*,\r
+ POINTL*, ROP4); \r
+typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,\r
+ RECTL*, RECTL*, ULONG, ULONG);\r
+typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*,\r
+ RECTL*, POINTL*); \r
+typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,\r
+ XLATEOBJ*, COLORADJUSTMENT*, POINTL*,\r
+ RECTL*, RECTL*, POINTL*, ULONG);\r
+typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*,\r
+ XLATEOBJ*, COLORADJUSTMENT*, POINTL*,\r
+ RECTL*, RECTL*, POINTL*, ULONG,\r
+ BRUSHOBJ*, DWORD);\r
+typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG); \r
+typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*,\r
+ RECTL*, BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX); \r
+typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *); \r
+typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, \r
+ PVOID *); \r
+typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG); \r
+typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG); \r
+typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*,\r
+ PVOID, ULONG); \r
+typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*,\r
+ LONG, LONG, LONG, LONG, RECTL*, ULONG); \r
+typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*); \r
+typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG,\r
+ LONG, RECTL*, MIX);\r
+typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*);\r
+typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*);\r
+typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG);\r
+typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD);\r
+typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*);\r
+typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*);\r
+typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*);\r
+typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW);\r
+typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG);\r
+typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*);\r
+typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG);\r
+typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG);\r
+typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG);\r
+typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID,\r
+ ULONG, PVOID);\r
+typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG,\r
+ PBYTE);\r
+typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL,\r
+ GLYPHDATA*, ULONG, TTPOLYGONHEADER*);\r
+typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG);\r
+typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG);\r
+typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *,\r
+ PVOID *, ULONG);\r
+typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG);\r
+typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG,\r
+ PPIXELFORMATDESCRIPTOR);\r
+typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ);\r
+typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*);\r
+typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*);\r
+\r
+typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*, PDWORD, PDWORD);\r
+typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS, PDD_PALETTECALLBACKS);\r
+typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV);\r
+\r
+typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR);\r
+\r
+typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG);\r
+\r
+typedef VOID (NTAPI *PGD_SYNCHRONIZESURFACE)(SURFOBJ*, RECTL *, FLONG);\r
+\r
+typedef struct _DRIVER_FUNCTIONS\r
+{\r
+ PGD_ENABLEDRIVER EnableDriver;\r
+ PGD_ENABLEPDEV EnablePDEV;\r
+ PGD_COMPLETEPDEV CompletePDEV;\r
+ PGD_DISABLEPDEV DisablePDEV;\r
+ PGD_ENABLESURFACE EnableSurface;\r
+ PGD_DISABLESURFACE DisableSurface;\r
+ PGD_ASSERTMODE AssertMode;\r
+ PGD_OFFSET Offset;\r
+ PGD_RESETPDEV ResetPDEV;\r
+ PGD_DISABLEDRIVER DisableDriver;\r
+ PGD_CREATEDEVICEBITMAP CreateDeviceBitmap;\r
+ PGD_DELETEDEVICEBITMAP DeleteDeviceBitmap;\r
+ PGD_REALIZEBRUSH RealizeBrush;\r
+ PGD_DITHERCOLOR DitherColor;\r
+ PGD_STROKEPATH StrokePath;\r
+ PGD_FILLPATH FillPath;\r
+ PGD_STROKEANDFILLPATH StrokeAndFillPath;\r
+ PGD_PAINT Paint;\r
+ PGD_BITBLT BitBlt;\r
+ PGD_TRANSPARENTBLT TransparentBlt;\r
+ PGD_COPYBITS CopyBits;\r
+ PGD_STRETCHBLT StretchBlt;\r
+ PGD_STRETCHBLTROP StretchBltROP;\r
+ PGD_SETPALETTE SetPalette;\r
+ PGD_TEXTOUT TextOut;\r
+ PGD_ESCAPE Escape;\r
+ PGD_DRAWESCAPE DrawEscape;\r
+ PGD_QUERYFONT QueryFont;\r
+ PGD_QUERYFONTTREE QueryFontTree;\r
+ PGD_QUERYFONTDATA QueryFontData;\r
+ PGD_SETPOINTERSHAPE SetPointerShape;\r
+ PGD_MOVEPOINTER MovePointer;\r
+ PGD_LINETO LineTo;\r
+ PGD_SENDPAGE SendPage;\r
+ PGD_STARTPAGE StartPage;\r
+ PGD_ENDDOC EndDoc;\r
+ PGD_STARTDOC StartDoc;\r
+ PGD_GETGLYPHMODE GetGlyphMode;\r
+ PGD_SYNCHRONIZE Synchronize;\r
+ PGD_SAVESCREENBITS SaveScreenBits;\r
+ PGD_GETMODES GetModes;\r
+ PGD_FREE Free;\r
+ PGD_DESTROYFONT DestroyFont;\r
+ PGD_QUERYFONTCAPS QueryFontCaps;\r
+ PGD_LOADFONTFILE LoadFontFile;\r
+ PGD_UNLOADFONTFILE UnloadFontFile;\r
+ PGD_FONTMANAGEMENT FontManagement;\r
+ PGD_QUERYTRUETYPETABLE QueryTrueTypeTable;\r
+ PGD_QUERYTRUETYPEOUTLINE QueryTrueTypeOutline;\r
+ PGD_GETTRUETYPEFILE GetTrueTypeFile;\r
+ PGD_QUERYFONTFILE QueryFontFile;\r
+ PGD_QUERYADVANCEWIDTHS QueryAdvanceWidths;\r
+ PGD_SETPIXELFORMAT SetPixelFormat;\r
+ PGD_DESCRIBEPIXELFORMAT DescribePixelFormat;\r
+ PGD_SWAPBUFFERS SwapBuffers;\r
+ PGD_STARTBANDING StartBanding;\r
+ PGD_NEXTBAND NextBand;\r
+ PGD_GETDIRECTDRAWINFO GetDirectDrawInfo;\r
+ PGD_ENABLEDIRECTDRAW EnableDirectDraw;\r
+ PGD_DISABLEDIRECTDRAW DisableDirectDraw;\r
+ PGD_QUERYSPOOLTYPE QuerySpoolType;\r
+ PGD_GRADIENTFILL GradientFill;\r
+ PGD_SYNCHRONIZESURFACE SynchronizeSurface;\r
+ PGD_ALPHABLEND AlphaBlend;\r
+} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;\r
+\r
+BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver);\r
+PGD_ENABLEDRIVER DRIVER_FindDDIDriver(LPCWSTR Name);\r
+PFILE_OBJECT DRIVER_FindMPDriver(ULONG DisplayNumber);\r
+BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED, \r
+ PDRIVER_FUNCTIONS DF);\r
+BOOL DRIVER_UnregisterDriver(LPCWSTR Name);\r
+INT DRIVER_ReferenceDriver (LPCWSTR Name);\r
+INT DRIVER_UnreferenceDriver (LPCWSTR Name);\r
+\r
+#endif\r
+\r
-#ifndef __WIN32K_FLOAT_H
-#define __WIN32K_FLOAT_H
-
-#include <win32k/math.h>
-#include <win32k/dc.h>
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-typedef struct tagFLOAT_POINT
-{
- FLOAT x, y;
-} FLOAT_POINT;
-
-/* Rounds a floating point number to integer. The world-to-viewport
- * transformation process is done in floating point internally. This function
- * is then used to round these coordinates to integer values.
- */
-static __inline INT GDI_ROUND(FLOAT val)
-{
- return (int)floor(val + 0.5);
-}
-
-/* Performs a world-to-viewport transformation on the specified point (which
- * is in floating point format).
- */
-static __inline void INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)
-{
- FLOAT x, y;
-
- /* Perform the transformation */
- x = point->x;
- y = point->y;
- point->x = x * dc->w.xformWorld2Vport.eM11 +
- y * dc->w.xformWorld2Vport.eM21 +
- dc->w.xformWorld2Vport.eDx;
- point->y = x * dc->w.xformWorld2Vport.eM12 +
- y * dc->w.xformWorld2Vport.eM22 +
- dc->w.xformWorld2Vport.eDy;
-}
-
-/* Performs a viewport-to-world transformation on the specified point (which
- * is in integer format). Returns TRUE if successful, else FALSE.
- */
-#if 0
-static __inline BOOL INTERNAL_DPTOLP(DC *dc, LPPOINT point)
-{
- FLOAT_POINT floatPoint;
-
- /* Perform operation with floating point */
- floatPoint.x=(FLOAT)point->x;
- floatPoint.y=(FLOAT)point->y;
- if (!INTERNAL_DPTOLP_FLOAT(dc, &floatPoint))
- return FALSE;
-
- /* Round to integers */
- point->x = GDI_ROUND(floatPoint.x);
- point->y = GDI_ROUND(floatPoint.y);
-
- return TRUE;
-}
-
-/* Performs a world-to-viewport transformation on the specified point (which
- * is in integer format).
- */
-static __inline void INTERNAL_LPTODP(DC *dc, LPPOINT point)
-{
- FLOAT_POINT floatPoint;
-
- /* Perform operation with floating point */
- floatPoint.x=(FLOAT)point->x;
- floatPoint.y=(FLOAT)point->y;
- INTERNAL_LPTODP_FLOAT(dc, &floatPoint);
-
- /* Round to integers */
- point->x = GDI_ROUND(floatPoint.x);
- point->y = GDI_ROUND(floatPoint.y);
-}
-
-#endif
-
-#define MulDiv( x, y, z ) EngMulDiv( x, y, z )
-
-#define XDPTOLP(dc,x) \
- (MulDiv(((x)-(dc)->vportOrgX), (dc)->wndExtX, (dc)->vportExtX) + (dc)->wndOrgX)
-#define YDPTOLP(dc,y) \
- (MulDiv(((y)-(dc)->vportOrgY), (dc)->wndExtY, (dc)->vportExtY) + (dc)->wndOrgY)
-#define XLPTODP(dc,x) \
- (MulDiv(((x)-(dc)->wndOrgX), (dc)->vportExtX, (dc)->wndExtX) + (dc)->vportOrgX)
-#define YLPTODP(dc,y) \
- (MulDiv(((y)-(dc)->wndOrgY), (dc)->vportExtY, (dc)->wndExtY) + (dc)->vportOrgY)
-
- /* Device <-> logical size conversion */
-
-#define XDSTOLS(dc,x) \
- MulDiv((x), (dc)->wndExtX, (dc)->vportExtX)
-#define YDSTOLS(dc,y) \
- MulDiv((y), (dc)->wndExtY, (dc)->vportExtY)
-#define XLSTODS(dc,x) \
- MulDiv((x), (dc)->vportExtX, (dc)->wndExtX)
-#define YLSTODS(dc,y) \
- MulDiv((y), (dc)->vportExtY, (dc)->wndExtY)
-
-#endif
+#ifndef __WIN32K_FLOAT_H\r
+#define __WIN32K_FLOAT_H\r
+\r
+#include "dc.h"\r
+#include "math.h"\r
+#include <ft2build.h>\r
+#include FT_FREETYPE_H\r
+\r
+typedef struct tagFLOAT_POINT\r
+{\r
+ FLOAT x, y;\r
+} FLOAT_POINT;\r
+\r
+/* Rounds a floating point number to integer. The world-to-viewport\r
+ * transformation process is done in floating point internally. This function\r
+ * is then used to round these coordinates to integer values.\r
+ */\r
+static inline INT GDI_ROUND(FLOAT val)\r
+{\r
+ return (int)floor(val + 0.5);\r
+}\r
+\r
+/* Performs a world-to-viewport transformation on the specified point (which\r
+ * is in floating point format).\r
+ */\r
+static inline void INTERNAL_LPTODP_FLOAT(DC *dc, FLOAT_POINT *point)\r
+{\r
+ FLOAT x, y;\r
+\r
+ /* Perform the transformation */\r
+ x = point->x;\r
+ y = point->y;\r
+ point->x = x * dc->w.xformWorld2Vport.eM11 +\r
+ y * dc->w.xformWorld2Vport.eM21 +\r
+ dc->w.xformWorld2Vport.eDx;\r
+ point->y = x * dc->w.xformWorld2Vport.eM12 +\r
+ y * dc->w.xformWorld2Vport.eM22 +\r
+ dc->w.xformWorld2Vport.eDy;\r
+}\r
+\r
+/* Performs a viewport-to-world transformation on the specified point (which\r
+ * is in integer format). Returns TRUE if successful, else FALSE.\r
+ */\r
+#if 0\r
+static inline BOOL INTERNAL_DPTOLP(DC *dc, LPPOINT point)\r
+{\r
+ FLOAT_POINT floatPoint;\r
+\r
+ /* Perform operation with floating point */\r
+ floatPoint.x=(FLOAT)point->x;\r
+ floatPoint.y=(FLOAT)point->y;\r
+ if (!INTERNAL_DPTOLP_FLOAT(dc, &floatPoint))\r
+ return FALSE;\r
+\r
+ /* Round to integers */\r
+ point->x = GDI_ROUND(floatPoint.x);\r
+ point->y = GDI_ROUND(floatPoint.y);\r
+\r
+ return TRUE;\r
+}\r
+\r
+/* Performs a world-to-viewport transformation on the specified point (which\r
+ * is in integer format).\r
+ */\r
+static inline void INTERNAL_LPTODP(DC *dc, LPPOINT point)\r
+{\r
+ FLOAT_POINT floatPoint;\r
+\r
+ /* Perform operation with floating point */\r
+ floatPoint.x=(FLOAT)point->x;\r
+ floatPoint.y=(FLOAT)point->y;\r
+ INTERNAL_LPTODP_FLOAT(dc, &floatPoint);\r
+\r
+ /* Round to integers */\r
+ point->x = GDI_ROUND(floatPoint.x);\r
+ point->y = GDI_ROUND(floatPoint.y);\r
+}\r
+\r
+#endif\r
+\r
+#define MulDiv( x, y, z ) EngMulDiv( x, y, z )\r
+\r
+#define XDPTOLP(dc,x) \\r
+ (MulDiv(((x)-(dc)->vportOrgX), (dc)->wndExtX, (dc)->vportExtX) + (dc)->wndOrgX)\r
+#define YDPTOLP(dc,y) \\r
+ (MulDiv(((y)-(dc)->vportOrgY), (dc)->wndExtY, (dc)->vportExtY) + (dc)->wndOrgY)\r
+#define XLPTODP(dc,x) \\r
+ (MulDiv(((x)-(dc)->wndOrgX), (dc)->vportExtX, (dc)->wndExtX) + (dc)->vportOrgX)\r
+#define YLPTODP(dc,y) \\r
+ (MulDiv(((y)-(dc)->wndOrgY), (dc)->vportExtY, (dc)->wndExtY) + (dc)->vportOrgY)\r
+\r
+ /* Device <-> logical size conversion */\r
+\r
+#define XDSTOLS(dc,x) \\r
+ MulDiv((x), (dc)->wndExtX, (dc)->vportExtX)\r
+#define YDSTOLS(dc,y) \\r
+ MulDiv((y), (dc)->wndExtY, (dc)->vportExtY)\r
+#define XLSTODS(dc,x) \\r
+ MulDiv((x), (dc)->vportExtX, (dc)->wndExtX)\r
+#define YLSTODS(dc,y) \\r
+ MulDiv((y), (dc)->vportExtY, (dc)->wndExtY)\r
+\r
+#endif\r
-/*
- * GDI object common header definition
- *
- */
-
-#ifndef __WIN32K_GDIOBJ_H
-#define __WIN32K_GDIOBJ_H
-
-/* base address where the handle table is mapped to */
-#define GDI_HANDLE_TABLE_BASE_ADDRESS (0x400000)
-
-/* gdi handle table can hold 0x4000 handles */
-#define GDI_HANDLE_COUNT 0x4000
-
-#define GDI_GLOBAL_PROCESS (0x0)
-
-#define GDI_HANDLE_INDEX_MASK (GDI_HANDLE_COUNT - 1)
-#define GDI_HANDLE_TYPE_MASK 0x007f0000
-#define GDI_HANDLE_STOCK_MASK 0x00800000
-#define GDI_HANDLE_REUSE_MASK 0xff000000
-
-#define GDI_HANDLE_REUSECNT_SHIFT 24
-
-#define GDI_HANDLE_CREATE(i, t) ((HANDLE)(((i) & GDI_HANDLE_INDEX_MASK) | ((t) & GDI_HANDLE_TYPE_MASK)))
-#define GDI_HANDLE_GET_INDEX(h) (((ULONG_PTR)(h)) & GDI_HANDLE_INDEX_MASK)
-#define GDI_HANDLE_GET_TYPE(h) (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)
-#define GDI_HANDLE_IS_TYPE(h, t) ((t) == (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK))
-#define GDI_HANDLE_IS_STOCKOBJ(h) (0 != (((ULONG_PTR)(h)) & GDI_HANDLE_STOCK_MASK))
-#define GDI_HANDLE_SET_STOCKOBJ(h) ((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))
-
-
-/*! \defgroup GDI object types
- *
- * GDI object types
- *
- */
-/*@{*/
-#define GDI_OBJECT_TYPE_DC 0x00010000
-#define GDI_OBJECT_TYPE_REGION 0x00040000
-#define GDI_OBJECT_TYPE_BITMAP 0x00050000
-#define GDI_OBJECT_TYPE_PALETTE 0x00080000
-#define GDI_OBJECT_TYPE_FONT 0x000a0000
-#define GDI_OBJECT_TYPE_BRUSH 0x00100000
-#define GDI_OBJECT_TYPE_EMF 0x00210000
-#define GDI_OBJECT_TYPE_PEN 0x00300000
-#define GDI_OBJECT_TYPE_EXTPEN 0x00500000
-/* Following object types made up for ROS */
-#define GDI_OBJECT_TYPE_METADC 0x00710000
-#define GDI_OBJECT_TYPE_METAFILE 0x00720000
-#define GDI_OBJECT_TYPE_ENHMETAFILE 0x00730000
-#define GDI_OBJECT_TYPE_ENHMETADC 0x00740000
-#define GDI_OBJECT_TYPE_MEMDC 0x00750000
-#define GDI_OBJECT_TYPE_DCE 0x00770000
-#define GDI_OBJECT_TYPE_DONTCARE 0x007f0000
-/** Not really an object type. Forces GDI_FreeObj to be silent. */
-#define GDI_OBJECT_TYPE_SILENT 0x80000000
-/*@}*/
-
-typedef PVOID PGDIOBJ;
-
-#ifndef NTOS_MODE_USER
-typedef BOOL (INTERNAL_CALL *GDICLEANUPPROC)(PVOID ObjectBody);
-#endif
-
-/*!
- * GDI object header. This is a part of any GDI object
-*/
-typedef struct _GDIOBJHDR
-{
-#ifdef NTOS_MODE_USER
- PVOID LockingThread;
-#else
- PETHREAD LockingThread; /* only assigned if a thread is holding the lock! */
-#endif
- ULONG Locks;
-#ifdef GDI_DEBUG
- const char* createdfile;
- int createdline;
- const char* lockfile;
- int lockline;
-#endif
-} GDIOBJHDR, *PGDIOBJHDR;
-
-#ifndef NTOS_MODE_USER
-
-BOOL INTERNAL_CALL GDIOBJ_OwnedByCurrentProcess(HGDIOBJ ObjectHandle);
-void INTERNAL_CALL GDIOBJ_SetOwnership(HGDIOBJ ObjectHandle, PEPROCESS Owner);
-void INTERNAL_CALL GDIOBJ_CopyOwnership(HGDIOBJ CopyFrom, HGDIOBJ CopyTo);
-BOOL INTERNAL_CALL GDIOBJ_ConvertToStockObj(HGDIOBJ *hObj);
-VOID INTERNAL_CALL GDIOBJ_UnlockObjByPtr(PGDIOBJ Object);
-
-#define GDIOBJ_GetObjectType(Handle) \
- GDI_HANDLE_GET_TYPE(Handle)
-
-#ifdef GDI_DEBUG
-
-/* a couple macros for debugging GDIOBJ locking */
-#define GDIOBJ_AllocObj(ty) GDIOBJ_AllocObjDbg(__FILE__,__LINE__,ty)
-#define GDIOBJ_FreeObj(obj,ty) GDIOBJ_FreeObjDbg(__FILE__,__LINE__,obj,ty)
-#define GDIOBJ_LockObj(obj,ty) GDIOBJ_LockObjDbg(__FILE__,__LINE__,obj,ty)
-#define GDIOBJ_ShareLockObj(obj,ty) GDIOBJ_ShareLockObjDbg(__FILE__,__LINE__,obj,ty)
-
-HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObjDbg(const char* file, int line, ULONG ObjectType);
-BOOL INTERNAL_CALL GDIOBJ_FreeObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
-PGDIOBJ INTERNAL_CALL GDIOBJ_LockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
-PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);
-
-#else /* !GDI_DEBUG */
-
-HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObj(ULONG ObjectType);
-BOOL INTERNAL_CALL GDIOBJ_FreeObj (HGDIOBJ hObj, DWORD ObjectType);
-PGDIOBJ INTERNAL_CALL GDIOBJ_LockObj (HGDIOBJ hObj, DWORD ObjectType);
-PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObj (HGDIOBJ hObj, DWORD ObjectType);
-
-#endif /* GDI_DEBUG */
-
-PVOID INTERNAL_CALL GDI_MapHandleTable(PEPROCESS Process);
-
-#endif
-
-#define GDIOBJFLAG_DEFAULT (0x0)
-#define GDIOBJFLAG_IGNOREPID (0x1)
-#define GDIOBJFLAG_IGNORELOCK (0x2)
-
-#endif
+/*\r
+ * GDI object common header definition\r
+ *\r
+ */\r
+\r
+#ifndef __WIN32K_GDIOBJ_H\r
+#define __WIN32K_GDIOBJ_H\r
+\r
+/* Public GDI Object/Handle definitions */\r
+#include <win32k/ntgdihdl.h>\r
+\r
+typedef PVOID PGDIOBJ;\r
+\r
+typedef BOOL (INTERNAL_CALL *GDICLEANUPPROC)(PVOID ObjectBody);\r
+\r
+/*!\r
+ * GDI object header. This is a part of any GDI object\r
+*/\r
+typedef struct _GDIOBJHDR\r
+{\r
+ PETHREAD LockingThread; /* only assigned if a thread is holding the lock! */\r
+ ULONG Locks;\r
+#ifdef GDI_DEBUG\r
+ const char* createdfile;\r
+ int createdline;\r
+ const char* lockfile;\r
+ int lockline;\r
+#endif\r
+} GDIOBJHDR, *PGDIOBJHDR;\r
+\r
+BOOL INTERNAL_CALL GDIOBJ_OwnedByCurrentProcess(HGDIOBJ ObjectHandle);\r
+void INTERNAL_CALL GDIOBJ_SetOwnership(HGDIOBJ ObjectHandle, PEPROCESS Owner);\r
+void INTERNAL_CALL GDIOBJ_CopyOwnership(HGDIOBJ CopyFrom, HGDIOBJ CopyTo);\r
+BOOL INTERNAL_CALL GDIOBJ_ConvertToStockObj(HGDIOBJ *hObj);\r
+VOID INTERNAL_CALL GDIOBJ_UnlockObjByPtr(PGDIOBJ Object);\r
+\r
+#define GDIOBJ_GetObjectType(Handle) \\r
+ GDI_HANDLE_GET_TYPE(Handle)\r
+\r
+#ifdef GDI_DEBUG\r
+\r
+/* a couple macros for debugging GDIOBJ locking */\r
+#define GDIOBJ_AllocObj(ty) GDIOBJ_AllocObjDbg(__FILE__,__LINE__,ty)\r
+#define GDIOBJ_FreeObj(obj,ty) GDIOBJ_FreeObjDbg(__FILE__,__LINE__,obj,ty)\r
+#define GDIOBJ_LockObj(obj,ty) GDIOBJ_LockObjDbg(__FILE__,__LINE__,obj,ty)\r
+#define GDIOBJ_ShareLockObj(obj,ty) GDIOBJ_ShareLockObjDbg(__FILE__,__LINE__,obj,ty)\r
+\r
+HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObjDbg(const char* file, int line, ULONG ObjectType);\r
+BOOL INTERNAL_CALL GDIOBJ_FreeObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);\r
+PGDIOBJ INTERNAL_CALL GDIOBJ_LockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);\r
+PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObjDbg (const char* file, int line, HGDIOBJ hObj, DWORD ObjectType);\r
+\r
+#else /* !GDI_DEBUG */\r
+\r
+HGDIOBJ INTERNAL_CALL GDIOBJ_AllocObj(ULONG ObjectType);\r
+BOOL INTERNAL_CALL GDIOBJ_FreeObj (HGDIOBJ hObj, DWORD ObjectType);\r
+PGDIOBJ INTERNAL_CALL GDIOBJ_LockObj (HGDIOBJ hObj, DWORD ObjectType);\r
+PGDIOBJ INTERNAL_CALL GDIOBJ_ShareLockObj (HGDIOBJ hObj, DWORD ObjectType);\r
+\r
+#endif /* GDI_DEBUG */\r
+\r
+PVOID INTERNAL_CALL GDI_MapHandleTable(PEPROCESS Process);\r
+\r
+#define GDIOBJFLAG_DEFAULT (0x0)\r
+#define GDIOBJFLAG_IGNOREPID (0x1)\r
+#define GDIOBJFLAG_IGNORELOCK (0x2)\r
+\r
+#endif\r
#ifndef _WIN32K_INTGDI_H
#define _WIN32K_INTGDI_H
+#include "region.h"
+
/* Brush functions */
XLATEOBJ* FASTCALL
#ifndef _WIN32K_MENU_H
#define _WIN32K_MENU_H
-#include <win32k/menu.h>
-
#define IS_ATOM(x) \
(((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
BOOL RtoL;
} MENU_OBJECT, *PMENU_OBJECT;
+typedef struct _SETMENUITEMRECT
+{
+ UINT uItem;
+ BOOL fByPosition;
+ RECT rcRect;
+} SETMENUITEMRECT, *PSETMENUITEMRECT;
+
PMENU_OBJECT FASTCALL
IntGetMenuObject(HMENU hMenu);
-#ifndef __WIN32K_MISC_H
-#define __WIN32K_MISC_H
-
-#ifndef NTOS_MODE_USER
-
-/* W32PROCESS flags */
-#define W32PF_NOWINDOWGHOSTING (0x0001)
-#define W32PF_MANUALGUICHECK (0x0002)
-#define W32PF_CREATEDWINORDC (0x0004)
-
-VOID
-FASTCALL
-DestroyThreadWindows(struct _ETHREAD *Thread);
-
-#endif
-
-#endif /* __WIN32K_MISC_H */
+#ifndef __WIN32K_MISC_H\r
+#define __WIN32K_MISC_H\r
+\r
+/* W32PROCESS flags */\r
+#define W32PF_NOWINDOWGHOSTING (0x0001)\r
+#define W32PF_MANUALGUICHECK (0x0002)\r
+#define W32PF_CREATEDWINORDC (0x0004)\r
+\r
+VOID\r
+FASTCALL\r
+DestroyThreadWindows(struct _ETHREAD *Thread);\r
+\r
+#endif /* __WIN32K_MISC_H */\r
#ifndef _WIN32K_OBJECT_H
#define _WIN32K_OBJECT_H
-#include <win32k/gdiobj.h>
-#include <win32k/bitmaps.h>
-#include <win32k/pen.h>
+#include "gdiobj.h"
+#include "bitmaps.h"
+#include "pen.h"
#define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */
#define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */
#ifndef _WIN32K_PATH_H
#define _WIN32K_PATH_H
+#define PATH_IsPathOpen(path) ((path).state==PATH_Open)
+
BOOL FASTCALL PATH_Arc (PDC dc, INT x1, INT y1, INT x2, INT y2, INT xStart, INT yStart, INT xEnd, INT yEnd);
BOOL FASTCALL PATH_AssignGdiPath (GdiPath *pPathDest, const GdiPath *pPathSrc);
VOID FASTCALL PATH_DestroyGdiPath (GdiPath *pPath);
-#ifndef __WIN32K_PEN_H
-#define __WIN32K_PEN_H
-
-#include <win32k/gdiobj.h>
-#include <win32k/brush.h>
-
-/* Internal interface */
-
-#define PENOBJ_AllocPen() ((HPEN)GDIOBJ_AllocObj(GDI_OBJECT_TYPE_PEN))
-#define PENOBJ_FreePen(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN)
-#define PENOBJ_LockPen(hBMObj) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN))
-#define PENOBJ_UnlockPen(pPenObj) GDIOBJ_UnlockObjByPtr(pPenObj)
-
-HPEN STDCALL
-NtGdiCreatePen(
- INT PenStyle,
- INT Width,
- COLORREF Color);
-
-HPEN STDCALL
-NtGdiCreatePenIndirect(
- CONST PLOGPEN LogBrush);
-
-HPEN STDCALL
-NtGdiExtCreatePen(
- DWORD PenStyle,
- DWORD Width,
- CONST LOGBRUSH *LogBrush,
- DWORD StyleCount,
- CONST DWORD *Style);
-
-#endif
+#ifndef __WIN32K_PEN_H\r
+#define __WIN32K_PEN_H\r
+\r
+#include "gdiobj.h"\r
+#include "brush.h"\r
+\r
+/* Internal interface */\r
+\r
+#define PENOBJ_AllocPen() ((HPEN)GDIOBJ_AllocObj(GDI_OBJECT_TYPE_PEN))\r
+#define PENOBJ_FreePen(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN)\r
+#define PENOBJ_LockPen(hBMObj) ((PGDIBRUSHOBJ)GDIOBJ_LockObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN))\r
+#define PENOBJ_UnlockPen(pPenObj) GDIOBJ_UnlockObjByPtr(pPenObj)\r
+\r
+#endif\r
--- /dev/null
+\r
+#ifndef __WIN32K_REGION_H\r
+#define __WIN32K_REGION_H\r
+\r
+#include "gdiobj.h"\r
+\r
+/* Internal region data. Can't use RGNDATA structure because buffer is allocated statically */\r
+typedef struct _ROSRGNDATA {\r
+ RGNDATAHEADER rdh;\r
+ PRECT Buffer;\r
+} ROSRGNDATA, *PROSRGNDATA, *LPROSRGNDATA;\r
+\r
+\r
+#define RGNDATA_FreeRgn(hRgn) GDIOBJ_FreeObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION)\r
+#define RGNDATA_LockRgn(hRgn) ((PROSRGNDATA)GDIOBJ_LockObj((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION))\r
+#define RGNDATA_UnlockRgn(pRgn) GDIOBJ_UnlockObjByPtr(pRgn)\r
+HRGN FASTCALL RGNDATA_AllocRgn(INT n);\r
+BOOL INTERNAL_CALL RGNDATA_Cleanup(PVOID ObjectBody);\r
+\r
+#endif\r
+\r
#ifndef _WIN32K_TEXT_H
#define _WIN32K_TEXT_H
+/* GDI logical font object */
+typedef struct
+{
+ LOGFONTW logfont;
+ FONTOBJ *Font;
+ BOOLEAN Initialized; /* Don't reinitialize for each DC */
+} TEXTOBJ, *PTEXTOBJ;
+
+/* Internal interface */
+
+#define TEXTOBJ_AllocText() \
+ ((HFONT) GDIOBJ_AllocObj (GDI_OBJECT_TYPE_FONT))
+#define TEXTOBJ_FreeText(hBMObj) GDIOBJ_FreeObj((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT)
+#define TEXTOBJ_LockText(hBMObj) ((PTEXTOBJ) GDIOBJ_LockObj ((HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_FONT))
+#define TEXTOBJ_UnlockText(pBMObj) GDIOBJ_UnlockObjByPtr (pBMObj)
+
+NTSTATUS FASTCALL TextIntRealizeFont(HFONT FontHandle);
+NTSTATUS FASTCALL TextIntCreateFontIndirect(CONST LPLOGFONTW lf, HFONT *NewFont);
BOOL FASTCALL InitFontSupport(VOID);
BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
BOOL FASTCALL IntIsFontRenderingEnabled(VOID);
-/*
+t/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Graphics Subsystem
* FILE: subsys/win32k/include/win32k.h
/* INCLUDES ******************************************************************/
#ifndef __WIN32K_H
#define __WIN32K_H
+#define INTERNAL_CALL NTAPI
+
/* Internal Win32k Headers */
#include <include/ntuser.h>
#include <include/win32.h>
#include <include/winpos.h>
#include <include/winsta.h>
#include <include/mmcopy.h>
+#include <include/misc.h>
+#include <include/coord.h>
+#include <include/gdifloat.h>
#include <eng/objects.h>
#include <eng/misc.h>
#include <dib/dib.h>
*/
#include <w32k.h>
-#include <win32k/ntddraw.h>
#include <include/napi.h>
#define NDEBUG
-BOOL STDCALL NtGdiD3dContextCreate(
+DWORD STDCALL NtGdiD3dContextCreate(
HANDLE hDirectDrawLocal,
HANDLE hSurfColor,
HANDLE hSurfZ,
- D3DNTHAL_CONTEXTCREATEDATA *pdcci
+ LPD3DNTHAL_CONTEXTCREATEDATA pdcci
)
{
UNIMPLEMENTED
return 0;
}
-DWORD STDCALL NtGdiD3dContextDestroyAll(VOID)
+DWORD STDCALL NtGdiD3dContextDestroyAll(LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcad)
{
/* This entry point is not supported on NT5 and ROS */
UNIMPLEMENTED
return 0;
}
-DWORD STDCALL NtGdiDdGetDxHandle(
+HANDLE STDCALL NtGdiDdGetDxHandle(
HANDLE hDirectDraw,
HANDLE hSurface,
BOOL bRelease
-DWORD STDCALL NtGdiDdAlphaBlt(VOID)
+DWORD STDCALL NtGdiDdAlphaBlt(IN HANDLE hSurfaceDest,
+ IN OPTIONAL HANDLE hSurfaceSrc,
+ IN OUT PDD_BLTDATA puBltData)
{
UNIMPLEMENTED
if (WidthDest == WidthSrc && HeightDest == HeightSrc)
{
NtGdiBitBlt(DcDest, XDest, YDest, WidthDest, HeightDest,
- DcSrc, XSrc, YSrc, Rop3);
+ DcSrc, XSrc, YSrc, Rop3, 0, 0);
}
else if (SRCCOPY == Rop3)
{
NtGdiStretchBlt(DcDest, XDest, YDest, WidthDest, HeightDest,
DcSrc, XSrc, YSrc, WidthSrc, HeightSrc,
- Rop3);
+ Rop3, 0);
}
else
{
}
if (! NtGdiStretchBlt(DcStretched, 0, 0, WidthDest, HeightDest,
DcSrc, XSrc, YSrc, WidthSrc, HeightSrc,
- SRCCOPY) ||
+ SRCCOPY, 0) ||
! NtGdiBitBlt(DcDest, XDest, YDest, WidthDest, HeightDest,
- DcStretched, 0, 0, Rop3))
+ DcStretched, 0, 0, Rop3, 0, 0))
{
DPRINT1("Failed to blt\n");
}
DcSrc, XSrc, YSrc, WidthSrc, HeightSrc, Rop3, Color) \
NtGdiStretchBlt((DcDest), (XDest), (YDest), (WidthDest), (HeightDest), \
(DcSrc), (XSrc), (YSrc), (WidthSrc), (HeightSrc), \
- (Rop3))
+ (Rop3), 0)
#endif /* STRETCH_CAN_SRCCOPY_ONLY */
/*
}
if(DoFlickerFree)
- NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY);
+ NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY, 0, 0);
NtGdiSetTextColor(hdcOff, oldFg);
NtGdiSetBkColor(hdcOff, oldBg);
0,
WinSta->cxWallpaper,
WinSta->cyWallpaper,
- SRCCOPY);
+ SRCCOPY,
+ 0);
}
else if (WinSta->WallpaperMode == wmTile)
{
hWallpaperDC,
0,
0,
- SRCCOPY);
+ SRCCOPY,
+ 0,
+ 0);
}
}
}
hWallpaperDC,
0,
0,
- SRCCOPY);
+ SRCCOPY,
+ 0,
+ 0);
}
NtGdiSelectObject(hWallpaperDC, hOldBitmap);
NtGdiDeleteDC(hWallpaperDC);
Menu->MenuInfo.dwStyle = 0; /* FIXME */
Menu->MenuInfo.cyMax = 0; /* default */
Menu->MenuInfo.hbrBack =
- NtGdiCreateSolidBrush(RGB(192, 192, 192)); /* FIXME: default background color */
+ NtGdiCreateSolidBrush(RGB(192, 192, 192), 0); /* FIXME: default background color */
Menu->MenuInfo.dwContextHelpID = 0; /* default */
Menu->MenuInfo.dwMenuData = 0; /* default */
Menu->MenuInfo.Self = *Handle;
if (!NtGdiBitBlt(hDC, rDst_lp.left, rDst_lp.top, rDst_lp.right - rDst_lp.left,
rDst_lp.bottom - rDst_lp.top, hDC, rSrc_lp.left, rSrc_lp.top,
- SRCCOPY))
+ SRCCOPY, 0, 0))
return FALSE;
}
else
CopyRect.left, CopyRect.top, CopyRect.right - CopyRect.left,
CopyRect.bottom - CopyRect.top, Dc,
CopyRect.left + (OldWindowRect.left - NewWindowRect.left),
- CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY);
+ CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY, 0, 0);
UserReleaseDC(Window, Dc, FALSE);
IntValidateParent(Window, CopyRgn);
NtGdiOffsetRgn(CopyRgn, -NewWindowRect.left, -NewWindowRect.top);
HDC hDCSrc,
INT XSrc,
INT YSrc,
- DWORD ROP)
+ DWORD ROP,
+ IN DWORD crBackColor,
+ IN FLONG fl)
{
PDC DCDest = NULL;
PDC DCSrc = NULL;
INT Height,
UINT Planes,
UINT BitsPixel,
- CONST VOID *Bits)
+ IN OPTIONAL LPBYTE Bits)
{
BITMAP BM;
BM.bmWidthBytes = BITMAPOBJ_GetWidthBytes(Width, Planes * BitsPixel);
BM.bmPlanes = Planes;
BM.bmBitsPixel = BitsPixel;
- BM.bmBits = (LPVOID) Bits;
+ BM.bmBits = Bits;
return IntCreateBitmapIndirect(&BM);
}
{
PBITMAPOBJ bmpobj;
- NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY );
+ NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY, 0, 0 );
NtGdiSelectObject ( hDCTmp, hBmpOld );
// our bitmap is no longer selected, so we can access it's stuff...
HDC hdcDest, INT nXDest, INT nYDest,
INT nWidth, INT nHeight, HDC hdcSrc,
INT nXSrc, INT nYSrc, HBITMAP hbmMask,
- INT xMask, INT yMask, DWORD dwRop)
+ INT xMask, INT yMask, DWORD dwRop,
+ IN DWORD crBackColor)
{
HBITMAP hOldMaskBitmap, hBitmap2, hOldBitmap2, hBitmap3, hOldBitmap3;
HDC hDCMask, hDC1, hDC2;
};
if (!hbmMask)
- return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop));
+ return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop), 0, 0);
/* 1. make mask bitmap's dc */
hDCMask = NtGdiCreateCompatibleDC(hdcDest);
hOldBitmap2 = (HBITMAP)NtGdiSelectObject(hDC1, hBitmap2);
/* 2.2 draw dest bitmap and mask */
- NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY);
- NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, BKGND_ROP3(dwRop));
- NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, DSTERASE);
+ NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY, 0, 0);
+ NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, BKGND_ROP3(dwRop), 0, 0);
+ NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, DSTERASE, 0, 0);
/* 3. make masked Foreground bitmap */
hOldBitmap3 = (HBITMAP)NtGdiSelectObject(hDC2, hBitmap3);
/* 3.2 draw src bitmap and mask */
- NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, SRCCOPY);
- NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop));
- NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, SRCAND);
+ NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, SRCCOPY, 0, 0);
+ NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop), 0,0);
+ NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, SRCAND, 0, 0);
/* 4. combine two bitmap and copy it to hdcDest */
- NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT);
- NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY);
+ NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT, 0, 0);
+ NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY, 0, 0);
/* 5. restore all object */
NtGdiSelectObject(hDCMask, hOldMaskBitmap);
return TRUE;
}
-BOOL STDCALL
+BOOL
+APIENTRY
NtGdiPlgBlt(
- HDC hDCDest,
- CONST POINT *Point,
- HDC hDCSrc,
- INT XSrc,
- INT YSrc,
- INT Width,
- INT Height,
- HBITMAP hMaskBitmap,
- INT xMask,
- INT yMask)
+ 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)
{
UNIMPLEMENTED;
return FALSE;
NtGdiSetBitmapBits(
HBITMAP hBitmap,
DWORD Bytes,
- CONST VOID *Bits)
+ IN PBYTE Bits)
{
LONG height, ret;
PBITMAPOBJ bmp;
INT Y,
COLORREF Color)
{
- HBRUSH NewBrush = NtGdiCreateSolidBrush(Color);
+ HBRUSH NewBrush = NtGdiCreateSolidBrush(Color, NULL);
HGDIOBJ OldBrush;
if (NewBrush == NULL)
INT YOriginSrc,
INT WidthSrc,
INT HeightSrc,
- DWORD ROP)
+ DWORD ROP,
+ IN DWORD dwBackColor)
{
PDC DCDest = NULL;
PDC DCSrc = NULL;
BOOL STDCALL
NtGdiAlphaBlend(
HDC hDCDest,
- INT XOriginDest,
- INT YOriginDest,
- INT WidthDest,
- INT HeightDest,
+ LONG XOriginDest,
+ LONG YOriginDest,
+ LONG WidthDest,
+ LONG HeightDest,
HDC hDCSrc,
- INT XOriginSrc,
- INT YOriginSrc,
- INT WidthSrc,
- INT HeightSrc,
- BLENDFUNCTION BlendFunc)
+ LONG XOriginSrc,
+ LONG YOriginSrc,
+ LONG WidthSrc,
+ LONG HeightSrc,
+ BLENDFUNCTION BlendFunc,
+ IN HANDLE hcmXform)
{
PDC DCDest = NULL;
PDC DCSrc = NULL;
return 0;
}
- hPattern = NtGdiCreateBitmap(8, 8, 1, 1, HatchBrushes[Style]);
+ hPattern = NtGdiCreateBitmap(8, 8, 1, 1, (LPBYTE)HatchBrushes[Style]);
if (hPattern == NULL)
{
SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY);
HBRUSH STDCALL
NtGdiCreateDIBBrush(
- CONST BITMAPINFO *BitmapInfoAndData,
- UINT ColorSpec,
- UINT BitmapInfoSize,
- CONST VOID *PackedDIB)
+ IN PVOID BitmapInfoAndData,
+ IN FLONG ColorSpec,
+ IN UINT BitmapInfoSize,
+ IN BOOL b8X8,
+ IN BOOL bPen,
+ IN PVOID PackedDIB)
{
BITMAPINFO *SafeBitmapInfoAndData;
NTSTATUS Status = STATUS_SUCCESS;
}
HBRUSH STDCALL
-NtGdiCreateSolidBrush(COLORREF Color)
+NtGdiCreateSolidBrush(COLORREF Color,
+ IN OPTIONAL HBRUSH hbr)
{
return IntGdiCreateSolidBrush(Color);
}
NtGdiPolyPatBlt(
HDC hDC,
DWORD dwRop,
- PPATRECT pRects,
- INT cRects,
- ULONG Reserved)
+ IN PPOLYPATBLT pRects,
+ IN DWORD cRects,
+ IN DWORD Mode)
{
PPATRECT rb = NULL;
NTSTATUS Status = STATUS_SUCCESS;
}
}
- Ret = IntGdiPolyPatBlt(hDC, dwRop, pRects, cRects, Reserved);
+ Ret = IntGdiPolyPatBlt(hDC, dwRop, (PPATRECT)pRects, cRects, Mode);
if (cRects > 0)
ExFreePool(rb);
return TRUE;
}
-INT STDCALL
-NtGdiDrawEscape(HDC hDC,
- INT nEscape,
- INT cbInput,
- LPCSTR lpszInData)
+INT
+APIENTRY
+NtGdiDrawEscape(
+ IN HDC hdc,
+ IN INT iEsc,
+ IN INT cjIn,
+ IN OPTIONAL LPSTR pjIn)
{
UNIMPLEMENTED;
return 0;
}
-INT STDCALL
-NtGdiEnumObjects(HDC hDC,
- INT ObjectType,
- GOBJENUMPROC ObjectFunc,
- LPARAM lParam)
+ULONG
+APIENTRY
+NtGdiEnumObjects(
+ IN HDC hdc,
+ IN INT iObjectType,
+ IN ULONG cjBuf,
+ OUT OPTIONAL PVOID pvBuf)
{
UNIMPLEMENTED;
return 0;
DC_GET_VAL_EX( GetWindowExtEx, wndExtX, wndExtY, SIZE, cx, cy )
DC_GET_VAL_EX( GetWindowOrgEx, wndOrgX, wndOrgY, POINT, x, y )
-HDC STDCALL
-NtGdiResetDC(HDC hDC, CONST DEVMODEW *InitData)
+BOOL
+APIENTRY
+NtGdiResetDC(
+ IN HDC hdc,
+ IN LPDEVMODEW pdm,
+ OUT PBOOL pbBanding,
+ IN OPTIONAL VOID *pDriverInfo2,
+ OUT VOID *ppUMdhpdev)
{
UNIMPLEMENTED;
return 0;
/* copy existing bitmap from destination dc */
if (SrcWidth == DestWidth && SrcHeight == DestHeight)
NtGdiBitBlt(hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc,
- SrcWidth, SrcHeight, hDC, XDest, YDest, ROP);
+ SrcWidth, SrcHeight, hDC, XDest, YDest, ROP, 0, 0);
else
NtGdiStretchBlt(hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc,
SrcWidth, SrcHeight, hDC, XDest, YDest, DestWidth, DestHeight,
- ROP);
+ ROP, 0);
}
NtGdiSetDIBits(hdcMem, hBitmap, 0, BitsInfo->bmiHeader.biHeight, Bits,
if (SrcWidth == DestWidth && SrcHeight == DestHeight)
NtGdiBitBlt(hDC, XDest, YDest, DestWidth, DestHeight,
hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc,
- ROP);
+ ROP, 0, 0);
else
NtGdiStretchBlt(hDC, XDest, YDest, DestWidth, DestHeight,
hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc,
- SrcWidth, SrcHeight, ROP);
+ SrcWidth, SrcHeight, ROP, 0);
NtGdiSelectObject(hdcMem, hOldBitmap);
NtGdiDeleteDC(hdcMem);
}
LONG STDCALL NtGdiGetBitmapBits(HBITMAP hBitmap,
- LONG Count,
- LPVOID Bits)
+ ULONG Count,
+ OUT OPTIONAL PBYTE Bits)
{
PBITMAPOBJ bmp;
LONG height, ret;
}
HBITMAP STDCALL NtGdiCreateDIBSection(HDC hDC,
- CONST BITMAPINFO *bmi,
- UINT Usage,
- VOID *Bits,
- HANDLE hSection,
- DWORD dwOffset)
+ IN OPTIONAL HANDLE hSection,
+ IN DWORD dwOffset,
+ IN LPBITMAPINFO bmi,
+ DWORD Usage,
+ IN UINT cjHeader,
+ IN FLONG fl,
+ IN ULONG_PTR dwColorSpace,
+ PVOID *Bits)
{
HBITMAP hbitmap = 0;
DC *dc;
return FALSE;
}
-HCOLORSPACE
-STDCALL
-NtGdiCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace)
+HANDLE
+APIENTRY
+NtGdiCreateColorSpace(
+ IN PLOGCOLORSPACEEXW pLogColorSpace)
{
UNIMPLEMENTED;
return 0;
}
BOOL
-STDCALL
-NtGdiDeleteColorSpace(HCOLORSPACE hColorSpace)
+APIENTRY
+NtGdiDeleteColorSpace(
+ IN HANDLE hColorSpace)
{
UNIMPLEMENTED;
return FALSE;
return FALSE;
}
-HCOLORSPACE
+BOOL
STDCALL
-NtGdiSetColorSpace(HDC hDC,
- HCOLORSPACE hColorSpace)
+NtGdiSetColorSpace(IN HDC hdc,
+ IN HCOLORSPACE hColorSpace)
{
UNIMPLEMENTED;
return 0;
/******************************************************************************/
BOOL
-STDCALL
-NtGdiAngleArc(HDC hDC,
- int X,
- int Y,
- DWORD Radius,
- FLOAT StartAngle,
- FLOAT SweepAngle)
+APIENTRY
+NtGdiAngleArc(
+ IN HDC hdc,
+ IN INT x,
+ IN INT y,
+ IN DWORD dwRadius,
+ IN DWORD dwStartAngle,
+ IN DWORD dwSweepAngle)
{
UNIMPLEMENTED;
return FALSE;
}
BOOL
-STDCALL
-NtGdiPolyDraw(HDC hDC,
- CONST LPPOINT pt,
- CONST LPBYTE Types,
- int Count)
+APIENTRY
+NtGdiPolyDraw(
+ IN HDC hdc,
+ IN LPPOINT ppt,
+ IN LPBYTE pjAttr,
+ IN ULONG cpt)
{
UNIMPLEMENTED;
return FALSE;
return 0;
}
-UINT
-STDCALL
-NtGdiGetBoundsRect(HDC hDC,
- LPRECT Bounds,
- UINT Flags)
+DWORD
+APIENTRY
+NtGdiGetBoundsRect(
+ IN HDC hdc,
+ OUT LPRECT prc,
+ IN DWORD f)
{
DPRINT("stub");
return DCB_RESET; /* bounding rectangle always empty */
}
-UINT
-STDCALL
-NtGdiSetBoundsRect(HDC hDC,
- CONST PRECT Bounds,
- UINT Flags)
+DWORD
+APIENTRY
+NtGdiSetBoundsRect(
+ IN HDC hdc,
+ IN LPRECT prc,
+ IN DWORD f)
{
DPRINT("stub");
return DCB_DISABLE; /* bounding rectangle always empty */
/* $Id$ */
#include <w32k.h>
-#include <win32k/float.h>
+#include "math.h"
#define NDEBUG
#include <debug.h>
BOOL
-STDCALL
-NtGdiGetMiterLimit(HDC hDC,
- PFLOAT Limit)
+APIENTRY
+NtGdiGetMiterLimit(
+ IN HDC hdc,
+ OUT PDWORD pdwOut)
{
UNIMPLEMENTED;
return FALSE;
}
BOOL
-STDCALL
-NtGdiSetMiterLimit(HDC hDC,
- FLOAT NewLimit,
- PFLOAT OldLimit)
+APIENTRY
+NtGdiSetMiterLimit(
+ IN HDC hdc,
+ IN DWORD dwNew,
+ IN OUT OPTIONAL PDWORD pdwOut)
{
UNIMPLEMENTED;
return FALSE;
case PS_ALTERNATE:
PenObject->flAttrs |= GDIBRUSH_IS_BITMAP;
- PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, wPatternAlternate);
+ PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternAlternate);
break;
default:
NtGdiCreatePen(
INT PenStyle,
INT Width,
- COLORREF Color)
+ COLORREF Color,
+ IN HBRUSH hbr)
{
LOGPEN LogPen;
NtGdiExtCreatePen(
DWORD PenStyle,
DWORD Width,
- CONST LOGBRUSH *LogBrush,
+ IN ULONG iBrushStyle,
+ IN ULONG ulColor,
+ IN ULONG_PTR lClientHatch,
+ IN ULONG_PTR lHatch,
DWORD StyleCount,
- CONST DWORD *Style)
+ PULONG Style,
+ IN ULONG cjDIB,
+ IN BOOL bOldStylePen,
+ IN OPTIONAL HBRUSH hbrush)
{
/* NOTE: This is HACK! */
+ DPRINT1("FIXME: FIX CALLERS FIRST!\n");
+ KEBUGCHECK(0);
LOGPEN LogPen;
if (PenStyle & PS_USERSTYLE)
LogPen.lopnStyle = PenStyle & PS_STYLE_MASK;
LogPen.lopnWidth.x = Width;
- LogPen.lopnColor = (LogBrush != NULL) ? LogBrush->lbColor : 0;
+ LogPen.lopnColor = ulColor;
return IntGdiCreatePenIndirect(&LogPen);
}
STDCALL
NtGdiExtEscape(
HDC hDC,
+ IN OPTIONAL PWCHAR pDriver,
+ IN INT nDriver,
INT Escape,
INT InSize,
- LPCSTR UnsafeInData,
+ OPTIONAL LPSTR UnsafeInData,
INT OutSize,
- LPSTR UnsafeOutData)
+ OPTIONAL LPSTR UnsafeOutData)
{
PDC pDC = DC_LockDc(hDC);
LPVOID SafeInData = NULL;
}
INT
-STDCALL
-NtGdiStartDoc(HDC hDC,
- CONST LPDOCINFOW di)
+APIENTRY
+NtGdiStartDoc(
+ IN HDC hdc,
+ IN DOCINFOW *pdi,
+ OUT BOOL *pbBanding,
+ IN INT iJob)
{
UNIMPLEMENTED;
return 0;
/* $Id$ */
#include <w32k.h>
-#include <win32k/float.h>
#define NDEBUG
#include <debug.h>
HRGN
STDCALL
-NtGdiExtCreateRegion(CONST XFORM *Xform,
+NtGdiExtCreateRegion(OPTIONAL LPXFORM Xform,
DWORD Count,
- CONST RGNDATA *RgnData)
+ LPRGNDATA RgnData)
{
HRGN hRgn;
PROSRGNDATA Region;
{
goto fail;
}
- hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor));
+ hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor), 0);
if ( !hBrushFg )
{
goto fail;
IntGdiInitBrushInstance(&BrushFgInst, BrushFg, NULL);
if ((fuOptions & ETO_OPAQUE) || dc->w.backgroundMode == OPAQUE)
{
- hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor));
+ hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor), 0);
if ( !hBrushBg )
{
goto fail;
return 0;
}
-DWORD
-STDCALL
-NtGdiGetGlyphOutline(HDC hDC,
- UINT Char,
- UINT Format,
- LPGLYPHMETRICS gm,
- DWORD Bufsize,
- LPVOID Buffer,
- CONST LPMAT2 mat2)
+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)
{
UNIMPLEMENTED;
return 0;
}
BOOL
-STDCALL
-NtGdiGetRasterizerCaps(LPRASTERIZER_STATUS rs,
- UINT Size)
+APIENTRY
+NtGdiGetRasterizerCaps(
+ OUT LPRASTERIZER_STATUS praststat,
+ IN ULONG cjBytes)
{
UNIMPLEMENTED;
return FALSE;
return 0;
}
-UINT
-STDCALL
-NtGdiGetTextCharsetInfo(HDC hDC,
- LPFONTSIGNATURE Sig,
- DWORD Flags)
+INT
+APIENTRY
+NtGdiGetTextCharsetInfo(
+ IN HDC hdc,
+ OUT OPTIONAL LPFONTSIGNATURE lpSig,
+ IN DWORD dwFlags)
{
UNIMPLEMENTED;
return 0;
}
BOOL
-STDCALL
-NtGdiSetPixelFormat(HDC hDC,
- INT PixelFormat,
- CONST PPIXELFORMATDESCRIPTOR pfd)
+APIENTRY
+NtGdiSetPixelFormat(
+ IN HDC hdc,
+ IN INT ipfd)
{
UNIMPLEMENTED;
return FALSE;
/* INCLUDES ******************************************************************/
+#define _NO_COM
+
/* DDK/NDK/SDK Headers */
+#include <ntifs.h>
#include <ntddk.h>
#include <ntddmou.h>
-#include <ntifs.h>
-#include <ndk/ntndk.h>
+#include <ntndk.h>
/* Win32 Headers */
/* FIXME: Defines in winbase.h that we need... */
#include <wingdi.h>
#include <winddi.h>
#include <winuser.h>
+#include <prntfont.h>
#include <dde.h>
#include <wincon.h>
/* Probe and capture */
#include <reactos/probe.h>
-/* External Win32K Header */
-#include <win32k/win32k.h>
+/* Public Win32K Headers */
+#include <win32k/callback.h>
+#include <win32k/ntusrtyp.h>
+#include <win32k/ntuser.h>
+#include <win32k/ntgdityp.h>
+#include <win32k/ntgdibad.h>
+#include <ntgdi.h>
/* Internal Win32K Header */
#include "include/win32k.h"
NtGdiArc 9
NtGdiArcTo 9
NtGdiBeginPath 1
-NtGdiBitBlt 9
+NtGdiBitBlt 11
NtGdiCancelDC 1
NtGdiCheckColorsInGamut 4
NtGdiChord 9
NtGdiCreateCompatibleDC 1
NtGdiCreateDC 4
NtGdiCreateDIBitmap 6
-NtGdiCreateDIBBrush 4
-NtGdiCreateDIBSection 6
+NtGdiCreateDIBBrush 6
+NtGdiCreateDIBSection 9
NtGdiCreateDiscardableBitmap 3
NtGdiCreateEllipticRgn 4
NtGdiCreateEllipticRgnIndirect 1
NtGdiCreateRectRgnIndirect 1
NtGdiCreateRoundRectRgn 6
NtGdiCreateScalableFontResource 4
-NtGdiCreateSolidBrush 1
+NtGdiCreateSolidBrush 2
NtGdiDPtoLP 3
NtGdiDeleteColorSpace 1
NtGdiDeleteDC 1
NtGdiGetFontFamilyInfo 4
NtGdiGetFontLanguageInfo 1
#NtGdiGetFontResourceInfo ?
-NtGdiGetGlyphOutline 7
+NtGdiGetGlyphOutline 8
#NtGdiGetGlyphOutlineWow ?
NtGdiGetGraphicsMode 1
NtGdiGetICMProfile 3
NtGdiRectVisible 2
NtGdiRectangle 5
NtGdiRemoveFontResource 1
-NtGdiResetDC 2
+NtGdiResetDC 5
NtGdiResizePalette 2
NtGdiRestoreDC 2
NtGdiRoundRect 7
NtGdiSetWindowExtEx 4
NtGdiSetWindowOrgEx 4
NtGdiSetWorldTransform 2
-NtGdiStartDoc 2
+NtGdiStartDoc 4
NtGdiStartPage 1
-NtGdiStretchBlt 11
+NtGdiStretchBlt 12
NtGdiStretchDIBits 13
NtGdiStrokeAndFillPath 1
NtGdiStrokePath 1
--- /dev/null
+/*\r
+ * NtGdi Entrypoints\r
+ */\r
+#ifndef _NTGDI_\r
+#define _NTGDI_\r
+\r
+#ifndef W32KAPI\r
+#define W32KAPI DECLSPEC_ADDRSAFE\r
+#endif\r
+\r
+#ifndef _WINDOWBLT_NOTIFICATION_\r
+#define _WINDOWBLT_NOTIFICATION_\r
+#endif\r
+\r
+#define TRACE_SURFACE_ALLOCS (DBG || 0)\r
+\r
+/* NtGdiGetLinkedUfis */\r
+#define FL_UFI_PRIVATEFONT 1\r
+#define FL_UFI_DESIGNVECTOR_PFF 2\r
+#define FL_UFI_MEMORYFONT 4\r
+\r
+/* NtGdiSetIcmMode */\r
+#define ICM_SET_MODE 1\r
+#define ICM_SET_CALIBRATE_MODE 2\r
+#define ICM_SET_COLOR_MODE 3\r
+#define ICM_CHECK_COLOR_MODE 4\r
+\r
+/* NtGdiCreateColorSpace */\r
+#define LCSEX_ANSICREATED 1\r
+#define LCSEX_TEMPPROFILE 2\r
+\r
+/* NtGdiGetStats */\r
+#define GS_NUM_OBJS_ALL 0\r
+#define GS_HANDOBJ_CURRENT 1\r
+#define GS_HANDOBJ_MAX 2\r
+#define GS_HANDOBJ_ALLOC 3\r
+#define GS_LOOKASIDE_INFO 4\r
+\r
+/* NtGdiQueryFonts */\r
+#define TYPE_ENUMFONTS 1\r
+#define TYPE_ENUMFONTFAMILIES 2\r
+#define TYPE_ENUMFONTFAMILIESEX 3\r
+\r
+typedef enum _COLORPALETTEINFO\r
+{\r
+ ColorPaletteQuery,\r
+ ColorPaletteSet\r
+} COLORPALETTEINFO, *PCOLORPALETTEINFO;\r
+\r
+/* NtGdiIcmBrushInfo */\r
+typedef enum _ICM_DIB_INFO_CMD\r
+{\r
+ IcmQueryBrush,\r
+ IcmSetBrush\r
+} ICM_DIB_INFO, *PICM_DIB_INFO;\r
+\r
+/* NtGdiCreateColorSpace */\r
+typedef struct _LOGCOLORSPACEEXW\r
+{\r
+ LOGCOLORSPACEW lcsColorSpace;\r
+ DWORD dwFlags;\r
+} LOGCOLORSPACEEXW, *PLOGCOLORSPACEEXW;\r
+\r
+typedef struct _POLYPATBLT POLYPATBLT, *PPOLYPATBLT;\r
+\r
+/* NtGdiAddRemoteMMInstanceToDC */\r
+typedef struct tagDOWNLOADDESIGNVECTOR\r
+{\r
+ UNIVERSAL_FONT_ID ufiBase;\r
+ DESIGNVECTOR dv;\r
+} DOWNLOADDESIGNVECTOR;\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiInit();\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiSetDIBitsToDeviceInternal(\r
+ IN HDC hdcDest,\r
+ IN INT xDst,\r
+ IN INT yDst,\r
+ IN DWORD cx,\r
+ IN DWORD cy,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN DWORD iStartScan,\r
+ IN DWORD cNumScan,\r
+ IN LPBYTE pInitBits,\r
+ IN LPBITMAPINFO pbmi,\r
+ IN DWORD iUsage,\r
+ IN UINT cjMaxBits,\r
+ IN UINT cjMaxInfo,\r
+ IN BOOL bTransformCoordinates,\r
+ IN OPTIONAL HANDLE hcmXform\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetFontResourceInfoInternalW( \r
+ IN LPWSTR pwszFiles,\r
+ IN ULONG cwc,\r
+ IN ULONG cFiles,\r
+ IN UINT cjIn,\r
+ OUT LPDWORD pdwBytes,\r
+ OUT LPVOID pvBuf,\r
+ IN DWORD iType\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetGlyphIndicesW(\r
+ IN HDC hdc,\r
+ IN OPTIONAL LPWSTR pwc,\r
+ IN INT cwc,\r
+ OUT OPTIONAL LPWORD pgi,\r
+ IN DWORD iMode\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetGlyphIndicesWInternal(\r
+ IN HDC hdc,\r
+ IN OPTIONAL LPWSTR pwc,\r
+ IN INT cwc,\r
+ OUT OPTIONAL LPWORD pgi,\r
+ IN DWORD iMode,\r
+ IN BOOL bSubset\r
+);\r
+\r
+W32KAPI\r
+HPALETTE\r
+APIENTRY\r
+NtGdiCreatePaletteInternal(\r
+ IN LPLOGPALETTE pLogPal,\r
+ IN UINT cEntries\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiArcInternal(\r
+ IN ARCTYPE arctype,\r
+ IN HDC hdc,\r
+ IN INT x1,\r
+ IN INT y1,\r
+ IN INT x2,\r
+ IN INT y2,\r
+ IN INT x3,\r
+ IN INT y3,\r
+ IN INT x4,\r
+ IN INT y4\r
+);\r
+\r
+W32KAPI\r
+INT \r
+APIENTRY\r
+NtGdiStretchDIBitsInternal(\r
+ IN HDC hdc,\r
+ IN INT xDst,\r
+ IN INT yDst,\r
+ IN INT cxDst,\r
+ IN INT cyDst,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN INT cxSrc,\r
+ IN INT cySrc,\r
+ IN OPTIONAL LPBYTE pjInit,\r
+ IN LPBITMAPINFO pbmi,\r
+ IN DWORD dwUsage,\r
+ IN DWORD dwRop4,\r
+ IN UINT cjMaxInfo,\r
+ IN UINT cjMaxBits,\r
+ IN HANDLE hcmXform\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetOutlineTextMetricsInternalW(\r
+ IN HDC hdc,\r
+ IN ULONG cjotm,\r
+ OUT OPTIONAL OUTLINETEXTMETRICW *potmw,\r
+ OUT TMDIFF *ptmd\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetAndSetDCDword(\r
+ IN HDC hdc,\r
+ IN UINT u,\r
+ IN DWORD dwIn,\r
+ OUT DWORD *pdwResult\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiGetDCObject(\r
+ IN HDC hdc,\r
+ IN INT itype\r
+);\r
+\r
+W32KAPI\r
+HDC\r
+APIENTRY\r
+NtGdiGetDCforBitmap(\r
+ IN HBITMAP hsurf\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetMonitorID(\r
+ IN HDC hdc,\r
+ IN DWORD dwSize,\r
+ OUT LPWSTR pszMonitorID\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetLinkedUFIs(\r
+ IN HDC hdc,\r
+ OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs,\r
+ IN INT BufferSize\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetLinkedUFIs(\r
+ IN HDC hdc,\r
+ IN PUNIVERSAL_FONT_ID pufiLinks,\r
+ IN ULONG uNumUFIs\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetUFI(\r
+ IN HDC hdc,\r
+ OUT PUNIVERSAL_FONT_ID pufi,\r
+ OUT OPTIONAL DESIGNVECTOR *pdv,\r
+ OUT ULONG *pcjDV,\r
+ OUT ULONG *pulBaseCheckSum,\r
+ OUT FLONG *pfl\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiForceUFIMapping(\r
+ IN HDC hdc,\r
+ IN PUNIVERSAL_FONT_ID pufi\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetUFIPathname(\r
+ IN PUNIVERSAL_FONT_ID pufi,\r
+ OUT OPTIONAL ULONG* pcwc,\r
+ OUT OPTIONAL LPWSTR pwszPathname,\r
+ OUT OPTIONAL ULONG* pcNumFiles,\r
+ IN FLONG fl,\r
+ OUT OPTIONAL BOOL *pbMemFont,\r
+ OUT OPTIONAL ULONG *pcjView,\r
+ OUT OPTIONAL PVOID pvView,\r
+ OUT OPTIONAL BOOL *pbTTC,\r
+ OUT OPTIONAL ULONG *piTTC\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAddRemoteFontToDC(\r
+ IN HDC hdc,\r
+ IN PVOID pvBuffer,\r
+ IN ULONG cjBuffer,\r
+ IN OPTIONAL PUNIVERSAL_FONT_ID pufi\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiAddFontMemResourceEx(\r
+ IN PVOID pvBuffer,\r
+ IN DWORD cjBuffer,\r
+ IN DESIGNVECTOR *pdv,\r
+ IN ULONG cjDV,\r
+ OUT DWORD *pNumFonts\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRemoveFontMemResourceEx(\r
+ IN HANDLE hMMFont\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiUnmapMemFont(\r
+ IN PVOID pvView\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRemoveMergeFont(\r
+ IN HDC hdc,\r
+ IN UNIVERSAL_FONT_ID *pufi\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAnyLinkedFonts(\r
+ VOID\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetEmbUFI(\r
+ IN HDC hdc,\r
+ OUT PUNIVERSAL_FONT_ID pufi,\r
+ OUT OPTIONAL DESIGNVECTOR *pdv,\r
+ OUT ULONG *pcjDV,\r
+ OUT ULONG *pulBaseCheckSum,\r
+ OUT FLONG *pfl,\r
+ OUT KERNEL_PVOID *embFontID\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY \r
+NtGdiGetEmbedFonts(\r
+ VOID\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY \r
+NtGdiChangeGhostFont(\r
+ IN KERNEL_PVOID *pfontID,\r
+ IN BOOL bLoad\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY \r
+NtGdiAddEmbFontToDC(\r
+ IN HDC hdc,\r
+ IN VOID **pFontID\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiFontIsLinked(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+ULONG_PTR\r
+APIENTRY\r
+NtGdiPolyPolyDraw(\r
+ IN HDC hdc,\r
+ IN PPOINT ppt,\r
+ IN PULONG pcpt,\r
+ IN ULONG ccpt,\r
+ IN INT iFunc\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY \r
+NtGdiDoPalette(\r
+ IN HPALETTE hpal,\r
+ IN WORD iStart,\r
+ IN WORD cEntries,\r
+ IN PALETTEENTRY *pPalEntries,\r
+ IN DWORD iFunc,\r
+ IN BOOL bInbound\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiComputeXformCoefficients(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetWidthTable(\r
+ IN HDC hdc,\r
+ IN ULONG cSpecial,\r
+ IN WCHAR *pwc,\r
+ IN ULONG cwc,\r
+ OUT USHORT *psWidth,\r
+ OUT OPTIONAL WIDTHDATA *pwd,\r
+ OUT FLONG *pflInfo\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiDescribePixelFormat(\r
+ IN HDC hdc,\r
+ IN INT ipfd,\r
+ IN UINT cjpfd,\r
+ OUT PPIXELFORMATDESCRIPTOR ppfd\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetPixelFormat(\r
+ IN HDC hdc,\r
+ IN INT ipfd\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSwapBuffers(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiSetupPublicCFONT(\r
+ IN HDC hdc,\r
+ IN OPTIONAL HFONT hf,\r
+ IN ULONG ulAve\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDxgGenericThunk(\r
+ IN ULONG_PTR ulIndex,\r
+ IN ULONG_PTR ulHandle,\r
+ IN OUT SIZE_T *pdwSizeOfPtr1,\r
+ IN OUT PVOID pvPtr1,\r
+ IN OUT SIZE_T *pdwSizeOfPtr2,\r
+ IN OUT PVOID pvPtr2\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdAddAttachedSurface(\r
+ IN HANDLE hSurface,\r
+ IN HANDLE hSurfaceAttached,\r
+ IN OUT PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdAttachSurface(\r
+ IN HANDLE hSurfaceFrom,\r
+ IN HANDLE hSurfaceTo\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdBlt(\r
+ IN HANDLE hSurfaceDest,\r
+ IN HANDLE hSurfaceSrc,\r
+ IN OUT PDD_BLTDATA puBltData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdCanCreateSurface(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdColorControl(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_COLORCONTROLDATA puColorControlData\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiDdCreateDirectDrawObject(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdCreateSurface(\r
+ IN HANDLE hDirectDraw,\r
+ IN HANDLE* hSurface,\r
+ IN OUT DDSURFACEDESC* puSurfaceDescription,\r
+ IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData,\r
+ IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData,\r
+ IN OUT DD_SURFACE_MORE* puSurfaceMoreData,\r
+ IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData,\r
+ OUT HANDLE* puhSurface\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiDdCreateSurfaceObject(\r
+ IN HANDLE hDirectDrawLocal,\r
+ IN HANDLE hSurface,\r
+ IN PDD_SURFACE_LOCAL puSurfaceLocal,\r
+ IN PDD_SURFACE_MORE puSurfaceMore,\r
+ IN PDD_SURFACE_GLOBAL puSurfaceGlobal,\r
+ IN BOOL bComplete\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdDeleteSurfaceObject(\r
+ IN HANDLE hSurface\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdDeleteDirectDrawObject(\r
+ IN HANDLE hDirectDrawLocal\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdDestroySurface(\r
+ IN HANDLE hSurface,\r
+ IN BOOL bRealDestroy\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdFlip(\r
+ IN HANDLE hSurfaceCurrent,\r
+ IN HANDLE hSurfaceTarget,\r
+ IN HANDLE hSurfaceCurrentLeft,\r
+ IN HANDLE hSurfaceTargetLeft,\r
+ IN OUT PDD_FLIPDATA puFlipData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetAvailDriverMemory(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetBltStatus(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_GETBLTSTATUSDATA puGetBltStatusData\r
+);\r
+\r
+W32KAPI\r
+HDC\r
+APIENTRY\r
+NtGdiDdGetDC(\r
+ IN HANDLE hSurface,\r
+ IN PALETTEENTRY* puColorTable\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetDriverInfo(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETDRIVERINFODATA puGetDriverInfoData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetFlipStatus(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_GETFLIPSTATUSDATA puGetFlipStatusData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetScanLine(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETSCANLINEDATA puGetScanLineData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdSetExclusiveMode(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdFlipToGDISurface(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdLock(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_LOCKDATA puLockData,\r
+ IN HDC hdcClip\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdQueryDirectDrawObject(\r
+ IN HANDLE hDirectDrawLocal,\r
+ OUT PDD_HALINFO pHalInfo,\r
+ OUT DWORD* pCallBackFlags,\r
+ OUT OPTIONAL LPD3DNTHAL_CALLBACKS puD3dCallbacks,\r
+ OUT OPTIONAL LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,\r
+ OUT OPTIONAL PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,\r
+ OUT OPTIONAL LPDDSURFACEDESC puD3dTextureFormats,\r
+ OUT DWORD* puNumHeaps,\r
+ OUT OPTIONAL VIDEOMEMORY* puvmList,\r
+ OUT DWORD* puNumFourCC,\r
+ OUT OPTIONAL DWORD* puFourCC\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdReenableDirectDrawObject(\r
+ IN HANDLE hDirectDrawLocal,\r
+ IN OUT BOOL* pubNewMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdReleaseDC(\r
+ IN HANDLE hSurface\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdResetVisrgn(\r
+ IN HANDLE hSurface,\r
+ IN HWND hwnd\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdSetColorKey(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_SETCOLORKEYDATA puSetColorKeyData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdSetOverlayPosition(\r
+ IN HANDLE hSurfaceSource,\r
+ IN HANDLE hSurfaceDestination,\r
+ IN OUT PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiDdUnattachSurface(\r
+ IN HANDLE hSurface,\r
+ IN HANDLE hSurfaceAttached\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdUnlock(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_UNLOCKDATA puUnlockData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdUpdateOverlay(\r
+ IN HANDLE hSurfaceDestination,\r
+ IN HANDLE hSurfaceSource,\r
+ IN OUT PDD_UPDATEOVERLAYDATA puUpdateOverlayData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdWaitForVerticalBlank(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiDdGetDxHandle(\r
+ IN OPTIONAL HANDLE hDirectDraw,\r
+ IN OPTIONAL HANDLE hSurface,\r
+ IN BOOL bRelease\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDdSetGammaRamp(\r
+ IN HANDLE hDirectDraw,\r
+ IN HDC hdc,\r
+ IN LPVOID lpGammaRamp\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdLockD3D(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_LOCKDATA puLockData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdUnlockD3D(\r
+ IN HANDLE hSurface,\r
+ IN OUT PDD_UNLOCKDATA puUnlockData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdCreateD3DBuffer(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT HANDLE* hSurface,\r
+ IN OUT DDSURFACEDESC* puSurfaceDescription,\r
+ IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData,\r
+ IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData,\r
+ IN OUT DD_SURFACE_MORE* puSurfaceMoreData,\r
+ IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData,\r
+ IN OUT HANDLE* puhSurface\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdCanCreateD3DBuffer(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdDestroyD3DBuffer(\r
+ IN HANDLE hSurface\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiD3dContextCreate(\r
+ IN HANDLE hDirectDrawLocal,\r
+ IN HANDLE hSurfColor,\r
+ IN HANDLE hSurfZ,\r
+ IN OUT D3DNTHAL_CONTEXTCREATEI *pdcci\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiD3dContextDestroy(\r
+ IN LPD3DNTHAL_CONTEXTDESTROYDATA pdcdd\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiD3dContextDestroyAll(\r
+ OUT LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiD3dValidateTextureStageState(\r
+ IN OUT LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiD3dDrawPrimitives2(\r
+ IN HANDLE hCmdBuf,\r
+ IN HANDLE hVBuf,\r
+ IN OUT LPD3DNTHAL_DRAWPRIMITIVES2DATA pded,\r
+ IN OUT FLATPTR* pfpVidMemCmd,\r
+ IN OUT DWORD* pdwSizeCmd,\r
+ IN OUT FLATPTR* pfpVidMemVtx,\r
+ IN OUT DWORD* pdwSizeVtx\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetDriverState(\r
+ IN OUT PDD_GETDRIVERSTATEDATA pdata\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdCreateSurfaceEx(\r
+ IN HANDLE hDirectDraw,\r
+ IN HANDLE hSurface,\r
+ IN DWORD dwSurfaceHandle\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpCanCreateVideoPort(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_CANCREATEVPORTDATA puCanCreateVPortData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpColorControl(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_VPORTCOLORDATA puVPortColorData\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiDvpCreateVideoPort(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_CREATEVPORTDATA puCreateVPortData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpDestroyVideoPort(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_DESTROYVPORTDATA puDestroyVPortData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpFlipVideoPort(\r
+ IN HANDLE hVideoPort,\r
+ IN HANDLE hDDSurfaceCurrent,\r
+ IN HANDLE hDDSurfaceTarget,\r
+ IN OUT PDD_FLIPVPORTDATA puFlipVPortData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortBandwidth(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortField(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTFIELDDATA puGetVPortFieldData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortFlipStatus(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortInputFormats(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortLine(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTLINEDATA puGetVPortLineData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortOutputFormats(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoPortConnectInfo(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETVPORTCONNECTDATA puGetVPortConnectData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpGetVideoSignalStatus(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_GETVPORTSIGNALDATA puGetVPortSignalData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpUpdateVideoPort(\r
+ IN HANDLE hVideoPort,\r
+ IN HANDLE* phSurfaceVideo,\r
+ IN HANDLE* phSurfaceVbi,\r
+ IN OUT PDD_UPDATEVPORTDATA puUpdateVPortData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpWaitForVideoPortSync(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpAcquireNotification(\r
+ IN HANDLE hVideoPort,\r
+ IN OUT HANDLE* hEvent,\r
+ IN LPDDVIDEOPORTNOTIFY pNotify\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDvpReleaseNotification(\r
+ IN HANDLE hVideoPort,\r
+ IN HANDLE hEvent\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetMoCompGuids(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetMoCompFormats(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetMoCompBuffInfo(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdGetInternalMoCompInfo(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_GETINTERNALMOCOMPDATA puGetInternalData\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiDdCreateMoComp(\r
+ IN HANDLE hDirectDraw,\r
+ IN OUT PDD_CREATEMOCOMPDATA puCreateMoCompData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdDestroyMoComp(\r
+ IN HANDLE hMoComp,\r
+ IN OUT PDD_DESTROYMOCOMPDATA puDestroyMoCompData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdBeginMoCompFrame(\r
+ IN HANDLE hMoComp,\r
+ IN OUT PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdEndMoCompFrame(\r
+ IN HANDLE hMoComp,\r
+ IN OUT PDD_ENDMOCOMPFRAMEDATA puEndFrameData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdRenderMoComp(\r
+ IN HANDLE hMoComp,\r
+ IN OUT PDD_RENDERMOCOMPDATA puRenderMoCompData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdQueryMoCompStatus(\r
+ IN HANDLE hMoComp,\r
+ IN OUT PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiDdAlphaBlt(\r
+ IN HANDLE hSurfaceDest,\r
+ IN OPTIONAL HANDLE hSurfaceSrc,\r
+ IN OUT PDD_BLTDATA puBltData\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAlphaBlend(\r
+ IN HDC hdcDst,\r
+ IN LONG DstX,\r
+ IN LONG DstY,\r
+ IN LONG DstCx,\r
+ IN LONG DstCy,\r
+ IN HDC hdcSrc,\r
+ IN LONG SrcX,\r
+ IN LONG SrcY,\r
+ IN LONG SrcCx,\r
+ IN LONG SrcCy,\r
+ IN BLENDFUNCTION BlendFunction,\r
+ IN HANDLE hcmXform\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGradientFill(\r
+ IN HDC hdc,\r
+ IN PTRIVERTEX pVertex,\r
+ IN ULONG nVertex,\r
+ IN PVOID pMesh,\r
+ IN ULONG nMesh,\r
+ IN ULONG ulMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetIcmMode(\r
+ IN HDC hdc,\r
+ IN ULONG nCommand,\r
+ IN ULONG ulMode\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiCreateColorSpace(\r
+ IN PLOGCOLORSPACEEXW pLogColorSpace\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDeleteColorSpace(\r
+ IN HANDLE hColorSpace\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetColorSpace(\r
+ IN HDC hdc,\r
+ IN HCOLORSPACE hColorSpace\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiCreateColorTransform(\r
+ IN HDC hdc,\r
+ IN LPLOGCOLORSPACEW pLogColorSpaceW,\r
+ IN OPTIONAL PVOID pvSrcProfile,\r
+ IN ULONG cjSrcProfile,\r
+ IN OPTIONAL PVOID pvDestProfile,\r
+ IN ULONG cjDestProfile,\r
+ IN OPTIONAL PVOID pvTargetProfile,\r
+ IN ULONG cjTargetProfile\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDeleteColorTransform(\r
+ IN HDC hdc,\r
+ IN HANDLE hColorTransform\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiCheckBitmapBits(\r
+ IN HDC hdc,\r
+ IN HANDLE hColorTransform,\r
+ IN PVOID pvBits,\r
+ IN ULONG bmFormat,\r
+ IN DWORD dwWidth,\r
+ IN DWORD dwHeight,\r
+ IN DWORD dwStride,\r
+ OUT PBYTE paResults\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiColorCorrectPalette(\r
+ IN HDC hdc,\r
+ IN HPALETTE hpal,\r
+ IN ULONG FirstEntry,\r
+ IN ULONG NumberOfEntries,\r
+ IN OUT PALETTEENTRY *ppalEntry,\r
+ IN ULONG Command\r
+);\r
+\r
+W32KAPI\r
+ULONG_PTR\r
+APIENTRY\r
+NtGdiGetColorSpaceforBitmap(\r
+ IN HBITMAP hsurf\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetDeviceGammaRamp(\r
+ IN HDC hdc,\r
+ OUT LPVOID lpGammaRamp\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetDeviceGammaRamp(\r
+ IN HDC hdc,\r
+ IN LPVOID lpGammaRamp\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiIcmBrushInfo(\r
+ IN HDC hdc,\r
+ IN HBRUSH hbrush,\r
+ IN OUT PBITMAPINFO pbmiDIB,\r
+ IN OUT PVOID pvBits,\r
+ IN OUT ULONG *pulBits,\r
+ OUT OPTIONAL DWORD *piUsage,\r
+ OUT OPTIONAL BOOL *pbAlreadyTran,\r
+ IN ULONG Command\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiFlush();\r
+\r
+W32KAPI\r
+HDC\r
+APIENTRY\r
+NtGdiCreateMetafileDC(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMakeInfoDC(\r
+ IN HDC hdc,\r
+ IN BOOL bSet\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiCreateClientObj(\r
+ IN ULONG ulType\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDeleteClientObj(\r
+ IN HANDLE h\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY \r
+NtGdiGetBitmapBits(\r
+ IN HBITMAP hbm,\r
+ IN ULONG cjMax,\r
+ OUT OPTIONAL PBYTE pjOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDeleteObjectApp(\r
+ IN HANDLE hobj\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetPath(\r
+ IN HDC hdc,\r
+ OUT OPTIONAL LPPOINT pptlBuf,\r
+ OUT OPTIONAL LPBYTE pjTypes,\r
+ IN INT cptBuf\r
+);\r
+\r
+W32KAPI\r
+HDC\r
+APIENTRY\r
+NtGdiCreateCompatibleDC(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiCreateDIBitmapInternal(\r
+ IN HDC hdc,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN DWORD fInit,\r
+ IN OPTIONAL LPBYTE pjInit,\r
+ IN OPTIONAL LPBITMAPINFO pbmi,\r
+ IN DWORD iUsage,\r
+ IN UINT cjMaxInitInfo,\r
+ IN UINT cjMaxBits,\r
+ IN FLONG f,\r
+ IN HANDLE hcmXform\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiCreateDIBSection(\r
+ IN HDC hdc,\r
+ IN OPTIONAL HANDLE hSectionApp,\r
+ IN DWORD dwOffset,\r
+ IN LPBITMAPINFO pbmi,\r
+ IN DWORD iUsage,\r
+ IN UINT cjHeader,\r
+ IN FLONG fl,\r
+ IN ULONG_PTR dwColorSpace,\r
+ OUT PVOID *ppvBits\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiCreateSolidBrush(\r
+ IN COLORREF cr,\r
+ IN OPTIONAL HBRUSH hbr\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiCreateDIBBrush(\r
+ IN PVOID pv,\r
+ IN FLONG fl,\r
+ IN UINT cj,\r
+ IN BOOL b8X8,\r
+ IN BOOL bPen,\r
+ IN PVOID pClient\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiCreatePatternBrushInternal(\r
+ IN HBITMAP hbm,\r
+ IN BOOL bPen,\r
+ IN BOOL b8X8\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiCreateHatchBrushInternal(\r
+ IN ULONG ulStyle,\r
+ IN COLORREF clrr,\r
+ IN BOOL bPen\r
+);\r
+\r
+W32KAPI\r
+HPEN\r
+APIENTRY \r
+NtGdiExtCreatePen(\r
+ IN ULONG flPenStyle,\r
+ IN ULONG ulWidth,\r
+ IN ULONG iBrushStyle,\r
+ IN ULONG ulColor,\r
+ IN ULONG_PTR lClientHatch,\r
+ IN ULONG_PTR lHatch,\r
+ IN ULONG cstyle,\r
+ IN OPTIONAL PULONG pulStyle,\r
+ IN ULONG cjDIB,\r
+ IN BOOL bOldStylePen,\r
+ IN OPTIONAL HBRUSH hbrush\r
+);\r
+\r
+W32KAPI\r
+HRGN\r
+APIENTRY \r
+NtGdiCreateEllipticRgn(\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+HRGN\r
+APIENTRY \r
+NtGdiCreateRoundRectRgn(\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom,\r
+ IN INT xWidth,\r
+ IN INT yHeight\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiCreateServerMetaFile(\r
+ IN DWORD iType,\r
+ IN ULONG cjData,\r
+ IN LPBYTE pjData,\r
+ IN DWORD mm,\r
+ IN DWORD xExt,\r
+ IN DWORD yExt\r
+);\r
+\r
+W32KAPI\r
+HRGN\r
+APIENTRY \r
+NtGdiExtCreateRegion(\r
+ IN OPTIONAL LPXFORM px,\r
+ IN DWORD cj,\r
+ IN LPRGNDATA prgn\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiMakeFontDir(\r
+ IN FLONG flEmbed,\r
+ OUT PBYTE pjFontDir,\r
+ IN unsigned cjFontDir,\r
+ IN LPWSTR pwszPathname,\r
+ IN unsigned cjPathname\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPolyDraw(\r
+ IN HDC hdc,\r
+ IN LPPOINT ppt,\r
+ IN LPBYTE pjAttr,\r
+ IN ULONG cpt\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPolyTextOutW(\r
+ IN HDC hdc,\r
+ IN POLYTEXTW *pptw,\r
+ IN UINT cStr,\r
+ IN DWORD dwCodePage\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetServerMetaFileBits(\r
+ IN HANDLE hmo,\r
+ IN ULONG cjData,\r
+ OUT OPTIONAL LPBYTE pjData,\r
+ OUT PDWORD piType,\r
+ OUT PDWORD pmm,\r
+ OUT PDWORD pxExt,\r
+ OUT PDWORD pyExt\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEqualRgn(\r
+ IN HRGN hrgn1,\r
+ IN HRGN hrgn2\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetBitmapDimension(\r
+ IN HBITMAP hbm,\r
+ OUT LPSIZE psize\r
+);\r
+\r
+W32KAPI\r
+UINT\r
+APIENTRY \r
+NtGdiGetNearestPaletteIndex(\r
+ IN HPALETTE hpal,\r
+ IN COLORREF crColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPtVisible(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRectVisible(\r
+ IN HDC hdc,\r
+ IN LPRECT prc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRemoveFontResourceW(\r
+ IN WCHAR *pwszFiles,\r
+ IN ULONG cwc,\r
+ IN ULONG cFiles,\r
+ IN ULONG fl,\r
+ IN DWORD dwPidTid,\r
+ IN OPTIONAL DESIGNVECTOR *pdv\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiResizePalette(\r
+ IN HPALETTE hpal,\r
+ IN UINT cEntry\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetBitmapDimension(\r
+ IN HBITMAP hbm,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ OUT OPTIONAL LPSIZE psizeOut\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiOffsetClipRgn(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiSetMetaRgn(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetTextJustification(\r
+ IN HDC hdc,\r
+ IN INT lBreakExtra,\r
+ IN INT cBreak\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetAppClipBox(\r
+ IN HDC hdc,\r
+ OUT LPRECT prc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetTextExtentExW(\r
+ IN HDC hdc,\r
+ IN OPTIONAL LPWSTR lpwsz,\r
+ IN ULONG cwc,\r
+ IN ULONG dxMax,\r
+ OUT OPTIONAL ULONG *pcCh,\r
+ OUT OPTIONAL PULONG pdxOut,\r
+ OUT LPSIZE psize,\r
+ IN FLONG fl\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetCharABCWidthsW(\r
+ IN HDC hdc,\r
+ IN UINT wchFirst,\r
+ IN ULONG cwch,\r
+ IN OPTIONAL PWCHAR pwch,\r
+ IN FLONG fl,\r
+ OUT PVOID pvBuf\r
+); \r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetCharacterPlacementW(\r
+ IN HDC hdc,\r
+ IN LPWSTR pwsz,\r
+ IN INT nCount,\r
+ IN INT nMaxExtent,\r
+ IN OUT LPGCP_RESULTSW pgcpw,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAngleArc(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN DWORD dwRadius,\r
+ IN DWORD dwStartAngle,\r
+ IN DWORD dwSweepAngle\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiBeginPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSelectClipPath(\r
+ IN HDC hdc,\r
+ IN INT iMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiCloseFigure(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEndPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAbortPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiFillPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiStrokeAndFillPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiStrokePath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiWidenPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiFlattenPath(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+HRGN\r
+APIENTRY \r
+NtGdiPathToRegion(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetMiterLimit(\r
+ IN HDC hdc,\r
+ IN DWORD dwNew,\r
+ IN OUT OPTIONAL PDWORD pdwOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetFontXform(\r
+ IN HDC hdc,\r
+ IN DWORD dwxScale,\r
+ IN DWORD dwyScale\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetMiterLimit(\r
+ IN HDC hdc,\r
+ OUT PDWORD pdwOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEllipse(\r
+ IN HDC hdc,\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRectangle(\r
+ IN HDC hdc,\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRoundRect(\r
+ IN HDC hdc,\r
+ IN INT x1,\r
+ IN INT y1,\r
+ IN INT x2,\r
+ IN INT y2,\r
+ IN INT x3,\r
+ IN INT y3\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPlgBlt(\r
+ IN HDC hdcTrg,\r
+ IN LPPOINT pptlTrg,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN INT cxSrc,\r
+ IN INT cySrc,\r
+ IN HBITMAP hbmMask,\r
+ IN INT xMask,\r
+ IN INT yMask,\r
+ IN DWORD crBackColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMaskBlt(\r
+ IN HDC hdc,\r
+ IN INT xDst,\r
+ IN INT yDst,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN HBITMAP hbmMask,\r
+ IN INT xMask,\r
+ IN INT yMask,\r
+ IN DWORD dwRop4,\r
+ IN DWORD crBackColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiExtFloodFill(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN COLORREF crColor,\r
+ IN UINT iFillType\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiFillRgn(\r
+ IN HDC hdc,\r
+ IN HRGN hrgn,\r
+ IN HBRUSH hbrush\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiFrameRgn(\r
+ IN HDC hdc,\r
+ IN HRGN hrgn,\r
+ IN HBRUSH hbrush,\r
+ IN INT xWidth,\r
+ IN INT yHeight\r
+);\r
+\r
+W32KAPI\r
+COLORREF\r
+APIENTRY\r
+NtGdiSetPixel(\r
+ IN HDC hdcDst,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN COLORREF crColor\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetPixel(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiStartPage(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEndPage(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiStartDoc(\r
+ IN HDC hdc,\r
+ IN DOCINFOW *pdi,\r
+ OUT BOOL *pbBanding,\r
+ IN INT iJob\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEndDoc(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiAbortDoc(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiUpdateColors(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetCharWidthW(\r
+ IN HDC hdc,\r
+ IN UINT wcFirst,\r
+ IN UINT cwc,\r
+ IN OPTIONAL PWCHAR pwc,\r
+ IN FLONG fl,\r
+ OUT PVOID pvBuf\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetCharWidthInfo(\r
+ IN HDC hdc,\r
+ OUT PCHWIDTHINFO pChWidthInfo\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiDrawEscape(\r
+ IN HDC hdc,\r
+ IN INT iEsc,\r
+ IN INT cjIn,\r
+ IN OPTIONAL LPSTR pjIn\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiExtEscape(\r
+ IN HDC hdc,\r
+ IN OPTIONAL PWCHAR pDriver,\r
+ IN INT nDriver,\r
+ IN INT iEsc,\r
+ IN INT cjIn,\r
+ IN OPTIONAL LPSTR pjIn,\r
+ IN INT cjOut,\r
+ OUT OPTIONAL LPSTR pjOut\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetFontData(\r
+ IN HDC hdc,\r
+ IN DWORD dwTable,\r
+ IN DWORD dwOffset,\r
+ OUT OPTIONAL PVOID pvBuf,\r
+ IN ULONG cjBuf\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetGlyphOutline(\r
+ IN HDC hdc,\r
+ IN WCHAR wch,\r
+ IN UINT iFormat,\r
+ OUT LPGLYPHMETRICS pgm,\r
+ IN ULONG cjBuf,\r
+ OUT OPTIONAL PVOID pvBuf,\r
+ IN LPMAT2 pmat2,\r
+ IN BOOL bIgnoreRotation\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetETM(\r
+ IN HDC hdc,\r
+ OUT EXTTEXTMETRIC *petm\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetRasterizerCaps(\r
+ OUT LPRASTERIZER_STATUS praststat,\r
+ IN ULONG cjBytes\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetKerningPairs(\r
+ IN HDC hdc,\r
+ IN ULONG cPairs,\r
+ OUT OPTIONAL KERNINGPAIR *pkpDst\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMonoBitmap(\r
+ IN HBITMAP hbm\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiGetObjectBitmapHandle(\r
+ IN HBRUSH hbr,\r
+ OUT UINT *piUsage\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiEnumObjects(\r
+ IN HDC hdc,\r
+ IN INT iObjectType,\r
+ IN ULONG cjBuf,\r
+ OUT OPTIONAL PVOID pvBuf\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiResetDC(\r
+ IN HDC hdc,\r
+ IN LPDEVMODEW pdm,\r
+ OUT PBOOL pbBanding,\r
+ IN OPTIONAL VOID *pDriverInfo2,\r
+ OUT VOID *ppUMdhpdev\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiSetBoundsRect(\r
+ IN HDC hdc,\r
+ IN LPRECT prc,\r
+ IN DWORD f\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetColorAdjustment(\r
+ IN HDC hdc,\r
+ OUT PCOLORADJUSTMENT pcaOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetColorAdjustment(\r
+ IN HDC hdc,\r
+ IN PCOLORADJUSTMENT pca\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiCancelDC(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+HDC\r
+APIENTRY\r
+NtGdiOpenDCW(\r
+ IN OPTIONAL PUNICODE_STRING pustrDevice,\r
+ IN DEVMODEW *pdm,\r
+ IN PUNICODE_STRING pustrLogAddr,\r
+ IN ULONG iType,\r
+ IN OPTIONAL HANDLE hspool,\r
+ IN OPTIONAL VOID *pDriverInfo2,\r
+ OUT VOID *pUMdhpdev\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetDCDword(\r
+ IN HDC hdc,\r
+ IN UINT u,\r
+ OUT DWORD *Result\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetDCPoint(\r
+ IN HDC hdc,\r
+ IN UINT iPoint,\r
+ OUT PPOINTL pptOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiScaleViewportExtEx(\r
+ IN HDC hdc,\r
+ IN INT xNum,\r
+ IN INT xDenom,\r
+ IN INT yNum,\r
+ IN INT yDenom,\r
+ OUT OPTIONAL LPSIZE pszOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiScaleWindowExtEx(\r
+ IN HDC hdc,\r
+ IN INT xNum,\r
+ IN INT xDenom,\r
+ IN INT yNum,\r
+ IN INT yDenom,\r
+ OUT OPTIONAL LPSIZE pszOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetVirtualResolution(\r
+ IN HDC hdc,\r
+ IN INT cxVirtualDevicePixel,\r
+ IN INT cyVirtualDevicePixel,\r
+ IN INT cxVirtualDeviceMm,\r
+ IN INT cyVirtualDeviceMm\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetSizeDevice(\r
+ IN HDC hdc,\r
+ IN INT cxVirtualDevice,\r
+ IN INT cyVirtualDevice\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetTransform(\r
+ IN HDC hdc,\r
+ IN DWORD iXform,\r
+ OUT LPXFORM pxf\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiModifyWorldTransform(\r
+ IN HDC hdc,\r
+ IN OPTIONAL LPXFORM pxf,\r
+ IN DWORD iXform\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiCombineTransform(\r
+ OUT LPXFORM pxfDst,\r
+ IN LPXFORM pxfSrc1,\r
+ IN LPXFORM pxfSrc2\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiTransformPoints(\r
+ IN HDC hdc,\r
+ IN PPOINT pptIn,\r
+ OUT PPOINT pptOut,\r
+ IN INT c,\r
+ IN INT iMode\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY \r
+NtGdiConvertMetafileRect(\r
+ IN HDC hdc,\r
+ IN OUT PRECTL prect\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetTextCharsetInfo(\r
+ IN HDC hdc,\r
+ OUT OPTIONAL LPFONTSIGNATURE lpSig,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDoBanding(\r
+ IN HDC hdc,\r
+ IN BOOL bStart,\r
+ OUT POINTL *pptl,\r
+ OUT PSIZE pSize\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetPerBandInfo(\r
+ IN HDC hdc,\r
+ IN OUT PERBANDINFO *ppbi\r
+);\r
+\r
+W32KAPI\r
+NTSTATUS\r
+APIENTRY\r
+NtGdiGetStats(\r
+ IN HANDLE hProcess,\r
+ IN INT iIndex,\r
+ IN INT iPidType,\r
+ OUT PVOID pResults,\r
+ IN UINT cjResultSize\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetMagicColors(\r
+ IN HDC hdc,\r
+ IN PALETTEENTRY peMagic,\r
+ IN ULONG Index\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiSelectBrush(\r
+ IN HDC hdc,\r
+ IN HBRUSH hbrush\r
+);\r
+\r
+W32KAPI\r
+HPEN\r
+APIENTRY \r
+NtGdiSelectPen(\r
+ IN HDC hdc,\r
+ IN HPEN hpen\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiSelectBitmap(\r
+ IN HDC hdc,\r
+ IN HBITMAP hbm\r
+);\r
+\r
+W32KAPI\r
+HFONT\r
+APIENTRY\r
+NtGdiSelectFont(\r
+ IN HDC hdc,\r
+ IN HFONT hf\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiExtSelectClipRgn(\r
+ IN HDC hdc,\r
+ IN HRGN hrgn,\r
+ IN INT iMode\r
+);\r
+\r
+W32KAPI\r
+HPEN\r
+APIENTRY \r
+NtGdiCreatePen(\r
+ IN INT iPenStyle,\r
+ IN INT iPenWidth,\r
+ IN COLORREF cr,\r
+ IN HBRUSH hbr\r
+);\r
+\r
+#ifdef _WINDOWBLT_NOTIFICATION_\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiBitBlt(\r
+ IN HDC hdcDst,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN DWORD rop4,\r
+ IN DWORD crBackColor,\r
+ IN FLONG fl\r
+);\r
+#else\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiBitBlt(\r
+ IN HDC hdcDst,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN DWORD rop4,\r
+ IN DWORD crBackColor\r
+);\r
+#endif\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiTileBitBlt(\r
+ IN HDC hdcDst,\r
+ IN RECTL * prectDst,\r
+ IN HDC hdcSrc,\r
+ IN RECTL * prectSrc,\r
+ IN POINTL * pptlOrigin,\r
+ IN DWORD rop4,\r
+ IN DWORD crBackColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiTransparentBlt(\r
+ IN HDC hdcDst,\r
+ IN INT xDst,\r
+ IN INT yDst,\r
+ IN INT cxDst,\r
+ IN INT cyDst,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN INT cxSrc,\r
+ IN INT cySrc,\r
+ IN COLORREF TransColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetTextExtent(\r
+ IN HDC hdc,\r
+ IN LPWSTR lpwsz,\r
+ IN INT cwc,\r
+ OUT LPSIZE psize,\r
+ IN UINT flOpts\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetTextMetricsW(\r
+ IN HDC hdc,\r
+ OUT TMW_INTERNAL * ptm,\r
+ IN ULONG cj\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetTextFaceW(\r
+ IN HDC hdc,\r
+ IN INT cChar,\r
+ OUT OPTIONAL LPWSTR pszOut,\r
+ IN BOOL bAliasName\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetRandomRgn(\r
+ IN HDC hdc,\r
+ IN HRGN hrgn,\r
+ IN INT iRgn\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiExtTextOutW(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN UINT flOpts,\r
+ IN OPTIONAL LPRECT prcl,\r
+ IN LPWSTR pwsz,\r
+ IN INT cwc,\r
+ IN OPTIONAL LPINT pdx,\r
+ IN DWORD dwCodePage\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiIntersectClipRect(\r
+ IN HDC hdc,\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+HRGN\r
+APIENTRY \r
+NtGdiCreateRectRgn(\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPatBlt(\r
+ IN HDC hdcDst,\r
+ IN INT x,\r
+ IN INT y,\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN DWORD rop4\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPolyPatBlt(\r
+ IN HDC hdc,\r
+ IN DWORD rop4,\r
+ IN PPOLYPATBLT pPoly,\r
+ IN DWORD Count,\r
+ IN DWORD Mode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiUnrealizeObject(\r
+ IN HANDLE h\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiGetStockObject(\r
+ IN INT iObject\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiCreateCompatibleBitmap(\r
+ IN HDC hdc,\r
+ IN INT cx,\r
+ IN INT cy\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiLineTo(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMoveTo(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y,\r
+ OUT OPTIONAL LPPOINT pptOut\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiExtGetObjectW(\r
+ IN HANDLE h,\r
+ IN INT cj,\r
+ OUT OPTIONAL LPVOID pvOut\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetDeviceCaps(\r
+ IN HDC hdc,\r
+ IN INT i\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiGetDeviceCapsAll (\r
+ IN HDC hdc,\r
+ OUT PDEVCAPS pDevCaps\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiStretchBlt(\r
+ IN HDC hdcDst,\r
+ IN INT xDst,\r
+ IN INT yDst,\r
+ IN INT cxDst,\r
+ IN INT cyDst,\r
+ IN HDC hdcSrc,\r
+ IN INT xSrc,\r
+ IN INT ySrc,\r
+ IN INT cxSrc,\r
+ IN INT cySrc,\r
+ IN DWORD dwRop,\r
+ IN DWORD dwBackColor\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetBrushOrg(\r
+ IN HDC hdc,\r
+ IN INT x,\r
+ IN INT y,\r
+ OUT LPPOINT pptOut\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiCreateBitmap(\r
+ IN INT cx,\r
+ IN INT cy,\r
+ IN UINT cPlanes,\r
+ IN UINT cBPP,\r
+ IN OPTIONAL LPBYTE pjInit\r
+);\r
+\r
+W32KAPI\r
+HPALETTE\r
+APIENTRY\r
+NtGdiCreateHalftonePalette(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRestoreDC(\r
+ IN HDC hdc,\r
+ IN INT iLevel\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiExcludeClipRect(\r
+ IN HDC hdc,\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiSaveDC(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiCombineRgn(\r
+ IN HRGN hrgnDst,\r
+ IN HRGN hrgnSrc1,\r
+ IN HRGN hrgnSrc2,\r
+ IN INT iMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSetRectRgn(\r
+ IN HRGN hrgn,\r
+ IN INT xLeft,\r
+ IN INT yTop,\r
+ IN INT xRight,\r
+ IN INT yBottom\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY \r
+NtGdiSetBitmapBits(\r
+ IN HBITMAP hbm,\r
+ IN ULONG cj,\r
+ IN PBYTE pjInit\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetDIBitsInternal(\r
+ IN HDC hdc,\r
+ IN HBITMAP hbm,\r
+ IN UINT iStartScan,\r
+ IN UINT cScans,\r
+ OUT OPTIONAL LPBYTE pBits,\r
+ IN OUT LPBITMAPINFO pbmi,\r
+ IN UINT iUsage,\r
+ IN UINT cjMaxBits,\r
+ IN UINT cjMaxInfo\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiOffsetRgn(\r
+ IN HRGN hrgn,\r
+ IN INT cx,\r
+ IN INT cy\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiGetRgnBox(\r
+ IN HRGN hrgn,\r
+ OUT LPRECT prcOut\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiRectInRegion(\r
+ IN HRGN hrgn,\r
+ IN OUT LPRECT prcl\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetBoundsRect(\r
+ IN HDC hdc,\r
+ OUT LPRECT prc,\r
+ IN DWORD f\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPtInRegion(\r
+ IN HRGN hrgn,\r
+ IN INT x,\r
+ IN INT y\r
+);\r
+\r
+W32KAPI\r
+COLORREF\r
+APIENTRY\r
+NtGdiGetNearestColor(\r
+ IN HDC hdc,\r
+ IN COLORREF cr\r
+);\r
+\r
+W32KAPI\r
+UINT\r
+APIENTRY \r
+NtGdiGetSystemPaletteUse(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+UINT\r
+APIENTRY \r
+NtGdiSetSystemPaletteUse(\r
+ IN HDC hdc,\r
+ IN UINT ui\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiGetRegionData(\r
+ IN HRGN hrgn,\r
+ IN DWORD nCount,\r
+ OUT OPTIONAL LPRGNDATA lpRgnData\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiInvertRgn(\r
+ IN HDC hdc,\r
+ IN HRGN hrgn\r
+);\r
+\r
+INT\r
+W32KAPI\r
+APIENTRY\r
+NtGdiAddFontResourceW(\r
+ IN WCHAR *pwszFiles,\r
+ IN ULONG cwc,\r
+ IN ULONG cFiles,\r
+ IN FLONG f,\r
+ IN DWORD dwPidTid,\r
+ IN OPTIONAL DESIGNVECTOR *pdv\r
+);\r
+\r
+#if (_WIN32_WINNT >= 0x0500)\r
+W32KAPI\r
+HFONT\r
+APIENTRY\r
+NtGdiHfontCreate(\r
+ IN ENUMLOGFONTEXDVW *pelfw,\r
+ IN ULONG cjElfw,\r
+ IN LFTYPE lft,\r
+ IN FLONG fl,\r
+ IN PVOID pvCliData\r
+);\r
+#else\r
+W32KAPI\r
+HFONT\r
+APIENTRY\r
+NtGdiHfontCreate(\r
+ IN LPEXTLOGFONTW pelfw,\r
+ IN ULONG cjElfw,\r
+ IN LFTYPE lft,\r
+ IN FLONG fl,\r
+ IN PVOID pvCliData\r
+);\r
+#endif\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiSetFontEnumeration(\r
+ IN ULONG ulType\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEnumFontClose(\r
+ IN ULONG_PTR idEnum\r
+);\r
+\r
+#if (_WIN32_WINNT >= 0x0500)\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEnumFontChunk(\r
+ IN HDC hdc,\r
+ IN ULONG_PTR idEnum,\r
+ IN ULONG cjEfdw,\r
+ OUT ULONG *pcjEfdw,\r
+ OUT PENUMFONTDATAW pefdw\r
+);\r
+#endif\r
+\r
+W32KAPI\r
+ULONG_PTR\r
+APIENTRY\r
+NtGdiEnumFontOpen(\r
+ IN HDC hdc,\r
+ IN ULONG iEnumType,\r
+ IN FLONG flWin31Compat,\r
+ IN ULONG cwchMax,\r
+ IN OPTIONAL LPWSTR pwszFaceName,\r
+ IN ULONG lfCharSet,\r
+ OUT ULONG *pulCount\r
+);\r
+\r
+W32KAPI\r
+INT\r
+APIENTRY\r
+NtGdiQueryFonts(\r
+ OUT PUNIVERSAL_FONT_ID pufiFontList,\r
+ IN ULONG nBufferSize,\r
+ OUT PLARGE_INTEGER pTimeStamp \r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiConsoleTextOut(\r
+ IN HDC hdc,\r
+ IN POLYTEXTW *lpto,\r
+ IN UINT nStrings,\r
+ IN RECTL *prclBounds\r
+);\r
+\r
+W32KAPI\r
+NTSTATUS\r
+APIENTRY\r
+NtGdiFullscreenControl(\r
+ IN FULLSCREENCONTROL FullscreenCommand,\r
+ IN PVOID FullscreenInput,\r
+ IN DWORD FullscreenInputLength,\r
+ OUT PVOID FullscreenOutput,\r
+ IN OUT PULONG FullscreenOutputLength\r
+);\r
+\r
+W32KAPI\r
+DWORD \r
+NtGdiGetCharSet(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY \r
+NtGdiEnableEudc(\r
+ IN BOOL\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY \r
+NtGdiEudcLoadUnloadLink(\r
+ IN OPTIONAL LPCWSTR pBaseFaceName,\r
+ IN UINT cwcBaseFaceName,\r
+ IN LPCWSTR pEudcFontPath,\r
+ IN UINT cwcEudcFontPath,\r
+ IN INT iPriority,\r
+ IN INT iFontLinkType,\r
+ IN BOOL bLoadLin\r
+);\r
+\r
+W32KAPI\r
+UINT\r
+APIENTRY \r
+NtGdiGetStringBitmapW(\r
+ IN HDC hdc,\r
+ IN LPWSTR pwsz,\r
+ IN UINT cwc,\r
+ OUT BYTE *lpSB,\r
+ IN UINT cj\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiGetEudcTimeStampEx(\r
+ IN OPTIONAL LPWSTR lpBaseFaceName,\r
+ IN ULONG cwcBaseFaceName,\r
+ IN BOOL bSystemTimeStamp\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiQueryFontAssocInfo(\r
+ IN HDC hdc\r
+);\r
+\r
+#if (_WIN32_WINNT >= 0x0500)\r
+W32KAPI\r
+DWORD \r
+NtGdiGetFontUnicodeRanges(\r
+ IN HDC hdc,\r
+ OUT OPTIONAL LPGLYPHSET pgs\r
+);\r
+#endif\r
+\r
+#ifdef LANGPACK\r
+W32KAPI\r
+BOOL \r
+NtGdiGetRealizationInfo(\r
+ IN HDC hdc,\r
+ OUT PREALIZATION_INFO pri,\r
+ IN HFONT hf\r
+);\r
+#endif\r
+\r
+W32KAPI\r
+BOOL \r
+NtGdiAddRemoteMMInstanceToDC(\r
+ IN HDC hdc,\r
+ IN DOWNLOADDESIGNVECTOR *pddv,\r
+ IN ULONG cjDDV\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiUnloadPrinterDriver(\r
+ IN LPWSTR pDriverName,\r
+ IN ULONG cbDriverName\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngAssociateSurface(\r
+ IN HSURF hsurf,\r
+ IN HDEV hdev,\r
+ IN FLONG flHooks\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngEraseSurface(\r
+ IN SURFOBJ *pso,\r
+ IN RECTL *prcl,\r
+ IN ULONG iColor\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiEngCreateBitmap(\r
+ IN SIZEL sizl,\r
+ IN LONG lWidth,\r
+ IN ULONG iFormat,\r
+ IN FLONG fl,\r
+ IN OPTIONAL PVOID pvBits\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngDeleteSurface(\r
+ IN HSURF hsurf\r
+);\r
+\r
+W32KAPI\r
+SURFOBJ*\r
+APIENTRY\r
+NtGdiEngLockSurface(\r
+ IN HSURF hsurf\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiEngUnlockSurface(\r
+ IN SURFOBJ *\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngMarkBandingSurface(\r
+ IN HSURF hsurf\r
+);\r
+\r
+W32KAPI\r
+HSURF\r
+APIENTRY\r
+NtGdiEngCreateDeviceSurface(\r
+ IN DHSURF dhsurf,\r
+ IN SIZEL sizl,\r
+ IN ULONG iFormatCompat\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiEngCreateDeviceBitmap(\r
+ IN DHSURF dhsurf,\r
+ IN SIZEL sizl,\r
+ IN ULONG iFormatCompat\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngCopyBits(\r
+ IN SURFOBJ *psoDst,\r
+ IN SURFOBJ *psoSrc,\r
+ IN OPTIONAL CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN RECTL *prclDst,\r
+ IN POINTL *pptlSrc\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngStretchBlt(\r
+ IN SURFOBJ *psoDest,\r
+ IN SURFOBJ *psoSrc,\r
+ IN SURFOBJ *psoMask,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN COLORADJUSTMENT *pca,\r
+ IN POINTL *pptlHTOrg,\r
+ IN RECTL *prclDest,\r
+ IN RECTL *prclSrc,\r
+ IN POINTL *pptlMask,\r
+ IN ULONG iMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngBitBlt(\r
+ IN SURFOBJ *psoDst,\r
+ IN SURFOBJ *psoSrc,\r
+ IN SURFOBJ *psoMask,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN RECTL *prclDst,\r
+ IN POINTL *pptlSrc,\r
+ IN POINTL *pptlMask,\r
+ IN BRUSHOBJ *pbo,\r
+ IN POINTL *pptlBrush,\r
+ IN ROP4 rop4\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngPlgBlt(\r
+ IN SURFOBJ *psoTrg,\r
+ IN SURFOBJ *psoSrc,\r
+ IN OPTIONAL SURFOBJ *psoMsk,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN COLORADJUSTMENT *pca,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN POINTFIX *pptfxDest,\r
+ IN RECTL *prclSrc,\r
+ IN OPTIONAL POINTL *pptlMask,\r
+ IN ULONG iMode\r
+);\r
+\r
+W32KAPI\r
+HPALETTE\r
+APIENTRY\r
+NtGdiEngCreatePalette(\r
+ IN ULONG iMode,\r
+ IN ULONG cColors,\r
+ IN ULONG *pulColors,\r
+ IN FLONG flRed,\r
+ IN FLONG flGreen,\r
+ IN FLONG flBlue\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngDeletePalette(\r
+ IN HPALETTE hPal\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngStrokePath(\r
+ IN SURFOBJ *pso,\r
+ IN PATHOBJ *ppo,\r
+ IN CLIPOBJ *pco,\r
+ IN XFORMOBJ *pxo,\r
+ IN BRUSHOBJ *pbo,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN LINEATTRS *plineattrs,\r
+ IN MIX mix\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngFillPath(\r
+ IN SURFOBJ *pso,\r
+ IN PATHOBJ *ppo,\r
+ IN CLIPOBJ *pco,\r
+ IN BRUSHOBJ *pbo,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN MIX mix,\r
+ IN FLONG flOptions\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngStrokeAndFillPath(\r
+ IN SURFOBJ *pso,\r
+ IN PATHOBJ *ppo,\r
+ IN CLIPOBJ *pco,IN XFORMOBJ *pxo,\r
+ IN BRUSHOBJ *pboStroke,\r
+ IN LINEATTRS *plineattrs,\r
+ IN BRUSHOBJ *pboFill,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN MIX mix,\r
+ IN FLONG flOptions\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngPaint(\r
+ IN SURFOBJ *pso,\r
+ IN CLIPOBJ *pco,\r
+ IN BRUSHOBJ *pbo,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN MIX mix\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngLineTo(\r
+ IN SURFOBJ *pso,\r
+ IN CLIPOBJ *pco,\r
+ IN BRUSHOBJ *pbo,\r
+ IN LONG x1,\r
+ IN LONG y1,\r
+ IN LONG x2,\r
+ IN LONG y2,\r
+ IN RECTL *prclBounds,\r
+ IN MIX mix\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngAlphaBlend(\r
+ IN SURFOBJ *psoDest,\r
+ IN SURFOBJ *psoSrc,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN RECTL *prclDest,\r
+ IN RECTL *prclSrc,\r
+ IN BLENDOBJ *pBlendObj\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngGradientFill(\r
+ IN SURFOBJ *psoDest,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN TRIVERTEX *pVertex,\r
+ IN ULONG nVertex,\r
+ IN PVOID pMesh,\r
+ IN ULONG nMesh,\r
+ IN RECTL *prclExtents,\r
+ IN POINTL *pptlDitherOrg,\r
+ IN ULONG ulMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngTransparentBlt(\r
+ IN SURFOBJ *psoDst,\r
+ IN SURFOBJ *psoSrc,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN RECTL *prclDst,\r
+ IN RECTL *prclSrc,\r
+ IN ULONG iTransColor,\r
+ IN ULONG ulReserved\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngTextOut(\r
+ IN SURFOBJ *pso,\r
+ IN STROBJ *pstro,\r
+ IN FONTOBJ *pfo,\r
+ IN CLIPOBJ *pco,\r
+ IN RECTL *prclExtra,\r
+ IN RECTL *prclOpaque,\r
+ IN BRUSHOBJ *pboFore,\r
+ IN BRUSHOBJ *pboOpaque,\r
+ IN POINTL *pptlOrg,\r
+ IN MIX mix\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngStretchBltROP(\r
+ IN SURFOBJ *psoTrg,\r
+ IN SURFOBJ *psoSrc,\r
+ IN SURFOBJ *psoMask,\r
+ IN CLIPOBJ *pco,\r
+ IN XLATEOBJ *pxlo,\r
+ IN COLORADJUSTMENT *pca,\r
+ IN POINTL *pptlBrushOrg,\r
+ IN RECTL *prclTrg,\r
+ IN RECTL *prclSrc,\r
+ IN POINTL *pptlMask,\r
+ IN ULONG iMode,\r
+ IN BRUSHOBJ *pbo,\r
+ IN ROP4 rop4\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiXLATEOBJ_cGetPalette(\r
+ IN XLATEOBJ *pxlo,\r
+ IN ULONG iPal,\r
+ IN ULONG cPal,\r
+ OUT ULONG *pPal\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiCLIPOBJ_cEnumStart(\r
+ IN CLIPOBJ *pco,\r
+ IN BOOL bAll,\r
+ IN ULONG iType,\r
+ IN ULONG iDirection,\r
+ IN ULONG cLimit\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiCLIPOBJ_bEnum(\r
+ IN CLIPOBJ *pco,\r
+ IN ULONG cj,\r
+ OUT ULONG *pul\r
+);\r
+\r
+W32KAPI\r
+PATHOBJ*\r
+APIENTRY\r
+NtGdiCLIPOBJ_ppoGetPath(\r
+ IN CLIPOBJ *pco\r
+);\r
+\r
+W32KAPI\r
+CLIPOBJ*\r
+APIENTRY\r
+NtGdiEngCreateClip();\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiEngDeleteClip(\r
+ IN CLIPOBJ*pco\r
+);\r
+\r
+W32KAPI\r
+PVOID\r
+APIENTRY\r
+NtGdiBRUSHOBJ_pvAllocRbrush(\r
+ IN BRUSHOBJ *pbo,\r
+ IN ULONG cj\r
+);\r
+\r
+W32KAPI\r
+PVOID\r
+APIENTRY\r
+NtGdiBRUSHOBJ_pvGetRbrush(\r
+ IN BRUSHOBJ *pbo\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiBRUSHOBJ_ulGetBrushColor(\r
+ IN BRUSHOBJ *pbo\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiBRUSHOBJ_hGetColorTransform(\r
+ IN BRUSHOBJ *pbo\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiXFORMOBJ_bApplyXform(\r
+ IN XFORMOBJ *pxo,\r
+ IN ULONG iMode,\r
+ IN ULONG cPoints,\r
+ IN PVOID pvIn,\r
+ OUT PVOID pvOut\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiXFORMOBJ_iGetXform(\r
+ IN XFORMOBJ *pxo,\r
+ OUT OPTIONAL XFORML *pxform\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiFONTOBJ_vGetInfo(\r
+ IN FONTOBJ *pfo,\r
+ IN ULONG cjSize,\r
+ OUT FONTINFO *pfi\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiFONTOBJ_cGetGlyphs(\r
+ IN FONTOBJ *pfo,\r
+ IN ULONG iMode,\r
+ IN ULONG cGlyph,\r
+ IN HGLYPH *phg,\r
+ OUT PVOID *ppvGlyph\r
+);\r
+\r
+W32KAPI\r
+XFORMOBJ*\r
+APIENTRY\r
+NtGdiFONTOBJ_pxoGetXform(\r
+ IN FONTOBJ *pfo\r
+);\r
+\r
+W32KAPI\r
+IFIMETRICS*\r
+APIENTRY\r
+NtGdiFONTOBJ_pifi(\r
+ IN FONTOBJ *pfo\r
+);\r
+\r
+W32KAPI\r
+FD_GLYPHSET*\r
+APIENTRY\r
+NtGdiFONTOBJ_pfdg(\r
+ IN FONTOBJ *pfo\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiFONTOBJ_cGetAllGlyphHandles(\r
+ IN FONTOBJ *pfo,\r
+ OUT OPTIONAL HGLYPH *phg\r
+);\r
+\r
+W32KAPI\r
+PVOID\r
+APIENTRY \r
+NtGdiFONTOBJ_pvTrueTypeFontFile(\r
+ IN FONTOBJ *pfo,\r
+ OUT ULONG *pcjFile\r
+);\r
+\r
+W32KAPI\r
+PFD_GLYPHATTR\r
+APIENTRY\r
+NtGdiFONTOBJ_pQueryGlyphAttrs(\r
+ IN FONTOBJ *pfo,\r
+ IN ULONG iMode\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSTROBJ_bEnum(\r
+ IN STROBJ *pstro,\r
+ OUT ULONG *pc,\r
+ OUT PGLYPHPOS *ppgpos\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSTROBJ_bEnumPositionsOnly(\r
+ IN STROBJ *pstro,\r
+ OUT ULONG *pc,\r
+ OUT PGLYPHPOS *ppgpos\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiSTROBJ_vEnumStart(\r
+ IN STROBJ *pstro\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiSTROBJ_dwGetCodePage(\r
+ IN STROBJ *pstro\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiSTROBJ_bGetAdvanceWidths(\r
+ IN STROBJ*pstro,\r
+ IN ULONG iFirst,\r
+ IN ULONG c,\r
+ OUT POINTQF*pptqD\r
+);\r
+\r
+W32KAPI\r
+FD_GLYPHSET*\r
+APIENTRY\r
+NtGdiEngComputeGlyphSet(\r
+ IN INT nCodePage,\r
+ IN INT nFirstChar,\r
+ IN INT cChars\r
+);\r
+\r
+W32KAPI\r
+ULONG\r
+APIENTRY\r
+NtGdiXLATEOBJ_iXlate(\r
+ IN XLATEOBJ *pxlo,\r
+ IN ULONG iColor\r
+);\r
+\r
+W32KAPI\r
+HANDLE\r
+APIENTRY\r
+NtGdiXLATEOBJ_hGetColorTransform(\r
+ IN XLATEOBJ *pxlo\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiPATHOBJ_vGetBounds(\r
+ IN PATHOBJ *ppo,\r
+ OUT PRECTFX prectfx\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPATHOBJ_bEnum(\r
+ IN PATHOBJ *ppo,\r
+ OUT PATHDATA *ppd\r
+); \r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiPATHOBJ_vEnumStart(\r
+ IN PATHOBJ *ppo\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiEngDeletePath(\r
+ IN PATHOBJ *ppo\r
+);\r
+\r
+W32KAPI\r
+VOID\r
+APIENTRY\r
+NtGdiPATHOBJ_vEnumStartClipLines(\r
+ IN PATHOBJ *ppo,\r
+ IN CLIPOBJ *pco,\r
+ IN SURFOBJ *pso,\r
+ IN LINEATTRS *pla\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiPATHOBJ_bEnumClipLines(\r
+ IN PATHOBJ *ppo,\r
+ IN ULONG cb,\r
+ OUT CLIPLINE *pcl\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiEngCheckAbort(\r
+ IN SURFOBJ *pso\r
+);\r
+\r
+W32KAPI\r
+DHPDEV\r
+NtGdiGetDhpdev(\r
+ IN HDEV hdev\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY\r
+NtGdiHT_Get8BPPFormatPalette(\r
+ OUT OPTIONAL LPPALETTEENTRY pPaletteEntry,\r
+ IN USHORT RedGamma,\r
+ IN USHORT GreenGamma,\r
+ IN USHORT BlueGamma\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY\r
+NtGdiHT_Get8BPPMaskPalette(\r
+ OUT OPTIONAL LPPALETTEENTRY pPaletteEntry,\r
+ IN BOOL Use8BPPMaskPal,\r
+ IN BYTE CMYMask,\r
+ IN USHORT RedGamma,\r
+ IN USHORT GreenGamma,\r
+ IN USHORT BlueGamma\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+NtGdiUpdateTransform(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+DWORD\r
+APIENTRY\r
+NtGdiSetLayout(\r
+ IN HDC hdc,\r
+ IN LONG wox,\r
+ IN DWORD dwLayout\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMirrorWindowOrg(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+LONG\r
+APIENTRY \r
+NtGdiGetDeviceWidth(\r
+ IN HDC hdc\r
+);\r
+\r
+W32KAPI\r
+BOOL \r
+NtGdiSetPUMPDOBJ(\r
+ IN HUMPD humpd,\r
+ IN BOOL bStoreID,\r
+ OUT HUMPD *phumpd,\r
+ OUT BOOL *pbWOW64\r
+);\r
+\r
+W32KAPI\r
+BOOL \r
+NtGdiBRUSHOBJ_DeleteRbrush(\r
+ IN BRUSHOBJ *pbo,\r
+ IN BRUSHOBJ *pboB\r
+);\r
+\r
+W32KAPI\r
+BOOL \r
+NtGdiUMPDEngFreeUserMem(\r
+ IN KERNEL_PVOID *ppv\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiSetBitmapAttributes(\r
+ IN HBITMAP hbm,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+HBITMAP\r
+APIENTRY\r
+NtGdiClearBitmapAttributes(\r
+ IN HBITMAP hbm,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiSetBrushAttributes(\r
+ IN HBRUSH hbm,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+HBRUSH\r
+APIENTRY\r
+NtGdiClearBrushAttributes(\r
+ IN HBRUSH hbm,\r
+ IN DWORD dwFlags\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiDrawStream(\r
+ IN HDC hdcDst,\r
+ IN ULONG cjIn,\r
+ IN VOID *pvIn\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMakeObjectXferable(\r
+ IN HANDLE h,\r
+ IN DWORD dwProcessId\r
+);\r
+\r
+W32KAPI\r
+BOOL\r
+APIENTRY\r
+NtGdiMakeObjectUnXferable(\r
+ IN HANDLE h\r
+);\r
+\r
+#endif\r
#define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3
+#define MWT_MIN MWT_IDENTITY
+#define MWT_MAX MWT_RIGHTMULTIPLY
#define OPAQUE 2
#define TRANSPARENT 1
#define BLACKONWHITE 1
SHORT caBrightness;
SHORT caColorfulness;
SHORT caRedGreenTint;
-} COLORADJUSTMENT,*LPCOLORADJUSTMENT;
+} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
typedef struct _devicemodeA {
BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
-UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,DWORD,CONST PIXELFORMATDESCRIPTOR*);
+UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,UINT,PIXELFORMATDESCRIPTOR*);
DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD);
DWORD WINAPI GetFontLanguageInfo(HDC);
DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
int WINAPI GetGraphicsMode(HDC);
-BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR);
-BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR);
+BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR);
+BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR);
DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
BOOL WINAPI TranslateCharsetInfo(PDWORD,LPCHARSETINFO,DWORD);
BOOL WINAPI UnrealizeObject(HGDIOBJ);
BOOL WINAPI UpdateColors(HDC);
-BOOL WINAPI UpdateICMRegKeyA(DWORD,DWORD,LPSTR,UINT);
-BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT);
+BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
+BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
BOOL WINAPI WidenPath(HDC);
BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
HGLRC WINAPI wglCreateContext(HDC);