From 6bee8fb5ccc42d98d181dc9c69463bbe945ee1bb Mon Sep 17 00:00:00 2001 From: Maarten Bosma Date: Wed, 28 Dec 2005 12:40:17 +0000 Subject: [PATCH] Revert r20367 and r20368 since they crash the GUI in second boot by hitting a assert at line 271 in win32k/ntuser/msgqueue.c svn path=/trunk/; revision=20392 --- reactos/include/win32k/bitmaps.h | 343 ++ .../win32k/include => include/win32k}/brush.h | 189 +- reactos/include/win32k/caret.h | 23 + reactos/include/win32k/cliprgn.h | 81 + reactos/include/win32k/color.h | 116 + reactos/include/win32k/coord.h | 151 + reactos/include/win32k/cursoricon.h | 95 + .../win32k/include => include/win32k}/dc.h | 423 +- .../include => include/win32k}/driver.h | 380 +- reactos/include/win32k/fillshap.h | 68 + .../gdifloat.h => include/win32k/float.h} | 206 +- reactos/include/win32k/font.h | 25 + .../include => include/win32k}/gdiobj.h | 193 +- reactos/include/win32k/icm.h | 81 + reactos/include/win32k/kapi.h | 33 + reactos/include/win32k/line.h | 101 + reactos/include/win32k/math.h | 168 + reactos/include/win32k/menu.h | 250 ++ reactos/include/win32k/metafile.h | 180 + .../win32k/include => include/win32k}/misc.h | 30 +- reactos/include/win32k/ntddraw.h | 325 ++ reactos/include/win32k/ntgdibad.h | 1256 ------ reactos/include/win32k/ntgdihdl.h | 86 - reactos/include/win32k/ntgdityp.h | 90 - reactos/include/win32k/ntuser.h | 747 ++-- reactos/include/win32k/ntusrtyp.h | 167 - reactos/include/win32k/paint.h | 43 + reactos/include/win32k/path.h | 54 + .../win32k/include => include/win32k}/pen.h | 46 +- reactos/include/win32k/print.h | 48 + reactos/include/win32k/region.h | 151 + reactos/include/win32k/text.h | 233 ++ reactos/include/win32k/win32k.h | 1 + reactos/include/win32k/wingl.h | 38 + reactos/lib/ddraw/hal/surface_hal.c | 6 +- reactos/lib/gdi32/gdi32.def | 6 +- reactos/lib/gdi32/include/gdi32p.h | 106 - reactos/lib/gdi32/include/precomp.h | 89 +- reactos/lib/gdi32/misc/gdientry.c | 43 +- reactos/lib/gdi32/misc/stubs.c | 43 + reactos/lib/gdi32/misc/stubsa.c | 8 +- reactos/lib/gdi32/misc/stubsw.c | 4 +- reactos/lib/gdi32/misc/wingl.c | 6 +- reactos/lib/gdi32/objects/bitmap.c | 35 +- reactos/lib/gdi32/objects/brush.c | 17 +- reactos/lib/gdi32/objects/dc.c | 10 +- reactos/lib/gdi32/objects/font.c | 21 +- reactos/lib/gdi32/objects/path.c | 4 +- reactos/lib/user32/include/user32.h | 12 +- reactos/subsys/win32k/eng/objects.h | 32 +- reactos/subsys/win32k/include/bitmaps.h | 50 - reactos/subsys/win32k/include/color.h | 8 - reactos/subsys/win32k/include/coord.h | 24 - reactos/subsys/win32k/include/dib.h | 2 +- reactos/subsys/win32k/include/intgdi.h | 2 - reactos/subsys/win32k/include/menu.h | 9 +- reactos/subsys/win32k/include/object.h | 6 +- reactos/subsys/win32k/include/path.h | 2 - reactos/subsys/win32k/include/region.h | 21 - reactos/subsys/win32k/include/text.h | 18 - reactos/subsys/win32k/include/win32k.h | 5 - reactos/subsys/win32k/main/dllmain.c | 1 + reactos/subsys/win32k/ntddraw/stubs.c | 12 +- reactos/subsys/win32k/ntuser/cursoricon.c | 12 +- reactos/subsys/win32k/ntuser/desktop.c | 11 +- reactos/subsys/win32k/ntuser/menu.c | 2 +- reactos/subsys/win32k/ntuser/painting.c | 2 +- reactos/subsys/win32k/ntuser/winpos.c | 2 +- reactos/subsys/win32k/objects/bitmaps.c | 81 +- reactos/subsys/win32k/objects/brush.c | 23 +- reactos/subsys/win32k/objects/dc.c | 34 +- reactos/subsys/win32k/objects/dib.c | 25 +- reactos/subsys/win32k/objects/icm.c | 18 +- reactos/subsys/win32k/objects/line.c | 26 +- reactos/subsys/win32k/objects/paint.c | 22 +- reactos/subsys/win32k/objects/path.c | 18 +- reactos/subsys/win32k/objects/pen.c | 19 +- reactos/subsys/win32k/objects/print.c | 15 +- reactos/subsys/win32k/objects/region.c | 5 +- reactos/subsys/win32k/objects/text.c | 42 +- reactos/subsys/win32k/objects/wingl.c | 8 +- reactos/subsys/win32k/w32k.h | 16 +- reactos/tools/nci/w32ksvc.db | 16 +- reactos/w32api/include/ntgdi.h | 3624 ----------------- reactos/w32api/include/wingdi.h | 14 +- 85 files changed, 4059 insertions(+), 6999 deletions(-) create mode 100644 reactos/include/win32k/bitmaps.h rename reactos/{subsys/win32k/include => include/win32k}/brush.h (78%) create mode 100644 reactos/include/win32k/caret.h create mode 100644 reactos/include/win32k/cliprgn.h create mode 100644 reactos/include/win32k/color.h create mode 100644 reactos/include/win32k/coord.h create mode 100644 reactos/include/win32k/cursoricon.h rename reactos/{subsys/win32k/include => include/win32k}/dc.h (58%) rename reactos/{subsys/win32k/include => include/win32k}/driver.h (50%) create mode 100644 reactos/include/win32k/fillshap.h rename reactos/{subsys/win32k/include/gdifloat.h => include/win32k/float.h} (87%) create mode 100644 reactos/include/win32k/font.h rename reactos/{subsys/win32k/include => include/win32k}/gdiobj.h (51%) create mode 100644 reactos/include/win32k/icm.h create mode 100644 reactos/include/win32k/kapi.h create mode 100644 reactos/include/win32k/line.h create mode 100644 reactos/include/win32k/math.h create mode 100644 reactos/include/win32k/menu.h create mode 100644 reactos/include/win32k/metafile.h rename reactos/{subsys/win32k/include => include/win32k}/misc.h (89%) create mode 100644 reactos/include/win32k/ntddraw.h delete mode 100644 reactos/include/win32k/ntgdibad.h delete mode 100644 reactos/include/win32k/ntgdihdl.h delete mode 100644 reactos/include/win32k/ntgdityp.h delete mode 100644 reactos/include/win32k/ntusrtyp.h create mode 100644 reactos/include/win32k/paint.h create mode 100644 reactos/include/win32k/path.h rename reactos/{subsys/win32k/include => include/win32k}/pen.h (54%) create mode 100644 reactos/include/win32k/print.h create mode 100644 reactos/include/win32k/region.h create mode 100644 reactos/include/win32k/text.h create mode 100644 reactos/include/win32k/win32k.h create mode 100644 reactos/include/win32k/wingl.h delete mode 100644 reactos/lib/gdi32/include/gdi32p.h delete mode 100644 reactos/subsys/win32k/include/bitmaps.h delete mode 100644 reactos/subsys/win32k/include/coord.h delete mode 100644 reactos/subsys/win32k/include/region.h delete mode 100644 reactos/w32api/include/ntgdi.h diff --git a/reactos/include/win32k/bitmaps.h b/reactos/include/win32k/bitmaps.h new file mode 100644 index 00000000000..a0d9e89cb65 --- /dev/null +++ b/reactos/include/win32k/bitmaps.h @@ -0,0 +1,343 @@ +#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 + diff --git a/reactos/subsys/win32k/include/brush.h b/reactos/include/win32k/brush.h similarity index 78% rename from reactos/subsys/win32k/include/brush.h rename to reactos/include/win32k/brush.h index 65c40cadc90..116f410a1a2 100644 --- a/reactos/subsys/win32k/include/brush.h +++ b/reactos/include/win32k/brush.h @@ -1,77 +1,112 @@ -#ifndef __WIN32K_BRUSH_H -#define __WIN32K_BRUSH_H - -#include "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); - -#endif +#ifndef __WIN32K_BRUSH_H +#define __WIN32K_BRUSH_H + +#include + +/* 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 diff --git a/reactos/include/win32k/caret.h b/reactos/include/win32k/caret.h new file mode 100644 index 00000000000..d0613ee0506 --- /dev/null +++ b/reactos/include/win32k/caret.h @@ -0,0 +1,23 @@ +/* + * 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 */ diff --git a/reactos/include/win32k/cliprgn.h b/reactos/include/win32k/cliprgn.h new file mode 100644 index 00000000000..6a0107e1ddf --- /dev/null +++ b/reactos/include/win32k/cliprgn.h @@ -0,0 +1,81 @@ +#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 diff --git a/reactos/include/win32k/color.h b/reactos/include/win32k/color.h new file mode 100644 index 00000000000..c78610ab4fb --- /dev/null +++ b/reactos/include/win32k/color.h @@ -0,0 +1,116 @@ +#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 diff --git a/reactos/include/win32k/coord.h b/reactos/include/win32k/coord.h new file mode 100644 index 00000000000..f19d087b35f --- /dev/null +++ b/reactos/include/win32k/coord.h @@ -0,0 +1,151 @@ +#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 diff --git a/reactos/include/win32k/cursoricon.h b/reactos/include/win32k/cursoricon.h new file mode 100644 index 00000000000..eb05867be38 --- /dev/null +++ b/reactos/include/win32k/cursoricon.h @@ -0,0 +1,95 @@ + +#ifndef __WIN32K_CURSORICON_H +#define __WIN32K_CURSORICON_H + +#include + +/* 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 + +#endif diff --git a/reactos/subsys/win32k/include/dc.h b/reactos/include/win32k/dc.h similarity index 58% rename from reactos/subsys/win32k/include/dc.h rename to reactos/include/win32k/dc.h index b131da69079..efb71abf501 100644 --- a/reactos/subsys/win32k/include/dc.h +++ b/reactos/include/win32k/dc.h @@ -1,185 +1,238 @@ - -#ifndef __WIN32K_DC_H -#define __WIN32K_DC_H - -#include "driver.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; - -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; - PFILE_OBJECT VideoFileObject; - 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 */ - -#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 + +#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 diff --git a/reactos/subsys/win32k/include/driver.h b/reactos/include/win32k/driver.h similarity index 50% rename from reactos/subsys/win32k/include/driver.h rename to reactos/include/win32k/driver.h index d6febdd2ebf..53c26a718d5 100644 --- a/reactos/subsys/win32k/include/driver.h +++ b/reactos/include/win32k/driver.h @@ -1,188 +1,192 @@ - -#ifndef __WIN32K_DRIVER_H -#define __WIN32K_DRIVER_H - -#include - -typedef BOOL (NTAPI *PGD_ENABLEDRIVER)(ULONG, ULONG, PDRVENABLEDATA); -typedef DHPDEV (NTAPI *PGD_ENABLEPDEV)(DEVMODEW *, - LPWSTR, - ULONG, - HSURF *, - ULONG, - ULONG *, - ULONG, - DEVINFO *, - LPWSTR, - LPWSTR, - HANDLE); -typedef VOID (NTAPI *PGD_COMPLETEPDEV)(DHPDEV, HDEV); -typedef VOID (NTAPI *PGD_DISABLEPDEV)(DHPDEV); -typedef HSURF (NTAPI *PGD_ENABLESURFACE)(DHPDEV); -typedef VOID (NTAPI *PGD_DISABLESURFACE)(DHPDEV); -typedef BOOL (NTAPI *PGD_ASSERTMODE)(DHPDEV, BOOL); -typedef BOOL (NTAPI *PGD_OFFSET)(SURFOBJ*, LONG, LONG, FLONG); -typedef BOOL (NTAPI *PGD_RESETPDEV)(DHPDEV, DHPDEV); -typedef VOID (NTAPI *PGD_DISABLEDRIVER)(VOID); -typedef HBITMAP (NTAPI *PGD_CREATEDEVICEBITMAP)(DHPDEV, SIZEL, ULONG); -typedef VOID (NTAPI *PGD_DELETEDEVICEBITMAP)(DHSURF); -typedef BOOL (NTAPI *PGD_ALPHABLEND)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, RECTL*, RECTL*, BLENDOBJ*); -typedef BOOL (NTAPI *PGD_REALIZEBRUSH)(BRUSHOBJ*, SURFOBJ*, SURFOBJ*, SURFOBJ*, - XLATEOBJ*, ULONG); -typedef ULONG (NTAPI *PGD_DITHERCOLOR)(DHPDEV, ULONG, ULONG, PULONG); -typedef BOOL (NTAPI *PGD_STROKEPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, XFORMOBJ*, - BRUSHOBJ*, POINTL*, PLINEATTRS, MIX); -typedef BOOL (NTAPI *PGD_FILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, BRUSHOBJ*, - POINTL*, MIX, ULONG); -typedef BOOL (NTAPI *PGD_STROKEANDFILLPATH)(SURFOBJ*, PATHOBJ*, CLIPOBJ*, - XFORMOBJ*, BRUSHOBJ*, PLINEATTRS, - BRUSHOBJ*, POINTL*, MIX, ULONG); -typedef BOOL (NTAPI *PGD_PAINT)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, POINTL*, MIX); -typedef BOOL (NTAPI *PGD_BITBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, - XLATEOBJ*, RECTL*, POINTL*, POINTL*, BRUSHOBJ*, - POINTL*, ROP4); -typedef BOOL (NTAPI *PGD_TRANSPARENTBLT)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, - RECTL*, RECTL*, ULONG, ULONG); -typedef BOOL (NTAPI *PGD_COPYBITS)(SURFOBJ*, SURFOBJ*, CLIPOBJ*, XLATEOBJ*, - RECTL*, POINTL*); -typedef BOOL (NTAPI *PGD_STRETCHBLT)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, - XLATEOBJ*, COLORADJUSTMENT*, POINTL*, - RECTL*, RECTL*, POINTL*, ULONG); -typedef BOOL (NTAPI *PGD_STRETCHBLTROP)(SURFOBJ*, SURFOBJ*, SURFOBJ*, CLIPOBJ*, - XLATEOBJ*, COLORADJUSTMENT*, POINTL*, - RECTL*, RECTL*, POINTL*, ULONG, - BRUSHOBJ*, DWORD); -typedef BOOL (NTAPI *PGD_SETPALETTE)(DHPDEV, PALOBJ*, ULONG, ULONG, ULONG); -typedef BOOL (NTAPI *PGD_TEXTOUT)(SURFOBJ*, STROBJ*, FONTOBJ*, CLIPOBJ*, RECTL*, - RECTL*, BRUSHOBJ*, BRUSHOBJ*, POINTL*, MIX); -typedef ULONG (NTAPI *PGD_ESCAPE)(SURFOBJ*, ULONG, ULONG, PVOID *, ULONG, PVOID *); -typedef ULONG (NTAPI *PGD_DRAWESCAPE)(SURFOBJ*, ULONG, CLIPOBJ*, RECTL*, ULONG, - PVOID *); -typedef PIFIMETRICS (NTAPI *PGD_QUERYFONT)(DHPDEV, ULONG, ULONG, PULONG); -typedef PVOID (NTAPI *PGD_QUERYFONTTREE)(DHPDEV, ULONG, ULONG, ULONG, PULONG); -typedef LONG (NTAPI *PGD_QUERYFONTDATA)(DHPDEV, FONTOBJ*, ULONG, HGLYPH, GLYPHDATA*, - PVOID, ULONG); -typedef ULONG (NTAPI *PGD_SETPOINTERSHAPE)(SURFOBJ*, SURFOBJ*, SURFOBJ*, XLATEOBJ*, - LONG, LONG, LONG, LONG, RECTL*, ULONG); -typedef VOID (NTAPI *PGD_MOVEPOINTER)(SURFOBJ*, LONG, LONG, RECTL*); -typedef BOOL (NTAPI *PGD_LINETO)(SURFOBJ*, CLIPOBJ*, BRUSHOBJ*, LONG, LONG, LONG, - LONG, RECTL*, MIX); -typedef BOOL (NTAPI *PGD_SENDPAGE)(SURFOBJ*); -typedef BOOL (NTAPI *PGD_STARTPAGE)(SURFOBJ*); -typedef BOOL (NTAPI *PGD_ENDDOC)(SURFOBJ*, ULONG); -typedef BOOL (NTAPI *PGD_STARTDOC)(SURFOBJ*, PWSTR, DWORD); -typedef ULONG (NTAPI *PGD_GETGLYPHMODE)(DHPDEV, FONTOBJ*); -typedef VOID (NTAPI *PGD_SYNCHRONIZE)(DHPDEV, RECTL*); -typedef ULONG (NTAPI *PGD_SAVESCREENBITS)(SURFOBJ*, ULONG, ULONG, RECTL*); -typedef ULONG (NTAPI *PGD_GETMODES)(HANDLE, ULONG, PDEVMODEW); -typedef VOID (NTAPI *PGD_FREE)(PVOID, ULONG); -typedef VOID (NTAPI *PGD_DESTROYFONT)(FONTOBJ*); -typedef LONG (NTAPI *PGD_QUERYFONTCAPS)(ULONG, PULONG); -typedef ULONG (NTAPI *PGD_LOADFONTFILE)(ULONG, PVOID, ULONG, ULONG); -typedef BOOL (NTAPI *PGD_UNLOADFONTFILE)(ULONG); -typedef ULONG (NTAPI *PGD_FONTMANAGEMENT)(SURFOBJ*, FONTOBJ*, ULONG, ULONG, PVOID, - ULONG, PVOID); -typedef LONG (NTAPI *PGD_QUERYTRUETYPETABLE)(ULONG, ULONG, ULONG, PTRDIFF, ULONG, - PBYTE); -typedef LONG (NTAPI *PGD_QUERYTRUETYPEOUTLINE)(DHPDEV, FONTOBJ*, HGLYPH, BOOL, - GLYPHDATA*, ULONG, TTPOLYGONHEADER*); -typedef PVOID (NTAPI *PGD_GETTRUETYPEFILE)(ULONG, PULONG); -typedef LONG (NTAPI *PGD_QUERYFONTFILE)(ULONG, ULONG, ULONG, PULONG); -typedef BOOL (NTAPI *PGD_QUERYADVANCEWIDTHS)(DHPDEV, FONTOBJ*, ULONG, HGLYPH *, - PVOID *, ULONG); -typedef BOOL (NTAPI *PGD_SETPIXELFORMAT)(SURFOBJ*, LONG, ULONG); -typedef LONG (NTAPI *PGD_DESCRIBEPIXELFORMAT)(DHPDEV, LONG, ULONG, - PPIXELFORMATDESCRIPTOR); -typedef BOOL (NTAPI *PGD_SWAPBUFFERS)(SURFOBJ*, PWNDOBJ); -typedef BOOL (NTAPI *PGD_STARTBANDING)(SURFOBJ*, POINTL*); -typedef BOOL (NTAPI *PGD_NEXTBAND)(SURFOBJ*, POINTL*); - -typedef BOOL (NTAPI *PGD_GETDIRECTDRAWINFO)(DHPDEV, PDD_HALINFO, PDWORD, VIDEOMEMORY*, PDWORD, PDWORD); -typedef BOOL (NTAPI *PGD_ENABLEDIRECTDRAW)(DHPDEV, PDD_CALLBACKS, PDD_SURFACECALLBACKS, PDD_PALETTECALLBACKS); -typedef VOID (NTAPI *PGD_DISABLEDIRECTDRAW)(DHPDEV); - -typedef LONG (NTAPI *PGD_QUERYSPOOLTYPE)(DHPDEV, LPWSTR); - -typedef BOOL (NTAPI *PGD_GRADIENTFILL)(SURFOBJ*, CLIPOBJ*, XLATEOBJ*, TRIVERTEX*, ULONG, PVOID, ULONG, RECTL*, POINTL*, ULONG); - -typedef VOID (NTAPI *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; - -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 - + +#ifndef __WIN32K_DRIVER_H +#define __WIN32K_DRIVER_H + +#include + +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 + diff --git a/reactos/include/win32k/fillshap.h b/reactos/include/win32k/fillshap.h new file mode 100644 index 00000000000..8a5506b78a8 --- /dev/null +++ b/reactos/include/win32k/fillshap.h @@ -0,0 +1,68 @@ +#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 + diff --git a/reactos/subsys/win32k/include/gdifloat.h b/reactos/include/win32k/float.h similarity index 87% rename from reactos/subsys/win32k/include/gdifloat.h rename to reactos/include/win32k/float.h index abc50f8a9b0..84f9968e4df 100644 --- a/reactos/subsys/win32k/include/gdifloat.h +++ b/reactos/include/win32k/float.h @@ -1,103 +1,103 @@ -#ifndef __WIN32K_FLOAT_H -#define __WIN32K_FLOAT_H - -#include "dc.h" -#include "math.h" -#include -#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 +#define __WIN32K_FLOAT_H + +#include +#include +#include +#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 diff --git a/reactos/include/win32k/font.h b/reactos/include/win32k/font.h new file mode 100644 index 00000000000..8382a14288d --- /dev/null +++ b/reactos/include/win32k/font.h @@ -0,0 +1,25 @@ +/* $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 */ diff --git a/reactos/subsys/win32k/include/gdiobj.h b/reactos/include/win32k/gdiobj.h similarity index 51% rename from reactos/subsys/win32k/include/gdiobj.h rename to reactos/include/win32k/gdiobj.h index 47722065400..aa8019ee06e 100644 --- a/reactos/subsys/win32k/include/gdiobj.h +++ b/reactos/include/win32k/gdiobj.h @@ -1,68 +1,125 @@ -/* - * GDI object common header definition - * - */ - -#ifndef __WIN32K_GDIOBJ_H -#define __WIN32K_GDIOBJ_H - -/* Public GDI Object/Handle definitions */ -#include - -typedef PVOID PGDIOBJ; - -typedef BOOL (INTERNAL_CALL *GDICLEANUPPROC)(PVOID ObjectBody); - -/*! - * GDI object header. This is a part of any GDI object -*/ -typedef struct _GDIOBJHDR -{ - PETHREAD LockingThread; /* only assigned if a thread is holding the lock! */ - ULONG Locks; -#ifdef GDI_DEBUG - const char* createdfile; - int createdline; - const char* lockfile; - int lockline; -#endif -} GDIOBJHDR, *PGDIOBJHDR; - -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); - -#define GDIOBJFLAG_DEFAULT (0x0) -#define GDIOBJFLAG_IGNOREPID (0x1) -#define GDIOBJFLAG_IGNORELOCK (0x2) - -#endif +/* + * 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 diff --git a/reactos/include/win32k/icm.h b/reactos/include/win32k/icm.h new file mode 100644 index 00000000000..9502d254be6 --- /dev/null +++ b/reactos/include/win32k/icm.h @@ -0,0 +1,81 @@ + +#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 + diff --git a/reactos/include/win32k/kapi.h b/reactos/include/win32k/kapi.h new file mode 100644 index 00000000000..fa6c7aba6e4 --- /dev/null +++ b/reactos/include/win32k/kapi.h @@ -0,0 +1,33 @@ +#ifndef _WIN32K_KAPI_H +#define _WIN32K_KAPI_H + +#ifndef INTERNAL_CALL +#define INTERNAL_CALL STDCALL +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif /* ndef _WIN32K_KAPI_H */ diff --git a/reactos/include/win32k/line.h b/reactos/include/win32k/line.h new file mode 100644 index 00000000000..c3767f11f0d --- /dev/null +++ b/reactos/include/win32k/line.h @@ -0,0 +1,101 @@ +#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 diff --git a/reactos/include/win32k/math.h b/reactos/include/win32k/math.h new file mode 100644 index 00000000000..28d65912b22 --- /dev/null +++ b/reactos/include/win32k/math.h @@ -0,0 +1,168 @@ +/* + * math.h + * + * Mathematical functions. + * + * This file is part of the Mingw32 package. + * + * Contributors: + * Created by Colin Peters + * + * 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 + +#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_ */ + diff --git a/reactos/include/win32k/menu.h b/reactos/include/win32k/menu.h new file mode 100644 index 00000000000..ff204c76322 --- /dev/null +++ b/reactos/include/win32k/menu.h @@ -0,0 +1,250 @@ +/* $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 */ + diff --git a/reactos/include/win32k/metafile.h b/reactos/include/win32k/metafile.h new file mode 100644 index 00000000000..b589bb40e51 --- /dev/null +++ b/reactos/include/win32k/metafile.h @@ -0,0 +1,180 @@ +#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 + diff --git a/reactos/subsys/win32k/include/misc.h b/reactos/include/win32k/misc.h similarity index 89% rename from reactos/subsys/win32k/include/misc.h rename to reactos/include/win32k/misc.h index 85491f464a6..e03faa62a5c 100644 --- a/reactos/subsys/win32k/include/misc.h +++ b/reactos/include/win32k/misc.h @@ -1,13 +1,17 @@ -#ifndef __WIN32K_MISC_H -#define __WIN32K_MISC_H - -/* W32PROCESS flags */ -#define W32PF_NOWINDOWGHOSTING (0x0001) -#define W32PF_MANUALGUICHECK (0x0002) -#define W32PF_CREATEDWINORDC (0x0004) - -VOID -FASTCALL -DestroyThreadWindows(struct _ETHREAD *Thread); - -#endif /* __WIN32K_MISC_H */ +#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 */ diff --git a/reactos/include/win32k/ntddraw.h b/reactos/include/win32k/ntddraw.h new file mode 100644 index 00000000000..e476c105d97 --- /dev/null +++ b/reactos/include/win32k/ntddraw.h @@ -0,0 +1,325 @@ + +#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 diff --git a/reactos/include/win32k/ntgdibad.h b/reactos/include/win32k/ntgdibad.h deleted file mode 100644 index bfb29415e69..00000000000 --- a/reactos/include/win32k/ntgdibad.h +++ /dev/null @@ -1,1256 +0,0 @@ -#ifndef WIN32K_NTGDI_BAD_INCLUDED -#define WIN32K_NTGDI_BAD_INCLUDED - -/* - * - * If you want to help, please read this: - * - * This file contains NtGdi APIs which are specific to ROS, including - * a short comment describing the solution on how to use the actual NtGdi - * call documented in ntgdi.h. Here are the main cases and information on - * how to remove them from this header. - * - * - Simple rename. This deals with an API simply having a different name, - * with absolutely no other changes needed. - * - Rename and new parameters. This deals with a case similar to the one - * above, except that new parameters have now - * been added. This is also usually extremly - * simple to fix. Either pass the right params - * or pass null/0 values that you ignore. - * - Rename and new structure. This is similar to the above, except that the - * information is now passed in a differently - * named and organized structure. Ask Alex for - * the structure you need and he will add it to - * ntgdityp.h - * - Rename and different semantics. Similar to the previous examples, except - * that parameters have usually been removed - * or need to be converted in user-mode in - * one form of another. - * - Does not exist: user-mode. This means that the API can be fully done in - * user mode. In 80% of cases, our API was already - * returning NOT_IMPLEMENTED in kernel-mode, so - * the work to be done is minimal. A good example - * are the ICM and Metafile APIs, which can simply - * be removed and added into gdi32. - * - Does not exist: GDI Shared Objects. This is by far the hardest case. This - * class cannot be fixed until ReactOS - * has a working Shared GDI Object table - * and a DC_ATTR structure in which the - * attributes, selection and deletion of - * objects can be quickly done from user- - * mode without requiring a kernel mode - * call. - */ -/* Should be using ENUMFONTDATAW */ -typedef struct tagFONTFAMILYINFO -{ - ENUMLOGFONTEXW EnumLogFontEx; - NEWTEXTMETRICEXW NewTextMetricEx; - DWORD FontType; -} FONTFAMILYINFO, *PFONTFAMILYINFO; - -/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */ -HFONT -NTAPI -NtGdiCreateFontIndirect(CONST LPLOGFONTW lf); - -/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */ -HFONT -NTAPI -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 -); - -/* Should be using NtGdiEnumFontChunk */ -INT -NTAPI -NtGdiGetFontFamilyInfo( - HDC Dc, - LPLOGFONTW LogFont, - PFONTFAMILYINFO Info, - DWORD Size -); - -/* Should be using NtGdiEnumFontChunk */ -BOOL -NTAPI -NtGdiTranslateCharsetInfo( - PDWORD Src, - LPCHARSETINFO CSI, - DWORD Flags -); - -/* The gdi32 call does all the work in user-mode, save for NtGdiMakeFontDir */ -BOOL -NTAPI -NtGdiCreateScalableFontResource( - DWORD Hidden, - LPCWSTR FontRes, - LPCWSTR FontFile, - LPCWSTR CurrentPath -); - -/* The gdi32 call Should Use NtGdiGetRandomRgn and nothing else */ -HRGN -NTAPI -NtGdiGetClipRgn(HDC hDC); - -/* The gdi32 call Should Use NtGdiGetTextExtent */ -BOOL -NTAPI -NtGdiGetTextExtentPoint32( - HDC hDC, - LPCWSTR String, - int Count, - LPSIZE -); - -BOOL -STDCALL -NtGdiGetCharWidth32( - HDC hDC, - UINT FirstChar, - UINT LastChar, - LPINT Buffer -); - -/* Use NtGdiOpenDCW */ -HDC -NTAPI -NtGdiCreateDC( - PUNICODE_STRING Driver, - PUNICODE_STRING Device, - PUNICODE_STRING Output, - CONST PDEVMODEW InitData -); - -HDC -NTAPI -NtGdiCreateIC( - PUNICODE_STRING Driver, - PUNICODE_STRING Device, - PUNICODE_STRING Output, - CONST PDEVMODEW DevMode -); - -/* Use NtGdiAddFontResourceW */ -int -STDCALL -NtGdiAddFontResource(PUNICODE_STRING Filename, - DWORD fl); - -/* Use NtGdiDoPalette with GdiPalAnimate */ -BOOL -STDCALL -NtGdiAnimatePalette ( - HPALETTE hpal, - UINT StartIndex, - UINT Entries, - CONST PPALETTEENTRY ppe - ); - -/* Use NtGdiArcInternal with GdiTypeArc */ -BOOL -STDCALL -NtGdiArc(HDC hDC, - int LeftRect, - int TopRect, - int RightRect, - int BottomRect, - int XStartArc, - int YStartArc, - int XEndArc, - int YEndArc); - -/* Use NtGdiArcInternal with GdiTypeArcTo */ -BOOL -STDCALL -NtGdiArcTo(HDC hDC, - int LeftRect, - int TopRect, - int RightRect, - int BottomRect, - int XRadial1, - int YRadial1, - int XRadial2, - int YRadial2); - -/* Does not exist */ -BOOL -STDCALL -NtGdiCheckColorsInGamut(HDC hDC, - LPVOID RGBTriples, - LPVOID Buffer, - UINT Count); - -/* Use NtGdiArcInternal with GdiTypeChord */ -BOOL -STDCALL -NtGdiChord(HDC hDC, - int LeftRect, - int TopRect, - int RightRect, - int BottomRect, - int XRadial1, - int YRadial1, - int XRadial2, - int YRadial2); - -/* Metafiles are user mode */ -HENHMETAFILE -STDCALL -NtGdiCloseEnhMetaFile ( - HDC hDC - ); - -/* Metafiles are user mode */ -HMETAFILE -STDCALL -NtGdiCloseMetaFile ( - HDC hDC - ); - -/* Does not exist */ -BOOL -STDCALL -NtGdiColorMatchToTarget(HDC hDC, - HDC hDCTarget, - DWORD Action); - -/* Metafiles are user mode */ -HENHMETAFILE -STDCALL -NtGdiCopyEnhMetaFile ( - HENHMETAFILE Src, - LPCWSTR File - ); - -/* Metafiles are user mode */ -HMETAFILE -STDCALL -NtGdiCopyMetaFile ( - HMETAFILE Src, - LPCWSTR File - ); - -/* Use NtGdiCreateBitmap and expand the pbm-> */ -HBITMAP -STDCALL -NtGdiCreateBitmapIndirect ( - CONST BITMAP * BM - ); - -/* Use NtGdiCreateDIBitmapInternal */ -HBITMAP -STDCALL -NtGdiCreateDIBitmap ( - HDC hDC, - CONST BITMAPINFOHEADER * bmih, - DWORD Init, - CONST VOID * bInit, - CONST BITMAPINFO * bmi, - UINT Usage - ); - -/* Use NtGdiCreateCompatibleBitmap */ -HBITMAP -STDCALL -NtGdiCreateDiscardableBitmap ( - HDC hDC, - INT Width, - INT Height - ); - -/* Use NtGdiCreateEllipticRgn and expand the lprect-> */ -HRGN -STDCALL -NtGdiCreateEllipticRgnIndirect(CONST PRECT rc); - -/* Metafiles are user mode */ -HDC -STDCALL -NtGdiCreateEnhMetaFile ( - HDC hDCRef, - LPCWSTR File, - CONST LPRECT Rect, - LPCWSTR Description - ); - -/* Use NtGdiCreateHatchBrushInternal with FALSE at the end. */ -HBRUSH STDCALL -NtGdiCreateHatchBrush( - INT Style, - COLORREF Color); - -/* Metafiles are user mode */ -HDC -STDCALL -NtGdiCreateMetaFile ( - LPCWSTR File - ); - -/* Use NtGdiCreatePaletteInternal with palNumEntries at the end. */ -HPALETTE -STDCALL -NtGdiCreatePalette ( - CONST PLOGPALETTE lgpl - ); - -/* Use NtGdiCreatePatternBrushInternal with false, false at the end. */ -HBRUSH STDCALL -NtGdiCreatePatternBrush( - HBITMAP hBitmap); - -/* Use NtGdiCreatePen with -> as parameters. */ -HPEN STDCALL -NtGdiCreatePenIndirect( - CONST PLOGPEN LogBrush); - -/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */ -HRGN -STDCALL -NtGdiCreatePolygonRgn(CONST PPOINT pt, - INT Count, - INT PolyFillMode); - -/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */ -HRGN -STDCALL -NtGdiCreatePolyPolygonRgn(CONST PPOINT pt, - CONST PINT PolyCounts, - INT Count, - INT PolyFillMode); - -/* Use NtGdiCreateRectRgn with expanded paraemters. */ -HRGN -STDCALL -NtGdiCreateRectRgnIndirect(CONST PRECT rc); - -/* Use NtGdiTransformPoints with GdiDpToLp. */ -BOOL -STDCALL -NtGdiDPtoLP ( - HDC hDC, - LPPOINT Points, - int Count - ); - -/* Use NtGdiDeleteObjectApp. */ -BOOL STDCALL NtGdiDeleteDC(HDC hDC); - -/* Meta are user-mode. */ -BOOL -STDCALL -NtGdiDeleteEnhMetaFile ( - HENHMETAFILE emf - ); - -/* Meta are user-mode. */ -BOOL -STDCALL -NtGdiDeleteMetaFile ( - HMETAFILE mf - ); - -/* Should be done in user-mode. */ -BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject); - -/* Meta are user-mode. */ -BOOL -STDCALL -NtGdiEnumEnhMetaFile ( - HDC hDC, - HENHMETAFILE emf, - ENHMFENUMPROC EnhMetaFunc, - LPVOID Data, - CONST LPRECT Rect - ); - -/* Should be done in user-mode. */ -int -STDCALL -NtGdiEnumFonts(HDC hDC, - LPCWSTR FaceName, - FONTENUMPROCW FontFunc, - LPARAM lParam); - -/* Should be done in user-mode. */ -INT -STDCALL -NtGdiEnumICMProfiles(HDC hDC, - LPWSTR lpstrBuffer, - UINT cch ); - -/* Meta are user-mode. */ -BOOL -STDCALL -NtGdiEnumMetaFile ( - HDC hDC, - HMETAFILE mf, - MFENUMPROC MetaFunc, - LPARAM lParam - ); - -/* Should be done in user-mode. */ -INT -STDCALL -NtGdiEscape(HDC hDC, - INT Escape, - INT InSize, - LPCSTR InData, - LPVOID OutData); - -/* Use NtGdiExtTextOutW with 0, 0 at the end. */ -BOOL -STDCALL -NtGdiExtTextOut(HDC hdc, - int X, - int Y, - UINT fuOptions, - CONST RECT *lprc, - LPCWSTR lpString, - UINT cbCount, - CONST INT *lpDx); - -/* Use NtGdiExtFloodFill with FLOODFILLBORDER. */ -BOOL -STDCALL -NtGdiFloodFill ( - HDC hDC, - INT XStart, - INT YStart, - COLORREF Fill - ); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiGdiComment ( - HDC hDC, - UINT Size, - CONST LPBYTE Data - ); - -/* Should be done in user-mode. */ -BOOL STDCALL NtGdiGdiFlush (VOID); - -/* Should be done in user-mode. */ -DWORD STDCALL NtGdiGdiGetBatchLimit (VOID); - -/* Should be done in user-mode. */ -DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit); - -/* Use NtGdiGetDCDword with GdiGetArcDirection. */ -INT -STDCALL -NtGdiGetArcDirection ( HDC hDC ); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiGetAspectRatioFilterEx(HDC hDC, - LPSIZE AspectRatio); - -/* Should be done in user-mode using shared GDI Objects. */ -BOOL -STDCALL -NtGdiGetBitmapDimensionEx ( - HBITMAP hBitmap, - LPSIZE Dimension - ); - -/* Should be done in user-mode using shared GDI Objects. */ -COLORREF STDCALL NtGdiGetBkColor(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetBkMode(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg); - -/* Use NtGdiGetCharABCWidthsW */ -BOOL -STDCALL -NtGdiGetCharABCWidths(HDC hDC, - UINT FirstChar, - UINT LastChar, - LPABC abc); - -/* Should be done in user mode. */ -BOOL -STDCALL -NtGdiGetCharABCWidthsFloat(HDC hDC, - UINT FirstChar, - UINT LastChar, - LPABCFLOAT abcF); - -/* Should be done in user mode. */ -DWORD -STDCALL -NtGdiGetCharacterPlacement(HDC hDC, - LPCWSTR String, - int Count, - int MaxExtent, - LPGCP_RESULTSW Results, - DWORD Flags); - -/* Should be done in user mode. */ -BOOL -STDCALL -NtGdiGetCharWidthFloat(HDC hDC, - UINT FirstChar, - UINT LastChar, - PFLOAT Buffer); - -/* Use NtGdiGetAppClipBox. */ -int -STDCALL -NtGdiGetClipBox ( - HDC hDC, - LPRECT rc - ); - -/* Use NtGdiGetColorSpaceforBitmap. */ -HCOLORSPACE -STDCALL -NtGdiGetColorSpace(HDC hDC); - -/* Should be done in user-mode and/or NtGdiGetDCObject. */ -HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType); - -/* Should be done in user mode. */ -BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition); - -/* Use NtGdiGetDCPoint with GdiGetDCOrg. */ -BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point); - -/* Use NtGdiDoPalette with GdiPalGetColorTable. */ -UINT -STDCALL -NtGdiGetDIBColorTable ( - HDC hDC, - UINT StartIndex, - UINT Entries, - RGBQUAD * Colors - ); - -/* Use NtGdiGetDIBitsInternal. */ -INT -STDCALL -NtGdiGetDIBits ( - HDC hDC, - HBITMAP hBitmap, - UINT StartScan, - UINT ScanLines, - LPVOID Bits, - LPBITMAPINFO bi, - UINT Usage - ); - - -/* Meta are user-mode. */ -HENHMETAFILE -STDCALL -NtGdiGetEnhMetaFile ( - LPCWSTR MetaFile - ); - -/* Meta are user-mode. */ -UINT -STDCALL -NtGdiGetEnhMetaFileBits ( - HENHMETAFILE hemf, - UINT BufSize, - LPBYTE Buffer - ); - -/* Meta are user-mode. */ -UINT -STDCALL -NtGdiGetEnhMetaFileDescription ( - HENHMETAFILE hemf, - UINT BufSize, - LPWSTR Description - ); - -/* Meta are user-mode. */ -UINT -STDCALL -NtGdiGetEnhMetaFileHeader ( - HENHMETAFILE hemf, - UINT BufSize, - LPENHMETAHEADER emh - ); - -/* Meta are user-mode. */ -UINT -STDCALL -NtGdiGetEnhMetaFilePaletteEntries ( - HENHMETAFILE hemf, - UINT Entries, - LPPALETTEENTRY pe - ); - -/* Meta are user-mode. */ -UINT -STDCALL -NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF, - DWORD BufSize, - CONST PPIXELFORMATDESCRIPTOR pfd); - -/* Should be done in user-mode. */ -DWORD -STDCALL -NtGdiGetFontLanguageInfo(HDC hDC); - -/* Should be done in user-mode. */ -int -STDCALL -NtGdiGetGraphicsMode ( HDC hDC ); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiGetICMProfile(HDC hDC, - LPDWORD NameSize, - LPWSTR Filename); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace, - LPLOGCOLORSPACEW Buffer, - DWORD Size); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetMapMode(HDC hDC); - -/* Meta files are user-mode. */ -HMETAFILE -STDCALL -NtGdiGetMetaFile ( - LPCWSTR MetaFile - ); - -/* Meta files are user-mode. */ -UINT -STDCALL -NtGdiGetMetaFileBitsEx ( - HMETAFILE hmf, - UINT Size, - LPVOID Data - ); - -/* Meta files are user-mode. */ -int -STDCALL -NtGdiGetMetaRgn ( - HDC hDC, - HRGN hrgn - ); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj, - INT BufSize, - LPVOID Object); - -/* Should be done in user-mode using shared GDI Objects. */ -DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj); - -/* Use NtGdiGetOutlineTextMetricsInternalW. */ -UINT -STDCALL -NtGdiGetOutlineTextMetrics(HDC hDC, - UINT Data, - LPOUTLINETEXTMETRICW otm); - -/* Use NtGdiDoPalette with GdiPalGetEntries. */ -UINT -STDCALL -NtGdiGetPaletteEntries ( - HPALETTE hpal, - UINT StartIndex, - UINT Entries, - LPPALETTEENTRY pe - ); - -/* Should be done in user-mode using shared GDI Objects. */ -INT -STDCALL -NtGdiGetPixelFormat(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetPolyFillMode(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetROP2(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetRelAbs(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -INT STDCALL NtGdiGetStretchBltMode(HDC hDC); - -/* Use NtGdiDoPalette with GdiPalSetSystemEntries. */ -UINT -STDCALL -NtGdiGetSystemPaletteEntries ( - HDC hDC, - UINT StartIndex, - UINT Entries, - LPPALETTEENTRY pe - ); - -/* Should be done in user-mode using shared GDI Objects. */ -UINT STDCALL NtGdiGetTextAlign(HDC hDC); - -/* Should be done in user-mode using shared GDI Objects. */ -UINT -STDCALL -NtGdiGetTextCharset(HDC hDC); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -COLORREF STDCALL NtGdiGetTextColor(HDC hDC); - -/* Rename to NtGdiGetTextExtentExW. Add 0 at the end. */ -BOOL -STDCALL -NtGdiGetTextExtentExPoint(HDC hDC, - LPCWSTR String, - int Count, - int MaxExtent, - LPINT Fit, - LPINT Dx, - LPSIZE Size); - -/* Rename to NtGdiGetTextExtent. Add 0 at the end. */ -BOOL -STDCALL -NtGdiGetTextExtentPoint(HDC hDC, - LPCWSTR String, - int Count, - LPSIZE Size); - -/* Rename to NtGdiGetTextFaceW, add FALSE at the end. */ -int -STDCALL -NtGdiGetTextFace(HDC hDC, - int Count, - LPWSTR FaceName); - -/* Use NtGdiGetTextMetricsW with 0 at the end */ -BOOL -STDCALL -NtGdiGetTextMetrics(HDC hDC, - LPTEXTMETRICW tm); - -/* Use NtGdiGetDCPoint with GdiGetViewPortExt */ -BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt); - -/* Needs to be done in user-mode. */ -BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg); - -/* Metafiles are user-mode. */ -UINT -STDCALL -NtGdiGetWinMetaFileBits ( - HENHMETAFILE hemf, - UINT BufSize, - LPBYTE Buffer, - INT MapMode, - HDC Ref - ); - -/* Needs to be done in user-mode. */ -BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt); - -/* Needs to be done in user-mode. */ -BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg); - -/* Use NtGdiGetTransform with GdiWorldSpaceToPageSpace */ -BOOL -STDCALL -NtGdiGetWorldTransform ( - HDC hDC, - LPXFORM Xform - ); - -/* Use NtGdiTransformPoints with GdiDpToLp */ -BOOL -STDCALL -NtGdiLPtoDP ( - HDC hDC, - LPPOINT Points, - int Count - ); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiMoveToEx(HDC hDC, - int X, - int Y, - LPPOINT Point); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiOffsetViewportOrgEx ( - HDC hDC, - int XOffset, - int YOffset, - LPPOINT Point - ); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiOffsetWindowOrgEx ( - HDC hDC, - int XOffset, - int YOffset, - LPPOINT Point - ); - -/* Use NtGdiFillRgn. Add 0 at the end. */ -BOOL -STDCALL -NtGdiPaintRgn(HDC hDC, - HRGN hRgn); - -/* Use NtGdiArcInternal with GdiTypePie. */ -BOOL -STDCALL -NtGdiPie(HDC hDC, - int LeftRect, - int TopRect, - int RightRect, - int BottomRect, - int XRadial1, - int YRadial1, - int XRadial2, - int YRadial2); - -/* Metafiles are user-mode. */ -BOOL -STDCALL -NtGdiPlayEnhMetaFile ( - HDC hDC, - HENHMETAFILE hemf, - CONST PRECT Rect - ); - -/* Metafiles are user-mode. */ -BOOL -STDCALL -NtGdiPlayEnhMetaFileRecord ( - HDC hDC, - LPHANDLETABLE Handletable, - CONST ENHMETARECORD * EnhMetaRecord, - UINT Handles - ); - -/* Metafiles are user-mode. */ -BOOL -STDCALL -NtGdiPlayMetaFile ( - HDC hDC, - HMETAFILE hmf - ); - -/* Metafiles are user-mode. */ -BOOL -STDCALL -NtGdiPlayMetaFileRecord ( - HDC hDC, - LPHANDLETABLE Handletable, - LPMETARECORD MetaRecord, - UINT Handles - ); - -/* Use NtGdiPolyPolyDraw with GdiPolyBezier. */ -BOOL -STDCALL -NtGdiPolyBezier(HDC hDC, - CONST LPPOINT pt, - DWORD Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyBezierTo. */ -BOOL -STDCALL -NtGdiPolyBezierTo(HDC hDC, - CONST LPPOINT pt, - DWORD Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */ -BOOL -STDCALL -NtGdiPolyline(HDC hDC, - CONST LPPOINT pt, - int Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyLineTo. */ -BOOL -STDCALL -NtGdiPolylineTo(HDC hDC, - CONST LPPOINT pt, - DWORD Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */ -BOOL -STDCALL -NtGdiPolyPolyline(HDC hDC, - CONST LPPOINT pt, - CONST LPDWORD PolyPoints, - DWORD Count); - -/* Use NtGdiPolyTextOutW with 0 at the end. */ -BOOL -STDCALL -NtGdiPolyTextOut(HDC hDC, - CONST LPPOLYTEXTW txt, - int Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */ -BOOL -STDCALL -NtGdiPolygon(HDC hDC, - CONST PPOINT Points, - int Count); - -/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */ -BOOL -STDCALL -NtGdiPolyPolygon(HDC hDC, - CONST LPPOINT Points, - CONST LPINT PolyCounts, - int Count); - -/* Call UserRealizePalette. */ -UINT -STDCALL -NtGdiRealizePalette ( - HDC hDC - ); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiRemoveFontResource(LPCWSTR FileName); - -/* Use NtGdiExtSelectClipRgn with RGN_COPY. */ -int -STDCALL -NtGdiSelectClipRgn ( - HDC hDC, - HRGN hrgn - ); - -/* Should be done in user-mode. */ -HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj); - -/* Use NtUserSelectPalette. */ -HPALETTE -STDCALL -NtGdiSelectPalette ( - HDC hDC, - HPALETTE hpal, - BOOL ForceBackground - ); - -/* Should be done in user-mode. */ -INT -STDCALL -NtGdiSetAbortProc(HDC hDC, - ABORTPROC AbortProc); - -/* Use NtGdiGetAndSetDCDword with GdiGetSetArcDirection. */ -int -STDCALL -NtGdiSetArcDirection(HDC hDC, - int ArcDirection); - -/* Use NtGdiSetBitmapDimension. */ -BOOL -STDCALL -NtGdiSetBitmapDimensionEx ( - HBITMAP hBitmap, - INT Width, - INT Height, - LPSIZE Size - ); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode); - -/* Use NtGdiSetBrushOrg. */ -BOOL STDCALL -NtGdiSetBrushOrgEx( - HDC hDC, - INT XOrg, - INT YOrg, - LPPOINT Point); - -/* Use NtGdiDoPalette with GdiPalSetColorTable, TRUE. */ -UINT -STDCALL -NtGdiSetDIBColorTable ( - HDC hDC, - UINT StartIndex, - UINT Entries, - CONST RGBQUAD * Colors - ); - -/* Use SetDIBitsToDevice in gdi32. */ -INT -STDCALL -NtGdiSetDIBits ( - HDC hDC, - HBITMAP hBitmap, - UINT StartScan, - UINT ScanLines, - CONST VOID * Bits, - CONST BITMAPINFO * bmi, - UINT ColorUse - ); - -/* Use NtGdiSetDIBitsToDeviceInternal. */ -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 - ); - -/* Metafiles are user-mode. */ -HENHMETAFILE -STDCALL -NtGdiSetEnhMetaFileBits ( - UINT BufSize, - CONST PBYTE Data - ); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -int -STDCALL -NtGdiSetGraphicsMode ( - HDC hDC, - int Mode - ); - -/* Use NtGdiSetIcmMode. */ -INT -STDCALL -NtGdiSetICMMode(HDC hDC, - INT EnableICM); - -/* Should be done in user-mode. */ -BOOL -STDCALL -NtGdiSetICMProfile(HDC hDC, - LPWSTR Filename); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -int -STDCALL -NtGdiSetMapMode ( - HDC hDC, - int MapMode - ); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -DWORD -STDCALL -NtGdiSetMapperFlags(HDC hDC, - DWORD Flag); - -/* Metafiles are user-mode. */ -HMETAFILE -STDCALL -NtGdiSetMetaFileBitsEx ( - UINT Size, - CONST PBYTE Data - ); - -/* Use NtGdiDoPalette with GdiPalSetEntries, TRUE. */ -UINT -STDCALL -NtGdiSetPaletteEntries ( - HPALETTE hpal, - UINT Start, - UINT Entries, - CONST LPPALETTEENTRY pe - ); - -/* Use NtGdiSetPixel(hdc, x, y, color) != CLR_INVALID; */ -BOOL -STDCALL -NtGdiSetPixelV ( - HDC hDC, - INT X, - INT Y, - COLORREF Color - ); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -UINT -STDCALL -NtGdiSetTextAlign(HDC hDC, - UINT Mode); - -/* Needs to be done in user-mode, using shared GDI Object Attributes. */ -COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiSetWindowExtEx ( - HDC hDC, - int XExtent, - int YExtent, - LPSIZE Size - ); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiSetViewportOrgEx ( - HDC hDC, - int X, - int Y, - LPPOINT Point - ); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiSetViewportExtEx ( - HDC hDC, - int XExtent, - int YExtent, - LPSIZE Size - ); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiSetWindowOrgEx ( - HDC hDC, - int X, - int Y, - LPPOINT Point - ); - -/* Use NtGdiModifyWorldTransform with MWT_MAX + 1; */ -BOOL -STDCALL -NtGdiSetWorldTransform ( - HDC hDC, - CONST LPXFORM Xform - ); - -/* Use NtGdiStretchDIBitsInternal. */ -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 - ); - -/* Use NtGdiExtTextOutW with 0, 0 at the end. */ -BOOL -STDCALL -NtGdiTextOut(HDC hDC, - int XStart, - int YStart, - LPCWSTR String, - int Count); - -/* Needs to be done in user-mode. */ -BOOL -STDCALL -NtGdiUpdateICMRegKey(DWORD Reserved, - LPWSTR CMID, - LPWSTR Filename, - UINT Command); - -/* These shouldn't even be called NtGdi */ -HDC STDCALL NtGdiGetDCState(HDC hDC); -WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags); -INT -STDCALL -NtGdiSelectVisRgn(HDC hdc, - HRGN hrgn); -VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave ); - -/* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */ -DWORD -NTAPI -NtUserCallTwoParam( - DWORD Param1, - DWORD Param2, - DWORD Routine); - -#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45 -#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46 -#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47 - -#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) - -#endif /* WIN32K_NTGDI_BAD_INCLUDED */ diff --git a/reactos/include/win32k/ntgdihdl.h b/reactos/include/win32k/ntgdihdl.h deleted file mode 100644 index 363050f7e12..00000000000 --- a/reactos/include/win32k/ntgdihdl.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K) - * FILE: include/win32k/ntgdihal.h - * PURPOSE: Win32 Shared GDI Handle/Object Types - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - */ - -/* INCLUDES ******************************************************************/ - -#ifndef _NTGDIHDL_ -#define _NTGDIHDL_ - -/* DEFINES *******************************************************************/ - -/* 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) - -/* Handle Masks and shifts */ -#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 - -/*! \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 -/*@}*/ - -/* Handle macros */ -#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)) - -/* TYPES *********************************************************************/ - -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 diff --git a/reactos/include/win32k/ntgdityp.h b/reactos/include/win32k/ntgdityp.h deleted file mode 100644 index 93ba5903ff0..00000000000 --- a/reactos/include/win32k/ntgdityp.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K) - * FILE: include/win32k/ntgdityp.h - * PURPOSE: Win32 Shared GDI Types for NtGdi* - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - */ - -/* INCLUDES ******************************************************************/ - -#ifndef _NTGDITYP_ -#define _NTGDITYP_ - -/* ENUMERATIONS **************************************************************/ - -typedef enum _ARCTYPE -{ - GdiTypeArc, - GdiTypeArcTo, - GdiTypeChord, - GdiTypePie, -} ARCTYPE, *PARCTYPE; - -typedef enum _PALFUNCTYPE -{ - GdiPalAnimate, - GdiPalSetEntries, - GdiPalGetEntries, - GdiPalGetSystemEntries, - GdiPalSetColorTable, - GdiPalGetColorTable, -} PALFUNCTYPE, *PPALFUNCTYPE; - -typedef enum _POLYFUNCTYPE -{ - GdiPolyPolygon = 1, - GdiPolyPolyLine, - GdiPolyBezier, - GdiPolyLineTo, - GdiPolyBezierTo, - GdiPolyPolyRgn, -} POLYFUNCTYPE, *PPOLYFUNCTYPE; - -typedef enum _GETDCDWORD -{ - GdiGetRelAbs = 1, - GdiGetArcDirection = 4, -} GETDCDWORD, *PGETDCDWORD; - -typedef enum _GETSETDCDWORD -{ - GdiGetSetArcDirection = 9, -} GETSETDCDWORD, *PGETSETDCDWORD; - -typedef enum _GETDCPOINT -{ - GdiGetViewPortExt = 1, - GdiGetDCOrg = 7, -} GETDCPOINT, *PGETDCPOINT; - -typedef enum _TRANSFORMTYPE -{ - GdiDpToLp, - GdiLpToDp, -} TRANSFORMTYPE, *PTRANSFORMTYPE; - -#define GdiWorldSpaceToPageSpace 0x203 - -/* FIXME: Unknown */ -typedef DWORD FULLSCREENCONTROL; -typedef DWORD LFTYPE; - -/* TYPES *********************************************************************/ - -typedef PVOID KERNEL_PVOID; -typedef DWORD UNIVERSAL_FONT_ID; -typedef UNIVERSAL_FONT_ID *PUNIVERSAL_FONT_ID; -typedef DWORD CHWIDTHINFO; -typedef CHWIDTHINFO *PCHWIDTHINFO; -typedef D3DNTHAL_CONTEXTCREATEDATA D3DNTHAL_CONTEXTCREATEI; - -/* FIXME: Unknown; easy to guess, usually based on public types and converted */ -typedef struct _WIDTHDATA WIDTHDATA, *PWIDTHDATA; -typedef struct _TMDIFF TMDIFF, *PTMDIFF; -typedef struct _TMW_INTERNAL TMW_INTERNAL, *PTMW_INTERNAL; -typedef struct _ENUMFONTDATAW ENUMFONTDATAW, *PENUMFONTDATAW; -typedef struct _DEVCAPS DEVCAPS, *PDEVCAPS; -typedef struct _REALIZATION_INFO REALIZATION_INFO, *PREALIZATION_INFO; - -#endif diff --git a/reactos/include/win32k/ntuser.h b/reactos/include/win32k/ntuser.h index 7c4f6cbf181..8f7534093c2 100644 --- a/reactos/include/win32k/ntuser.h +++ b/reactos/include/win32k/ntuser.h @@ -2,254 +2,63 @@ #define __WIN32K_NTUSER_H -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 +ULONG STDCALL NtUserGetSystemMetrics(ULONG Index); -DWORD NTAPI +DWORD STDCALL NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi); -LONG NTAPI +LONG STDCALL NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi); -INT NTAPI +INT STDCALL NtUserReleaseDC(HWND hWnd, HDC hDc); -BOOL NTAPI +BOOL STDCALL NtUserGetWindowRect(HWND hWnd, LPRECT Rect); -BOOL NTAPI +BOOL STDCALL NtUserGetClientRect(HWND hWnd, LPRECT Rect); -HANDLE NTAPI +HANDLE STDCALL NtUserGetProp(HWND hWnd, ATOM Atom); -BOOL NTAPI +BOOL STDCALL NtUserGetClientOrigin(HWND hWnd, LPPOINT Point); -HWND NTAPI +HWND STDCALL NtUserGetDesktopWindow(); NTSTATUS -NTAPI +STDCALL NtUserAcquireOrReleaseInputOwnership( BOOLEAN Release); DWORD -NTAPI +STDCALL NtUserActivateKeyboardLayout( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserAlterWindowStyle( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserAttachThreadInput( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); -HDC NTAPI +HDC STDCALL NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs); DWORD -NTAPI +STDCALL NtUserBitBltSysBmp( DWORD Unknown0, DWORD Unknown1, @@ -261,12 +70,12 @@ NtUserBitBltSysBmp( DWORD Unknown7); BOOL -NTAPI +STDCALL NtUserBlockInput( BOOL BlockIt); ULONG -NTAPI +STDCALL NtUserBuildHwndList( HDESK hDesktop, HWND hwndParent, @@ -276,7 +85,7 @@ NtUserBuildHwndList( HWND* pWnd, ULONG nBufSize); -NTSTATUS NTAPI +NTSTATUS STDCALL NtUserBuildNameList( HWINSTA hWinSta, ULONG dwSize, @@ -284,7 +93,7 @@ NtUserBuildNameList( PULONG pRequiredSize); NTSTATUS -NTAPI +STDCALL NtUserBuildPropList( HWND hWnd, LPVOID Buffer, @@ -297,7 +106,7 @@ enum { }; DWORD -NTAPI +STDCALL NtUserCallHwnd( DWORD Unknown0, DWORD Unknown1); @@ -308,7 +117,7 @@ NtUserCallHwnd( #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B #define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E BOOL -NTAPI +STDCALL NtUserCallHwndLock( HWND hWnd, DWORD Routine); @@ -316,33 +125,33 @@ NtUserCallHwndLock( #define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A #define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B HWND -NTAPI +STDCALL NtUserCallHwndOpt( HWND Param, DWORD Routine); DWORD -NTAPI +STDCALL NtUserCallHwndParam( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserCallHwndParamLock( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); BOOL -NTAPI +STDCALL NtUserCallMsgFilter( LPMSG msg, INT code); LRESULT -NTAPI +STDCALL NtUserCallNextHookEx( HHOOK Hook, int Code, @@ -358,7 +167,7 @@ NtUserCallNextHookEx( #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007 DWORD -NTAPI +STDCALL NtUserCallNoParam( DWORD Routine); @@ -380,7 +189,7 @@ NtUserCallNoParam( #define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28 #define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29 DWORD -NTAPI +STDCALL NtUserCallOneParam( DWORD Param, DWORD Routine); @@ -413,20 +222,20 @@ NtUserCallOneParam( #define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66 #define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000 DWORD -NTAPI +STDCALL NtUserCallTwoParam( DWORD Param1, DWORD Param2, DWORD Routine); BOOL -NTAPI +STDCALL NtUserChangeClipboardChain( HWND hWndRemove, HWND hWndNewNext); LONG -NTAPI +STDCALL NtUserChangeDisplaySettings( PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, @@ -434,56 +243,56 @@ NtUserChangeDisplaySettings( DWORD dwflags, LPVOID lParam); -HWND NTAPI +HWND STDCALL NtUserChildWindowFromPointEx(HWND Parent, LONG x, LONG y, UINT Flags); BOOL -NTAPI +STDCALL NtUserClipCursor( RECT *lpRect); BOOL -NTAPI +STDCALL NtUserCloseClipboard(VOID); BOOL -NTAPI +STDCALL NtUserCloseDesktop( HDESK hDesktop); BOOL -NTAPI +STDCALL NtUserCloseWindowStation( HWINSTA hWinSta); DWORD -NTAPI +STDCALL NtUserConvertMemHandle( DWORD Unknown0, DWORD Unknown1); int -NTAPI +STDCALL NtUserCopyAcceleratorTable( HACCEL Table, LPACCEL Entries, int EntriesCount); DWORD -NTAPI +STDCALL NtUserCountClipboardFormats(VOID); HACCEL -NTAPI +STDCALL NtUserCreateAcceleratorTable( LPACCEL Entries, SIZE_T EntriesCount); BOOL -NTAPI +STDCALL NtUserCreateCaret( HWND hWnd, HBITMAP hBitmap, @@ -491,13 +300,13 @@ NtUserCreateCaret( int nHeight); HANDLE -NTAPI +STDCALL NtUserCreateCursorIconHandle( PICONINFO IconInfo, BOOL Indirect); HDESK -NTAPI +STDCALL NtUserCreateDesktop( PUNICODE_STRING lpszDesktopName, DWORD dwFlags, @@ -506,7 +315,7 @@ NtUserCreateDesktop( HWINSTA hWindowStation); DWORD -NTAPI +STDCALL NtUserCreateLocalMemHandle( DWORD Unknown0, DWORD Unknown1, @@ -514,7 +323,7 @@ NtUserCreateLocalMemHandle( DWORD Unknown3); HWND -NTAPI +STDCALL NtUserCreateWindowEx( DWORD dwExStyle, PUNICODE_STRING lpClassName, @@ -532,7 +341,7 @@ NtUserCreateWindowEx( BOOL bUnicodeWindow); HWINSTA -NTAPI +STDCALL NtUserCreateWindowStation( PUNICODE_STRING lpszWindowStationName, ACCESS_MASK dwDesiredAccess, @@ -542,14 +351,14 @@ NtUserCreateWindowStation( DWORD Unknown5); DWORD -NTAPI +STDCALL NtUserDdeGetQualityOfService( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserDdeInitialize( DWORD Unknown0, DWORD Unknown1, @@ -558,13 +367,13 @@ NtUserDdeInitialize( DWORD Unknown4); DWORD -NTAPI +STDCALL NtUserDdeSetQualityOfService( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); -HDWP NTAPI +HDWP STDCALL NtUserDeferWindowPos(HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, @@ -573,21 +382,21 @@ NtUserDeferWindowPos(HDWP WinPosInfo, int cx, int cy, UINT Flags); -BOOL NTAPI +BOOL STDCALL NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText); BOOLEAN -NTAPI +STDCALL NtUserDestroyAcceleratorTable( HACCEL Table); BOOL -NTAPI +STDCALL NtUserDestroyCursorIcon( HANDLE Handle, DWORD Unknown); -BOOLEAN NTAPI +BOOLEAN STDCALL NtUserDestroyWindow(HWND Wnd); typedef struct tagNTUSERDISPATCHMESSAGEINFO @@ -599,18 +408,18 @@ typedef struct tagNTUSERDISPATCHMESSAGEINFO } NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO; LRESULT -NTAPI +STDCALL NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo); BOOL -NTAPI +STDCALL NtUserDragDetect( HWND hWnd, LONG x, LONG y); DWORD -NTAPI +STDCALL NtUserDragObject( HWND hwnd1, HWND hwnd2, @@ -620,7 +429,7 @@ NtUserDragObject( ); DWORD -NTAPI +STDCALL NtUserDrawAnimatedRects( DWORD Unknown0, DWORD Unknown1, @@ -628,7 +437,7 @@ NtUserDrawAnimatedRects( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserDrawCaption( DWORD Unknown0, DWORD Unknown1, @@ -636,7 +445,7 @@ NtUserDrawCaption( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserDrawCaptionTemp( DWORD Unknown0, DWORD Unknown1, @@ -647,7 +456,7 @@ NtUserDrawCaptionTemp( DWORD Unknown6); BOOL -NTAPI +STDCALL NtUserDrawIconEx( HDC hdc, int xLeft, @@ -662,27 +471,27 @@ NtUserDrawIconEx( DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserEmptyClipboard(VOID); BOOL -NTAPI +STDCALL NtUserEnableScrollBar( HWND hWnd, UINT wSBflags, UINT wArrows); DWORD -NTAPI +STDCALL NtUserEndDeferWindowPosEx( DWORD Unknown0, DWORD Unknown1); -BOOL NTAPI +BOOL STDCALL NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs); BOOL -NTAPI +STDCALL NtUserEnumDisplayDevices ( PUNICODE_STRING lpDevice, /* device name */ DWORD iDevNum, /* display device */ @@ -690,15 +499,19 @@ NtUserEnumDisplayDevices ( DWORD dwFlags ); /* reserved */ /*BOOL -NTAPI +STDCALL 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 -NTAPI +STDCALL NtUserEnumDisplayMonitors( OPTIONAL IN HDC hDC, OPTIONAL IN LPCRECT pRect, @@ -708,7 +521,7 @@ NtUserEnumDisplayMonitors( BOOL -NTAPI +STDCALL NtUserEnumDisplaySettings( PUNICODE_STRING lpszDeviceName, DWORD iModeNum, @@ -716,18 +529,18 @@ NtUserEnumDisplaySettings( DWORD dwFlags ); DWORD -NTAPI +STDCALL NtUserEvent( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserExcludeUpdateRgn( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserFillWindow( DWORD Unknown0, DWORD Unknown1, @@ -735,7 +548,7 @@ NtUserFillWindow( DWORD Unknown3); HICON -NTAPI +STDCALL NtUserFindExistingCursorIcon( HMODULE hModule, HRSRC hRsrc, @@ -743,7 +556,7 @@ NtUserFindExistingCursorIcon( LONG cy); HWND -NTAPI +STDCALL NtUserFindWindowEx( HWND hwndParent, HWND hwndChildAfter, @@ -752,12 +565,12 @@ NtUserFindWindowEx( ); DWORD -NTAPI +STDCALL NtUserFlashWindowEx( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserGetAltTabInfo( DWORD Unknown0, DWORD Unknown1, @@ -766,25 +579,25 @@ NtUserGetAltTabInfo( DWORD Unknown4, DWORD Unknown5); -HWND NTAPI +HWND STDCALL NtUserGetAncestor(HWND hWnd, UINT Flags); DWORD -NTAPI +STDCALL NtUserGetAsyncKeyState( DWORD Unknown0); UINT -NTAPI +STDCALL NtUserGetCaretBlinkTime(VOID); BOOL -NTAPI +STDCALL NtUserGetCaretPos( LPPOINT lpPoint); -DWORD NTAPI +DWORD STDCALL NtUserGetClassInfo(HINSTANCE hInst, LPCWSTR str, LPWNDCLASSEXW wcex, @@ -792,56 +605,56 @@ NtUserGetClassInfo(HINSTANCE hInst, DWORD unknown3); DWORD -NTAPI +STDCALL NtUserGetClassName(HWND hWnd, LPWSTR lpClassName, ULONG nMaxCount); HANDLE -NTAPI +STDCALL NtUserGetClipboardData( UINT uFormat, DWORD Unknown1); INT -NTAPI +STDCALL NtUserGetClipboardFormatName( UINT format, PUNICODE_STRING FormatName, INT cchMaxCount); HWND -NTAPI +STDCALL NtUserGetClipboardOwner(VOID); DWORD -NTAPI +STDCALL NtUserGetClipboardSequenceNumber(VOID); HWND -NTAPI +STDCALL NtUserGetClipboardViewer(VOID); BOOL -NTAPI +STDCALL NtUserGetClipCursor( RECT *lpRect); DWORD -NTAPI +STDCALL NtUserGetComboBoxInfo( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserGetControlBrush( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserGetControlColor( DWORD Unknown0, DWORD Unknown1, @@ -849,14 +662,14 @@ NtUserGetControlColor( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserGetCPD( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserGetCursorFrameInfo( DWORD Unknown0, DWORD Unknown1, @@ -864,57 +677,57 @@ NtUserGetCursorFrameInfo( DWORD Unknown3); BOOL -NTAPI +STDCALL NtUserGetCursorInfo( PCURSORINFO pci); HDC -NTAPI +STDCALL NtUserGetDC( HWND hWnd); HDC -NTAPI +STDCALL NtUserGetDCEx( HWND hWnd, HANDLE hRegion, ULONG Flags); UINT -NTAPI +STDCALL NtUserGetDoubleClickTime(VOID); HWND -NTAPI +STDCALL NtUserGetForegroundWindow(VOID); DWORD -NTAPI +STDCALL NtUserGetGuiResources( HANDLE hProcess, DWORD uiFlags); BOOL -NTAPI +STDCALL NtUserGetGUIThreadInfo( DWORD idThread, LPGUITHREADINFO lpgui); BOOL -NTAPI +STDCALL NtUserGetCursorIconInfo( HANDLE Handle, PICONINFO IconInfo); BOOL -NTAPI +STDCALL NtUserGetCursorIconSize( HANDLE Handle, BOOL *fIcon, SIZE *Size); DWORD -NTAPI +STDCALL NtUserGetImeHotKey( DWORD Unknown0, DWORD Unknown1, @@ -922,49 +735,49 @@ NtUserGetImeHotKey( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserGetInternalWindowPos( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HKL -NTAPI +STDCALL NtUserGetKeyboardLayout( DWORD dwThreadid); DWORD -NTAPI +STDCALL NtUserGetKeyboardLayoutList( DWORD Unknown0, DWORD Unknown1); BOOL -NTAPI +STDCALL NtUserGetKeyboardLayoutName( LPWSTR lpszName); DWORD -NTAPI +STDCALL NtUserGetKeyboardState( LPBYTE Unknown0); DWORD -NTAPI +STDCALL NtUserGetKeyboardType( DWORD TypeFlag); DWORD -NTAPI +STDCALL NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize ); DWORD -NTAPI +STDCALL NtUserGetKeyState( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserGetListBoxInfo( DWORD Unknown0); @@ -975,7 +788,7 @@ typedef struct tagNTUSERGETMESSAGEINFO } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO; BOOL -NTAPI +STDCALL NtUserGetMessage( PNTUSERGETMESSAGEINFO MsgInfo, HWND hWnd, @@ -983,13 +796,13 @@ NtUserGetMessage( UINT wMsgFilterMax); BOOL -NTAPI +STDCALL NtUserGetMonitorInfo( IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo); DWORD -NTAPI +STDCALL NtUserGetMouseMovePointsEx( DWORD Unknown0, DWORD Unknown1, @@ -998,7 +811,7 @@ NtUserGetMouseMovePointsEx( DWORD Unknown4); BOOL -NTAPI +STDCALL NtUserGetObjectInformation( HANDLE hObject, DWORD nIndex, @@ -1007,35 +820,35 @@ NtUserGetObjectInformation( PDWORD nLengthNeeded); HWND -NTAPI +STDCALL NtUserGetOpenClipboardWindow(VOID); INT -NTAPI +STDCALL NtUserGetPriorityClipboardFormat( UINT *paFormatPriorityList, INT cFormats); HWINSTA -NTAPI +STDCALL NtUserGetProcessWindowStation(VOID); BOOL -NTAPI +STDCALL NtUserGetScrollBarInfo( HWND hWnd, LONG idObject, PSCROLLBARINFO psbi); BOOL -NTAPI +STDCALL NtUserGetScrollInfo( HWND hwnd, int fnBar, LPSCROLLINFO lpsi); HDESK -NTAPI +STDCALL NtUserGetThreadDesktop( DWORD dwThreadId, DWORD Unknown1); @@ -1043,51 +856,51 @@ NtUserGetThreadDesktop( #define THREADSTATE_FOCUSWINDOW (1) #define THREADSTATE_INSENDMESSAGE (2) DWORD -NTAPI +STDCALL NtUserGetThreadState( DWORD Routine); DWORD -NTAPI +STDCALL NtUserGetTitleBarInfo( DWORD Unknown0, DWORD Unknown1); -BOOL NTAPI +BOOL STDCALL NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase); int -NTAPI +STDCALL NtUserGetUpdateRgn( HWND hWnd, HRGN hRgn, BOOL bErase); DWORD -NTAPI +STDCALL NtUserGetWindowDC( HWND hWnd); BOOL -NTAPI +STDCALL NtUserGetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl); DWORD -NTAPI +STDCALL NtUserGetWOWClass( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserImpersonateDdeClientWindow( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserInitializeClientPfnArrays( DWORD Unknown0, DWORD Unknown1, @@ -1095,7 +908,7 @@ NtUserInitializeClientPfnArrays( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserInitTask( DWORD Unknown0, DWORD Unknown1, @@ -1110,7 +923,7 @@ NtUserInitTask( DWORD Unknown10); INT -NTAPI +STDCALL NtUserInternalGetWindowText( HWND hWnd, LPWSTR lpString, @@ -1118,12 +931,12 @@ NtUserInternalGetWindowText( BOOL -NTAPI +STDCALL NtUserIsClipboardFormatAvailable( UINT format); BOOL -NTAPI +STDCALL NtUserKillSystemTimer ( HWND hWnd, @@ -1131,7 +944,7 @@ NtUserKillSystemTimer ); BOOL -NTAPI +STDCALL NtUserKillTimer ( HWND hWnd, @@ -1139,7 +952,7 @@ NtUserKillTimer ); DWORD -NTAPI +STDCALL NtUserLoadKeyboardLayoutEx( DWORD Unknown0, DWORD Unknown1, @@ -1149,28 +962,28 @@ NtUserLoadKeyboardLayoutEx( DWORD Unknown5); BOOL -NTAPI +STDCALL NtUserLockWindowStation( HWINSTA hWindowStation); DWORD -NTAPI +STDCALL NtUserLockWindowUpdate( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserLockWorkStation(VOID); UINT -NTAPI +STDCALL NtUserMapVirtualKeyEx( UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl ); DWORD -NTAPI +STDCALL NtUserMessageCall( DWORD Unknown0, DWORD Unknown1, @@ -1181,49 +994,49 @@ NtUserMessageCall( DWORD Unknown6); BOOL -NTAPI +STDCALL NtUserGetMinMaxInfo( HWND hwnd, MINMAXINFO *MinMaxInfo, BOOL SendMessage); DWORD -NTAPI +STDCALL NtUserMNDragLeave(VOID); DWORD -NTAPI +STDCALL NtUserMNDragOver( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserModifyUserStartupInfoFlags( DWORD Unknown0, DWORD Unknown1); HMONITOR -NTAPI +STDCALL NtUserMonitorFromPoint( IN POINT point, IN DWORD dwFlags); HMONITOR -NTAPI +STDCALL NtUserMonitorFromRect( IN LPCRECT pRect, IN DWORD dwFlags); HMONITOR -NTAPI +STDCALL NtUserMonitorFromWindow( IN HWND hWnd, IN DWORD dwFlags); BOOL -NTAPI +STDCALL NtUserMoveWindow( HWND hWnd, int X, @@ -1234,14 +1047,14 @@ NtUserMoveWindow( ); DWORD -NTAPI +STDCALL NtUserNotifyIMEStatus( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserNotifyWinEvent( DWORD Unknown0, DWORD Unknown1, @@ -1249,38 +1062,38 @@ NtUserNotifyWinEvent( DWORD Unknown3); BOOL -NTAPI +STDCALL NtUserOpenClipboard( HWND hWnd, DWORD Unknown1); HDESK -NTAPI +STDCALL NtUserOpenDesktop( PUNICODE_STRING lpszDesktopName, DWORD dwFlags, ACCESS_MASK dwDesiredAccess); HDESK -NTAPI +STDCALL NtUserOpenInputDesktop( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess); HWINSTA -NTAPI +STDCALL NtUserOpenWindowStation( PUNICODE_STRING lpszWindowStationName, ACCESS_MASK dwDesiredAccess); BOOL -NTAPI +STDCALL NtUserPaintDesktop( HDC hDC); BOOL -NTAPI +STDCALL NtUserPeekMessage( PNTUSERGETMESSAGEINFO MsgInfo, HWND hWnd, @@ -1289,7 +1102,7 @@ NtUserPeekMessage( UINT wRemoveMsg); BOOL -NTAPI +STDCALL NtUserPostMessage( HWND hWnd, UINT Msg, @@ -1297,7 +1110,7 @@ NtUserPostMessage( LPARAM lParam); BOOL -NTAPI +STDCALL NtUserPostThreadMessage( DWORD idThread, UINT Msg, @@ -1305,12 +1118,12 @@ NtUserPostThreadMessage( LPARAM lParam); DWORD -NTAPI +STDCALL NtUserQuerySendMessage( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserQueryUserCounters( DWORD Unknown0, DWORD Unknown1, @@ -1322,24 +1135,20 @@ NtUserQueryUserCounters( #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01 #define QUERY_WINDOW_ISHUNG 0x04 DWORD -NTAPI +STDCALL NtUserQueryWindow( HWND hWnd, DWORD Index); -UINT -NTAPI -NtUserRealizePalette(HDC hDC); - DWORD -NTAPI +STDCALL NtUserRealChildWindowFromPoint( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); BOOL -NTAPI +STDCALL NtUserRedrawWindow ( HWND hWnd, @@ -1353,7 +1162,7 @@ NtUserRedrawWindow #define REGISTERCLASS_SYSTEM 4 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM) -RTL_ATOM NTAPI +RTL_ATOM STDCALL NtUserRegisterClassExWOW( CONST WNDCLASSEXW* lpwcx, PUNICODE_STRING ClassName, @@ -1365,30 +1174,30 @@ NtUserRegisterClassExWOW( HMENU hMenu); BOOL -NTAPI +STDCALL NtUserRegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk); DWORD -NTAPI +STDCALL NtUserRegisterTasklist( DWORD Unknown0); -UINT NTAPI +UINT STDCALL NtUserRegisterWindowMessage(PUNICODE_STRING MessageName); -HANDLE NTAPI +HANDLE STDCALL NtUserRemoveProp(HWND hWnd, ATOM Atom); DWORD -NTAPI +STDCALL NtUserResolveDesktopForWOW( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserSBGetParms( DWORD Unknown0, DWORD Unknown1, @@ -1396,7 +1205,7 @@ NtUserSBGetParms( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserScrollDC( HDC hDC, int dx, @@ -1406,12 +1215,12 @@ NtUserScrollDC( HRGN hrgnUpdate, LPRECT lprcUpdate); -DWORD NTAPI +DWORD STDCALL NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags); UINT -NTAPI +STDCALL NtUserSendInput( UINT nInputs, LPINPUT pInput, @@ -1424,7 +1233,7 @@ typedef struct tagNTUSERSENDMESSAGEINFO WNDPROC Proc; } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO; -LRESULT NTAPI +LRESULT STDCALL NtUserSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, @@ -1432,7 +1241,7 @@ NtUserSendMessage(HWND hWnd, PNTUSERSENDMESSAGEINFO Info); BOOL -NTAPI +STDCALL NtUserSendMessageCallback( HWND hWnd, UINT Msg, @@ -1441,7 +1250,7 @@ NtUserSendMessageCallback( SENDASYNCPROC lpCallBack, ULONG_PTR dwData); -LRESULT NTAPI +LRESULT STDCALL NtUserSendMessageTimeout(HWND hWnd, UINT Msg, WPARAM wParam, @@ -1452,24 +1261,24 @@ NtUserSendMessageTimeout(HWND hWnd, PNTUSERSENDMESSAGEINFO Info); BOOL -NTAPI +STDCALL NtUserSendNotifyMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -HWND NTAPI +HWND STDCALL NtUserSetActiveWindow(HWND Wnd); -HWND NTAPI +HWND STDCALL NtUserGetActiveWindow(VOID); -HWND NTAPI +HWND STDCALL NtUserSetCapture(HWND Wnd); -HWND NTAPI +HWND STDCALL NtUserGetCapture(VOID); -DWORD NTAPI +DWORD STDCALL NtUserSetClassLong( HWND hWnd, DWORD Offset, @@ -1478,51 +1287,43 @@ NtUserSetClassLong( DWORD -NTAPI +STDCALL NtUserSetClassWord( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HANDLE -NTAPI +STDCALL NtUserSetClipboardData( UINT uFormat, HANDLE hMem, DWORD Unknown2); HWND -NTAPI +STDCALL NtUserSetClipboardViewer( HWND hWndNewViewer); -HPALETTE -STDCALL -NtUserSelectPalette( - HDC hDC, - HPALETTE hpal, - BOOL ForceBackground -); - DWORD -NTAPI +STDCALL NtUserSetConsoleReserveKeys( DWORD Unknown0, DWORD Unknown1); HCURSOR -NTAPI +STDCALL NtUserSetCursor( HCURSOR hCursor); BOOL -NTAPI +STDCALL NtUserSetCursorIconContents( HANDLE Handle, PICONINFO IconInfo); BOOL -NTAPI +STDCALL NtUserSetCursorIconData( HANDLE Handle, PBOOL fIcon, @@ -1532,18 +1333,18 @@ NtUserSetCursorIconData( HRSRC hGroupRsrc); DWORD -NTAPI +STDCALL NtUserSetDbgTag( DWORD Unknown0, DWORD Unknown1); HWND -NTAPI +STDCALL NtUserSetFocus( HWND hWnd); DWORD -NTAPI +STDCALL NtUserSetImeHotKey( DWORD Unknown0, DWORD Unknown1, @@ -1552,13 +1353,13 @@ NtUserSetImeHotKey( DWORD Unknown4); DWORD -NTAPI +STDCALL NtUserSetImeOwnerWindow( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserSetInternalWindowPos( DWORD Unknown0, DWORD Unknown1, @@ -1566,12 +1367,12 @@ NtUserSetInternalWindowPos( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserSetKeyboardState( LPBYTE Unknown0); DWORD -NTAPI +STDCALL NtUserSetLayeredWindowAttributes( DWORD Unknown0, DWORD Unknown1, @@ -1579,12 +1380,12 @@ NtUserSetLayeredWindowAttributes( DWORD Unknown3); DWORD -NTAPI +STDCALL NtUserSetLogonNotifyWindow( DWORD Unknown0); BOOL -NTAPI +STDCALL NtUserSetObjectInformation( HANDLE hObject, DWORD nIndex, @@ -1592,27 +1393,27 @@ NtUserSetObjectInformation( DWORD nLength); HWND -NTAPI +STDCALL NtUserSetParent( HWND hWndChild, HWND hWndNewParent); BOOL -NTAPI +STDCALL NtUserSetProcessWindowStation( HWINSTA hWindowStation); -BOOL NTAPI +BOOL STDCALL NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data); DWORD -NTAPI +STDCALL NtUserSetRipFlags( DWORD Unknown0, DWORD Unknown1); DWORD -NTAPI +STDCALL NtUserSetScrollInfo( HWND hwnd, int fnBar, @@ -1620,17 +1421,17 @@ NtUserSetScrollInfo( BOOL bRedraw); BOOL -NTAPI +STDCALL NtUserSetShellWindowEx( HWND hwndShell, HWND hwndShellListView); HWND -NTAPI +STDCALL NtUserGetShellWindow(); DWORD -NTAPI +STDCALL NtUserSetSysColors( DWORD Unknown0, DWORD Unknown1, @@ -1638,24 +1439,24 @@ NtUserSetSysColors( DWORD Unknown3); BOOL -NTAPI +STDCALL NtUserSetSystemCursor( HCURSOR hcur, DWORD id); BOOL -NTAPI +STDCALL NtUserSetThreadDesktop( HDESK hDesktop); DWORD -NTAPI +STDCALL NtUserSetThreadState( DWORD Unknown0, DWORD Unknown1); UINT_PTR -NTAPI +STDCALL NtUserSetSystemTimer ( HWND hWnd, @@ -1665,7 +1466,7 @@ NtUserSetSystemTimer ); UINT_PTR -NTAPI +STDCALL NtUserSetTimer ( HWND hWnd, @@ -1675,13 +1476,13 @@ NtUserSetTimer ); DWORD -NTAPI +STDCALL NtUserSetWindowFNID( DWORD Unknown0, DWORD Unknown1); LONG -NTAPI +STDCALL NtUserSetWindowLong( HWND hWnd, DWORD Index, @@ -1689,13 +1490,13 @@ NtUserSetWindowLong( BOOL Ansi); BOOL -NTAPI +STDCALL NtUserSetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl); BOOL -NTAPI NtUserSetWindowPos( +STDCALL NtUserSetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, @@ -1706,21 +1507,21 @@ NTAPI NtUserSetWindowPos( ); INT -NTAPI +STDCALL NtUserSetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw); DWORD -NTAPI +STDCALL NtUserSetWindowsHookAW( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HHOOK -NTAPI +STDCALL NtUserSetWindowsHookEx( HINSTANCE Mod, PUNICODE_STRING ModuleName, @@ -1730,18 +1531,18 @@ NtUserSetWindowsHookEx( BOOL Ansi); DWORD -NTAPI +STDCALL NtUserSetWindowStationUser( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3); -WORD NTAPI +WORD STDCALL NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal); DWORD -NTAPI +STDCALL NtUserSetWinEventHook( DWORD Unknown0, DWORD Unknown1, @@ -1753,34 +1554,34 @@ NtUserSetWinEventHook( DWORD Unknown7); BOOL -NTAPI +STDCALL NtUserShowCaret( HWND hWnd, BOOL bShow); DWORD -NTAPI +STDCALL NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow); BOOL -NTAPI +STDCALL NtUserShowWindow( HWND hWnd, LONG nCmdShow); BOOL -NTAPI +STDCALL NtUserShowWindowAsync( HWND hWnd, LONG nCmdShow); BOOL -NTAPI +STDCALL NtUserSwitchDesktop( HDESK hDesktop); BOOL -NTAPI +STDCALL NtUserSystemParametersInfo( UINT uiAction, UINT uiParam, @@ -1788,7 +1589,7 @@ NtUserSystemParametersInfo( UINT fWinIni); int -NTAPI +STDCALL NtUserToUnicodeEx( UINT wVirtKey, UINT wScanCode, @@ -1799,71 +1600,71 @@ NtUserToUnicodeEx( HKL dwhkl ); DWORD -NTAPI +STDCALL NtUserTrackMouseEvent( DWORD Unknown0); int -NTAPI +STDCALL NtUserTranslateAccelerator( HWND Window, HACCEL Table, LPMSG Message); BOOL -NTAPI +STDCALL NtUserTranslateMessage( LPMSG lpMsg, HKL dwhkl ); BOOL -NTAPI +STDCALL NtUserUnhookWindowsHookEx( HHOOK Hook); DWORD -NTAPI +STDCALL NtUserUnhookWinEvent( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserUnloadKeyboardLayout( DWORD Unknown0); BOOL -NTAPI +STDCALL NtUserUnlockWindowStation( HWINSTA hWindowStation); BOOL -NTAPI +STDCALL NtUserUnregisterClass( LPCWSTR ClassNameOrAtom, HINSTANCE hInstance, DWORD Unknown); BOOL -NTAPI +STDCALL NtUserUnregisterHotKey(HWND hWnd, int id); DWORD -NTAPI +STDCALL NtUserUpdateInputContext( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserUpdateInstance( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserUpdateLayeredWindow( DWORD Unknown0, DWORD Unknown1, @@ -1876,48 +1677,48 @@ NtUserUpdateLayeredWindow( DWORD Unknown8); BOOL -NTAPI +STDCALL NtUserUpdatePerUserSystemParameters( DWORD dwReserved, BOOL bEnable); DWORD -NTAPI +STDCALL NtUserUserHandleGrantAccess( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserValidateHandleSecure( DWORD Unknown0); DWORD -NTAPI +STDCALL NtUserVkKeyScanEx( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserWaitForInputIdle( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -NTAPI +STDCALL NtUserWaitForMsgAndEvent( DWORD Unknown0); BOOL -NTAPI +STDCALL NtUserWaitMessage(VOID); DWORD -NTAPI +STDCALL NtUserWin32PoolAllocationStats( DWORD Unknown0, DWORD Unknown1, @@ -1927,28 +1728,28 @@ NtUserWin32PoolAllocationStats( DWORD Unknown5); HWND -NTAPI +STDCALL NtUserWindowFromPoint( LONG X, LONG Y); DWORD -NTAPI +STDCALL NtUserYieldTask(VOID); -DWORD NTAPI +DWORD STDCALL NtUserGetWindowThreadProcessId(HWND hWnd, LPDWORD UnsafePid); -DWORD NTAPI +DWORD STDCALL NtUserGetQueueStatus(BOOL ClearChanges); -HWND NTAPI +HWND STDCALL NtUserGetParent(HWND hWnd); -HWND NTAPI +HWND STDCALL NtUserGetWindow(HWND hWnd, UINT Relationship); -HWND NTAPI +HWND STDCALL NtUserGetLastActivePopup(HWND hWnd); typedef struct _WndProcHandle { @@ -1957,24 +1758,12 @@ typedef struct _WndProcHandle HANDLE ProcessID; } WndProcHandle; -DWORD NTAPI +DWORD STDCALL NtUserDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data); -VOID NTAPI +VOID STDCALL 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; @@ -1983,7 +1772,7 @@ typedef struct _SETSCROLLBARINFO } SETSCROLLBARINFO, *PSETSCROLLBARINFO; BOOL -NTAPI +STDCALL NtUserSetScrollBarInfo( HWND hwnd, LONG idObject, @@ -2011,6 +1800,14 @@ typedef struct tagKMDDELPARAM } 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 */ diff --git a/reactos/include/win32k/ntusrtyp.h b/reactos/include/win32k/ntusrtyp.h deleted file mode 100644 index c94598e76db..00000000000 --- a/reactos/include/win32k/ntusrtyp.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K) - * FILE: include/win32k/ntusrtyp.h - * PURPOSE: Win32 Shared USER Types for NtUser* - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - */ - -/* INCLUDES ******************************************************************/ - -#ifndef _NTUSRTYP_ -#define _NTUSRTYP_ - -/* ENUMERATIONS **************************************************************/ - -/* TYPES *********************************************************************/ - -typedef struct _PATRECT -{ - RECT r; - HBRUSH hBrush; -} PATRECT, * PPATRECT; - -/* Structures for reading icon/cursor 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; - -typedef struct _THRDCARETINFO -{ - HWND hWnd; - HBITMAP Bitmap; - POINT Pos; - SIZE Size; - BYTE Visible; - BYTE Showing; -} THRDCARETINFO, *PTHRDCARETINFO; - -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; - -#endif diff --git a/reactos/include/win32k/paint.h b/reactos/include/win32k/paint.h new file mode 100644 index 00000000000..dec0ca0e8be --- /dev/null +++ b/reactos/include/win32k/paint.h @@ -0,0 +1,43 @@ +#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 + diff --git a/reactos/include/win32k/path.h b/reactos/include/win32k/path.h new file mode 100644 index 00000000000..31467b48dce --- /dev/null +++ b/reactos/include/win32k/path.h @@ -0,0 +1,54 @@ +#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 diff --git a/reactos/subsys/win32k/include/pen.h b/reactos/include/win32k/pen.h similarity index 54% rename from reactos/subsys/win32k/include/pen.h rename to reactos/include/win32k/pen.h index e76555de4b4..ce2c5ac804b 100644 --- a/reactos/subsys/win32k/include/pen.h +++ b/reactos/include/win32k/pen.h @@ -1,14 +1,32 @@ -#ifndef __WIN32K_PEN_H -#define __WIN32K_PEN_H - -#include "gdiobj.h" -#include "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) - -#endif +#ifndef __WIN32K_PEN_H +#define __WIN32K_PEN_H + +#include +#include + +/* 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 diff --git a/reactos/include/win32k/print.h b/reactos/include/win32k/print.h new file mode 100644 index 00000000000..9dab57f8d66 --- /dev/null +++ b/reactos/include/win32k/print.h @@ -0,0 +1,48 @@ + +#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 diff --git a/reactos/include/win32k/region.h b/reactos/include/win32k/region.h new file mode 100644 index 00000000000..9627490bbeb --- /dev/null +++ b/reactos/include/win32k/region.h @@ -0,0 +1,151 @@ + +#ifndef __WIN32K_REGION_H +#define __WIN32K_REGION_H + +#include + +/* 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 + diff --git a/reactos/include/win32k/text.h b/reactos/include/win32k/text.h new file mode 100644 index 00000000000..8af356a2f0f --- /dev/null +++ b/reactos/include/win32k/text.h @@ -0,0 +1,233 @@ + +#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 + diff --git a/reactos/include/win32k/win32k.h b/reactos/include/win32k/win32k.h new file mode 100644 index 00000000000..89a82101cfa --- /dev/null +++ b/reactos/include/win32k/win32k.h @@ -0,0 +1 @@ +#include diff --git a/reactos/include/win32k/wingl.h b/reactos/include/win32k/wingl.h new file mode 100644 index 00000000000..70ba8d5a6ac --- /dev/null +++ b/reactos/include/win32k/wingl.h @@ -0,0 +1,38 @@ + +#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 + diff --git a/reactos/lib/ddraw/hal/surface_hal.c b/reactos/lib/ddraw/hal/surface_hal.c index 1622a27673b..68df4f32591 100644 --- a/reactos/lib/ddraw/hal/surface_hal.c +++ b/reactos/lib/ddraw/hal/surface_hal.c @@ -99,11 +99,13 @@ HRESULT Hal_DDrawSurface_Initialize (LPDIRECTDRAWSURFACE7 iface, LPDIRECTDRAW pD CreateData.lpDDSurfaceDesc = (LPDDSURFACEDESC)&This->ddsd; CreateData.dwSCnt = 1; CreateData.lplpSList = This->pLocal; - CreateData.ddRVal = DD_FALSE; - + asm("int3"); + CreateData.ddRVal = 1; + /* this is the call we were waiting for */ if(This->owner->DirectDrawGlobal.lpDDCBtmp->HALDD.CreateSurface(&CreateData) == DDHAL_DRIVER_NOTHANDLED) return DDERR_INVALIDPARAMS; + asm("int3"); /* FIXME remove the if and debug string*/ if(CreateData.ddRVal != DD_OK) diff --git a/reactos/lib/gdi32/gdi32.def b/reactos/lib/gdi32/gdi32.def index 195e6e393f3..ed3bd92d10d 100644 --- a/reactos/lib/gdi32/gdi32.def +++ b/reactos/lib/gdi32/gdi32.def @@ -26,7 +26,7 @@ BRUSHOBJ_hGetColorTransform@4 BRUSHOBJ_pvAllocRbrush@8 BRUSHOBJ_pvGetRbrush@4 BRUSHOBJ_ulGetBrushColor@4 -BitBlt@36 +BitBlt@36=NtGdiBitBlt@36 CancelDC@4 CheckColorsInGamut@16 ChoosePixelFormat@8 @@ -88,7 +88,7 @@ CreateRectRgnIndirect@4=NtGdiCreateRectRgnIndirect@4 CreateRoundRectRgn@24=NtGdiCreateRoundRectRgn@24 CreateScalableFontResourceA@16 CreateScalableFontResourceW@16 -CreateSolidBrush@4 +CreateSolidBrush@4=NtGdiCreateSolidBrush@4 DPtoLP@12=NtGdiDPtoLP@12 DeleteColorSpace@4 DeleteDC@4=NtGdiDeleteDC@4 @@ -393,7 +393,7 @@ GetGlyphIndicesA@20 GetGlyphIndicesW@20 GetGlyphOutline=GetGlyphOutlineA@28 GetGlyphOutlineA@28 -GetGlyphOutlineW@28 +GetGlyphOutlineW@28=NtGdiGetGlyphOutline@28 GetGlyphOutlineWow@28 GetGraphicsMode@4=NtGdiGetGraphicsMode@4 GetHFONT@4 diff --git a/reactos/lib/gdi32/include/gdi32p.h b/reactos/lib/gdi32/include/gdi32p.h deleted file mode 100644 index a7ea6bd6b4c..00000000000 --- a/reactos/lib/gdi32/include/gdi32p.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS System Libraries - * FILE: lib/gdi32/include/gdi32p.h - * PURPOSE: User-Mode Win32 GDI Library Private Header - * PROGRAMMER: Alex Ionescu (alex@relsoft.net) - */ - -/* DATA **********************************************************************/ - -extern PGDI_TABLE_ENTRY GdiHandleTable; -extern HANDLE hProcessHeap; -extern HANDLE CurrentProcessId; - -typedef INT -(CALLBACK* EMFPLAYPROC)( - HDC hdc, - INT iFunction, - HANDLE hPageQuery -); - -/* FUNCTIONS *****************************************************************/ - -PVOID -HEAP_alloc(DWORD len); - -NTSTATUS -HEAP_strdupA2W( - LPWSTR* ppszW, - LPCSTR lpszA -); - -VOID -HEAP_free(LPVOID memory); - -BOOL -FASTCALL -TextMetricW2A( - TEXTMETRICA *tma, - TEXTMETRICW *tmw -); - -BOOL -FASTCALL -NewTextMetricW2A( - NEWTEXTMETRICA *tma, - NEWTEXTMETRICW *tmw -); - -BOOL -FASTCALL -NewTextMetricExW2A( - NEWTEXTMETRICEXA *tma, - NEWTEXTMETRICEXW *tmw -); - -BOOL -GdiIsHandleValid(HGDIOBJ hGdiObj); - -BOOL -GdiGetHandleUserData( - HGDIOBJ hGdiObj, - PVOID *UserData -); - -BOOL -WINAPI -CalculateColorTableSize( - CONST BITMAPINFOHEADER *BitmapInfoHeader, - UINT *ColorSpec, - UINT *ColorTableSize -); - -LPBITMAPINFO -WINAPI -ConvertBitmapInfo( - CONST BITMAPINFO *BitmapInfo, - UINT ColorSpec, - UINT *BitmapInfoSize, - BOOL FollowedByData -); - -DEVMODEW * -NTAPI -GdiConvertToDevmodeW(DEVMODEA *dm); - -VOID -NTAPI -LogFontA2W( - LPLOGFONTW pW, - CONST LOGFONTA *pA -); - -VOID -NTAPI -LogFontW2A( - LPLOGFONTA pA, - CONST LOGFONTW *pW -); - -/* FIXME: Put in some public header */ -UINT -WINAPI -UserRealizePalette(HDC hDC); - -/* EOF */ diff --git a/reactos/lib/gdi32/include/precomp.h b/reactos/lib/gdi32/include/precomp.h index 1eeb88ebdc2..50750cb923e 100644 --- a/reactos/lib/gdi32/include/precomp.h +++ b/reactos/lib/gdi32/include/precomp.h @@ -8,26 +8,89 @@ /* INCLUDES ******************************************************************/ -/* Definitions */ +/* SDK/DDK/NDK Headers. */ #define WIN32_NO_STATUS #define NTOS_MODE_USER - -/* SDK/DDK/NDK Headers. */ +#define __GDI32__ #include -#include +#include +#include #include -#include #include +#include +#include +#include -/* Public Win32K Headers */ -#include -#include -#include +/* Win32K External Headers */ +#include -/* Private GDI32 Header */ -#include "gdi32p.h" +/* directdraw syscall */ +#include -/* Deprecated NTGDI calls which shouldn't exist */ -#include +#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); + +VOID +STDCALL +LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA); + +VOID +STDCALL +LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW); + +/* == Directx FUNCTIONS ================================================== */ +BOOL +intDDCreateSurface ( LPDDRAWI_DDRAWSURFACE_LCL pSurface, BOOL bComplete); /* EOF */ diff --git a/reactos/lib/gdi32/misc/gdientry.c b/reactos/lib/gdi32/misc/gdientry.c index 78c75b84a74..e21fdfc5b95 100644 --- a/reactos/lib/gdi32/misc/gdientry.c +++ b/reactos/lib/gdi32/misc/gdientry.c @@ -27,16 +27,9 @@ #include "precomp.h" -#include -#include -#include -#include static LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobalInternal; static ULONG RemberDdQueryDisplaySettingsUniquenessID = 0; -BOOL -intDDCreateSurface ( LPDDRAWI_DDRAWSURFACE_LCL pSurface, - BOOL bComplete); /* * @implemented @@ -98,42 +91,8 @@ DdCreateDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal, 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 diff --git a/reactos/lib/gdi32/misc/stubs.c b/reactos/lib/gdi32/misc/stubs.c index d212219ad1b..a9808a48adf 100644 --- a/reactos/lib/gdi32/misc/stubs.c +++ b/reactos/lib/gdi32/misc/stubs.c @@ -3634,6 +3634,49 @@ XLATEOBJ_piVector(XLATEOBJ *XlateObj) 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 */ diff --git a/reactos/lib/gdi32/misc/stubsa.c b/reactos/lib/gdi32/misc/stubsa.c index 4c6de64dd7f..067c35371f7 100644 --- a/reactos/lib/gdi32/misc/stubsa.c +++ b/reactos/lib/gdi32/misc/stubsa.c @@ -157,9 +157,9 @@ CreateColorSpaceA( BOOL STDCALL GetICMProfileA( - HDC hdc, - LPDWORD pBufSize, - LPSTR pszFilename + HDC a0, + DWORD a1, /* MS says LPDWORD! */ + LPSTR a2 ) { UNIMPLEMENTED; @@ -258,7 +258,7 @@ BOOL STDCALL UpdateICMRegKeyA( DWORD a0, - LPSTR a1, + DWORD a1, LPSTR a2, UINT a3 ) diff --git a/reactos/lib/gdi32/misc/stubsw.c b/reactos/lib/gdi32/misc/stubsw.c index cd9431e0a0f..4260ee07509 100644 --- a/reactos/lib/gdi32/misc/stubsw.c +++ b/reactos/lib/gdi32/misc/stubsw.c @@ -129,7 +129,7 @@ BOOL STDCALL GetICMProfileW( HDC a0, - LPDWORD a1, + DWORD a1, /* MS says LPDWORD! */ LPWSTR a2 ) { @@ -228,7 +228,7 @@ BOOL STDCALL UpdateICMRegKeyW( DWORD a0, - LPWSTR a1, + DWORD a1, LPWSTR a2, UINT a3 ) diff --git a/reactos/lib/gdi32/misc/wingl.c b/reactos/lib/gdi32/misc/wingl.c index 72b7b92e109..8db96ff25ce 100644 --- a/reactos/lib/gdi32/misc/wingl.c +++ b/reactos/lib/gdi32/misc/wingl.c @@ -187,8 +187,8 @@ UINT STDCALL GetEnhMetaFilePixelFormat( HENHMETAFILE hemf, - UINT cbBuffer, - PIXELFORMATDESCRIPTOR *ppfd + DWORD cbBuffer, + CONST PIXELFORMATDESCRIPTOR *ppfd ) { ENHMETAHEADER pemh; @@ -199,7 +199,7 @@ GetEnhMetaFilePixelFormat( { if(pemh.cbPixelFormat) { - memcpy((void*)ppfd, UlongToPtr(pemh.offPixelFormat), cbBuffer ); + memcpy((void*)ppfd, (const void *)pemh.offPixelFormat, cbBuffer ); return(pemh.cbPixelFormat); } } diff --git a/reactos/lib/gdi32/objects/bitmap.c b/reactos/lib/gdi32/objects/bitmap.c index 9fd1043a237..c4f62480c5b 100644 --- a/reactos/lib/gdi32/objects/bitmap.c +++ b/reactos/lib/gdi32/objects/bitmap.c @@ -20,7 +20,8 @@ CreateDIBSection( &ConvertedInfoSize, FALSE); if (pConvertedInfo) { - hBitmap = NtGdiCreateDIBSection(hDC, hSection, dwOffset, pConvertedInfo, Usage, 0, 0, 0, Bits); + hBitmap = NtGdiCreateDIBSection(hDC, pConvertedInfo, Usage, Bits, + hSection, dwOffset); if (BitmapInfo != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -28,34 +29,6 @@ CreateDIBSection( 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 */ @@ -78,9 +51,9 @@ StretchBlt( { return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, - nWidthSrc, nHeightSrc, dwRop, 0); + nWidthSrc, nHeightSrc, dwRop); } return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, - nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop, 0, 0); + nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop); } diff --git a/reactos/lib/gdi32/objects/brush.c b/reactos/lib/gdi32/objects/brush.c index 538f111b85d..ebf0174e4c3 100644 --- a/reactos/lib/gdi32/objects/brush.c +++ b/reactos/lib/gdi32/objects/brush.c @@ -39,7 +39,7 @@ CreateDIBPatternBrush( if (pConvertedInfo) { hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec, - ConvertedInfoSize, FALSE, FALSE, lpPackedDIB); + ConvertedInfoSize, lpPackedDIB); if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -69,7 +69,7 @@ CreateDIBPatternBrushPt( if (pConvertedInfo) { hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec, - ConvertedInfoSize, FALSE, FALSE, (PVOID)lpPackedDIB); + ConvertedInfoSize, lpPackedDIB); if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -77,17 +77,6 @@ CreateDIBPatternBrushPt( return hBrush; } -/* - * @implemented - */ -HBRUSH -STDCALL -CreateSolidBrush(IN COLORREF crColor) -{ - /* Call Server-Side API */ - return NtGdiCreateSolidBrush(crColor, NULL); -} - /* * @implemented */ @@ -116,7 +105,7 @@ CreateBrushIndirect( break; case BS_SOLID: - hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor, 0); + hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor); break; case BS_HATCHED: diff --git a/reactos/lib/gdi32/objects/dc.c b/reactos/lib/gdi32/objects/dc.c index 70ce7bb05a2..781d0a119f4 100644 --- a/reactos/lib/gdi32/objects/dc.c +++ b/reactos/lib/gdi32/objects/dc.c @@ -348,8 +348,7 @@ ResetDCW( CONST DEVMODEW *lpInitData ) { - NtGdiResetDC ( hdc, (PDEVMODEW)lpInitData, NULL, NULL, NULL); - return hdc; + return NtGdiResetDC ( hdc, lpInitData ); } @@ -364,12 +363,13 @@ ResetDCA( ) { LPDEVMODEW InitDataW; + HDC hDc; InitDataW = GdiConvertToDevmodeW((LPDEVMODEA)lpInitData); - NtGdiResetDC ( hdc, InitDataW, NULL, NULL, NULL); + hDc = NtGdiResetDC ( hdc, InitDataW ); HEAP_free(InitDataW); - return hdc; + return hDc; } @@ -383,7 +383,7 @@ StartDocW( CONST DOCINFOW *a1 ) { - return NtGdiStartDoc ( hdc, (DOCINFOW *)a1, NULL, 0); + return NtGdiStartDoc ( hdc, (DOCINFOW *)a1 ); } diff --git a/reactos/lib/gdi32/objects/font.c b/reactos/lib/gdi32/objects/font.c index c0551112199..c7495d66434 100644 --- a/reactos/lib/gdi32/objects/font.c +++ b/reactos/lib/gdi32/objects/font.c @@ -517,28 +517,9 @@ GetGlyphOutlineA( CONST MAT2 *lpmat2 ) { - return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2, TRUE); + return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2 ); } -/* - * @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 diff --git a/reactos/lib/gdi32/objects/path.c b/reactos/lib/gdi32/objects/path.c index dda7616ad85..925dfc01394 100644 --- a/reactos/lib/gdi32/objects/path.c +++ b/reactos/lib/gdi32/objects/path.c @@ -127,7 +127,7 @@ SetMiterLimit( PFLOAT a2 ) { - return NtGdiSetMiterLimit ( hdc, a1, (PDWORD)a2 ); + return NtGdiSetMiterLimit ( hdc, a1, a2 ); } @@ -180,7 +180,7 @@ GetMiterLimit( PFLOAT a1 ) { - return NtGdiGetMiterLimit ( hdc, (PDWORD)a1 ); + return NtGdiGetMiterLimit ( hdc, a1 ); } /* diff --git a/reactos/lib/user32/include/user32.h b/reactos/lib/user32/include/user32.h index e7c83ecc236..f11b8bb386f 100644 --- a/reactos/lib/user32/include/user32.h +++ b/reactos/lib/user32/include/user32.h @@ -26,10 +26,13 @@ /* CSRSS Headers */ #include -/* Public Win32K Headers */ -#include +/* External Win32K Headers */ #include +#include #include +#include +#include +#include /* WINE Headers */ #include @@ -38,7 +41,6 @@ /* Internal User32 Headers */ #include "user32p.h" -/* FIXME: Use ntgdi.h then cleanup... */ +/* FIXME: FILIP */ HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj); -BOOL STDCALL NtGdiPatBlt(HDC hdcDst, INT x, INT y, INT cx, INT cy, DWORD rop4); -DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, DWORD *); +DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *); diff --git a/reactos/subsys/win32k/eng/objects.h b/reactos/subsys/win32k/eng/objects.h index 6d7382bd8db..e5915738393 100644 --- a/reactos/subsys/win32k/eng/objects.h +++ b/reactos/subsys/win32k/eng/objects.h @@ -83,50 +83,50 @@ typedef struct _STRGDI { 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; diff --git a/reactos/subsys/win32k/include/bitmaps.h b/reactos/subsys/win32k/include/bitmaps.h deleted file mode 100644 index 6537abba4db..00000000000 --- a/reactos/subsys/win32k/include/bitmaps.h +++ /dev/null @@ -1,50 +0,0 @@ - -#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 */ - PFAST_MUTEX BitsLock; /* You need to hold this lock before you touch - the actual bits in the bitmap */ - - /* 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) ExAcquireFastMutex((pBMObj)->BitsLock) -#define BITMAPOBJ_UnlockBitmapBits(pBMObj) ExReleaseFastMutex((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 NTAPI DIB_GetDIBImageBytes (INT width, INT height, INT depth); -INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse); -INT NTAPI BITMAP_GetObject(BITMAPOBJ * bmp, INT count, LPVOID buffer); -HBITMAP FASTCALL BitmapToSurf(PBITMAPOBJ BitmapObj, HDEV GDIDevice); - -#endif - diff --git a/reactos/subsys/win32k/include/color.h b/reactos/subsys/win32k/include/color.h index 3a3a99e6e15..8106d653c64 100644 --- a/reactos/subsys/win32k/include/color.h +++ b/reactos/subsys/win32k/include/color.h @@ -1,13 +1,6 @@ #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); @@ -15,5 +8,4 @@ COLORREF STDCALL COLOR_LookupNearestColor (PALETTEENTRY* palPalEntry, INT size, 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 */ diff --git a/reactos/subsys/win32k/include/coord.h b/reactos/subsys/win32k/include/coord.h deleted file mode 100644 index fe6badccc13..00000000000 --- a/reactos/subsys/win32k/include/coord.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __WIN32K_COORD_H -#define __WIN32K_COORD_H - -VOID -FASTCALL -IntDPtoLP ( PDC dc, LPPOINT Points, INT Count ); - -VOID -FASTCALL -CoordDPtoLP ( PDC Dc, LPPOINT Point ); - -int -FASTCALL -IntGetGraphicsMode ( PDC dc ); - -VOID -FASTCALL -CoordLPtoDP ( PDC Dc, LPPOINT Point ); - -VOID -FASTCALL -IntLPtoDP ( PDC dc, LPPOINT Points, INT Count ); - -#endif diff --git a/reactos/subsys/win32k/include/dib.h b/reactos/subsys/win32k/include/dib.h index 415fb20ac7b..49a13af6256 100644 --- a/reactos/subsys/win32k/include/dib.h +++ b/reactos/subsys/win32k/include/dib.h @@ -1,7 +1,7 @@ #ifndef _WIN32K_DIB_H #define _WIN32K_DIB_H -#include "dc.h" +#include INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse); diff --git a/reactos/subsys/win32k/include/intgdi.h b/reactos/subsys/win32k/include/intgdi.h index 70a4edb09eb..23adf584159 100644 --- a/reactos/subsys/win32k/include/intgdi.h +++ b/reactos/subsys/win32k/include/intgdi.h @@ -1,8 +1,6 @@ #ifndef _WIN32K_INTGDI_H #define _WIN32K_INTGDI_H -#include "region.h" - /* Brush functions */ XLATEOBJ* FASTCALL diff --git a/reactos/subsys/win32k/include/menu.h b/reactos/subsys/win32k/include/menu.h index 36ec888358a..5b24901e4a5 100644 --- a/reactos/subsys/win32k/include/menu.h +++ b/reactos/subsys/win32k/include/menu.h @@ -1,6 +1,8 @@ #ifndef _WIN32K_MENU_H #define _WIN32K_MENU_H +#include + #define IS_ATOM(x) \ (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000)) @@ -36,13 +38,6 @@ typedef struct _MENU_OBJECT BOOL RtoL; } MENU_OBJECT, *PMENU_OBJECT; -typedef struct _SETMENUITEMRECT -{ - UINT uItem; - BOOL fByPosition; - RECT rcRect; -} SETMENUITEMRECT, *PSETMENUITEMRECT; - PMENU_OBJECT FASTCALL IntGetMenuObject(HMENU hMenu); diff --git a/reactos/subsys/win32k/include/object.h b/reactos/subsys/win32k/include/object.h index 2fd1898902b..a3711d0f58f 100644 --- a/reactos/subsys/win32k/include/object.h +++ b/reactos/subsys/win32k/include/object.h @@ -1,9 +1,9 @@ #ifndef _WIN32K_OBJECT_H #define _WIN32K_OBJECT_H -#include "gdiobj.h" -#include "bitmaps.h" -#include "pen.h" +#include +#include +#include #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 */ diff --git a/reactos/subsys/win32k/include/path.h b/reactos/subsys/win32k/include/path.h index 9fcce87cf83..9631b1fc120 100644 --- a/reactos/subsys/win32k/include/path.h +++ b/reactos/subsys/win32k/include/path.h @@ -1,8 +1,6 @@ #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); diff --git a/reactos/subsys/win32k/include/region.h b/reactos/subsys/win32k/include/region.h deleted file mode 100644 index c86c7cbd898..00000000000 --- a/reactos/subsys/win32k/include/region.h +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef __WIN32K_REGION_H -#define __WIN32K_REGION_H - -#include "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); - -#endif - diff --git a/reactos/subsys/win32k/include/text.h b/reactos/subsys/win32k/include/text.h index b1cfa16f34e..1072e6455d7 100644 --- a/reactos/subsys/win32k/include/text.h +++ b/reactos/subsys/win32k/include/text.h @@ -1,24 +1,6 @@ #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); diff --git a/reactos/subsys/win32k/include/win32k.h b/reactos/subsys/win32k/include/win32k.h index e00a6043348..431f3e9a716 100644 --- a/reactos/subsys/win32k/include/win32k.h +++ b/reactos/subsys/win32k/include/win32k.h @@ -9,8 +9,6 @@ /* INCLUDES ******************************************************************/ #ifndef __WIN32K_H #define __WIN32K_H -#define INTERNAL_CALL NTAPI - /* Internal Win32k Headers */ #include #include @@ -61,9 +59,6 @@ #include #include #include -#include -#include -#include #include #include #include diff --git a/reactos/subsys/win32k/main/dllmain.c b/reactos/subsys/win32k/main/dllmain.c index 9596aa2327a..94eb7a8d711 100644 --- a/reactos/subsys/win32k/main/dllmain.c +++ b/reactos/subsys/win32k/main/dllmain.c @@ -22,6 +22,7 @@ */ #include +#include #include #define NDEBUG diff --git a/reactos/subsys/win32k/ntddraw/stubs.c b/reactos/subsys/win32k/ntddraw/stubs.c index 107907e13e9..03d799d4e74 100644 --- a/reactos/subsys/win32k/ntddraw/stubs.c +++ b/reactos/subsys/win32k/ntddraw/stubs.c @@ -16,11 +16,11 @@ -DWORD STDCALL NtGdiD3dContextCreate( +BOOL STDCALL NtGdiD3dContextCreate( HANDLE hDirectDrawLocal, HANDLE hSurfColor, HANDLE hSurfZ, - LPD3DNTHAL_CONTEXTCREATEDATA pdcci + D3DNTHAL_CONTEXTCREATEDATA *pdcci ) { UNIMPLEMENTED @@ -37,7 +37,7 @@ DWORD STDCALL NtGdiD3dContextDestroy( return 0; } -DWORD STDCALL NtGdiD3dContextDestroyAll(LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcad) +DWORD STDCALL NtGdiD3dContextDestroyAll(VOID) { /* This entry point is not supported on NT5 and ROS */ UNIMPLEMENTED @@ -226,7 +226,7 @@ DWORD STDCALL NtGdiDdGetDriverState( return 0; } -HANDLE STDCALL NtGdiDdGetDxHandle( +DWORD STDCALL NtGdiDdGetDxHandle( HANDLE hDirectDraw, HANDLE hSurface, BOOL bRelease @@ -383,9 +383,7 @@ DWORD STDCALL NtGdiDdUnlockD3D( -DWORD STDCALL NtGdiDdAlphaBlt(IN HANDLE hSurfaceDest, - IN OPTIONAL HANDLE hSurfaceSrc, - IN OUT PDD_BLTDATA puBltData) +DWORD STDCALL NtGdiDdAlphaBlt(VOID) { UNIMPLEMENTED diff --git a/reactos/subsys/win32k/ntuser/cursoricon.c b/reactos/subsys/win32k/ntuser/cursoricon.c index f061296be05..82fd424c3ba 100644 --- a/reactos/subsys/win32k/ntuser/cursoricon.c +++ b/reactos/subsys/win32k/ntuser/cursoricon.c @@ -1285,13 +1285,13 @@ DoStretchBlt(HDC DcDest, int XDest, int YDest, int WidthDest, int HeightDest, if (WidthDest == WidthSrc && HeightDest == HeightSrc) { NtGdiBitBlt(DcDest, XDest, YDest, WidthDest, HeightDest, - DcSrc, XSrc, YSrc, Rop3, 0, 0); + DcSrc, XSrc, YSrc, Rop3); } else if (SRCCOPY == Rop3) { NtGdiStretchBlt(DcDest, XDest, YDest, WidthDest, HeightDest, DcSrc, XSrc, YSrc, WidthSrc, HeightSrc, - Rop3, 0); + Rop3); } else { @@ -1326,9 +1326,9 @@ DoStretchBlt(HDC DcDest, int XDest, int YDest, int WidthDest, int HeightDest, } if (! NtGdiStretchBlt(DcStretched, 0, 0, WidthDest, HeightDest, DcSrc, XSrc, YSrc, WidthSrc, HeightSrc, - SRCCOPY, 0) || + SRCCOPY) || ! NtGdiBitBlt(DcDest, XDest, YDest, WidthDest, HeightDest, - DcStretched, 0, 0, Rop3, 0, 0)) + DcStretched, 0, 0, Rop3)) { DPRINT1("Failed to blt\n"); } @@ -1342,7 +1342,7 @@ DoStretchBlt(HDC DcDest, int XDest, int YDest, int WidthDest, int HeightDest, DcSrc, XSrc, YSrc, WidthSrc, HeightSrc, Rop3, Color) \ NtGdiStretchBlt((DcDest), (XDest), (YDest), (WidthDest), (HeightDest), \ (DcSrc), (XSrc), (YSrc), (WidthSrc), (HeightSrc), \ - (Rop3), 0) + (Rop3)) #endif /* STRETCH_CAN_SRCCOPY_ONLY */ /* @@ -1495,7 +1495,7 @@ NtUserDrawIconEx( } if(DoFlickerFree) - NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY, 0, 0); + NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY); NtGdiSetTextColor(hdcOff, oldFg); NtGdiSetBkColor(hdcOff, oldBg); diff --git a/reactos/subsys/win32k/ntuser/desktop.c b/reactos/subsys/win32k/ntuser/desktop.c index fd993c21d64..5b889400987 100644 --- a/reactos/subsys/win32k/ntuser/desktop.c +++ b/reactos/subsys/win32k/ntuser/desktop.c @@ -1281,8 +1281,7 @@ NtUserPaintDesktop(HDC hDC) 0, WinSta->cxWallpaper, WinSta->cyWallpaper, - SRCCOPY, - 0); + SRCCOPY); } else if (WinSta->WallpaperMode == wmTile) { @@ -1299,9 +1298,7 @@ NtUserPaintDesktop(HDC hDC) hWallpaperDC, 0, 0, - SRCCOPY, - 0, - 0); + SRCCOPY); } } } @@ -1315,9 +1312,7 @@ NtUserPaintDesktop(HDC hDC) hWallpaperDC, 0, 0, - SRCCOPY, - 0, - 0); + SRCCOPY); } NtGdiSelectObject(hWallpaperDC, hOldBitmap); NtGdiDeleteDC(hWallpaperDC); diff --git a/reactos/subsys/win32k/ntuser/menu.c b/reactos/subsys/win32k/ntuser/menu.c index ff4128a71c6..33ee8d77787 100644 --- a/reactos/subsys/win32k/ntuser/menu.c +++ b/reactos/subsys/win32k/ntuser/menu.c @@ -322,7 +322,7 @@ IntCreateMenu(PHANDLE Handle, BOOL IsMenuBar) Menu->MenuInfo.dwStyle = 0; /* FIXME */ Menu->MenuInfo.cyMax = 0; /* default */ Menu->MenuInfo.hbrBack = - NtGdiCreateSolidBrush(RGB(192, 192, 192), 0); /* FIXME: default background color */ + NtGdiCreateSolidBrush(RGB(192, 192, 192)); /* FIXME: default background color */ Menu->MenuInfo.dwContextHelpID = 0; /* default */ Menu->MenuInfo.dwMenuData = 0; /* default */ Menu->MenuInfo.Self = *Handle; diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 4dfece994fa..524f39c41b3 100644 --- a/reactos/subsys/win32k/ntuser/painting.c +++ b/reactos/subsys/win32k/ntuser/painting.c @@ -1132,7 +1132,7 @@ UserScrollDC(HDC hDC, INT dx, INT dy, const RECT *lprcScroll, 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, 0, 0)) + SRCCOPY)) return FALSE; } else diff --git a/reactos/subsys/win32k/ntuser/winpos.c b/reactos/subsys/win32k/ntuser/winpos.c index 5d2ad61ac54..76ffe461329 100644 --- a/reactos/subsys/win32k/ntuser/winpos.c +++ b/reactos/subsys/win32k/ntuser/winpos.c @@ -1192,7 +1192,7 @@ co_WinPosSetWindowPos( 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, 0, 0); + CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY); UserReleaseDC(Window, Dc, FALSE); IntValidateParent(Window, CopyRgn); NtGdiOffsetRgn(CopyRgn, -NewWindowRect.left, -NewWindowRect.top); diff --git a/reactos/subsys/win32k/objects/bitmaps.c b/reactos/subsys/win32k/objects/bitmaps.c index a9f2718261e..1733f488ff9 100644 --- a/reactos/subsys/win32k/objects/bitmaps.c +++ b/reactos/subsys/win32k/objects/bitmaps.c @@ -41,9 +41,7 @@ NtGdiBitBlt( HDC hDCSrc, INT XSrc, INT YSrc, - DWORD ROP, - IN DWORD crBackColor, - IN FLONG fl) + DWORD ROP) { PDC DCDest = NULL; PDC DCSrc = NULL; @@ -459,7 +457,7 @@ NtGdiCreateBitmap( INT Height, UINT Planes, UINT BitsPixel, - IN OPTIONAL LPBYTE Bits) + CONST VOID *Bits) { BITMAP BM; @@ -469,7 +467,7 @@ NtGdiCreateBitmap( BM.bmWidthBytes = BITMAPOBJ_GetWidthBytes(Width, Planes * BitsPixel); BM.bmPlanes = Planes; BM.bmBitsPixel = BitsPixel; - BM.bmBits = Bits; + BM.bmBits = (LPVOID) Bits; return IntCreateBitmapIndirect(&BM); } @@ -714,7 +712,7 @@ NtGdiGetPixel(HDC hDC, INT XPos, INT YPos) { PBITMAPOBJ bmpobj; - NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY, 0, 0 ); + NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY ); NtGdiSelectObject ( hDCTmp, hBmpOld ); // our bitmap is no longer selected, so we can access it's stuff... @@ -758,8 +756,7 @@ NtGdiMaskBlt ( HDC hdcDest, INT nXDest, INT nYDest, INT nWidth, INT nHeight, HDC hdcSrc, INT nXSrc, INT nYSrc, HBITMAP hbmMask, - INT xMask, INT yMask, DWORD dwRop, - IN DWORD crBackColor) + INT xMask, INT yMask, DWORD dwRop) { HBITMAP hOldMaskBitmap, hBitmap2, hOldBitmap2, hBitmap3, hOldBitmap3; HDC hDCMask, hDC1, hDC2; @@ -896,7 +893,7 @@ NtGdiMaskBlt ( }; if (!hbmMask) - return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop), 0, 0); + return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop)); /* 1. make mask bitmap's dc */ hDCMask = NtGdiCreateCompatibleDC(hdcDest); @@ -910,9 +907,9 @@ NtGdiMaskBlt ( hOldBitmap2 = (HBITMAP)NtGdiSelectObject(hDC1, hBitmap2); /* 2.2 draw dest bitmap and mask */ - 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); + 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); /* 3. make masked Foreground bitmap */ @@ -922,13 +919,13 @@ NtGdiMaskBlt ( hOldBitmap3 = (HBITMAP)NtGdiSelectObject(hDC2, hBitmap3); /* 3.2 draw src bitmap and mask */ - 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); + 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); /* 4. combine two bitmap and copy it to hdcDest */ - NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT, 0, 0); - NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY, 0, 0); + NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT); + NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY); /* 5. restore all object */ NtGdiSelectObject(hDCMask, hOldMaskBitmap); @@ -946,20 +943,18 @@ NtGdiMaskBlt ( return TRUE; } -BOOL -APIENTRY +BOOL STDCALL NtGdiPlgBlt( - IN HDC hdcTrg, - IN LPPOINT pptlTrg, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN HBITMAP hbmMask, - IN INT xMask, - IN INT yMask, - IN DWORD crBackColor) + HDC hDCDest, + CONST POINT *Point, + HDC hDCSrc, + INT XSrc, + INT YSrc, + INT Width, + INT Height, + HBITMAP hMaskBitmap, + INT xMask, + INT yMask) { UNIMPLEMENTED; return FALSE; @@ -969,7 +964,7 @@ LONG STDCALL NtGdiSetBitmapBits( HBITMAP hBitmap, DWORD Bytes, - IN PBYTE Bits) + CONST VOID *Bits) { LONG height, ret; PBITMAPOBJ bmp; @@ -1077,7 +1072,7 @@ NtGdiSetPixelV( INT Y, COLORREF Color) { - HBRUSH NewBrush = NtGdiCreateSolidBrush(Color, NULL); + HBRUSH NewBrush = NtGdiCreateSolidBrush(Color); HGDIOBJ OldBrush; if (NewBrush == NULL) @@ -1106,8 +1101,7 @@ NtGdiStretchBlt( INT YOriginSrc, INT WidthSrc, INT HeightSrc, - DWORD ROP, - IN DWORD dwBackColor) + DWORD ROP) { PDC DCDest = NULL; PDC DCSrc = NULL; @@ -1329,17 +1323,16 @@ failed: BOOL STDCALL NtGdiAlphaBlend( HDC hDCDest, - LONG XOriginDest, - LONG YOriginDest, - LONG WidthDest, - LONG HeightDest, + INT XOriginDest, + INT YOriginDest, + INT WidthDest, + INT HeightDest, HDC hDCSrc, - LONG XOriginSrc, - LONG YOriginSrc, - LONG WidthSrc, - LONG HeightSrc, - BLENDFUNCTION BlendFunc, - IN HANDLE hcmXform) + INT XOriginSrc, + INT YOriginSrc, + INT WidthSrc, + INT HeightSrc, + BLENDFUNCTION BlendFunc) { PDC DCDest = NULL; PDC DCSrc = NULL; diff --git a/reactos/subsys/win32k/objects/brush.c b/reactos/subsys/win32k/objects/brush.c index 1e69f1e13b0..0c89d915288 100644 --- a/reactos/subsys/win32k/objects/brush.c +++ b/reactos/subsys/win32k/objects/brush.c @@ -318,7 +318,7 @@ IntGdiCreateHatchBrush( return 0; } - hPattern = NtGdiCreateBitmap(8, 8, 1, 1, (LPBYTE)HatchBrushes[Style]); + hPattern = NtGdiCreateBitmap(8, 8, 1, 1, HatchBrushes[Style]); if (hPattern == NULL) { SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY); @@ -557,12 +557,10 @@ IntGdiPolyPatBlt( HBRUSH STDCALL NtGdiCreateDIBBrush( - IN PVOID BitmapInfoAndData, - IN FLONG ColorSpec, - IN UINT BitmapInfoSize, - IN BOOL b8X8, - IN BOOL bPen, - IN PVOID PackedDIB) + CONST BITMAPINFO *BitmapInfoAndData, + UINT ColorSpec, + UINT BitmapInfoSize, + CONST VOID *PackedDIB) { BITMAPINFO *SafeBitmapInfoAndData; NTSTATUS Status = STATUS_SUCCESS; @@ -621,8 +619,7 @@ NtGdiCreatePatternBrush( } HBRUSH STDCALL -NtGdiCreateSolidBrush(COLORREF Color, - IN OPTIONAL HBRUSH hbr) +NtGdiCreateSolidBrush(COLORREF Color) { return IntGdiCreateSolidBrush(Color); } @@ -685,9 +682,9 @@ BOOL STDCALL NtGdiPolyPatBlt( HDC hDC, DWORD dwRop, - IN PPOLYPATBLT pRects, - IN DWORD cRects, - IN DWORD Mode) + PPATRECT pRects, + INT cRects, + ULONG Reserved) { PPATRECT rb = NULL; NTSTATUS Status = STATUS_SUCCESS; @@ -724,7 +721,7 @@ NtGdiPolyPatBlt( } } - Ret = IntGdiPolyPatBlt(hDC, dwRop, (PPATRECT)pRects, cRects, Mode); + Ret = IntGdiPolyPatBlt(hDC, dwRop, pRects, cRects, Reserved); if (cRects > 0) ExFreePool(rb); diff --git a/reactos/subsys/win32k/objects/dc.c b/reactos/subsys/win32k/objects/dc.c index 6dd08f62d8d..bdf409c5803 100644 --- a/reactos/subsys/win32k/objects/dc.c +++ b/reactos/subsys/win32k/objects/dc.c @@ -1137,25 +1137,21 @@ NtGdiDeleteDC(HDC DCHandle) return TRUE; } -INT -APIENTRY -NtGdiDrawEscape( - IN HDC hdc, - IN INT iEsc, - IN INT cjIn, - IN OPTIONAL LPSTR pjIn) +INT STDCALL +NtGdiDrawEscape(HDC hDC, + INT nEscape, + INT cbInput, + LPCSTR lpszInData) { UNIMPLEMENTED; return 0; } -ULONG -APIENTRY -NtGdiEnumObjects( - IN HDC hdc, - IN INT iObjectType, - IN ULONG cjBuf, - OUT OPTIONAL PVOID pvBuf) +INT STDCALL +NtGdiEnumObjects(HDC hDC, + INT ObjectType, + GOBJENUMPROC ObjectFunc, + LPARAM lParam) { UNIMPLEMENTED; return 0; @@ -1919,14 +1915,8 @@ DC_GET_VAL_EX( GetViewportOrgEx, vportOrgX, vportOrgY, POINT, x, y ) DC_GET_VAL_EX( GetWindowExtEx, wndExtX, wndExtY, SIZE, cx, cy ) DC_GET_VAL_EX( GetWindowOrgEx, wndOrgX, wndOrgY, POINT, x, y ) -BOOL -APIENTRY -NtGdiResetDC( - IN HDC hdc, - IN LPDEVMODEW pdm, - OUT PBOOL pbBanding, - IN OPTIONAL VOID *pDriverInfo2, - OUT VOID *ppUMdhpdev) +HDC STDCALL +NtGdiResetDC(HDC hDC, CONST DEVMODEW *InitData) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/dib.c b/reactos/subsys/win32k/objects/dib.c index 4f46e2b3c43..3d8137f9c2a 100644 --- a/reactos/subsys/win32k/objects/dib.c +++ b/reactos/subsys/win32k/objects/dib.c @@ -557,11 +557,11 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, /* 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, 0, 0); + SrcWidth, SrcHeight, hDC, XDest, YDest, ROP); else NtGdiStretchBlt(hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, SrcWidth, SrcHeight, hDC, XDest, YDest, DestWidth, DestHeight, - ROP, 0); + ROP); } NtGdiSetDIBits(hdcMem, hBitmap, 0, BitsInfo->bmiHeader.biHeight, Bits, @@ -572,11 +572,11 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, if (SrcWidth == DestWidth && SrcHeight == DestHeight) NtGdiBitBlt(hDC, XDest, YDest, DestWidth, DestHeight, hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, - ROP, 0, 0); + ROP); else NtGdiStretchBlt(hDC, XDest, YDest, DestWidth, DestHeight, hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, - SrcWidth, SrcHeight, ROP, 0); + SrcWidth, SrcHeight, ROP); NtGdiSelectObject(hdcMem, hOldBitmap); NtGdiDeleteDC(hdcMem); @@ -586,8 +586,8 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, } LONG STDCALL NtGdiGetBitmapBits(HBITMAP hBitmap, - ULONG Count, - OUT OPTIONAL PBYTE Bits) + LONG Count, + LPVOID Bits) { PBITMAPOBJ bmp; LONG height, ret; @@ -767,14 +767,11 @@ HBITMAP STDCALL NtGdiCreateDIBitmap(HDC hDc, const BITMAPINFOHEADER *Header, } HBITMAP STDCALL NtGdiCreateDIBSection(HDC hDC, - IN OPTIONAL HANDLE hSection, - IN DWORD dwOffset, - IN LPBITMAPINFO bmi, - DWORD Usage, - IN UINT cjHeader, - IN FLONG fl, - IN ULONG_PTR dwColorSpace, - PVOID *Bits) + CONST BITMAPINFO *bmi, + UINT Usage, + VOID *Bits, + HANDLE hSection, + DWORD dwOffset) { HBITMAP hbitmap = 0; DC *dc; diff --git a/reactos/subsys/win32k/objects/icm.c b/reactos/subsys/win32k/objects/icm.c index ae3008cba86..4286665a558 100644 --- a/reactos/subsys/win32k/objects/icm.c +++ b/reactos/subsys/win32k/objects/icm.c @@ -44,19 +44,17 @@ NtGdiColorMatchToTarget(HDC hDC, return FALSE; } -HANDLE -APIENTRY -NtGdiCreateColorSpace( - IN PLOGCOLORSPACEEXW pLogColorSpace) +HCOLORSPACE +STDCALL +NtGdiCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace) { UNIMPLEMENTED; return 0; } BOOL -APIENTRY -NtGdiDeleteColorSpace( - IN HANDLE hColorSpace) +STDCALL +NtGdiDeleteColorSpace(HCOLORSPACE hColorSpace) { UNIMPLEMENTED; return FALSE; @@ -114,10 +112,10 @@ NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace, return FALSE; } -BOOL +HCOLORSPACE STDCALL -NtGdiSetColorSpace(IN HDC hdc, - IN HCOLORSPACE hColorSpace) +NtGdiSetColorSpace(HDC hDC, + HCOLORSPACE hColorSpace) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/line.c b/reactos/subsys/win32k/objects/line.c index e2288a8457f..754a788d933 100644 --- a/reactos/subsys/win32k/objects/line.c +++ b/reactos/subsys/win32k/objects/line.c @@ -338,14 +338,13 @@ IntGdiPolyPolyline(DC *dc, /******************************************************************************/ BOOL -APIENTRY -NtGdiAngleArc( - IN HDC hdc, - IN INT x, - IN INT y, - IN DWORD dwRadius, - IN DWORD dwStartAngle, - IN DWORD dwSweepAngle) +STDCALL +NtGdiAngleArc(HDC hDC, + int X, + int Y, + DWORD Radius, + FLOAT StartAngle, + FLOAT SweepAngle) { UNIMPLEMENTED; return FALSE; @@ -726,12 +725,11 @@ NtGdiPolyBezierTo(HDC hDC, } BOOL -APIENTRY -NtGdiPolyDraw( - IN HDC hdc, - IN LPPOINT ppt, - IN LPBYTE pjAttr, - IN ULONG cpt) +STDCALL +NtGdiPolyDraw(HDC hDC, + CONST LPPOINT pt, + CONST LPBYTE Types, + int Count) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/objects/paint.c b/reactos/subsys/win32k/objects/paint.c index 692e348c87d..8a5131fef3a 100644 --- a/reactos/subsys/win32k/objects/paint.c +++ b/reactos/subsys/win32k/objects/paint.c @@ -47,23 +47,21 @@ NtGdiGdiSetBatchLimit(DWORD Limit) return 0; } -DWORD -APIENTRY -NtGdiGetBoundsRect( - IN HDC hdc, - OUT LPRECT prc, - IN DWORD f) +UINT +STDCALL +NtGdiGetBoundsRect(HDC hDC, + LPRECT Bounds, + UINT Flags) { DPRINT("stub"); return DCB_RESET; /* bounding rectangle always empty */ } -DWORD -APIENTRY -NtGdiSetBoundsRect( - IN HDC hdc, - IN LPRECT prc, - IN DWORD f) +UINT +STDCALL +NtGdiSetBoundsRect(HDC hDC, + CONST PRECT Bounds, + UINT Flags) { DPRINT("stub"); return DCB_DISABLE; /* bounding rectangle always empty */ diff --git a/reactos/subsys/win32k/objects/path.c b/reactos/subsys/win32k/objects/path.c index 734997189fb..e1dfe5db4fb 100644 --- a/reactos/subsys/win32k/objects/path.c +++ b/reactos/subsys/win32k/objects/path.c @@ -19,7 +19,7 @@ /* $Id$ */ #include -#include "math.h" +#include #define NDEBUG #include @@ -174,10 +174,9 @@ NtGdiFlattenPath(HDC hDC) BOOL -APIENTRY -NtGdiGetMiterLimit( - IN HDC hdc, - OUT PDWORD pdwOut) +STDCALL +NtGdiGetMiterLimit(HDC hDC, + PFLOAT Limit) { UNIMPLEMENTED; return FALSE; @@ -203,11 +202,10 @@ NtGdiPathToRegion(HDC hDC) } BOOL -APIENTRY -NtGdiSetMiterLimit( - IN HDC hdc, - IN DWORD dwNew, - IN OUT OPTIONAL PDWORD pdwOut) +STDCALL +NtGdiSetMiterLimit(HDC hDC, + FLOAT NewLimit, + PFLOAT OldLimit) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/objects/pen.c b/reactos/subsys/win32k/objects/pen.c index 298271fff30..c634f6d9f50 100644 --- a/reactos/subsys/win32k/objects/pen.c +++ b/reactos/subsys/win32k/objects/pen.c @@ -63,7 +63,7 @@ IntGdiCreatePenIndirect(PLOGPEN LogPen) case PS_ALTERNATE: PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; - PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternAlternate); + PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, wPatternAlternate); break; default: @@ -81,8 +81,7 @@ HPEN STDCALL NtGdiCreatePen( INT PenStyle, INT Width, - COLORREF Color, - IN HBRUSH hbr) + COLORREF Color) { LOGPEN LogPen; @@ -126,19 +125,11 @@ HPEN STDCALL NtGdiExtCreatePen( DWORD PenStyle, DWORD Width, - IN ULONG iBrushStyle, - IN ULONG ulColor, - IN ULONG_PTR lClientHatch, - IN ULONG_PTR lHatch, + CONST LOGBRUSH *LogBrush, DWORD StyleCount, - PULONG Style, - IN ULONG cjDIB, - IN BOOL bOldStylePen, - IN OPTIONAL HBRUSH hbrush) + CONST DWORD *Style) { /* NOTE: This is HACK! */ - DPRINT1("FIXME: FIX CALLERS FIRST!\n"); - KEBUGCHECK(0); LOGPEN LogPen; if (PenStyle & PS_USERSTYLE) @@ -146,7 +137,7 @@ NtGdiExtCreatePen( LogPen.lopnStyle = PenStyle & PS_STYLE_MASK; LogPen.lopnWidth.x = Width; - LogPen.lopnColor = ulColor; + LogPen.lopnColor = (LogBrush != NULL) ? LogBrush->lbColor : 0; return IntGdiCreatePenIndirect(&LogPen); } diff --git a/reactos/subsys/win32k/objects/print.c b/reactos/subsys/win32k/objects/print.c index 14b6287d84b..f9dc4817c16 100644 --- a/reactos/subsys/win32k/objects/print.c +++ b/reactos/subsys/win32k/objects/print.c @@ -148,13 +148,11 @@ INT STDCALL NtGdiExtEscape( HDC hDC, - IN OPTIONAL PWCHAR pDriver, - IN INT nDriver, INT Escape, INT InSize, - OPTIONAL LPSTR UnsafeInData, + LPCSTR UnsafeInData, INT OutSize, - OPTIONAL LPSTR UnsafeOutData) + LPSTR UnsafeOutData) { PDC pDC = DC_LockDc(hDC); LPVOID SafeInData = NULL; @@ -299,12 +297,9 @@ NtGdiSetAbortProc(HDC hDC, } INT -APIENTRY -NtGdiStartDoc( - IN HDC hdc, - IN DOCINFOW *pdi, - OUT BOOL *pbBanding, - IN INT iJob) +STDCALL +NtGdiStartDoc(HDC hDC, + CONST LPDOCINFOW di) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/region.c b/reactos/subsys/win32k/objects/region.c index 020789d09e3..b9763761de9 100644 --- a/reactos/subsys/win32k/objects/region.c +++ b/reactos/subsys/win32k/objects/region.c @@ -115,6 +115,7 @@ SOFTWARE. /* $Id$ */ #include +#include #define NDEBUG #include @@ -2249,9 +2250,9 @@ exit: HRGN STDCALL -NtGdiExtCreateRegion(OPTIONAL LPXFORM Xform, +NtGdiExtCreateRegion(CONST XFORM *Xform, DWORD Count, - LPRGNDATA RgnData) + CONST RGNDATA *RgnData) { HRGN hRgn; PROSRGNDATA Region; diff --git a/reactos/subsys/win32k/objects/text.c b/reactos/subsys/win32k/objects/text.c index 751e84e6cc0..ed02707e1f6 100644 --- a/reactos/subsys/win32k/objects/text.c +++ b/reactos/subsys/win32k/objects/text.c @@ -1554,7 +1554,7 @@ NtGdiExtTextOut( { goto fail; } - hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor), 0); + hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor)); if ( !hBrushFg ) { goto fail; @@ -1567,7 +1567,7 @@ NtGdiExtTextOut( IntGdiInitBrushInstance(&BrushFgInst, BrushFg, NULL); if ((fuOptions & ETO_OPAQUE) || dc->w.backgroundMode == OPAQUE) { - hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor), 0); + hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor)); if ( !hBrushBg ) { goto fail; @@ -2115,17 +2115,15 @@ NtGdiGetFontLanguageInfo(HDC hDC) return 0; } -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) +DWORD +STDCALL +NtGdiGetGlyphOutline(HDC hDC, + UINT Char, + UINT Format, + LPGLYPHMETRICS gm, + DWORD Bufsize, + LPVOID Buffer, + CONST LPMAT2 mat2) { UNIMPLEMENTED; return 0; @@ -2152,10 +2150,9 @@ NtGdiGetOutlineTextMetrics(HDC hDC, } BOOL -APIENTRY -NtGdiGetRasterizerCaps( - OUT LPRASTERIZER_STATUS praststat, - IN ULONG cjBytes) +STDCALL +NtGdiGetRasterizerCaps(LPRASTERIZER_STATUS rs, + UINT Size) { UNIMPLEMENTED; return FALSE; @@ -2169,12 +2166,11 @@ NtGdiGetTextCharset(HDC hDC) return 0; } -INT -APIENTRY -NtGdiGetTextCharsetInfo( - IN HDC hdc, - OUT OPTIONAL LPFONTSIGNATURE lpSig, - IN DWORD dwFlags) +UINT +STDCALL +NtGdiGetTextCharsetInfo(HDC hDC, + LPFONTSIGNATURE Sig, + DWORD Flags) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/wingl.c b/reactos/subsys/win32k/objects/wingl.c index ed8d79985cc..0fd56bc57d5 100644 --- a/reactos/subsys/win32k/objects/wingl.c +++ b/reactos/subsys/win32k/objects/wingl.c @@ -63,10 +63,10 @@ NtGdiGetPixelFormat(HDC hDC) } BOOL -APIENTRY -NtGdiSetPixelFormat( - IN HDC hdc, - IN INT ipfd) +STDCALL +NtGdiSetPixelFormat(HDC hDC, + INT PixelFormat, + CONST PPIXELFORMATDESCRIPTOR pfd) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/w32k.h b/reactos/subsys/win32k/w32k.h index 650d89b54b1..f42e0e25f56 100644 --- a/reactos/subsys/win32k/w32k.h +++ b/reactos/subsys/win32k/w32k.h @@ -8,13 +8,11 @@ /* INCLUDES ******************************************************************/ -#define _NO_COM - /* DDK/NDK/SDK Headers */ -#include #include #include -#include +#include +#include /* Win32 Headers */ /* FIXME: Defines in winbase.h that we need... */ @@ -27,7 +25,6 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; #include #include #include -#include #include #include @@ -43,13 +40,8 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; /* Probe and capture */ #include -/* Public Win32K Headers */ -#include -#include -#include -#include -#include -#include +/* External Win32K Header */ +#include /* Internal Win32K Header */ #include "include/win32k.h" diff --git a/reactos/tools/nci/w32ksvc.db b/reactos/tools/nci/w32ksvc.db index 06b1be2caaa..e0d9a772575 100644 --- a/reactos/tools/nci/w32ksvc.db +++ b/reactos/tools/nci/w32ksvc.db @@ -8,7 +8,7 @@ NtGdiAnimatePalette 4 NtGdiArc 9 NtGdiArcTo 9 NtGdiBeginPath 1 -NtGdiBitBlt 11 +NtGdiBitBlt 9 NtGdiCancelDC 1 NtGdiCheckColorsInGamut 4 NtGdiChord 9 @@ -27,8 +27,8 @@ NtGdiCreateCompatibleBitmap 3 NtGdiCreateCompatibleDC 1 NtGdiCreateDC 4 NtGdiCreateDIBitmap 6 -NtGdiCreateDIBBrush 6 -NtGdiCreateDIBSection 9 +NtGdiCreateDIBBrush 4 +NtGdiCreateDIBSection 6 NtGdiCreateDiscardableBitmap 3 NtGdiCreateEllipticRgn 4 NtGdiCreateEllipticRgnIndirect 1 @@ -49,7 +49,7 @@ NtGdiCreateRectRgn 4 NtGdiCreateRectRgnIndirect 1 NtGdiCreateRoundRectRgn 6 NtGdiCreateScalableFontResource 4 -NtGdiCreateSolidBrush 2 +NtGdiCreateSolidBrush 1 NtGdiDPtoLP 3 NtGdiDeleteColorSpace 1 NtGdiDeleteDC 1 @@ -124,7 +124,7 @@ NtGdiGetFontData 5 NtGdiGetFontFamilyInfo 4 NtGdiGetFontLanguageInfo 1 #NtGdiGetFontResourceInfo ? -NtGdiGetGlyphOutline 8 +NtGdiGetGlyphOutline 7 #NtGdiGetGlyphOutlineWow ? NtGdiGetGraphicsMode 1 NtGdiGetICMProfile 3 @@ -208,7 +208,7 @@ NtGdiRectInRegion 2 NtGdiRectVisible 2 NtGdiRectangle 5 NtGdiRemoveFontResource 1 -NtGdiResetDC 5 +NtGdiResetDC 2 NtGdiResizePalette 2 NtGdiRestoreDC 2 NtGdiRoundRect 7 @@ -264,9 +264,9 @@ NtGdiSetViewportOrgEx 4 NtGdiSetWindowExtEx 4 NtGdiSetWindowOrgEx 4 NtGdiSetWorldTransform 2 -NtGdiStartDoc 4 +NtGdiStartDoc 2 NtGdiStartPage 1 -NtGdiStretchBlt 12 +NtGdiStretchBlt 11 NtGdiStretchDIBits 13 NtGdiStrokeAndFillPath 1 NtGdiStrokePath 1 diff --git a/reactos/w32api/include/ntgdi.h b/reactos/w32api/include/ntgdi.h deleted file mode 100644 index 9fe7a42be2e..00000000000 --- a/reactos/w32api/include/ntgdi.h +++ /dev/null @@ -1,3624 +0,0 @@ -/* - * NtGdi Entrypoints - */ -#ifndef _NTGDI_ -#define _NTGDI_ - -#ifndef W32KAPI -#define W32KAPI DECLSPEC_ADDRSAFE -#endif - -#ifndef _WINDOWBLT_NOTIFICATION_ -#define _WINDOWBLT_NOTIFICATION_ -#endif - -#define TRACE_SURFACE_ALLOCS (DBG || 0) - -/* NtGdiGetLinkedUfis */ -#define FL_UFI_PRIVATEFONT 1 -#define FL_UFI_DESIGNVECTOR_PFF 2 -#define FL_UFI_MEMORYFONT 4 - -/* NtGdiSetIcmMode */ -#define ICM_SET_MODE 1 -#define ICM_SET_CALIBRATE_MODE 2 -#define ICM_SET_COLOR_MODE 3 -#define ICM_CHECK_COLOR_MODE 4 - -/* NtGdiCreateColorSpace */ -#define LCSEX_ANSICREATED 1 -#define LCSEX_TEMPPROFILE 2 - -/* NtGdiGetStats */ -#define GS_NUM_OBJS_ALL 0 -#define GS_HANDOBJ_CURRENT 1 -#define GS_HANDOBJ_MAX 2 -#define GS_HANDOBJ_ALLOC 3 -#define GS_LOOKASIDE_INFO 4 - -/* NtGdiQueryFonts */ -#define TYPE_ENUMFONTS 1 -#define TYPE_ENUMFONTFAMILIES 2 -#define TYPE_ENUMFONTFAMILIESEX 3 - -typedef enum _COLORPALETTEINFO -{ - ColorPaletteQuery, - ColorPaletteSet -} COLORPALETTEINFO, *PCOLORPALETTEINFO; - -/* NtGdiIcmBrushInfo */ -typedef enum _ICM_DIB_INFO_CMD -{ - IcmQueryBrush, - IcmSetBrush -} ICM_DIB_INFO, *PICM_DIB_INFO; - -/* NtGdiCreateColorSpace */ -typedef struct _LOGCOLORSPACEEXW -{ - LOGCOLORSPACEW lcsColorSpace; - DWORD dwFlags; -} LOGCOLORSPACEEXW, *PLOGCOLORSPACEEXW; - -typedef struct _POLYPATBLT POLYPATBLT, *PPOLYPATBLT; - -/* NtGdiAddRemoteMMInstanceToDC */ -typedef struct tagDOWNLOADDESIGNVECTOR -{ - UNIVERSAL_FONT_ID ufiBase; - DESIGNVECTOR dv; -} DOWNLOADDESIGNVECTOR; - -W32KAPI -BOOL -APIENTRY -NtGdiInit(); - -W32KAPI -INT -APIENTRY -NtGdiSetDIBitsToDeviceInternal( - IN HDC hdcDest, - IN INT xDst, - IN INT yDst, - IN DWORD cx, - IN DWORD cy, - IN INT xSrc, - IN INT ySrc, - IN DWORD iStartScan, - IN DWORD cNumScan, - IN LPBYTE pInitBits, - IN LPBITMAPINFO pbmi, - IN DWORD iUsage, - IN UINT cjMaxBits, - IN UINT cjMaxInfo, - IN BOOL bTransformCoordinates, - IN OPTIONAL HANDLE hcmXform -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetFontResourceInfoInternalW( - IN LPWSTR pwszFiles, - IN ULONG cwc, - IN ULONG cFiles, - IN UINT cjIn, - OUT LPDWORD pdwBytes, - OUT LPVOID pvBuf, - IN DWORD iType -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetGlyphIndicesW( - IN HDC hdc, - IN OPTIONAL LPWSTR pwc, - IN INT cwc, - OUT OPTIONAL LPWORD pgi, - IN DWORD iMode -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetGlyphIndicesWInternal( - IN HDC hdc, - IN OPTIONAL LPWSTR pwc, - IN INT cwc, - OUT OPTIONAL LPWORD pgi, - IN DWORD iMode, - IN BOOL bSubset -); - -W32KAPI -HPALETTE -APIENTRY -NtGdiCreatePaletteInternal( - IN LPLOGPALETTE pLogPal, - IN UINT cEntries -); - -W32KAPI -BOOL -APIENTRY -NtGdiArcInternal( - IN ARCTYPE arctype, - IN HDC hdc, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2, - IN INT x3, - IN INT y3, - IN INT x4, - IN INT y4 -); - -W32KAPI -INT -APIENTRY -NtGdiStretchDIBitsInternal( - IN HDC hdc, - IN INT xDst, - IN INT yDst, - IN INT cxDst, - IN INT cyDst, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN OPTIONAL LPBYTE pjInit, - IN LPBITMAPINFO pbmi, - IN DWORD dwUsage, - IN DWORD dwRop4, - IN UINT cjMaxInfo, - IN UINT cjMaxBits, - IN HANDLE hcmXform -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetOutlineTextMetricsInternalW( - IN HDC hdc, - IN ULONG cjotm, - OUT OPTIONAL OUTLINETEXTMETRICW *potmw, - OUT TMDIFF *ptmd -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetAndSetDCDword( - IN HDC hdc, - IN UINT u, - IN DWORD dwIn, - OUT DWORD *pdwResult -); - -W32KAPI -HANDLE -APIENTRY -NtGdiGetDCObject( - IN HDC hdc, - IN INT itype -); - -W32KAPI -HDC -APIENTRY -NtGdiGetDCforBitmap( - IN HBITMAP hsurf -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetMonitorID( - IN HDC hdc, - IN DWORD dwSize, - OUT LPWSTR pszMonitorID -); - -W32KAPI -INT -APIENTRY -NtGdiGetLinkedUFIs( - IN HDC hdc, - OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs, - IN INT BufferSize -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetLinkedUFIs( - IN HDC hdc, - IN PUNIVERSAL_FONT_ID pufiLinks, - IN ULONG uNumUFIs -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetUFI( - IN HDC hdc, - OUT PUNIVERSAL_FONT_ID pufi, - OUT OPTIONAL DESIGNVECTOR *pdv, - OUT ULONG *pcjDV, - OUT ULONG *pulBaseCheckSum, - OUT FLONG *pfl -); - -W32KAPI -BOOL -APIENTRY -NtGdiForceUFIMapping( - IN HDC hdc, - IN PUNIVERSAL_FONT_ID pufi -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetUFIPathname( - IN PUNIVERSAL_FONT_ID pufi, - OUT OPTIONAL ULONG* pcwc, - OUT OPTIONAL LPWSTR pwszPathname, - OUT OPTIONAL ULONG* pcNumFiles, - IN FLONG fl, - OUT OPTIONAL BOOL *pbMemFont, - OUT OPTIONAL ULONG *pcjView, - OUT OPTIONAL PVOID pvView, - OUT OPTIONAL BOOL *pbTTC, - OUT OPTIONAL ULONG *piTTC -); - -W32KAPI -BOOL -APIENTRY -NtGdiAddRemoteFontToDC( - IN HDC hdc, - IN PVOID pvBuffer, - IN ULONG cjBuffer, - IN OPTIONAL PUNIVERSAL_FONT_ID pufi -); - -W32KAPI -HANDLE -APIENTRY -NtGdiAddFontMemResourceEx( - IN PVOID pvBuffer, - IN DWORD cjBuffer, - IN DESIGNVECTOR *pdv, - IN ULONG cjDV, - OUT DWORD *pNumFonts -); - -W32KAPI -BOOL -APIENTRY -NtGdiRemoveFontMemResourceEx( - IN HANDLE hMMFont -); - -W32KAPI -BOOL -APIENTRY -NtGdiUnmapMemFont( - IN PVOID pvView -); - -W32KAPI -BOOL -APIENTRY -NtGdiRemoveMergeFont( - IN HDC hdc, - IN UNIVERSAL_FONT_ID *pufi -); - -W32KAPI -BOOL -APIENTRY -NtGdiAnyLinkedFonts( - VOID -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetEmbUFI( - IN HDC hdc, - OUT PUNIVERSAL_FONT_ID pufi, - OUT OPTIONAL DESIGNVECTOR *pdv, - OUT ULONG *pcjDV, - OUT ULONG *pulBaseCheckSum, - OUT FLONG *pfl, - OUT KERNEL_PVOID *embFontID -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetEmbedFonts( - VOID -); - -W32KAPI -BOOL -APIENTRY -NtGdiChangeGhostFont( - IN KERNEL_PVOID *pfontID, - IN BOOL bLoad -); - -W32KAPI -BOOL -APIENTRY -NtGdiAddEmbFontToDC( - IN HDC hdc, - IN VOID **pFontID -); - -W32KAPI -BOOL -APIENTRY -NtGdiFontIsLinked( - IN HDC hdc -); - -W32KAPI -ULONG_PTR -APIENTRY -NtGdiPolyPolyDraw( - IN HDC hdc, - IN PPOINT ppt, - IN PULONG pcpt, - IN ULONG ccpt, - IN INT iFunc -); - -W32KAPI -LONG -APIENTRY -NtGdiDoPalette( - IN HPALETTE hpal, - IN WORD iStart, - IN WORD cEntries, - IN PALETTEENTRY *pPalEntries, - IN DWORD iFunc, - IN BOOL bInbound -); - -W32KAPI -BOOL -APIENTRY -NtGdiComputeXformCoefficients( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetWidthTable( - IN HDC hdc, - IN ULONG cSpecial, - IN WCHAR *pwc, - IN ULONG cwc, - OUT USHORT *psWidth, - OUT OPTIONAL WIDTHDATA *pwd, - OUT FLONG *pflInfo -); - -W32KAPI -INT -APIENTRY -NtGdiDescribePixelFormat( - IN HDC hdc, - IN INT ipfd, - IN UINT cjpfd, - OUT PPIXELFORMATDESCRIPTOR ppfd -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetPixelFormat( - IN HDC hdc, - IN INT ipfd -); - -W32KAPI -BOOL -APIENTRY -NtGdiSwapBuffers( - IN HDC hdc -); - -W32KAPI -INT -APIENTRY -NtGdiSetupPublicCFONT( - IN HDC hdc, - IN OPTIONAL HFONT hf, - IN ULONG ulAve -); - -W32KAPI -DWORD -APIENTRY -NtGdiDxgGenericThunk( - IN ULONG_PTR ulIndex, - IN ULONG_PTR ulHandle, - IN OUT SIZE_T *pdwSizeOfPtr1, - IN OUT PVOID pvPtr1, - IN OUT SIZE_T *pdwSizeOfPtr2, - IN OUT PVOID pvPtr2 -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdAddAttachedSurface( - IN HANDLE hSurface, - IN HANDLE hSurfaceAttached, - IN OUT PDD_ADDATTACHEDSURFACEDATA puAddAttachedSurfaceData -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdAttachSurface( - IN HANDLE hSurfaceFrom, - IN HANDLE hSurfaceTo -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdBlt( - IN HANDLE hSurfaceDest, - IN HANDLE hSurfaceSrc, - IN OUT PDD_BLTDATA puBltData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdCanCreateSurface( - IN HANDLE hDirectDraw, - IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdColorControl( - IN HANDLE hSurface, - IN OUT PDD_COLORCONTROLDATA puColorControlData -); - -W32KAPI -HANDLE -APIENTRY -NtGdiDdCreateDirectDrawObject( - IN HDC hdc -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdCreateSurface( - IN HANDLE hDirectDraw, - IN HANDLE* hSurface, - IN OUT DDSURFACEDESC* puSurfaceDescription, - IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData, - IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData, - IN OUT DD_SURFACE_MORE* puSurfaceMoreData, - IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData, - OUT HANDLE* puhSurface -); - -W32KAPI -HANDLE -APIENTRY -NtGdiDdCreateSurfaceObject( - IN HANDLE hDirectDrawLocal, - IN HANDLE hSurface, - IN PDD_SURFACE_LOCAL puSurfaceLocal, - IN PDD_SURFACE_MORE puSurfaceMore, - IN PDD_SURFACE_GLOBAL puSurfaceGlobal, - IN BOOL bComplete -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdDeleteSurfaceObject( - IN HANDLE hSurface -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdDeleteDirectDrawObject( - IN HANDLE hDirectDrawLocal -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdDestroySurface( - IN HANDLE hSurface, - IN BOOL bRealDestroy -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdFlip( - IN HANDLE hSurfaceCurrent, - IN HANDLE hSurfaceTarget, - IN HANDLE hSurfaceCurrentLeft, - IN HANDLE hSurfaceTargetLeft, - IN OUT PDD_FLIPDATA puFlipData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetAvailDriverMemory( - IN HANDLE hDirectDraw, - IN OUT PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetBltStatus( - IN HANDLE hSurface, - IN OUT PDD_GETBLTSTATUSDATA puGetBltStatusData -); - -W32KAPI -HDC -APIENTRY -NtGdiDdGetDC( - IN HANDLE hSurface, - IN PALETTEENTRY* puColorTable -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetDriverInfo( - IN HANDLE hDirectDraw, - IN OUT PDD_GETDRIVERINFODATA puGetDriverInfoData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetFlipStatus( - IN HANDLE hSurface, - IN OUT PDD_GETFLIPSTATUSDATA puGetFlipStatusData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetScanLine( - IN HANDLE hDirectDraw, - IN OUT PDD_GETSCANLINEDATA puGetScanLineData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdSetExclusiveMode( - IN HANDLE hDirectDraw, - IN OUT PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdFlipToGDISurface( - IN HANDLE hDirectDraw, - IN OUT PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdLock( - IN HANDLE hSurface, - IN OUT PDD_LOCKDATA puLockData, - IN HDC hdcClip -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdQueryDirectDrawObject( - IN HANDLE hDirectDrawLocal, - OUT PDD_HALINFO pHalInfo, - OUT DWORD* pCallBackFlags, - OUT OPTIONAL LPD3DNTHAL_CALLBACKS puD3dCallbacks, - OUT OPTIONAL LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData, - OUT OPTIONAL PDD_D3DBUFCALLBACKS puD3dBufferCallbacks, - OUT OPTIONAL LPDDSURFACEDESC puD3dTextureFormats, - OUT DWORD* puNumHeaps, - OUT OPTIONAL VIDEOMEMORY* puvmList, - OUT DWORD* puNumFourCC, - OUT OPTIONAL DWORD* puFourCC -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdReenableDirectDrawObject( - IN HANDLE hDirectDrawLocal, - IN OUT BOOL* pubNewMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdReleaseDC( - IN HANDLE hSurface -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdResetVisrgn( - IN HANDLE hSurface, - IN HWND hwnd -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdSetColorKey( - IN HANDLE hSurface, - IN OUT PDD_SETCOLORKEYDATA puSetColorKeyData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdSetOverlayPosition( - IN HANDLE hSurfaceSource, - IN HANDLE hSurfaceDestination, - IN OUT PDD_SETOVERLAYPOSITIONDATA puSetOverlayPositionData -); - -W32KAPI -VOID -APIENTRY -NtGdiDdUnattachSurface( - IN HANDLE hSurface, - IN HANDLE hSurfaceAttached -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdUnlock( - IN HANDLE hSurface, - IN OUT PDD_UNLOCKDATA puUnlockData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdUpdateOverlay( - IN HANDLE hSurfaceDestination, - IN HANDLE hSurfaceSource, - IN OUT PDD_UPDATEOVERLAYDATA puUpdateOverlayData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdWaitForVerticalBlank( - IN HANDLE hDirectDraw, - IN OUT PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData -); - -W32KAPI -HANDLE -APIENTRY -NtGdiDdGetDxHandle( - IN OPTIONAL HANDLE hDirectDraw, - IN OPTIONAL HANDLE hSurface, - IN BOOL bRelease -); - -W32KAPI -BOOL -APIENTRY -NtGdiDdSetGammaRamp( - IN HANDLE hDirectDraw, - IN HDC hdc, - IN LPVOID lpGammaRamp -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdLockD3D( - IN HANDLE hSurface, - IN OUT PDD_LOCKDATA puLockData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdUnlockD3D( - IN HANDLE hSurface, - IN OUT PDD_UNLOCKDATA puUnlockData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdCreateD3DBuffer( - IN HANDLE hDirectDraw, - IN OUT HANDLE* hSurface, - IN OUT DDSURFACEDESC* puSurfaceDescription, - IN OUT DD_SURFACE_GLOBAL* puSurfaceGlobalData, - IN OUT DD_SURFACE_LOCAL* puSurfaceLocalData, - IN OUT DD_SURFACE_MORE* puSurfaceMoreData, - IN OUT DD_CREATESURFACEDATA* puCreateSurfaceData, - IN OUT HANDLE* puhSurface -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdCanCreateD3DBuffer( - IN HANDLE hDirectDraw, - IN OUT PDD_CANCREATESURFACEDATA puCanCreateSurfaceData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdDestroyD3DBuffer( - IN HANDLE hSurface -); - -W32KAPI -DWORD -APIENTRY -NtGdiD3dContextCreate( - IN HANDLE hDirectDrawLocal, - IN HANDLE hSurfColor, - IN HANDLE hSurfZ, - IN OUT D3DNTHAL_CONTEXTCREATEI *pdcci -); - -W32KAPI -DWORD -APIENTRY -NtGdiD3dContextDestroy( - IN LPD3DNTHAL_CONTEXTDESTROYDATA pdcdd -); - -W32KAPI -DWORD -APIENTRY -NtGdiD3dContextDestroyAll( - OUT LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcdad -); - -W32KAPI -DWORD -APIENTRY -NtGdiD3dValidateTextureStageState( - IN OUT LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA pData -); - -W32KAPI -DWORD -APIENTRY -NtGdiD3dDrawPrimitives2( - IN HANDLE hCmdBuf, - IN HANDLE hVBuf, - IN OUT LPD3DNTHAL_DRAWPRIMITIVES2DATA pded, - IN OUT FLATPTR* pfpVidMemCmd, - IN OUT DWORD* pdwSizeCmd, - IN OUT FLATPTR* pfpVidMemVtx, - IN OUT DWORD* pdwSizeVtx -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetDriverState( - IN OUT PDD_GETDRIVERSTATEDATA pdata -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdCreateSurfaceEx( - IN HANDLE hDirectDraw, - IN HANDLE hSurface, - IN DWORD dwSurfaceHandle -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpCanCreateVideoPort( - IN HANDLE hDirectDraw, - IN OUT PDD_CANCREATEVPORTDATA puCanCreateVPortData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpColorControl( - IN HANDLE hVideoPort, - IN OUT PDD_VPORTCOLORDATA puVPortColorData -); - -W32KAPI -HANDLE -APIENTRY -NtGdiDvpCreateVideoPort( - IN HANDLE hDirectDraw, - IN OUT PDD_CREATEVPORTDATA puCreateVPortData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpDestroyVideoPort( - IN HANDLE hVideoPort, - IN OUT PDD_DESTROYVPORTDATA puDestroyVPortData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpFlipVideoPort( - IN HANDLE hVideoPort, - IN HANDLE hDDSurfaceCurrent, - IN HANDLE hDDSurfaceTarget, - IN OUT PDD_FLIPVPORTDATA puFlipVPortData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortBandwidth( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortField( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTFIELDDATA puGetVPortFieldData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortFlipStatus( - IN HANDLE hDirectDraw, - IN OUT PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortInputFormats( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortLine( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTLINEDATA puGetVPortLineData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortOutputFormats( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoPortConnectInfo( - IN HANDLE hDirectDraw, - IN OUT PDD_GETVPORTCONNECTDATA puGetVPortConnectData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpGetVideoSignalStatus( - IN HANDLE hVideoPort, - IN OUT PDD_GETVPORTSIGNALDATA puGetVPortSignalData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpUpdateVideoPort( - IN HANDLE hVideoPort, - IN HANDLE* phSurfaceVideo, - IN HANDLE* phSurfaceVbi, - IN OUT PDD_UPDATEVPORTDATA puUpdateVPortData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpWaitForVideoPortSync( - IN HANDLE hVideoPort, - IN OUT PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpAcquireNotification( - IN HANDLE hVideoPort, - IN OUT HANDLE* hEvent, - IN LPDDVIDEOPORTNOTIFY pNotify -); - -W32KAPI -DWORD -APIENTRY -NtGdiDvpReleaseNotification( - IN HANDLE hVideoPort, - IN HANDLE hEvent -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetMoCompGuids( - IN HANDLE hDirectDraw, - IN OUT PDD_GETMOCOMPGUIDSDATA puGetMoCompGuidsData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetMoCompFormats( - IN HANDLE hDirectDraw, - IN OUT PDD_GETMOCOMPFORMATSDATA puGetMoCompFormatsData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetMoCompBuffInfo( - IN HANDLE hDirectDraw, - IN OUT PDD_GETMOCOMPCOMPBUFFDATA puGetBuffData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdGetInternalMoCompInfo( - IN HANDLE hDirectDraw, - IN OUT PDD_GETINTERNALMOCOMPDATA puGetInternalData -); - -W32KAPI -HANDLE -APIENTRY -NtGdiDdCreateMoComp( - IN HANDLE hDirectDraw, - IN OUT PDD_CREATEMOCOMPDATA puCreateMoCompData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdDestroyMoComp( - IN HANDLE hMoComp, - IN OUT PDD_DESTROYMOCOMPDATA puDestroyMoCompData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdBeginMoCompFrame( - IN HANDLE hMoComp, - IN OUT PDD_BEGINMOCOMPFRAMEDATA puBeginFrameData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdEndMoCompFrame( - IN HANDLE hMoComp, - IN OUT PDD_ENDMOCOMPFRAMEDATA puEndFrameData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdRenderMoComp( - IN HANDLE hMoComp, - IN OUT PDD_RENDERMOCOMPDATA puRenderMoCompData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdQueryMoCompStatus( - IN HANDLE hMoComp, - IN OUT PDD_QUERYMOCOMPSTATUSDATA puQueryMoCompStatusData -); - -W32KAPI -DWORD -APIENTRY -NtGdiDdAlphaBlt( - IN HANDLE hSurfaceDest, - IN OPTIONAL HANDLE hSurfaceSrc, - IN OUT PDD_BLTDATA puBltData -); - -W32KAPI -BOOL -APIENTRY -NtGdiAlphaBlend( - IN HDC hdcDst, - IN LONG DstX, - IN LONG DstY, - IN LONG DstCx, - IN LONG DstCy, - IN HDC hdcSrc, - IN LONG SrcX, - IN LONG SrcY, - IN LONG SrcCx, - IN LONG SrcCy, - IN BLENDFUNCTION BlendFunction, - IN HANDLE hcmXform -); - -W32KAPI -BOOL -APIENTRY -NtGdiGradientFill( - IN HDC hdc, - IN PTRIVERTEX pVertex, - IN ULONG nVertex, - IN PVOID pMesh, - IN ULONG nMesh, - IN ULONG ulMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetIcmMode( - IN HDC hdc, - IN ULONG nCommand, - IN ULONG ulMode -); - -W32KAPI -HANDLE -APIENTRY -NtGdiCreateColorSpace( - IN PLOGCOLORSPACEEXW pLogColorSpace -); - -W32KAPI -BOOL -APIENTRY -NtGdiDeleteColorSpace( - IN HANDLE hColorSpace -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetColorSpace( - IN HDC hdc, - IN HCOLORSPACE hColorSpace -); - -W32KAPI -HANDLE -APIENTRY -NtGdiCreateColorTransform( - IN HDC hdc, - IN LPLOGCOLORSPACEW pLogColorSpaceW, - IN OPTIONAL PVOID pvSrcProfile, - IN ULONG cjSrcProfile, - IN OPTIONAL PVOID pvDestProfile, - IN ULONG cjDestProfile, - IN OPTIONAL PVOID pvTargetProfile, - IN ULONG cjTargetProfile -); - -W32KAPI -BOOL -APIENTRY -NtGdiDeleteColorTransform( - IN HDC hdc, - IN HANDLE hColorTransform -); - -W32KAPI -BOOL -APIENTRY -NtGdiCheckBitmapBits( - IN HDC hdc, - IN HANDLE hColorTransform, - IN PVOID pvBits, - IN ULONG bmFormat, - IN DWORD dwWidth, - IN DWORD dwHeight, - IN DWORD dwStride, - OUT PBYTE paResults -); - -W32KAPI -ULONG -APIENTRY -NtGdiColorCorrectPalette( - IN HDC hdc, - IN HPALETTE hpal, - IN ULONG FirstEntry, - IN ULONG NumberOfEntries, - IN OUT PALETTEENTRY *ppalEntry, - IN ULONG Command -); - -W32KAPI -ULONG_PTR -APIENTRY -NtGdiGetColorSpaceforBitmap( - IN HBITMAP hsurf -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetDeviceGammaRamp( - IN HDC hdc, - OUT LPVOID lpGammaRamp -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetDeviceGammaRamp( - IN HDC hdc, - IN LPVOID lpGammaRamp -); - -W32KAPI -BOOL -APIENTRY -NtGdiIcmBrushInfo( - IN HDC hdc, - IN HBRUSH hbrush, - IN OUT PBITMAPINFO pbmiDIB, - IN OUT PVOID pvBits, - IN OUT ULONG *pulBits, - OUT OPTIONAL DWORD *piUsage, - OUT OPTIONAL BOOL *pbAlreadyTran, - IN ULONG Command -); - -W32KAPI -VOID -APIENTRY -NtGdiFlush(); - -W32KAPI -HDC -APIENTRY -NtGdiCreateMetafileDC( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiMakeInfoDC( - IN HDC hdc, - IN BOOL bSet -); - -W32KAPI -HANDLE -APIENTRY -NtGdiCreateClientObj( - IN ULONG ulType -); - -W32KAPI -BOOL -APIENTRY -NtGdiDeleteClientObj( - IN HANDLE h -); - -W32KAPI -LONG -APIENTRY -NtGdiGetBitmapBits( - IN HBITMAP hbm, - IN ULONG cjMax, - OUT OPTIONAL PBYTE pjOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiDeleteObjectApp( - IN HANDLE hobj -); - -W32KAPI -INT -APIENTRY -NtGdiGetPath( - IN HDC hdc, - OUT OPTIONAL LPPOINT pptlBuf, - OUT OPTIONAL LPBYTE pjTypes, - IN INT cptBuf -); - -W32KAPI -HDC -APIENTRY -NtGdiCreateCompatibleDC( - IN HDC hdc -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiCreateDIBitmapInternal( - IN HDC hdc, - IN INT cx, - IN INT cy, - IN DWORD fInit, - IN OPTIONAL LPBYTE pjInit, - IN OPTIONAL LPBITMAPINFO pbmi, - IN DWORD iUsage, - IN UINT cjMaxInitInfo, - IN UINT cjMaxBits, - IN FLONG f, - IN HANDLE hcmXform -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiCreateDIBSection( - IN HDC hdc, - IN OPTIONAL HANDLE hSectionApp, - IN DWORD dwOffset, - IN LPBITMAPINFO pbmi, - IN DWORD iUsage, - IN UINT cjHeader, - IN FLONG fl, - IN ULONG_PTR dwColorSpace, - OUT PVOID *ppvBits -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiCreateSolidBrush( - IN COLORREF cr, - IN OPTIONAL HBRUSH hbr -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiCreateDIBBrush( - IN PVOID pv, - IN FLONG fl, - IN UINT cj, - IN BOOL b8X8, - IN BOOL bPen, - IN PVOID pClient -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiCreatePatternBrushInternal( - IN HBITMAP hbm, - IN BOOL bPen, - IN BOOL b8X8 -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiCreateHatchBrushInternal( - IN ULONG ulStyle, - IN COLORREF clrr, - IN BOOL bPen -); - -W32KAPI -HPEN -APIENTRY -NtGdiExtCreatePen( - IN ULONG flPenStyle, - IN ULONG ulWidth, - IN ULONG iBrushStyle, - IN ULONG ulColor, - IN ULONG_PTR lClientHatch, - IN ULONG_PTR lHatch, - IN ULONG cstyle, - IN OPTIONAL PULONG pulStyle, - IN ULONG cjDIB, - IN BOOL bOldStylePen, - IN OPTIONAL HBRUSH hbrush -); - -W32KAPI -HRGN -APIENTRY -NtGdiCreateEllipticRgn( - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -HRGN -APIENTRY -NtGdiCreateRoundRectRgn( - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom, - IN INT xWidth, - IN INT yHeight -); - -W32KAPI -HANDLE -APIENTRY -NtGdiCreateServerMetaFile( - IN DWORD iType, - IN ULONG cjData, - IN LPBYTE pjData, - IN DWORD mm, - IN DWORD xExt, - IN DWORD yExt -); - -W32KAPI -HRGN -APIENTRY -NtGdiExtCreateRegion( - IN OPTIONAL LPXFORM px, - IN DWORD cj, - IN LPRGNDATA prgn -); - -W32KAPI -ULONG -APIENTRY -NtGdiMakeFontDir( - IN FLONG flEmbed, - OUT PBYTE pjFontDir, - IN unsigned cjFontDir, - IN LPWSTR pwszPathname, - IN unsigned cjPathname -); - -W32KAPI -BOOL -APIENTRY -NtGdiPolyDraw( - IN HDC hdc, - IN LPPOINT ppt, - IN LPBYTE pjAttr, - IN ULONG cpt -); - -W32KAPI -BOOL -APIENTRY -NtGdiPolyTextOutW( - IN HDC hdc, - IN POLYTEXTW *pptw, - IN UINT cStr, - IN DWORD dwCodePage -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetServerMetaFileBits( - IN HANDLE hmo, - IN ULONG cjData, - OUT OPTIONAL LPBYTE pjData, - OUT PDWORD piType, - OUT PDWORD pmm, - OUT PDWORD pxExt, - OUT PDWORD pyExt -); - -W32KAPI -BOOL -APIENTRY -NtGdiEqualRgn( - IN HRGN hrgn1, - IN HRGN hrgn2 -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetBitmapDimension( - IN HBITMAP hbm, - OUT LPSIZE psize -); - -W32KAPI -UINT -APIENTRY -NtGdiGetNearestPaletteIndex( - IN HPALETTE hpal, - IN COLORREF crColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiPtVisible( - IN HDC hdc, - IN INT x, - IN INT y -); - -W32KAPI -BOOL -APIENTRY -NtGdiRectVisible( - IN HDC hdc, - IN LPRECT prc -); - -W32KAPI -BOOL -APIENTRY -NtGdiRemoveFontResourceW( - IN WCHAR *pwszFiles, - IN ULONG cwc, - IN ULONG cFiles, - IN ULONG fl, - IN DWORD dwPidTid, - IN OPTIONAL DESIGNVECTOR *pdv -); - -W32KAPI -BOOL -APIENTRY -NtGdiResizePalette( - IN HPALETTE hpal, - IN UINT cEntry -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetBitmapDimension( - IN HBITMAP hbm, - IN INT cx, - IN INT cy, - OUT OPTIONAL LPSIZE psizeOut -); - -W32KAPI -INT -APIENTRY -NtGdiOffsetClipRgn( - IN HDC hdc, - IN INT x, - IN INT y -); - -W32KAPI -INT -APIENTRY -NtGdiSetMetaRgn( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetTextJustification( - IN HDC hdc, - IN INT lBreakExtra, - IN INT cBreak -); - -W32KAPI -INT -APIENTRY -NtGdiGetAppClipBox( - IN HDC hdc, - OUT LPRECT prc -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetTextExtentExW( - IN HDC hdc, - IN OPTIONAL LPWSTR lpwsz, - IN ULONG cwc, - IN ULONG dxMax, - OUT OPTIONAL ULONG *pcCh, - OUT OPTIONAL PULONG pdxOut, - OUT LPSIZE psize, - IN FLONG fl -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetCharABCWidthsW( - IN HDC hdc, - IN UINT wchFirst, - IN ULONG cwch, - IN OPTIONAL PWCHAR pwch, - IN FLONG fl, - OUT PVOID pvBuf -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetCharacterPlacementW( - IN HDC hdc, - IN LPWSTR pwsz, - IN INT nCount, - IN INT nMaxExtent, - IN OUT LPGCP_RESULTSW pgcpw, - IN DWORD dwFlags -); - -W32KAPI -BOOL -APIENTRY -NtGdiAngleArc( - IN HDC hdc, - IN INT x, - IN INT y, - IN DWORD dwRadius, - IN DWORD dwStartAngle, - IN DWORD dwSweepAngle -); - -W32KAPI -BOOL -APIENTRY -NtGdiBeginPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiSelectClipPath( - IN HDC hdc, - IN INT iMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiCloseFigure( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiEndPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiAbortPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiFillPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiStrokeAndFillPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiStrokePath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiWidenPath( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiFlattenPath( - IN HDC hdc -); - -W32KAPI -HRGN -APIENTRY -NtGdiPathToRegion( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetMiterLimit( - IN HDC hdc, - IN DWORD dwNew, - IN OUT OPTIONAL PDWORD pdwOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetFontXform( - IN HDC hdc, - IN DWORD dwxScale, - IN DWORD dwyScale -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetMiterLimit( - IN HDC hdc, - OUT PDWORD pdwOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiEllipse( - IN HDC hdc, - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -BOOL -APIENTRY -NtGdiRectangle( - IN HDC hdc, - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -BOOL -APIENTRY -NtGdiRoundRect( - IN HDC hdc, - IN INT x1, - IN INT y1, - IN INT x2, - IN INT y2, - IN INT x3, - IN INT y3 -); - -W32KAPI -BOOL -APIENTRY -NtGdiPlgBlt( - IN HDC hdcTrg, - IN LPPOINT pptlTrg, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN HBITMAP hbmMask, - IN INT xMask, - IN INT yMask, - IN DWORD crBackColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiMaskBlt( - IN HDC hdc, - IN INT xDst, - IN INT yDst, - IN INT cx, - IN INT cy, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN HBITMAP hbmMask, - IN INT xMask, - IN INT yMask, - IN DWORD dwRop4, - IN DWORD crBackColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiExtFloodFill( - IN HDC hdc, - IN INT x, - IN INT y, - IN COLORREF crColor, - IN UINT iFillType -); - -W32KAPI -BOOL -APIENTRY -NtGdiFillRgn( - IN HDC hdc, - IN HRGN hrgn, - IN HBRUSH hbrush -); - -W32KAPI -BOOL -APIENTRY -NtGdiFrameRgn( - IN HDC hdc, - IN HRGN hrgn, - IN HBRUSH hbrush, - IN INT xWidth, - IN INT yHeight -); - -W32KAPI -COLORREF -APIENTRY -NtGdiSetPixel( - IN HDC hdcDst, - IN INT x, - IN INT y, - IN COLORREF crColor -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetPixel( - IN HDC hdc, - IN INT x, - IN INT y -); - -W32KAPI -BOOL -APIENTRY -NtGdiStartPage( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiEndPage( - IN HDC hdc -); - -W32KAPI -INT -APIENTRY -NtGdiStartDoc( - IN HDC hdc, - IN DOCINFOW *pdi, - OUT BOOL *pbBanding, - IN INT iJob -); - -W32KAPI -BOOL -APIENTRY -NtGdiEndDoc( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiAbortDoc( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiUpdateColors( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetCharWidthW( - IN HDC hdc, - IN UINT wcFirst, - IN UINT cwc, - IN OPTIONAL PWCHAR pwc, - IN FLONG fl, - OUT PVOID pvBuf -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetCharWidthInfo( - IN HDC hdc, - OUT PCHWIDTHINFO pChWidthInfo -); - -W32KAPI -INT -APIENTRY -NtGdiDrawEscape( - IN HDC hdc, - IN INT iEsc, - IN INT cjIn, - IN OPTIONAL LPSTR pjIn -); - -W32KAPI -INT -APIENTRY -NtGdiExtEscape( - IN HDC hdc, - IN OPTIONAL PWCHAR pDriver, - IN INT nDriver, - IN INT iEsc, - IN INT cjIn, - IN OPTIONAL LPSTR pjIn, - IN INT cjOut, - OUT OPTIONAL LPSTR pjOut -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetFontData( - IN HDC hdc, - IN DWORD dwTable, - IN DWORD dwOffset, - OUT OPTIONAL PVOID pvBuf, - IN ULONG cjBuf -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetGlyphOutline( - IN HDC hdc, - IN WCHAR wch, - IN UINT iFormat, - OUT LPGLYPHMETRICS pgm, - IN ULONG cjBuf, - OUT OPTIONAL PVOID pvBuf, - IN LPMAT2 pmat2, - IN BOOL bIgnoreRotation -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetETM( - IN HDC hdc, - OUT EXTTEXTMETRIC *petm -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetRasterizerCaps( - OUT LPRASTERIZER_STATUS praststat, - IN ULONG cjBytes -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetKerningPairs( - IN HDC hdc, - IN ULONG cPairs, - OUT OPTIONAL KERNINGPAIR *pkpDst -); - -W32KAPI -BOOL -APIENTRY -NtGdiMonoBitmap( - IN HBITMAP hbm -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiGetObjectBitmapHandle( - IN HBRUSH hbr, - OUT UINT *piUsage -); - -W32KAPI -ULONG -APIENTRY -NtGdiEnumObjects( - IN HDC hdc, - IN INT iObjectType, - IN ULONG cjBuf, - OUT OPTIONAL PVOID pvBuf -); - -W32KAPI -BOOL -APIENTRY -NtGdiResetDC( - IN HDC hdc, - IN LPDEVMODEW pdm, - OUT PBOOL pbBanding, - IN OPTIONAL VOID *pDriverInfo2, - OUT VOID *ppUMdhpdev -); - -W32KAPI -DWORD -APIENTRY -NtGdiSetBoundsRect( - IN HDC hdc, - IN LPRECT prc, - IN DWORD f -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetColorAdjustment( - IN HDC hdc, - OUT PCOLORADJUSTMENT pcaOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetColorAdjustment( - IN HDC hdc, - IN PCOLORADJUSTMENT pca -); - -W32KAPI -BOOL -APIENTRY -NtGdiCancelDC( - IN HDC hdc -); - -W32KAPI -HDC -APIENTRY -NtGdiOpenDCW( - IN OPTIONAL PUNICODE_STRING pustrDevice, - IN DEVMODEW *pdm, - IN PUNICODE_STRING pustrLogAddr, - IN ULONG iType, - IN OPTIONAL HANDLE hspool, - IN OPTIONAL VOID *pDriverInfo2, - OUT VOID *pUMdhpdev -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetDCDword( - IN HDC hdc, - IN UINT u, - OUT DWORD *Result -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetDCPoint( - IN HDC hdc, - IN UINT iPoint, - OUT PPOINTL pptOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiScaleViewportExtEx( - IN HDC hdc, - IN INT xNum, - IN INT xDenom, - IN INT yNum, - IN INT yDenom, - OUT OPTIONAL LPSIZE pszOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiScaleWindowExtEx( - IN HDC hdc, - IN INT xNum, - IN INT xDenom, - IN INT yNum, - IN INT yDenom, - OUT OPTIONAL LPSIZE pszOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetVirtualResolution( - IN HDC hdc, - IN INT cxVirtualDevicePixel, - IN INT cyVirtualDevicePixel, - IN INT cxVirtualDeviceMm, - IN INT cyVirtualDeviceMm -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetSizeDevice( - IN HDC hdc, - IN INT cxVirtualDevice, - IN INT cyVirtualDevice -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetTransform( - IN HDC hdc, - IN DWORD iXform, - OUT LPXFORM pxf -); - -W32KAPI -BOOL -APIENTRY -NtGdiModifyWorldTransform( - IN HDC hdc, - IN OPTIONAL LPXFORM pxf, - IN DWORD iXform -); - -W32KAPI -BOOL -APIENTRY -NtGdiCombineTransform( - OUT LPXFORM pxfDst, - IN LPXFORM pxfSrc1, - IN LPXFORM pxfSrc2 -); - -W32KAPI -BOOL -APIENTRY -NtGdiTransformPoints( - IN HDC hdc, - IN PPOINT pptIn, - OUT PPOINT pptOut, - IN INT c, - IN INT iMode -); - -W32KAPI -LONG -APIENTRY -NtGdiConvertMetafileRect( - IN HDC hdc, - IN OUT PRECTL prect -); - -W32KAPI -INT -APIENTRY -NtGdiGetTextCharsetInfo( - IN HDC hdc, - OUT OPTIONAL LPFONTSIGNATURE lpSig, - IN DWORD dwFlags -); - -W32KAPI -BOOL -APIENTRY -NtGdiDoBanding( - IN HDC hdc, - IN BOOL bStart, - OUT POINTL *pptl, - OUT PSIZE pSize -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetPerBandInfo( - IN HDC hdc, - IN OUT PERBANDINFO *ppbi -); - -W32KAPI -NTSTATUS -APIENTRY -NtGdiGetStats( - IN HANDLE hProcess, - IN INT iIndex, - IN INT iPidType, - OUT PVOID pResults, - IN UINT cjResultSize -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetMagicColors( - IN HDC hdc, - IN PALETTEENTRY peMagic, - IN ULONG Index -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiSelectBrush( - IN HDC hdc, - IN HBRUSH hbrush -); - -W32KAPI -HPEN -APIENTRY -NtGdiSelectPen( - IN HDC hdc, - IN HPEN hpen -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiSelectBitmap( - IN HDC hdc, - IN HBITMAP hbm -); - -W32KAPI -HFONT -APIENTRY -NtGdiSelectFont( - IN HDC hdc, - IN HFONT hf -); - -W32KAPI -INT -APIENTRY -NtGdiExtSelectClipRgn( - IN HDC hdc, - IN HRGN hrgn, - IN INT iMode -); - -W32KAPI -HPEN -APIENTRY -NtGdiCreatePen( - IN INT iPenStyle, - IN INT iPenWidth, - IN COLORREF cr, - IN HBRUSH hbr -); - -#ifdef _WINDOWBLT_NOTIFICATION_ -W32KAPI -BOOL -APIENTRY -NtGdiBitBlt( - IN HDC hdcDst, - IN INT x, - IN INT y, - IN INT cx, - IN INT cy, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN DWORD rop4, - IN DWORD crBackColor, - IN FLONG fl -); -#else -W32KAPI -BOOL -APIENTRY -NtGdiBitBlt( - IN HDC hdcDst, - IN INT x, - IN INT y, - IN INT cx, - IN INT cy, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN DWORD rop4, - IN DWORD crBackColor -); -#endif - -W32KAPI -BOOL -APIENTRY -NtGdiTileBitBlt( - IN HDC hdcDst, - IN RECTL * prectDst, - IN HDC hdcSrc, - IN RECTL * prectSrc, - IN POINTL * pptlOrigin, - IN DWORD rop4, - IN DWORD crBackColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiTransparentBlt( - IN HDC hdcDst, - IN INT xDst, - IN INT yDst, - IN INT cxDst, - IN INT cyDst, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN COLORREF TransColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetTextExtent( - IN HDC hdc, - IN LPWSTR lpwsz, - IN INT cwc, - OUT LPSIZE psize, - IN UINT flOpts -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetTextMetricsW( - IN HDC hdc, - OUT TMW_INTERNAL * ptm, - IN ULONG cj -); - -W32KAPI -INT -APIENTRY -NtGdiGetTextFaceW( - IN HDC hdc, - IN INT cChar, - OUT OPTIONAL LPWSTR pszOut, - IN BOOL bAliasName -); - -W32KAPI -INT -APIENTRY -NtGdiGetRandomRgn( - IN HDC hdc, - IN HRGN hrgn, - IN INT iRgn -); - -W32KAPI -BOOL -APIENTRY -NtGdiExtTextOutW( - IN HDC hdc, - IN INT x, - IN INT y, - IN UINT flOpts, - IN OPTIONAL LPRECT prcl, - IN LPWSTR pwsz, - IN INT cwc, - IN OPTIONAL LPINT pdx, - IN DWORD dwCodePage -); - -W32KAPI -INT -APIENTRY -NtGdiIntersectClipRect( - IN HDC hdc, - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -HRGN -APIENTRY -NtGdiCreateRectRgn( - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -BOOL -APIENTRY -NtGdiPatBlt( - IN HDC hdcDst, - IN INT x, - IN INT y, - IN INT cx, - IN INT cy, - IN DWORD rop4 -); - -W32KAPI -BOOL -APIENTRY -NtGdiPolyPatBlt( - IN HDC hdc, - IN DWORD rop4, - IN PPOLYPATBLT pPoly, - IN DWORD Count, - IN DWORD Mode -); - -W32KAPI -BOOL -APIENTRY -NtGdiUnrealizeObject( - IN HANDLE h -); - -W32KAPI -HANDLE -APIENTRY -NtGdiGetStockObject( - IN INT iObject -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiCreateCompatibleBitmap( - IN HDC hdc, - IN INT cx, - IN INT cy -); - -W32KAPI -BOOL -APIENTRY -NtGdiLineTo( - IN HDC hdc, - IN INT x, - IN INT y -); - -W32KAPI -BOOL -APIENTRY -NtGdiMoveTo( - IN HDC hdc, - IN INT x, - IN INT y, - OUT OPTIONAL LPPOINT pptOut -); - -W32KAPI -INT -APIENTRY -NtGdiExtGetObjectW( - IN HANDLE h, - IN INT cj, - OUT OPTIONAL LPVOID pvOut -); - -W32KAPI -INT -APIENTRY -NtGdiGetDeviceCaps( - IN HDC hdc, - IN INT i -); - -W32KAPI -BOOL -APIENTRY -NtGdiGetDeviceCapsAll ( - IN HDC hdc, - OUT PDEVCAPS pDevCaps -); - -W32KAPI -BOOL -APIENTRY -NtGdiStretchBlt( - IN HDC hdcDst, - IN INT xDst, - IN INT yDst, - IN INT cxDst, - IN INT cyDst, - IN HDC hdcSrc, - IN INT xSrc, - IN INT ySrc, - IN INT cxSrc, - IN INT cySrc, - IN DWORD dwRop, - IN DWORD dwBackColor -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetBrushOrg( - IN HDC hdc, - IN INT x, - IN INT y, - OUT LPPOINT pptOut -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiCreateBitmap( - IN INT cx, - IN INT cy, - IN UINT cPlanes, - IN UINT cBPP, - IN OPTIONAL LPBYTE pjInit -); - -W32KAPI -HPALETTE -APIENTRY -NtGdiCreateHalftonePalette( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiRestoreDC( - IN HDC hdc, - IN INT iLevel -); - -W32KAPI -INT -APIENTRY -NtGdiExcludeClipRect( - IN HDC hdc, - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -INT -APIENTRY -NtGdiSaveDC( - IN HDC hdc -); - -W32KAPI -INT -APIENTRY -NtGdiCombineRgn( - IN HRGN hrgnDst, - IN HRGN hrgnSrc1, - IN HRGN hrgnSrc2, - IN INT iMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiSetRectRgn( - IN HRGN hrgn, - IN INT xLeft, - IN INT yTop, - IN INT xRight, - IN INT yBottom -); - -W32KAPI -LONG -APIENTRY -NtGdiSetBitmapBits( - IN HBITMAP hbm, - IN ULONG cj, - IN PBYTE pjInit -); - -W32KAPI -INT -APIENTRY -NtGdiGetDIBitsInternal( - IN HDC hdc, - IN HBITMAP hbm, - IN UINT iStartScan, - IN UINT cScans, - OUT OPTIONAL LPBYTE pBits, - IN OUT LPBITMAPINFO pbmi, - IN UINT iUsage, - IN UINT cjMaxBits, - IN UINT cjMaxInfo -); - -W32KAPI -INT -APIENTRY -NtGdiOffsetRgn( - IN HRGN hrgn, - IN INT cx, - IN INT cy -); - -W32KAPI -INT -APIENTRY -NtGdiGetRgnBox( - IN HRGN hrgn, - OUT LPRECT prcOut -); - -W32KAPI -BOOL -APIENTRY -NtGdiRectInRegion( - IN HRGN hrgn, - IN OUT LPRECT prcl -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetBoundsRect( - IN HDC hdc, - OUT LPRECT prc, - IN DWORD f -); - -W32KAPI -BOOL -APIENTRY -NtGdiPtInRegion( - IN HRGN hrgn, - IN INT x, - IN INT y -); - -W32KAPI -COLORREF -APIENTRY -NtGdiGetNearestColor( - IN HDC hdc, - IN COLORREF cr -); - -W32KAPI -UINT -APIENTRY -NtGdiGetSystemPaletteUse( - IN HDC hdc -); - -W32KAPI -UINT -APIENTRY -NtGdiSetSystemPaletteUse( - IN HDC hdc, - IN UINT ui -); - -W32KAPI -DWORD -APIENTRY -NtGdiGetRegionData( - IN HRGN hrgn, - IN DWORD nCount, - OUT OPTIONAL LPRGNDATA lpRgnData -); - -W32KAPI -BOOL -APIENTRY -NtGdiInvertRgn( - IN HDC hdc, - IN HRGN hrgn -); - -INT -W32KAPI -APIENTRY -NtGdiAddFontResourceW( - IN WCHAR *pwszFiles, - IN ULONG cwc, - IN ULONG cFiles, - IN FLONG f, - IN DWORD dwPidTid, - IN OPTIONAL DESIGNVECTOR *pdv -); - -#if (_WIN32_WINNT >= 0x0500) -W32KAPI -HFONT -APIENTRY -NtGdiHfontCreate( - IN ENUMLOGFONTEXDVW *pelfw, - IN ULONG cjElfw, - IN LFTYPE lft, - IN FLONG fl, - IN PVOID pvCliData -); -#else -W32KAPI -HFONT -APIENTRY -NtGdiHfontCreate( - IN LPEXTLOGFONTW pelfw, - IN ULONG cjElfw, - IN LFTYPE lft, - IN FLONG fl, - IN PVOID pvCliData -); -#endif - -W32KAPI -ULONG -APIENTRY -NtGdiSetFontEnumeration( - IN ULONG ulType -); - -W32KAPI -BOOL -APIENTRY -NtGdiEnumFontClose( - IN ULONG_PTR idEnum -); - -#if (_WIN32_WINNT >= 0x0500) -W32KAPI -BOOL -APIENTRY -NtGdiEnumFontChunk( - IN HDC hdc, - IN ULONG_PTR idEnum, - IN ULONG cjEfdw, - OUT ULONG *pcjEfdw, - OUT PENUMFONTDATAW pefdw -); -#endif - -W32KAPI -ULONG_PTR -APIENTRY -NtGdiEnumFontOpen( - IN HDC hdc, - IN ULONG iEnumType, - IN FLONG flWin31Compat, - IN ULONG cwchMax, - IN OPTIONAL LPWSTR pwszFaceName, - IN ULONG lfCharSet, - OUT ULONG *pulCount -); - -W32KAPI -INT -APIENTRY -NtGdiQueryFonts( - OUT PUNIVERSAL_FONT_ID pufiFontList, - IN ULONG nBufferSize, - OUT PLARGE_INTEGER pTimeStamp -); - -W32KAPI -BOOL -APIENTRY -NtGdiConsoleTextOut( - IN HDC hdc, - IN POLYTEXTW *lpto, - IN UINT nStrings, - IN RECTL *prclBounds -); - -W32KAPI -NTSTATUS -APIENTRY -NtGdiFullscreenControl( - IN FULLSCREENCONTROL FullscreenCommand, - IN PVOID FullscreenInput, - IN DWORD FullscreenInputLength, - OUT PVOID FullscreenOutput, - IN OUT PULONG FullscreenOutputLength -); - -W32KAPI -DWORD -NtGdiGetCharSet( - IN HDC hdc -); - -W32KAPI -BOOL -APIENTRY -NtGdiEnableEudc( - IN BOOL -); - -W32KAPI -BOOL -APIENTRY -NtGdiEudcLoadUnloadLink( - IN OPTIONAL LPCWSTR pBaseFaceName, - IN UINT cwcBaseFaceName, - IN LPCWSTR pEudcFontPath, - IN UINT cwcEudcFontPath, - IN INT iPriority, - IN INT iFontLinkType, - IN BOOL bLoadLin -); - -W32KAPI -UINT -APIENTRY -NtGdiGetStringBitmapW( - IN HDC hdc, - IN LPWSTR pwsz, - IN UINT cwc, - OUT BYTE *lpSB, - IN UINT cj -); - -W32KAPI -ULONG -APIENTRY -NtGdiGetEudcTimeStampEx( - IN OPTIONAL LPWSTR lpBaseFaceName, - IN ULONG cwcBaseFaceName, - IN BOOL bSystemTimeStamp -); - -W32KAPI -ULONG -APIENTRY -NtGdiQueryFontAssocInfo( - IN HDC hdc -); - -#if (_WIN32_WINNT >= 0x0500) -W32KAPI -DWORD -NtGdiGetFontUnicodeRanges( - IN HDC hdc, - OUT OPTIONAL LPGLYPHSET pgs -); -#endif - -#ifdef LANGPACK -W32KAPI -BOOL -NtGdiGetRealizationInfo( - IN HDC hdc, - OUT PREALIZATION_INFO pri, - IN HFONT hf -); -#endif - -W32KAPI -BOOL -NtGdiAddRemoteMMInstanceToDC( - IN HDC hdc, - IN DOWNLOADDESIGNVECTOR *pddv, - IN ULONG cjDDV -); - -W32KAPI -BOOL -APIENTRY -NtGdiUnloadPrinterDriver( - IN LPWSTR pDriverName, - IN ULONG cbDriverName -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngAssociateSurface( - IN HSURF hsurf, - IN HDEV hdev, - IN FLONG flHooks -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngEraseSurface( - IN SURFOBJ *pso, - IN RECTL *prcl, - IN ULONG iColor -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiEngCreateBitmap( - IN SIZEL sizl, - IN LONG lWidth, - IN ULONG iFormat, - IN FLONG fl, - IN OPTIONAL PVOID pvBits -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngDeleteSurface( - IN HSURF hsurf -); - -W32KAPI -SURFOBJ* -APIENTRY -NtGdiEngLockSurface( - IN HSURF hsurf -); - -W32KAPI -VOID -APIENTRY -NtGdiEngUnlockSurface( - IN SURFOBJ * -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngMarkBandingSurface( - IN HSURF hsurf -); - -W32KAPI -HSURF -APIENTRY -NtGdiEngCreateDeviceSurface( - IN DHSURF dhsurf, - IN SIZEL sizl, - IN ULONG iFormatCompat -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiEngCreateDeviceBitmap( - IN DHSURF dhsurf, - IN SIZEL sizl, - IN ULONG iFormatCompat -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngCopyBits( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN OPTIONAL CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN POINTL *pptlSrc -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngStretchBlt( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlHTOrg, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngBitBlt( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN POINTL *pptlSrc, - IN POINTL *pptlMask, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrush, - IN ROP4 rop4 -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngPlgBlt( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN OPTIONAL SURFOBJ *psoMsk, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlBrushOrg, - IN POINTFIX *pptfxDest, - IN RECTL *prclSrc, - IN OPTIONAL POINTL *pptlMask, - IN ULONG iMode -); - -W32KAPI -HPALETTE -APIENTRY -NtGdiEngCreatePalette( - IN ULONG iMode, - IN ULONG cColors, - IN ULONG *pulColors, - IN FLONG flRed, - IN FLONG flGreen, - IN FLONG flBlue -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngDeletePalette( - IN HPALETTE hPal -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngStrokePath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN XFORMOBJ *pxo, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN LINEATTRS *plineattrs, - IN MIX mix -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix, - IN FLONG flOptions -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngStrokeAndFillPath( - IN SURFOBJ *pso, - IN PATHOBJ *ppo, - IN CLIPOBJ *pco,IN XFORMOBJ *pxo, - IN BRUSHOBJ *pboStroke, - IN LINEATTRS *plineattrs, - IN BRUSHOBJ *pboFill, - IN POINTL *pptlBrushOrg, - IN MIX mix, - IN FLONG flOptions -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngPaint( - IN SURFOBJ *pso, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN POINTL *pptlBrushOrg, - IN MIX mix -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngLineTo( - IN SURFOBJ *pso, - IN CLIPOBJ *pco, - IN BRUSHOBJ *pbo, - IN LONG x1, - IN LONG y1, - IN LONG x2, - IN LONG y2, - IN RECTL *prclBounds, - IN MIX mix -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngAlphaBlend( - IN SURFOBJ *psoDest, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDest, - IN RECTL *prclSrc, - IN BLENDOBJ *pBlendObj -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngGradientFill( - IN SURFOBJ *psoDest, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN TRIVERTEX *pVertex, - IN ULONG nVertex, - IN PVOID pMesh, - IN ULONG nMesh, - IN RECTL *prclExtents, - IN POINTL *pptlDitherOrg, - IN ULONG ulMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngTransparentBlt( - IN SURFOBJ *psoDst, - IN SURFOBJ *psoSrc, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN RECTL *prclDst, - IN RECTL *prclSrc, - IN ULONG iTransColor, - IN ULONG ulReserved -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngTextOut( - IN SURFOBJ *pso, - IN STROBJ *pstro, - IN FONTOBJ *pfo, - IN CLIPOBJ *pco, - IN RECTL *prclExtra, - IN RECTL *prclOpaque, - IN BRUSHOBJ *pboFore, - IN BRUSHOBJ *pboOpaque, - IN POINTL *pptlOrg, - IN MIX mix -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngStretchBltROP( - IN SURFOBJ *psoTrg, - IN SURFOBJ *psoSrc, - IN SURFOBJ *psoMask, - IN CLIPOBJ *pco, - IN XLATEOBJ *pxlo, - IN COLORADJUSTMENT *pca, - IN POINTL *pptlBrushOrg, - IN RECTL *prclTrg, - IN RECTL *prclSrc, - IN POINTL *pptlMask, - IN ULONG iMode, - IN BRUSHOBJ *pbo, - IN ROP4 rop4 -); - -W32KAPI -ULONG -APIENTRY -NtGdiXLATEOBJ_cGetPalette( - IN XLATEOBJ *pxlo, - IN ULONG iPal, - IN ULONG cPal, - OUT ULONG *pPal -); - -W32KAPI -ULONG -APIENTRY -NtGdiCLIPOBJ_cEnumStart( - IN CLIPOBJ *pco, - IN BOOL bAll, - IN ULONG iType, - IN ULONG iDirection, - IN ULONG cLimit -); - -W32KAPI -BOOL -APIENTRY -NtGdiCLIPOBJ_bEnum( - IN CLIPOBJ *pco, - IN ULONG cj, - OUT ULONG *pul -); - -W32KAPI -PATHOBJ* -APIENTRY -NtGdiCLIPOBJ_ppoGetPath( - IN CLIPOBJ *pco -); - -W32KAPI -CLIPOBJ* -APIENTRY -NtGdiEngCreateClip(); - -W32KAPI -VOID -APIENTRY -NtGdiEngDeleteClip( - IN CLIPOBJ*pco -); - -W32KAPI -PVOID -APIENTRY -NtGdiBRUSHOBJ_pvAllocRbrush( - IN BRUSHOBJ *pbo, - IN ULONG cj -); - -W32KAPI -PVOID -APIENTRY -NtGdiBRUSHOBJ_pvGetRbrush( - IN BRUSHOBJ *pbo -); - -W32KAPI -ULONG -APIENTRY -NtGdiBRUSHOBJ_ulGetBrushColor( - IN BRUSHOBJ *pbo -); - -W32KAPI -HANDLE -APIENTRY -NtGdiBRUSHOBJ_hGetColorTransform( - IN BRUSHOBJ *pbo -); - -W32KAPI -BOOL -APIENTRY -NtGdiXFORMOBJ_bApplyXform( - IN XFORMOBJ *pxo, - IN ULONG iMode, - IN ULONG cPoints, - IN PVOID pvIn, - OUT PVOID pvOut -); - -W32KAPI -ULONG -APIENTRY -NtGdiXFORMOBJ_iGetXform( - IN XFORMOBJ *pxo, - OUT OPTIONAL XFORML *pxform -); - -W32KAPI -VOID -APIENTRY -NtGdiFONTOBJ_vGetInfo( - IN FONTOBJ *pfo, - IN ULONG cjSize, - OUT FONTINFO *pfi -); - -W32KAPI -ULONG -APIENTRY -NtGdiFONTOBJ_cGetGlyphs( - IN FONTOBJ *pfo, - IN ULONG iMode, - IN ULONG cGlyph, - IN HGLYPH *phg, - OUT PVOID *ppvGlyph -); - -W32KAPI -XFORMOBJ* -APIENTRY -NtGdiFONTOBJ_pxoGetXform( - IN FONTOBJ *pfo -); - -W32KAPI -IFIMETRICS* -APIENTRY -NtGdiFONTOBJ_pifi( - IN FONTOBJ *pfo -); - -W32KAPI -FD_GLYPHSET* -APIENTRY -NtGdiFONTOBJ_pfdg( - IN FONTOBJ *pfo -); - -W32KAPI -ULONG -APIENTRY -NtGdiFONTOBJ_cGetAllGlyphHandles( - IN FONTOBJ *pfo, - OUT OPTIONAL HGLYPH *phg -); - -W32KAPI -PVOID -APIENTRY -NtGdiFONTOBJ_pvTrueTypeFontFile( - IN FONTOBJ *pfo, - OUT ULONG *pcjFile -); - -W32KAPI -PFD_GLYPHATTR -APIENTRY -NtGdiFONTOBJ_pQueryGlyphAttrs( - IN FONTOBJ *pfo, - IN ULONG iMode -); - -W32KAPI -BOOL -APIENTRY -NtGdiSTROBJ_bEnum( - IN STROBJ *pstro, - OUT ULONG *pc, - OUT PGLYPHPOS *ppgpos -); - -W32KAPI -BOOL -APIENTRY -NtGdiSTROBJ_bEnumPositionsOnly( - IN STROBJ *pstro, - OUT ULONG *pc, - OUT PGLYPHPOS *ppgpos -); - -W32KAPI -VOID -APIENTRY -NtGdiSTROBJ_vEnumStart( - IN STROBJ *pstro -); - -W32KAPI -DWORD -APIENTRY -NtGdiSTROBJ_dwGetCodePage( - IN STROBJ *pstro -); - -W32KAPI -BOOL -APIENTRY -NtGdiSTROBJ_bGetAdvanceWidths( - IN STROBJ*pstro, - IN ULONG iFirst, - IN ULONG c, - OUT POINTQF*pptqD -); - -W32KAPI -FD_GLYPHSET* -APIENTRY -NtGdiEngComputeGlyphSet( - IN INT nCodePage, - IN INT nFirstChar, - IN INT cChars -); - -W32KAPI -ULONG -APIENTRY -NtGdiXLATEOBJ_iXlate( - IN XLATEOBJ *pxlo, - IN ULONG iColor -); - -W32KAPI -HANDLE -APIENTRY -NtGdiXLATEOBJ_hGetColorTransform( - IN XLATEOBJ *pxlo -); - -W32KAPI -VOID -APIENTRY -NtGdiPATHOBJ_vGetBounds( - IN PATHOBJ *ppo, - OUT PRECTFX prectfx -); - -W32KAPI -BOOL -APIENTRY -NtGdiPATHOBJ_bEnum( - IN PATHOBJ *ppo, - OUT PATHDATA *ppd -); - -W32KAPI -VOID -APIENTRY -NtGdiPATHOBJ_vEnumStart( - IN PATHOBJ *ppo -); - -W32KAPI -VOID -APIENTRY -NtGdiEngDeletePath( - IN PATHOBJ *ppo -); - -W32KAPI -VOID -APIENTRY -NtGdiPATHOBJ_vEnumStartClipLines( - IN PATHOBJ *ppo, - IN CLIPOBJ *pco, - IN SURFOBJ *pso, - IN LINEATTRS *pla -); - -W32KAPI -BOOL -APIENTRY -NtGdiPATHOBJ_bEnumClipLines( - IN PATHOBJ *ppo, - IN ULONG cb, - OUT CLIPLINE *pcl -); - -W32KAPI -BOOL -APIENTRY -NtGdiEngCheckAbort( - IN SURFOBJ *pso -); - -W32KAPI -DHPDEV -NtGdiGetDhpdev( - IN HDEV hdev -); - -W32KAPI -LONG -APIENTRY -NtGdiHT_Get8BPPFormatPalette( - OUT OPTIONAL LPPALETTEENTRY pPaletteEntry, - IN USHORT RedGamma, - IN USHORT GreenGamma, - IN USHORT BlueGamma -); - -W32KAPI -LONG -APIENTRY -NtGdiHT_Get8BPPMaskPalette( - OUT OPTIONAL LPPALETTEENTRY pPaletteEntry, - IN BOOL Use8BPPMaskPal, - IN BYTE CMYMask, - IN USHORT RedGamma, - IN USHORT GreenGamma, - IN USHORT BlueGamma -); - -W32KAPI -BOOL -NtGdiUpdateTransform( - IN HDC hdc -); - -W32KAPI -DWORD -APIENTRY -NtGdiSetLayout( - IN HDC hdc, - IN LONG wox, - IN DWORD dwLayout -); - -W32KAPI -BOOL -APIENTRY -NtGdiMirrorWindowOrg( - IN HDC hdc -); - -W32KAPI -LONG -APIENTRY -NtGdiGetDeviceWidth( - IN HDC hdc -); - -W32KAPI -BOOL -NtGdiSetPUMPDOBJ( - IN HUMPD humpd, - IN BOOL bStoreID, - OUT HUMPD *phumpd, - OUT BOOL *pbWOW64 -); - -W32KAPI -BOOL -NtGdiBRUSHOBJ_DeleteRbrush( - IN BRUSHOBJ *pbo, - IN BRUSHOBJ *pboB -); - -W32KAPI -BOOL -NtGdiUMPDEngFreeUserMem( - IN KERNEL_PVOID *ppv -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiSetBitmapAttributes( - IN HBITMAP hbm, - IN DWORD dwFlags -); - -W32KAPI -HBITMAP -APIENTRY -NtGdiClearBitmapAttributes( - IN HBITMAP hbm, - IN DWORD dwFlags -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiSetBrushAttributes( - IN HBRUSH hbm, - IN DWORD dwFlags -); - -W32KAPI -HBRUSH -APIENTRY -NtGdiClearBrushAttributes( - IN HBRUSH hbm, - IN DWORD dwFlags -); - -W32KAPI -BOOL -APIENTRY -NtGdiDrawStream( - IN HDC hdcDst, - IN ULONG cjIn, - IN VOID *pvIn -); - -W32KAPI -BOOL -APIENTRY -NtGdiMakeObjectXferable( - IN HANDLE h, - IN DWORD dwProcessId -); - -W32KAPI -BOOL -APIENTRY -NtGdiMakeObjectUnXferable( - IN HANDLE h -); - -#endif diff --git a/reactos/w32api/include/wingdi.h b/reactos/w32api/include/wingdi.h index cab8daaa470..c07c17bbd62 100644 --- a/reactos/w32api/include/wingdi.h +++ b/reactos/w32api/include/wingdi.h @@ -831,8 +831,6 @@ extern "C" { #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 @@ -1354,7 +1352,7 @@ typedef struct tagCOLORADJUSTMENT { SHORT caBrightness; SHORT caColorfulness; SHORT caRedGreenTint; -} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT; +} COLORADJUSTMENT,*LPCOLORADJUSTMENT; typedef struct _devicemodeA { BYTE dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; @@ -2703,14 +2701,14 @@ UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR); UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR); UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER); UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY); -UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,UINT,PIXELFORMATDESCRIPTOR*); +UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,DWORD,CONST 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,LPDWORD,LPSTR); -BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR); +BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR); +BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR); DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR); DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR); BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD); @@ -2879,8 +2877,8 @@ BOOL WINAPI TextOutW(HDC,int,int,LPCWSTR,int); BOOL WINAPI TranslateCharsetInfo(PDWORD,LPCHARSETINFO,DWORD); BOOL WINAPI UnrealizeObject(HGDIOBJ); BOOL WINAPI UpdateColors(HDC); -BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT); -BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT); +BOOL WINAPI UpdateICMRegKeyA(DWORD,DWORD,LPSTR,UINT); +BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT); BOOL WINAPI WidenPath(HDC); BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT); HGLRC WINAPI wglCreateContext(HDC);