diff --git a/reactos/include/win32k/bitmaps.h b/reactos/include/win32k/bitmaps.h deleted file mode 100644 index a0d9e89cb65..00000000000 --- a/reactos/include/win32k/bitmaps.h +++ /dev/null @@ -1,343 +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 */ -#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/include/win32k/caret.h b/reactos/include/win32k/caret.h deleted file mode 100644 index d0613ee0506..00000000000 --- a/reactos/include/win32k/caret.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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 deleted file mode 100644 index 6a0107e1ddf..00000000000 --- a/reactos/include/win32k/cliprgn.h +++ /dev/null @@ -1,81 +0,0 @@ -#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 deleted file mode 100644 index c78610ab4fb..00000000000 --- a/reactos/include/win32k/color.h +++ /dev/null @@ -1,116 +0,0 @@ -#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 deleted file mode 100644 index f19d087b35f..00000000000 --- a/reactos/include/win32k/coord.h +++ /dev/null @@ -1,151 +0,0 @@ -#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 deleted file mode 100644 index eb05867be38..00000000000 --- a/reactos/include/win32k/cursoricon.h +++ /dev/null @@ -1,95 +0,0 @@ - -#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/include/win32k/fillshap.h b/reactos/include/win32k/fillshap.h deleted file mode 100644 index 8a5506b78a8..00000000000 --- a/reactos/include/win32k/fillshap.h +++ /dev/null @@ -1,68 +0,0 @@ -#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/include/win32k/font.h b/reactos/include/win32k/font.h deleted file mode 100644 index 8382a14288d..00000000000 --- a/reactos/include/win32k/font.h +++ /dev/null @@ -1,25 +0,0 @@ -/* $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/include/win32k/icm.h b/reactos/include/win32k/icm.h deleted file mode 100644 index 9502d254be6..00000000000 --- a/reactos/include/win32k/icm.h +++ /dev/null @@ -1,81 +0,0 @@ - -#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 deleted file mode 100644 index fa6c7aba6e4..00000000000 --- a/reactos/include/win32k/kapi.h +++ /dev/null @@ -1,33 +0,0 @@ -#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 deleted file mode 100644 index c3767f11f0d..00000000000 --- a/reactos/include/win32k/line.h +++ /dev/null @@ -1,101 +0,0 @@ -#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 deleted file mode 100644 index 28d65912b22..00000000000 --- a/reactos/include/win32k/math.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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 deleted file mode 100644 index ff204c76322..00000000000 --- a/reactos/include/win32k/menu.h +++ /dev/null @@ -1,250 +0,0 @@ -/* $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 deleted file mode 100644 index b589bb40e51..00000000000 --- a/reactos/include/win32k/metafile.h +++ /dev/null @@ -1,180 +0,0 @@ -#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/include/win32k/ntddraw.h b/reactos/include/win32k/ntddraw.h deleted file mode 100644 index e476c105d97..00000000000 --- a/reactos/include/win32k/ntddraw.h +++ /dev/null @@ -1,325 +0,0 @@ - -#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 new file mode 100644 index 00000000000..bfb29415e69 --- /dev/null +++ b/reactos/include/win32k/ntgdibad.h @@ -0,0 +1,1256 @@ +#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 new file mode 100644 index 00000000000..363050f7e12 --- /dev/null +++ b/reactos/include/win32k/ntgdihdl.h @@ -0,0 +1,86 @@ +/* + * 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 new file mode 100644 index 00000000000..93ba5903ff0 --- /dev/null +++ b/reactos/include/win32k/ntgdityp.h @@ -0,0 +1,90 @@ +/* + * 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 8f7534093c2..7c4f6cbf181 100644 --- a/reactos/include/win32k/ntuser.h +++ b/reactos/include/win32k/ntuser.h @@ -2,63 +2,254 @@ #define __WIN32K_NTUSER_H -ULONG STDCALL +DWORD +NTAPI +NtUserBuildMenuItemList( + HMENU hMenu, + PVOID Buffer, + ULONG nBufSize, + DWORD Reserved); + +DWORD +NTAPI +NtUserCheckMenuItem( + HMENU hmenu, + UINT uIDCheckItem, + UINT uCheck); + +HMENU +NTAPI +NtUserCreateMenu(BOOL PopupMenu); + +BOOL +NTAPI +NtUserDeleteMenu( + HMENU hMenu, + UINT uPosition, + UINT uFlags); + +BOOL +NTAPI +NtUserDestroyMenu( + HMENU hMenu); + +DWORD +NTAPI +NtUserDrawMenuBarTemp( + HWND hWnd, + HDC hDC, + PRECT hRect, + HMENU hMenu, + HFONT hFont); + +UINT +NTAPI +NtUserEnableMenuItem( + HMENU hMenu, + UINT uIDEnableItem, + UINT uEnable); + +DWORD +NTAPI +NtUserInsertMenuItem( + HMENU hMenu, + UINT uItem, + BOOL fByPosition, + LPCMENUITEMINFOW lpmii); + +BOOL +NTAPI +NtUserEndMenu(VOID); + +UINT NTAPI +NtUserGetMenuDefaultItem( + HMENU hMenu, + UINT fByPos, + UINT gmdiFlags); + +BOOL +NTAPI +NtUserGetMenuBarInfo( + HWND hwnd, + LONG idObject, + LONG idItem, + PMENUBARINFO pmbi); + +UINT +NTAPI +NtUserGetMenuIndex( + HMENU hMenu, + UINT wID); + +BOOL +NTAPI +NtUserGetMenuItemRect( + HWND hWnd, + HMENU hMenu, + UINT uItem, + LPRECT lprcItem); + +HMENU +NTAPI +NtUserGetSystemMenu( + HWND hWnd, + BOOL bRevert); + +BOOL +NTAPI +NtUserHiliteMenuItem( + HWND hwnd, + HMENU hmenu, + UINT uItemHilite, + UINT uHilite); + +BOOL +NTAPI +NtUserMenuInfo( + HMENU hmenu, + PROSMENUINFO lpmi, + BOOL fsog +); + +int +NTAPI +NtUserMenuItemFromPoint( + HWND hWnd, + HMENU hMenu, + DWORD X, + DWORD Y); + +BOOL +NTAPI +NtUserMenuItemInfo( + HMENU hMenu, + UINT uItem, + BOOL fByPosition, + PROSMENUITEMINFO lpmii, + BOOL fsog +); + +BOOL +NTAPI +NtUserRemoveMenu( + HMENU hMenu, + UINT uPosition, + UINT uFlags); + +BOOL +NTAPI +NtUserSetMenu( + HWND hWnd, + HMENU hMenu, + BOOL bRepaint); + +BOOL +NTAPI +NtUserSetMenuContextHelpId( + HMENU hmenu, + DWORD dwContextHelpId); + +BOOL +NTAPI +NtUserSetMenuDefaultItem( + HMENU hMenu, + UINT uItem, + UINT fByPos); + +BOOL +NTAPI +NtUserSetMenuFlagRtoL( + HMENU hMenu); + +BOOL +NTAPI +NtUserSetSystemMenu( + HWND hWnd, + HMENU hMenu); + +DWORD +NTAPI +NtUserThunkedMenuInfo( + HMENU hMenu, + LPCMENUINFO lpcmi); + +DWORD +NTAPI +NtUserThunkedMenuItemInfo( + HMENU hMenu, + UINT uItem, + BOOL fByPosition, + BOOL bInsert, + LPMENUITEMINFOW lpmii, + PUNICODE_STRING lpszCaption); + +BOOL +NTAPI +NtUserTrackPopupMenuEx( + HMENU hmenu, + UINT fuFlags, + int x, + int y, + HWND hwnd, + LPTPMPARAMS lptpm); + +ULONG NTAPI NtUserGetSystemMetrics(ULONG Index); -DWORD STDCALL +DWORD NTAPI NtUserGetClassLong(HWND hWnd, DWORD Offset, BOOL Ansi); -LONG STDCALL +LONG NTAPI NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi); -INT STDCALL +INT NTAPI NtUserReleaseDC(HWND hWnd, HDC hDc); -BOOL STDCALL +BOOL NTAPI NtUserGetWindowRect(HWND hWnd, LPRECT Rect); -BOOL STDCALL +BOOL NTAPI NtUserGetClientRect(HWND hWnd, LPRECT Rect); -HANDLE STDCALL +HANDLE NTAPI NtUserGetProp(HWND hWnd, ATOM Atom); -BOOL STDCALL +BOOL NTAPI NtUserGetClientOrigin(HWND hWnd, LPPOINT Point); -HWND STDCALL +HWND NTAPI NtUserGetDesktopWindow(); NTSTATUS -STDCALL +NTAPI NtUserAcquireOrReleaseInputOwnership( BOOLEAN Release); DWORD -STDCALL +NTAPI NtUserActivateKeyboardLayout( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserAlterWindowStyle( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserAttachThreadInput( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); -HDC STDCALL +HDC NTAPI NtUserBeginPaint(HWND hWnd, PAINTSTRUCT* lPs); DWORD -STDCALL +NTAPI NtUserBitBltSysBmp( DWORD Unknown0, DWORD Unknown1, @@ -70,12 +261,12 @@ NtUserBitBltSysBmp( DWORD Unknown7); BOOL -STDCALL +NTAPI NtUserBlockInput( BOOL BlockIt); ULONG -STDCALL +NTAPI NtUserBuildHwndList( HDESK hDesktop, HWND hwndParent, @@ -85,7 +276,7 @@ NtUserBuildHwndList( HWND* pWnd, ULONG nBufSize); -NTSTATUS STDCALL +NTSTATUS NTAPI NtUserBuildNameList( HWINSTA hWinSta, ULONG dwSize, @@ -93,7 +284,7 @@ NtUserBuildNameList( PULONG pRequiredSize); NTSTATUS -STDCALL +NTAPI NtUserBuildPropList( HWND hWnd, LPVOID Buffer, @@ -106,7 +297,7 @@ enum { }; DWORD -STDCALL +NTAPI NtUserCallHwnd( DWORD Unknown0, DWORD Unknown1); @@ -117,7 +308,7 @@ NtUserCallHwnd( #define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B #define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E BOOL -STDCALL +NTAPI NtUserCallHwndLock( HWND hWnd, DWORD Routine); @@ -125,33 +316,33 @@ NtUserCallHwndLock( #define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A #define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B HWND -STDCALL +NTAPI NtUserCallHwndOpt( HWND Param, DWORD Routine); DWORD -STDCALL +NTAPI NtUserCallHwndParam( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserCallHwndParamLock( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); BOOL -STDCALL +NTAPI NtUserCallMsgFilter( LPMSG msg, INT code); LRESULT -STDCALL +NTAPI NtUserCallNextHookEx( HHOOK Hook, int Code, @@ -167,7 +358,7 @@ NtUserCallNextHookEx( #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007 DWORD -STDCALL +NTAPI NtUserCallNoParam( DWORD Routine); @@ -189,7 +380,7 @@ NtUserCallNoParam( #define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28 #define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29 DWORD -STDCALL +NTAPI NtUserCallOneParam( DWORD Param, DWORD Routine); @@ -222,20 +413,20 @@ NtUserCallOneParam( #define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66 #define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000 DWORD -STDCALL +NTAPI NtUserCallTwoParam( DWORD Param1, DWORD Param2, DWORD Routine); BOOL -STDCALL +NTAPI NtUserChangeClipboardChain( HWND hWndRemove, HWND hWndNewNext); LONG -STDCALL +NTAPI NtUserChangeDisplaySettings( PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, @@ -243,56 +434,56 @@ NtUserChangeDisplaySettings( DWORD dwflags, LPVOID lParam); -HWND STDCALL +HWND NTAPI NtUserChildWindowFromPointEx(HWND Parent, LONG x, LONG y, UINT Flags); BOOL -STDCALL +NTAPI NtUserClipCursor( RECT *lpRect); BOOL -STDCALL +NTAPI NtUserCloseClipboard(VOID); BOOL -STDCALL +NTAPI NtUserCloseDesktop( HDESK hDesktop); BOOL -STDCALL +NTAPI NtUserCloseWindowStation( HWINSTA hWinSta); DWORD -STDCALL +NTAPI NtUserConvertMemHandle( DWORD Unknown0, DWORD Unknown1); int -STDCALL +NTAPI NtUserCopyAcceleratorTable( HACCEL Table, LPACCEL Entries, int EntriesCount); DWORD -STDCALL +NTAPI NtUserCountClipboardFormats(VOID); HACCEL -STDCALL +NTAPI NtUserCreateAcceleratorTable( LPACCEL Entries, SIZE_T EntriesCount); BOOL -STDCALL +NTAPI NtUserCreateCaret( HWND hWnd, HBITMAP hBitmap, @@ -300,13 +491,13 @@ NtUserCreateCaret( int nHeight); HANDLE -STDCALL +NTAPI NtUserCreateCursorIconHandle( PICONINFO IconInfo, BOOL Indirect); HDESK -STDCALL +NTAPI NtUserCreateDesktop( PUNICODE_STRING lpszDesktopName, DWORD dwFlags, @@ -315,7 +506,7 @@ NtUserCreateDesktop( HWINSTA hWindowStation); DWORD -STDCALL +NTAPI NtUserCreateLocalMemHandle( DWORD Unknown0, DWORD Unknown1, @@ -323,7 +514,7 @@ NtUserCreateLocalMemHandle( DWORD Unknown3); HWND -STDCALL +NTAPI NtUserCreateWindowEx( DWORD dwExStyle, PUNICODE_STRING lpClassName, @@ -341,7 +532,7 @@ NtUserCreateWindowEx( BOOL bUnicodeWindow); HWINSTA -STDCALL +NTAPI NtUserCreateWindowStation( PUNICODE_STRING lpszWindowStationName, ACCESS_MASK dwDesiredAccess, @@ -351,14 +542,14 @@ NtUserCreateWindowStation( DWORD Unknown5); DWORD -STDCALL +NTAPI NtUserDdeGetQualityOfService( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserDdeInitialize( DWORD Unknown0, DWORD Unknown1, @@ -367,13 +558,13 @@ NtUserDdeInitialize( DWORD Unknown4); DWORD -STDCALL +NTAPI NtUserDdeSetQualityOfService( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); -HDWP STDCALL +HDWP NTAPI NtUserDeferWindowPos(HDWP WinPosInfo, HWND Wnd, HWND WndInsertAfter, @@ -382,21 +573,21 @@ NtUserDeferWindowPos(HDWP WinPosInfo, int cx, int cy, UINT Flags); -BOOL STDCALL +BOOL NTAPI NtUserDefSetText(HWND WindowHandle, PUNICODE_STRING WindowText); BOOLEAN -STDCALL +NTAPI NtUserDestroyAcceleratorTable( HACCEL Table); BOOL -STDCALL +NTAPI NtUserDestroyCursorIcon( HANDLE Handle, DWORD Unknown); -BOOLEAN STDCALL +BOOLEAN NTAPI NtUserDestroyWindow(HWND Wnd); typedef struct tagNTUSERDISPATCHMESSAGEINFO @@ -408,18 +599,18 @@ typedef struct tagNTUSERDISPATCHMESSAGEINFO } NTUSERDISPATCHMESSAGEINFO, *PNTUSERDISPATCHMESSAGEINFO; LRESULT -STDCALL +NTAPI NtUserDispatchMessage(PNTUSERDISPATCHMESSAGEINFO MsgInfo); BOOL -STDCALL +NTAPI NtUserDragDetect( HWND hWnd, LONG x, LONG y); DWORD -STDCALL +NTAPI NtUserDragObject( HWND hwnd1, HWND hwnd2, @@ -429,7 +620,7 @@ NtUserDragObject( ); DWORD -STDCALL +NTAPI NtUserDrawAnimatedRects( DWORD Unknown0, DWORD Unknown1, @@ -437,7 +628,7 @@ NtUserDrawAnimatedRects( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserDrawCaption( DWORD Unknown0, DWORD Unknown1, @@ -445,7 +636,7 @@ NtUserDrawCaption( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserDrawCaptionTemp( DWORD Unknown0, DWORD Unknown1, @@ -456,7 +647,7 @@ NtUserDrawCaptionTemp( DWORD Unknown6); BOOL -STDCALL +NTAPI NtUserDrawIconEx( HDC hdc, int xLeft, @@ -471,27 +662,27 @@ NtUserDrawIconEx( DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserEmptyClipboard(VOID); BOOL -STDCALL +NTAPI NtUserEnableScrollBar( HWND hWnd, UINT wSBflags, UINT wArrows); DWORD -STDCALL +NTAPI NtUserEndDeferWindowPosEx( DWORD Unknown0, DWORD Unknown1); -BOOL STDCALL +BOOL NTAPI NtUserEndPaint(HWND hWnd, CONST PAINTSTRUCT* lPs); BOOL -STDCALL +NTAPI NtUserEnumDisplayDevices ( PUNICODE_STRING lpDevice, /* device name */ DWORD iDevNum, /* display device */ @@ -499,19 +690,15 @@ NtUserEnumDisplayDevices ( DWORD dwFlags ); /* reserved */ /*BOOL -STDCALL +NTAPI NtUserEnumDisplayMonitors ( HDC hdc, LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData );*/ -#define MONITORINFOF_PRIMARY 1 -#define MONITOR_DEFAULTTONULL 0 -#define MONITOR_DEFAULTTOPRIMARY 1 -#define MONITOR_DEFAULTTONEAREST 2 INT -STDCALL +NTAPI NtUserEnumDisplayMonitors( OPTIONAL IN HDC hDC, OPTIONAL IN LPCRECT pRect, @@ -521,7 +708,7 @@ NtUserEnumDisplayMonitors( BOOL -STDCALL +NTAPI NtUserEnumDisplaySettings( PUNICODE_STRING lpszDeviceName, DWORD iModeNum, @@ -529,18 +716,18 @@ NtUserEnumDisplaySettings( DWORD dwFlags ); DWORD -STDCALL +NTAPI NtUserEvent( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserExcludeUpdateRgn( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserFillWindow( DWORD Unknown0, DWORD Unknown1, @@ -548,7 +735,7 @@ NtUserFillWindow( DWORD Unknown3); HICON -STDCALL +NTAPI NtUserFindExistingCursorIcon( HMODULE hModule, HRSRC hRsrc, @@ -556,7 +743,7 @@ NtUserFindExistingCursorIcon( LONG cy); HWND -STDCALL +NTAPI NtUserFindWindowEx( HWND hwndParent, HWND hwndChildAfter, @@ -565,12 +752,12 @@ NtUserFindWindowEx( ); DWORD -STDCALL +NTAPI NtUserFlashWindowEx( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserGetAltTabInfo( DWORD Unknown0, DWORD Unknown1, @@ -579,25 +766,25 @@ NtUserGetAltTabInfo( DWORD Unknown4, DWORD Unknown5); -HWND STDCALL +HWND NTAPI NtUserGetAncestor(HWND hWnd, UINT Flags); DWORD -STDCALL +NTAPI NtUserGetAsyncKeyState( DWORD Unknown0); UINT -STDCALL +NTAPI NtUserGetCaretBlinkTime(VOID); BOOL -STDCALL +NTAPI NtUserGetCaretPos( LPPOINT lpPoint); -DWORD STDCALL +DWORD NTAPI NtUserGetClassInfo(HINSTANCE hInst, LPCWSTR str, LPWNDCLASSEXW wcex, @@ -605,56 +792,56 @@ NtUserGetClassInfo(HINSTANCE hInst, DWORD unknown3); DWORD -STDCALL +NTAPI NtUserGetClassName(HWND hWnd, LPWSTR lpClassName, ULONG nMaxCount); HANDLE -STDCALL +NTAPI NtUserGetClipboardData( UINT uFormat, DWORD Unknown1); INT -STDCALL +NTAPI NtUserGetClipboardFormatName( UINT format, PUNICODE_STRING FormatName, INT cchMaxCount); HWND -STDCALL +NTAPI NtUserGetClipboardOwner(VOID); DWORD -STDCALL +NTAPI NtUserGetClipboardSequenceNumber(VOID); HWND -STDCALL +NTAPI NtUserGetClipboardViewer(VOID); BOOL -STDCALL +NTAPI NtUserGetClipCursor( RECT *lpRect); DWORD -STDCALL +NTAPI NtUserGetComboBoxInfo( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserGetControlBrush( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserGetControlColor( DWORD Unknown0, DWORD Unknown1, @@ -662,14 +849,14 @@ NtUserGetControlColor( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserGetCPD( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserGetCursorFrameInfo( DWORD Unknown0, DWORD Unknown1, @@ -677,57 +864,57 @@ NtUserGetCursorFrameInfo( DWORD Unknown3); BOOL -STDCALL +NTAPI NtUserGetCursorInfo( PCURSORINFO pci); HDC -STDCALL +NTAPI NtUserGetDC( HWND hWnd); HDC -STDCALL +NTAPI NtUserGetDCEx( HWND hWnd, HANDLE hRegion, ULONG Flags); UINT -STDCALL +NTAPI NtUserGetDoubleClickTime(VOID); HWND -STDCALL +NTAPI NtUserGetForegroundWindow(VOID); DWORD -STDCALL +NTAPI NtUserGetGuiResources( HANDLE hProcess, DWORD uiFlags); BOOL -STDCALL +NTAPI NtUserGetGUIThreadInfo( DWORD idThread, LPGUITHREADINFO lpgui); BOOL -STDCALL +NTAPI NtUserGetCursorIconInfo( HANDLE Handle, PICONINFO IconInfo); BOOL -STDCALL +NTAPI NtUserGetCursorIconSize( HANDLE Handle, BOOL *fIcon, SIZE *Size); DWORD -STDCALL +NTAPI NtUserGetImeHotKey( DWORD Unknown0, DWORD Unknown1, @@ -735,49 +922,49 @@ NtUserGetImeHotKey( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserGetInternalWindowPos( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HKL -STDCALL +NTAPI NtUserGetKeyboardLayout( DWORD dwThreadid); DWORD -STDCALL +NTAPI NtUserGetKeyboardLayoutList( DWORD Unknown0, DWORD Unknown1); BOOL -STDCALL +NTAPI NtUserGetKeyboardLayoutName( LPWSTR lpszName); DWORD -STDCALL +NTAPI NtUserGetKeyboardState( LPBYTE Unknown0); DWORD -STDCALL +NTAPI NtUserGetKeyboardType( DWORD TypeFlag); DWORD -STDCALL +NTAPI NtUserGetKeyNameText( LONG lParam, LPWSTR lpString, int nSize ); DWORD -STDCALL +NTAPI NtUserGetKeyState( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserGetListBoxInfo( DWORD Unknown0); @@ -788,7 +975,7 @@ typedef struct tagNTUSERGETMESSAGEINFO } NTUSERGETMESSAGEINFO, *PNTUSERGETMESSAGEINFO; BOOL -STDCALL +NTAPI NtUserGetMessage( PNTUSERGETMESSAGEINFO MsgInfo, HWND hWnd, @@ -796,13 +983,13 @@ NtUserGetMessage( UINT wMsgFilterMax); BOOL -STDCALL +NTAPI NtUserGetMonitorInfo( IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo); DWORD -STDCALL +NTAPI NtUserGetMouseMovePointsEx( DWORD Unknown0, DWORD Unknown1, @@ -811,7 +998,7 @@ NtUserGetMouseMovePointsEx( DWORD Unknown4); BOOL -STDCALL +NTAPI NtUserGetObjectInformation( HANDLE hObject, DWORD nIndex, @@ -820,35 +1007,35 @@ NtUserGetObjectInformation( PDWORD nLengthNeeded); HWND -STDCALL +NTAPI NtUserGetOpenClipboardWindow(VOID); INT -STDCALL +NTAPI NtUserGetPriorityClipboardFormat( UINT *paFormatPriorityList, INT cFormats); HWINSTA -STDCALL +NTAPI NtUserGetProcessWindowStation(VOID); BOOL -STDCALL +NTAPI NtUserGetScrollBarInfo( HWND hWnd, LONG idObject, PSCROLLBARINFO psbi); BOOL -STDCALL +NTAPI NtUserGetScrollInfo( HWND hwnd, int fnBar, LPSCROLLINFO lpsi); HDESK -STDCALL +NTAPI NtUserGetThreadDesktop( DWORD dwThreadId, DWORD Unknown1); @@ -856,51 +1043,51 @@ NtUserGetThreadDesktop( #define THREADSTATE_FOCUSWINDOW (1) #define THREADSTATE_INSENDMESSAGE (2) DWORD -STDCALL +NTAPI NtUserGetThreadState( DWORD Routine); DWORD -STDCALL +NTAPI NtUserGetTitleBarInfo( DWORD Unknown0, DWORD Unknown1); -BOOL STDCALL +BOOL NTAPI NtUserGetUpdateRect(HWND hWnd, LPRECT lpRect, BOOL fErase); int -STDCALL +NTAPI NtUserGetUpdateRgn( HWND hWnd, HRGN hRgn, BOOL bErase); DWORD -STDCALL +NTAPI NtUserGetWindowDC( HWND hWnd); BOOL -STDCALL +NTAPI NtUserGetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl); DWORD -STDCALL +NTAPI NtUserGetWOWClass( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserImpersonateDdeClientWindow( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserInitializeClientPfnArrays( DWORD Unknown0, DWORD Unknown1, @@ -908,7 +1095,7 @@ NtUserInitializeClientPfnArrays( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserInitTask( DWORD Unknown0, DWORD Unknown1, @@ -923,7 +1110,7 @@ NtUserInitTask( DWORD Unknown10); INT -STDCALL +NTAPI NtUserInternalGetWindowText( HWND hWnd, LPWSTR lpString, @@ -931,12 +1118,12 @@ NtUserInternalGetWindowText( BOOL -STDCALL +NTAPI NtUserIsClipboardFormatAvailable( UINT format); BOOL -STDCALL +NTAPI NtUserKillSystemTimer ( HWND hWnd, @@ -944,7 +1131,7 @@ NtUserKillSystemTimer ); BOOL -STDCALL +NTAPI NtUserKillTimer ( HWND hWnd, @@ -952,7 +1139,7 @@ NtUserKillTimer ); DWORD -STDCALL +NTAPI NtUserLoadKeyboardLayoutEx( DWORD Unknown0, DWORD Unknown1, @@ -962,28 +1149,28 @@ NtUserLoadKeyboardLayoutEx( DWORD Unknown5); BOOL -STDCALL +NTAPI NtUserLockWindowStation( HWINSTA hWindowStation); DWORD -STDCALL +NTAPI NtUserLockWindowUpdate( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserLockWorkStation(VOID); UINT -STDCALL +NTAPI NtUserMapVirtualKeyEx( UINT keyCode, UINT transType, DWORD keyboardId, HKL dwhkl ); DWORD -STDCALL +NTAPI NtUserMessageCall( DWORD Unknown0, DWORD Unknown1, @@ -994,49 +1181,49 @@ NtUserMessageCall( DWORD Unknown6); BOOL -STDCALL +NTAPI NtUserGetMinMaxInfo( HWND hwnd, MINMAXINFO *MinMaxInfo, BOOL SendMessage); DWORD -STDCALL +NTAPI NtUserMNDragLeave(VOID); DWORD -STDCALL +NTAPI NtUserMNDragOver( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserModifyUserStartupInfoFlags( DWORD Unknown0, DWORD Unknown1); HMONITOR -STDCALL +NTAPI NtUserMonitorFromPoint( IN POINT point, IN DWORD dwFlags); HMONITOR -STDCALL +NTAPI NtUserMonitorFromRect( IN LPCRECT pRect, IN DWORD dwFlags); HMONITOR -STDCALL +NTAPI NtUserMonitorFromWindow( IN HWND hWnd, IN DWORD dwFlags); BOOL -STDCALL +NTAPI NtUserMoveWindow( HWND hWnd, int X, @@ -1047,14 +1234,14 @@ NtUserMoveWindow( ); DWORD -STDCALL +NTAPI NtUserNotifyIMEStatus( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserNotifyWinEvent( DWORD Unknown0, DWORD Unknown1, @@ -1062,38 +1249,38 @@ NtUserNotifyWinEvent( DWORD Unknown3); BOOL -STDCALL +NTAPI NtUserOpenClipboard( HWND hWnd, DWORD Unknown1); HDESK -STDCALL +NTAPI NtUserOpenDesktop( PUNICODE_STRING lpszDesktopName, DWORD dwFlags, ACCESS_MASK dwDesiredAccess); HDESK -STDCALL +NTAPI NtUserOpenInputDesktop( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess); HWINSTA -STDCALL +NTAPI NtUserOpenWindowStation( PUNICODE_STRING lpszWindowStationName, ACCESS_MASK dwDesiredAccess); BOOL -STDCALL +NTAPI NtUserPaintDesktop( HDC hDC); BOOL -STDCALL +NTAPI NtUserPeekMessage( PNTUSERGETMESSAGEINFO MsgInfo, HWND hWnd, @@ -1102,7 +1289,7 @@ NtUserPeekMessage( UINT wRemoveMsg); BOOL -STDCALL +NTAPI NtUserPostMessage( HWND hWnd, UINT Msg, @@ -1110,7 +1297,7 @@ NtUserPostMessage( LPARAM lParam); BOOL -STDCALL +NTAPI NtUserPostThreadMessage( DWORD idThread, UINT Msg, @@ -1118,12 +1305,12 @@ NtUserPostThreadMessage( LPARAM lParam); DWORD -STDCALL +NTAPI NtUserQuerySendMessage( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserQueryUserCounters( DWORD Unknown0, DWORD Unknown1, @@ -1135,20 +1322,24 @@ NtUserQueryUserCounters( #define QUERY_WINDOW_UNIQUE_THREAD_ID 0x01 #define QUERY_WINDOW_ISHUNG 0x04 DWORD -STDCALL +NTAPI NtUserQueryWindow( HWND hWnd, DWORD Index); +UINT +NTAPI +NtUserRealizePalette(HDC hDC); + DWORD -STDCALL +NTAPI NtUserRealChildWindowFromPoint( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); BOOL -STDCALL +NTAPI NtUserRedrawWindow ( HWND hWnd, @@ -1162,7 +1353,7 @@ NtUserRedrawWindow #define REGISTERCLASS_SYSTEM 4 #define REGISTERCLASS_ALL (REGISTERCLASS_ANSI | REGISTERCLASS_SYSTEM) -RTL_ATOM STDCALL +RTL_ATOM NTAPI NtUserRegisterClassExWOW( CONST WNDCLASSEXW* lpwcx, PUNICODE_STRING ClassName, @@ -1174,30 +1365,30 @@ NtUserRegisterClassExWOW( HMENU hMenu); BOOL -STDCALL +NTAPI NtUserRegisterHotKey(HWND hWnd, int id, UINT fsModifiers, UINT vk); DWORD -STDCALL +NTAPI NtUserRegisterTasklist( DWORD Unknown0); -UINT STDCALL +UINT NTAPI NtUserRegisterWindowMessage(PUNICODE_STRING MessageName); -HANDLE STDCALL +HANDLE NTAPI NtUserRemoveProp(HWND hWnd, ATOM Atom); DWORD -STDCALL +NTAPI NtUserResolveDesktopForWOW( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserSBGetParms( DWORD Unknown0, DWORD Unknown1, @@ -1205,7 +1396,7 @@ NtUserSBGetParms( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserScrollDC( HDC hDC, int dx, @@ -1215,12 +1406,12 @@ NtUserScrollDC( HRGN hrgnUpdate, LPRECT lprcUpdate); -DWORD STDCALL +DWORD NTAPI NtUserScrollWindowEx(HWND hWnd, INT dx, INT dy, const RECT *rect, const RECT *clipRect, HRGN hrgnUpdate, LPRECT rcUpdate, UINT flags); UINT -STDCALL +NTAPI NtUserSendInput( UINT nInputs, LPINPUT pInput, @@ -1233,7 +1424,7 @@ typedef struct tagNTUSERSENDMESSAGEINFO WNDPROC Proc; } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO; -LRESULT STDCALL +LRESULT NTAPI NtUserSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, @@ -1241,7 +1432,7 @@ NtUserSendMessage(HWND hWnd, PNTUSERSENDMESSAGEINFO Info); BOOL -STDCALL +NTAPI NtUserSendMessageCallback( HWND hWnd, UINT Msg, @@ -1250,7 +1441,7 @@ NtUserSendMessageCallback( SENDASYNCPROC lpCallBack, ULONG_PTR dwData); -LRESULT STDCALL +LRESULT NTAPI NtUserSendMessageTimeout(HWND hWnd, UINT Msg, WPARAM wParam, @@ -1261,24 +1452,24 @@ NtUserSendMessageTimeout(HWND hWnd, PNTUSERSENDMESSAGEINFO Info); BOOL -STDCALL +NTAPI NtUserSendNotifyMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -HWND STDCALL +HWND NTAPI NtUserSetActiveWindow(HWND Wnd); -HWND STDCALL +HWND NTAPI NtUserGetActiveWindow(VOID); -HWND STDCALL +HWND NTAPI NtUserSetCapture(HWND Wnd); -HWND STDCALL +HWND NTAPI NtUserGetCapture(VOID); -DWORD STDCALL +DWORD NTAPI NtUserSetClassLong( HWND hWnd, DWORD Offset, @@ -1287,43 +1478,51 @@ NtUserSetClassLong( DWORD -STDCALL +NTAPI NtUserSetClassWord( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HANDLE -STDCALL +NTAPI NtUserSetClipboardData( UINT uFormat, HANDLE hMem, DWORD Unknown2); HWND -STDCALL +NTAPI NtUserSetClipboardViewer( HWND hWndNewViewer); -DWORD +HPALETTE STDCALL +NtUserSelectPalette( + HDC hDC, + HPALETTE hpal, + BOOL ForceBackground +); + +DWORD +NTAPI NtUserSetConsoleReserveKeys( DWORD Unknown0, DWORD Unknown1); HCURSOR -STDCALL +NTAPI NtUserSetCursor( HCURSOR hCursor); BOOL -STDCALL +NTAPI NtUserSetCursorIconContents( HANDLE Handle, PICONINFO IconInfo); BOOL -STDCALL +NTAPI NtUserSetCursorIconData( HANDLE Handle, PBOOL fIcon, @@ -1333,18 +1532,18 @@ NtUserSetCursorIconData( HRSRC hGroupRsrc); DWORD -STDCALL +NTAPI NtUserSetDbgTag( DWORD Unknown0, DWORD Unknown1); HWND -STDCALL +NTAPI NtUserSetFocus( HWND hWnd); DWORD -STDCALL +NTAPI NtUserSetImeHotKey( DWORD Unknown0, DWORD Unknown1, @@ -1353,13 +1552,13 @@ NtUserSetImeHotKey( DWORD Unknown4); DWORD -STDCALL +NTAPI NtUserSetImeOwnerWindow( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserSetInternalWindowPos( DWORD Unknown0, DWORD Unknown1, @@ -1367,12 +1566,12 @@ NtUserSetInternalWindowPos( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserSetKeyboardState( LPBYTE Unknown0); DWORD -STDCALL +NTAPI NtUserSetLayeredWindowAttributes( DWORD Unknown0, DWORD Unknown1, @@ -1380,12 +1579,12 @@ NtUserSetLayeredWindowAttributes( DWORD Unknown3); DWORD -STDCALL +NTAPI NtUserSetLogonNotifyWindow( DWORD Unknown0); BOOL -STDCALL +NTAPI NtUserSetObjectInformation( HANDLE hObject, DWORD nIndex, @@ -1393,27 +1592,27 @@ NtUserSetObjectInformation( DWORD nLength); HWND -STDCALL +NTAPI NtUserSetParent( HWND hWndChild, HWND hWndNewParent); BOOL -STDCALL +NTAPI NtUserSetProcessWindowStation( HWINSTA hWindowStation); -BOOL STDCALL +BOOL NTAPI NtUserSetProp(HWND hWnd, ATOM Atom, HANDLE Data); DWORD -STDCALL +NTAPI NtUserSetRipFlags( DWORD Unknown0, DWORD Unknown1); DWORD -STDCALL +NTAPI NtUserSetScrollInfo( HWND hwnd, int fnBar, @@ -1421,17 +1620,17 @@ NtUserSetScrollInfo( BOOL bRedraw); BOOL -STDCALL +NTAPI NtUserSetShellWindowEx( HWND hwndShell, HWND hwndShellListView); HWND -STDCALL +NTAPI NtUserGetShellWindow(); DWORD -STDCALL +NTAPI NtUserSetSysColors( DWORD Unknown0, DWORD Unknown1, @@ -1439,24 +1638,24 @@ NtUserSetSysColors( DWORD Unknown3); BOOL -STDCALL +NTAPI NtUserSetSystemCursor( HCURSOR hcur, DWORD id); BOOL -STDCALL +NTAPI NtUserSetThreadDesktop( HDESK hDesktop); DWORD -STDCALL +NTAPI NtUserSetThreadState( DWORD Unknown0, DWORD Unknown1); UINT_PTR -STDCALL +NTAPI NtUserSetSystemTimer ( HWND hWnd, @@ -1466,7 +1665,7 @@ NtUserSetSystemTimer ); UINT_PTR -STDCALL +NTAPI NtUserSetTimer ( HWND hWnd, @@ -1476,13 +1675,13 @@ NtUserSetTimer ); DWORD -STDCALL +NTAPI NtUserSetWindowFNID( DWORD Unknown0, DWORD Unknown1); LONG -STDCALL +NTAPI NtUserSetWindowLong( HWND hWnd, DWORD Index, @@ -1490,13 +1689,13 @@ NtUserSetWindowLong( BOOL Ansi); BOOL -STDCALL +NTAPI NtUserSetWindowPlacement( HWND hWnd, WINDOWPLACEMENT *lpwndpl); BOOL -STDCALL NtUserSetWindowPos( +NTAPI NtUserSetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, @@ -1507,21 +1706,21 @@ STDCALL NtUserSetWindowPos( ); INT -STDCALL +NTAPI NtUserSetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw); DWORD -STDCALL +NTAPI NtUserSetWindowsHookAW( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); HHOOK -STDCALL +NTAPI NtUserSetWindowsHookEx( HINSTANCE Mod, PUNICODE_STRING ModuleName, @@ -1531,18 +1730,18 @@ NtUserSetWindowsHookEx( BOOL Ansi); DWORD -STDCALL +NTAPI NtUserSetWindowStationUser( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3); -WORD STDCALL +WORD NTAPI NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal); DWORD -STDCALL +NTAPI NtUserSetWinEventHook( DWORD Unknown0, DWORD Unknown1, @@ -1554,34 +1753,34 @@ NtUserSetWinEventHook( DWORD Unknown7); BOOL -STDCALL +NTAPI NtUserShowCaret( HWND hWnd, BOOL bShow); DWORD -STDCALL +NTAPI NtUserShowScrollBar(HWND hWnd, int wBar, DWORD bShow); BOOL -STDCALL +NTAPI NtUserShowWindow( HWND hWnd, LONG nCmdShow); BOOL -STDCALL +NTAPI NtUserShowWindowAsync( HWND hWnd, LONG nCmdShow); BOOL -STDCALL +NTAPI NtUserSwitchDesktop( HDESK hDesktop); BOOL -STDCALL +NTAPI NtUserSystemParametersInfo( UINT uiAction, UINT uiParam, @@ -1589,7 +1788,7 @@ NtUserSystemParametersInfo( UINT fWinIni); int -STDCALL +NTAPI NtUserToUnicodeEx( UINT wVirtKey, UINT wScanCode, @@ -1600,71 +1799,71 @@ NtUserToUnicodeEx( HKL dwhkl ); DWORD -STDCALL +NTAPI NtUserTrackMouseEvent( DWORD Unknown0); int -STDCALL +NTAPI NtUserTranslateAccelerator( HWND Window, HACCEL Table, LPMSG Message); BOOL -STDCALL +NTAPI NtUserTranslateMessage( LPMSG lpMsg, HKL dwhkl ); BOOL -STDCALL +NTAPI NtUserUnhookWindowsHookEx( HHOOK Hook); DWORD -STDCALL +NTAPI NtUserUnhookWinEvent( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserUnloadKeyboardLayout( DWORD Unknown0); BOOL -STDCALL +NTAPI NtUserUnlockWindowStation( HWINSTA hWindowStation); BOOL -STDCALL +NTAPI NtUserUnregisterClass( LPCWSTR ClassNameOrAtom, HINSTANCE hInstance, DWORD Unknown); BOOL -STDCALL +NTAPI NtUserUnregisterHotKey(HWND hWnd, int id); DWORD -STDCALL +NTAPI NtUserUpdateInputContext( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserUpdateInstance( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserUpdateLayeredWindow( DWORD Unknown0, DWORD Unknown1, @@ -1677,48 +1876,48 @@ NtUserUpdateLayeredWindow( DWORD Unknown8); BOOL -STDCALL +NTAPI NtUserUpdatePerUserSystemParameters( DWORD dwReserved, BOOL bEnable); DWORD -STDCALL +NTAPI NtUserUserHandleGrantAccess( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserValidateHandleSecure( DWORD Unknown0); DWORD -STDCALL +NTAPI NtUserVkKeyScanEx( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserWaitForInputIdle( DWORD Unknown0, DWORD Unknown1, DWORD Unknown2); DWORD -STDCALL +NTAPI NtUserWaitForMsgAndEvent( DWORD Unknown0); BOOL -STDCALL +NTAPI NtUserWaitMessage(VOID); DWORD -STDCALL +NTAPI NtUserWin32PoolAllocationStats( DWORD Unknown0, DWORD Unknown1, @@ -1728,28 +1927,28 @@ NtUserWin32PoolAllocationStats( DWORD Unknown5); HWND -STDCALL +NTAPI NtUserWindowFromPoint( LONG X, LONG Y); DWORD -STDCALL +NTAPI NtUserYieldTask(VOID); -DWORD STDCALL +DWORD NTAPI NtUserGetWindowThreadProcessId(HWND hWnd, LPDWORD UnsafePid); -DWORD STDCALL +DWORD NTAPI NtUserGetQueueStatus(BOOL ClearChanges); -HWND STDCALL +HWND NTAPI NtUserGetParent(HWND hWnd); -HWND STDCALL +HWND NTAPI NtUserGetWindow(HWND hWnd, UINT Relationship); -HWND STDCALL +HWND NTAPI NtUserGetLastActivePopup(HWND hWnd); typedef struct _WndProcHandle { @@ -1758,12 +1957,24 @@ typedef struct _WndProcHandle HANDLE ProcessID; } WndProcHandle; -DWORD STDCALL +DWORD NTAPI NtUserDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data); -VOID STDCALL +VOID NTAPI NtUserManualGuiCheck(LONG Check); +#define NtUserGetDCBrushColor(hbr) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR) + +#define NtUserGetDCPenColor(hbr) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR) + +#define NtUserSetDCBrushColor(hbr, crColor) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR) + +#define NtUserSetDCPenColor(hbr, crColor) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR) + typedef struct _SETSCROLLBARINFO { int nTrackPos; @@ -1772,7 +1983,7 @@ typedef struct _SETSCROLLBARINFO } SETSCROLLBARINFO, *PSETSCROLLBARINFO; BOOL -STDCALL +NTAPI NtUserSetScrollBarInfo( HWND hwnd, LONG idObject, @@ -1800,14 +2011,6 @@ 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 new file mode 100644 index 00000000000..c94598e76db --- /dev/null +++ b/reactos/include/win32k/ntusrtyp.h @@ -0,0 +1,167 @@ +/* + * 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 deleted file mode 100644 index dec0ca0e8be..00000000000 --- a/reactos/include/win32k/paint.h +++ /dev/null @@ -1,43 +0,0 @@ -#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 deleted file mode 100644 index 31467b48dce..00000000000 --- a/reactos/include/win32k/path.h +++ /dev/null @@ -1,54 +0,0 @@ -#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/include/win32k/print.h b/reactos/include/win32k/print.h deleted file mode 100644 index 9dab57f8d66..00000000000 --- a/reactos/include/win32k/print.h +++ /dev/null @@ -1,48 +0,0 @@ - -#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 deleted file mode 100644 index 9627490bbeb..00000000000 --- a/reactos/include/win32k/region.h +++ /dev/null @@ -1,151 +0,0 @@ - -#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 deleted file mode 100644 index 8af356a2f0f..00000000000 --- a/reactos/include/win32k/text.h +++ /dev/null @@ -1,233 +0,0 @@ - -#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 deleted file mode 100644 index 89a82101cfa..00000000000 --- a/reactos/include/win32k/win32k.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/reactos/include/win32k/wingl.h b/reactos/include/win32k/wingl.h deleted file mode 100644 index 70ba8d5a6ac..00000000000 --- a/reactos/include/win32k/wingl.h +++ /dev/null @@ -1,38 +0,0 @@ - -#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/gdi32/gdi32.def b/reactos/lib/gdi32/gdi32.def index ed3bd92d10d..195e6e393f3 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=NtGdiBitBlt@36 +BitBlt@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=NtGdiCreateSolidBrush@4 +CreateSolidBrush@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=NtGdiGetGlyphOutline@28 +GetGlyphOutlineW@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 new file mode 100644 index 00000000000..a7ea6bd6b4c --- /dev/null +++ b/reactos/lib/gdi32/include/gdi32p.h @@ -0,0 +1,106 @@ +/* + * 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 50750cb923e..1eeb88ebdc2 100644 --- a/reactos/lib/gdi32/include/precomp.h +++ b/reactos/lib/gdi32/include/precomp.h @@ -8,89 +8,26 @@ /* INCLUDES ******************************************************************/ -/* SDK/DDK/NDK Headers. */ +/* Definitions */ #define WIN32_NO_STATUS #define NTOS_MODE_USER -#define __GDI32__ + +/* SDK/DDK/NDK Headers. */ #include -#include -#include -#include -#include -#include #include -#include +#include +#include +#include -/* Win32K External Headers */ -#include +/* Public Win32K Headers */ +#include +#include +#include -/* directdraw syscall */ -#include +/* Private GDI32 Header */ +#include "gdi32p.h" +/* 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 e21fdfc5b95..78c75b84a74 100644 --- a/reactos/lib/gdi32/misc/gdientry.c +++ b/reactos/lib/gdi32/misc/gdientry.c @@ -27,9 +27,16 @@ #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 @@ -91,8 +98,42 @@ 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 a9808a48adf..d212219ad1b 100644 --- a/reactos/lib/gdi32/misc/stubs.c +++ b/reactos/lib/gdi32/misc/stubs.c @@ -3634,49 +3634,6 @@ 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 067c35371f7..4c6de64dd7f 100644 --- a/reactos/lib/gdi32/misc/stubsa.c +++ b/reactos/lib/gdi32/misc/stubsa.c @@ -157,9 +157,9 @@ CreateColorSpaceA( BOOL STDCALL GetICMProfileA( - HDC a0, - DWORD a1, /* MS says LPDWORD! */ - LPSTR a2 + HDC hdc, + LPDWORD pBufSize, + LPSTR pszFilename ) { UNIMPLEMENTED; @@ -258,7 +258,7 @@ BOOL STDCALL UpdateICMRegKeyA( DWORD a0, - DWORD a1, + LPSTR a1, LPSTR a2, UINT a3 ) diff --git a/reactos/lib/gdi32/misc/stubsw.c b/reactos/lib/gdi32/misc/stubsw.c index 4260ee07509..cd9431e0a0f 100644 --- a/reactos/lib/gdi32/misc/stubsw.c +++ b/reactos/lib/gdi32/misc/stubsw.c @@ -129,7 +129,7 @@ BOOL STDCALL GetICMProfileW( HDC a0, - DWORD a1, /* MS says LPDWORD! */ + LPDWORD a1, LPWSTR a2 ) { @@ -228,7 +228,7 @@ BOOL STDCALL UpdateICMRegKeyW( DWORD a0, - DWORD a1, + LPWSTR a1, LPWSTR a2, UINT a3 ) diff --git a/reactos/lib/gdi32/misc/wingl.c b/reactos/lib/gdi32/misc/wingl.c index 8db96ff25ce..72b7b92e109 100644 --- a/reactos/lib/gdi32/misc/wingl.c +++ b/reactos/lib/gdi32/misc/wingl.c @@ -187,8 +187,8 @@ UINT STDCALL GetEnhMetaFilePixelFormat( HENHMETAFILE hemf, - DWORD cbBuffer, - CONST PIXELFORMATDESCRIPTOR *ppfd + UINT cbBuffer, + PIXELFORMATDESCRIPTOR *ppfd ) { ENHMETAHEADER pemh; @@ -199,7 +199,7 @@ GetEnhMetaFilePixelFormat( { if(pemh.cbPixelFormat) { - memcpy((void*)ppfd, (const void *)pemh.offPixelFormat, cbBuffer ); + memcpy((void*)ppfd, UlongToPtr(pemh.offPixelFormat), cbBuffer ); return(pemh.cbPixelFormat); } } diff --git a/reactos/lib/gdi32/objects/bitmap.c b/reactos/lib/gdi32/objects/bitmap.c index c4f62480c5b..9fd1043a237 100644 --- a/reactos/lib/gdi32/objects/bitmap.c +++ b/reactos/lib/gdi32/objects/bitmap.c @@ -20,8 +20,7 @@ CreateDIBSection( &ConvertedInfoSize, FALSE); if (pConvertedInfo) { - hBitmap = NtGdiCreateDIBSection(hDC, pConvertedInfo, Usage, Bits, - hSection, dwOffset); + hBitmap = NtGdiCreateDIBSection(hDC, hSection, dwOffset, pConvertedInfo, Usage, 0, 0, 0, Bits); if (BitmapInfo != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -29,6 +28,34 @@ 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 */ @@ -51,9 +78,9 @@ StretchBlt( { return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, - nWidthSrc, nHeightSrc, dwRop); + nWidthSrc, nHeightSrc, dwRop, 0); } return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, - nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop); + nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, dwRop, 0, 0); } diff --git a/reactos/lib/gdi32/objects/brush.c b/reactos/lib/gdi32/objects/brush.c index ebf0174e4c3..538f111b85d 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, lpPackedDIB); + ConvertedInfoSize, FALSE, FALSE, lpPackedDIB); if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -69,7 +69,7 @@ CreateDIBPatternBrushPt( if (pConvertedInfo) { hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec, - ConvertedInfoSize, lpPackedDIB); + ConvertedInfoSize, FALSE, FALSE, (PVOID)lpPackedDIB); if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo) RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo); } @@ -77,6 +77,17 @@ CreateDIBPatternBrushPt( return hBrush; } +/* + * @implemented + */ +HBRUSH +STDCALL +CreateSolidBrush(IN COLORREF crColor) +{ + /* Call Server-Side API */ + return NtGdiCreateSolidBrush(crColor, NULL); +} + /* * @implemented */ @@ -105,7 +116,7 @@ CreateBrushIndirect( break; case BS_SOLID: - hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor); + hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor, 0); break; case BS_HATCHED: diff --git a/reactos/lib/gdi32/objects/dc.c b/reactos/lib/gdi32/objects/dc.c index 781d0a119f4..70ce7bb05a2 100644 --- a/reactos/lib/gdi32/objects/dc.c +++ b/reactos/lib/gdi32/objects/dc.c @@ -348,7 +348,8 @@ ResetDCW( CONST DEVMODEW *lpInitData ) { - return NtGdiResetDC ( hdc, lpInitData ); + NtGdiResetDC ( hdc, (PDEVMODEW)lpInitData, NULL, NULL, NULL); + return hdc; } @@ -363,13 +364,12 @@ ResetDCA( ) { LPDEVMODEW InitDataW; - HDC hDc; InitDataW = GdiConvertToDevmodeW((LPDEVMODEA)lpInitData); - hDc = NtGdiResetDC ( hdc, InitDataW ); + NtGdiResetDC ( hdc, InitDataW, NULL, NULL, NULL); HEAP_free(InitDataW); - return hDc; + return hdc; } @@ -383,7 +383,7 @@ StartDocW( CONST DOCINFOW *a1 ) { - return NtGdiStartDoc ( hdc, (DOCINFOW *)a1 ); + return NtGdiStartDoc ( hdc, (DOCINFOW *)a1, NULL, 0); } diff --git a/reactos/lib/gdi32/objects/font.c b/reactos/lib/gdi32/objects/font.c index c7495d66434..c0551112199 100644 --- a/reactos/lib/gdi32/objects/font.c +++ b/reactos/lib/gdi32/objects/font.c @@ -517,9 +517,28 @@ GetGlyphOutlineA( CONST MAT2 *lpmat2 ) { - return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2 ); + return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2, TRUE); } +/* + * @implemented + */ +DWORD +STDCALL +GetGlyphOutlineW( + HDC hdc, + UINT uChar, + UINT uFormat, + LPGLYPHMETRICS lpgm, + DWORD cbBuffer, + LPVOID lpvBuffer, + CONST MAT2 *lpmat2 + ) +{ + return NtGdiGetGlyphOutline ( hdc, uChar, uFormat, lpgm, cbBuffer, lpvBuffer, (CONST LPMAT2)lpmat2, TRUE); +} + + /* * @implemented diff --git a/reactos/lib/gdi32/objects/path.c b/reactos/lib/gdi32/objects/path.c index 925dfc01394..dda7616ad85 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, a2 ); + return NtGdiSetMiterLimit ( hdc, a1, (PDWORD)a2 ); } @@ -180,7 +180,7 @@ GetMiterLimit( PFLOAT a1 ) { - return NtGdiGetMiterLimit ( hdc, a1 ); + return NtGdiGetMiterLimit ( hdc, (PDWORD)a1 ); } /* diff --git a/reactos/lib/user32/include/user32.h b/reactos/lib/user32/include/user32.h index f11b8bb386f..e7c83ecc236 100644 --- a/reactos/lib/user32/include/user32.h +++ b/reactos/lib/user32/include/user32.h @@ -26,13 +26,10 @@ /* CSRSS Headers */ #include -/* External Win32K Headers */ +/* Public Win32K Headers */ +#include #include -#include #include -#include -#include -#include /* WINE Headers */ #include @@ -41,6 +38,7 @@ /* Internal User32 Headers */ #include "user32p.h" -/* FIXME: FILIP */ +/* FIXME: Use ntgdi.h then cleanup... */ HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj); -DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *); +BOOL STDCALL NtGdiPatBlt(HDC hdcDst, INT x, INT y, INT cx, INT cy, DWORD rop4); +DWORD STDCALL GdiGetCharDimensions(HDC, LPTEXTMETRICW, DWORD *); diff --git a/reactos/subsys/win32k/eng/objects.h b/reactos/subsys/win32k/eng/objects.h index e5915738393..6d7382bd8db 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 new file mode 100644 index 00000000000..6537abba4db --- /dev/null +++ b/reactos/subsys/win32k/include/bitmaps.h @@ -0,0 +1,50 @@ + +#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/include/win32k/brush.h b/reactos/subsys/win32k/include/brush.h similarity index 78% rename from reactos/include/win32k/brush.h rename to reactos/subsys/win32k/include/brush.h index 116f410a1a2..65c40cadc90 100644 --- a/reactos/include/win32k/brush.h +++ b/reactos/subsys/win32k/include/brush.h @@ -1,112 +1,77 @@ -#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 +#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 diff --git a/reactos/subsys/win32k/include/color.h b/reactos/subsys/win32k/include/color.h index 8106d653c64..3a3a99e6e15 100644 --- a/reactos/subsys/win32k/include/color.h +++ b/reactos/subsys/win32k/include/color.h @@ -1,6 +1,13 @@ #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); @@ -8,4 +15,5 @@ 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 new file mode 100644 index 00000000000..fe6badccc13 --- /dev/null +++ b/reactos/subsys/win32k/include/coord.h @@ -0,0 +1,24 @@ +#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/include/win32k/dc.h b/reactos/subsys/win32k/include/dc.h similarity index 58% rename from reactos/include/win32k/dc.h rename to reactos/subsys/win32k/include/dc.h index efb71abf501..b131da69079 100644 --- a/reactos/include/win32k/dc.h +++ b/reactos/subsys/win32k/include/dc.h @@ -1,238 +1,185 @@ - -#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 + +#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 diff --git a/reactos/subsys/win32k/include/dib.h b/reactos/subsys/win32k/include/dib.h index 49a13af6256..415fb20ac7b 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 +#include "dc.h" INT FASTCALL DIB_BitmapInfoSize (const BITMAPINFO * info, WORD coloruse); diff --git a/reactos/include/win32k/driver.h b/reactos/subsys/win32k/include/driver.h similarity index 50% rename from reactos/include/win32k/driver.h rename to reactos/subsys/win32k/include/driver.h index 53c26a718d5..d6febdd2ebf 100644 --- a/reactos/include/win32k/driver.h +++ b/reactos/subsys/win32k/include/driver.h @@ -1,192 +1,188 @@ - -#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 - + +#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 + diff --git a/reactos/include/win32k/float.h b/reactos/subsys/win32k/include/gdifloat.h similarity index 87% rename from reactos/include/win32k/float.h rename to reactos/subsys/win32k/include/gdifloat.h index 84f9968e4df..abc50f8a9b0 100644 --- a/reactos/include/win32k/float.h +++ b/reactos/subsys/win32k/include/gdifloat.h @@ -1,103 +1,103 @@ -#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 +#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 diff --git a/reactos/include/win32k/gdiobj.h b/reactos/subsys/win32k/include/gdiobj.h similarity index 51% rename from reactos/include/win32k/gdiobj.h rename to reactos/subsys/win32k/include/gdiobj.h index aa8019ee06e..47722065400 100644 --- a/reactos/include/win32k/gdiobj.h +++ b/reactos/subsys/win32k/include/gdiobj.h @@ -1,125 +1,68 @@ -/* - * 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 +/* + * 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 diff --git a/reactos/subsys/win32k/include/intgdi.h b/reactos/subsys/win32k/include/intgdi.h index 23adf584159..70a4edb09eb 100644 --- a/reactos/subsys/win32k/include/intgdi.h +++ b/reactos/subsys/win32k/include/intgdi.h @@ -1,6 +1,8 @@ #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 5b24901e4a5..36ec888358a 100644 --- a/reactos/subsys/win32k/include/menu.h +++ b/reactos/subsys/win32k/include/menu.h @@ -1,8 +1,6 @@ #ifndef _WIN32K_MENU_H #define _WIN32K_MENU_H -#include - #define IS_ATOM(x) \ (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000)) @@ -38,6 +36,13 @@ 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/include/win32k/misc.h b/reactos/subsys/win32k/include/misc.h similarity index 89% rename from reactos/include/win32k/misc.h rename to reactos/subsys/win32k/include/misc.h index e03faa62a5c..85491f464a6 100644 --- a/reactos/include/win32k/misc.h +++ b/reactos/subsys/win32k/include/misc.h @@ -1,17 +1,13 @@ -#ifndef __WIN32K_MISC_H -#define __WIN32K_MISC_H - -#ifndef NTOS_MODE_USER - -/* W32PROCESS flags */ -#define W32PF_NOWINDOWGHOSTING (0x0001) -#define W32PF_MANUALGUICHECK (0x0002) -#define W32PF_CREATEDWINORDC (0x0004) - -VOID -FASTCALL -DestroyThreadWindows(struct _ETHREAD *Thread); - -#endif - -#endif /* __WIN32K_MISC_H */ +#ifndef __WIN32K_MISC_H +#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 */ diff --git a/reactos/subsys/win32k/include/object.h b/reactos/subsys/win32k/include/object.h index a3711d0f58f..2fd1898902b 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 -#include -#include +#include "gdiobj.h" +#include "bitmaps.h" +#include "pen.h" #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */ #define LAST_USER_HANDLE 0xffef /* last possible value for low word of user handle */ diff --git a/reactos/subsys/win32k/include/path.h b/reactos/subsys/win32k/include/path.h index 9631b1fc120..9fcce87cf83 100644 --- a/reactos/subsys/win32k/include/path.h +++ b/reactos/subsys/win32k/include/path.h @@ -1,6 +1,8 @@ #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/include/win32k/pen.h b/reactos/subsys/win32k/include/pen.h similarity index 54% rename from reactos/include/win32k/pen.h rename to reactos/subsys/win32k/include/pen.h index ce2c5ac804b..e76555de4b4 100644 --- a/reactos/include/win32k/pen.h +++ b/reactos/subsys/win32k/include/pen.h @@ -1,32 +1,14 @@ -#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 +#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 diff --git a/reactos/subsys/win32k/include/region.h b/reactos/subsys/win32k/include/region.h new file mode 100644 index 00000000000..c86c7cbd898 --- /dev/null +++ b/reactos/subsys/win32k/include/region.h @@ -0,0 +1,21 @@ + +#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 1072e6455d7..b1cfa16f34e 100644 --- a/reactos/subsys/win32k/include/text.h +++ b/reactos/subsys/win32k/include/text.h @@ -1,6 +1,24 @@ #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 431f3e9a716..8c3cf288161 100644 --- a/reactos/subsys/win32k/include/win32k.h +++ b/reactos/subsys/win32k/include/win32k.h @@ -1,4 +1,4 @@ -/* +t/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS Graphics Subsystem * FILE: subsys/win32k/include/win32k.h @@ -9,6 +9,8 @@ /* INCLUDES ******************************************************************/ #ifndef __WIN32K_H #define __WIN32K_H +#define INTERNAL_CALL NTAPI + /* Internal Win32k Headers */ #include #include @@ -59,6 +61,9 @@ #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 94eb7a8d711..9596aa2327a 100644 --- a/reactos/subsys/win32k/main/dllmain.c +++ b/reactos/subsys/win32k/main/dllmain.c @@ -22,7 +22,6 @@ */ #include -#include #include #define NDEBUG diff --git a/reactos/subsys/win32k/ntddraw/stubs.c b/reactos/subsys/win32k/ntddraw/stubs.c index 03d799d4e74..107907e13e9 100644 --- a/reactos/subsys/win32k/ntddraw/stubs.c +++ b/reactos/subsys/win32k/ntddraw/stubs.c @@ -16,11 +16,11 @@ -BOOL STDCALL NtGdiD3dContextCreate( +DWORD STDCALL NtGdiD3dContextCreate( HANDLE hDirectDrawLocal, HANDLE hSurfColor, HANDLE hSurfZ, - D3DNTHAL_CONTEXTCREATEDATA *pdcci + LPD3DNTHAL_CONTEXTCREATEDATA pdcci ) { UNIMPLEMENTED @@ -37,7 +37,7 @@ DWORD STDCALL NtGdiD3dContextDestroy( return 0; } -DWORD STDCALL NtGdiD3dContextDestroyAll(VOID) +DWORD STDCALL NtGdiD3dContextDestroyAll(LPD3DNTHAL_CONTEXTDESTROYALLDATA pdcad) { /* This entry point is not supported on NT5 and ROS */ UNIMPLEMENTED @@ -226,7 +226,7 @@ DWORD STDCALL NtGdiDdGetDriverState( return 0; } -DWORD STDCALL NtGdiDdGetDxHandle( +HANDLE STDCALL NtGdiDdGetDxHandle( HANDLE hDirectDraw, HANDLE hSurface, BOOL bRelease @@ -383,7 +383,9 @@ DWORD STDCALL NtGdiDdUnlockD3D( -DWORD STDCALL NtGdiDdAlphaBlt(VOID) +DWORD STDCALL NtGdiDdAlphaBlt(IN HANDLE hSurfaceDest, + IN OPTIONAL HANDLE hSurfaceSrc, + IN OUT PDD_BLTDATA puBltData) { UNIMPLEMENTED diff --git a/reactos/subsys/win32k/ntuser/cursoricon.c b/reactos/subsys/win32k/ntuser/cursoricon.c index 82fd424c3ba..f061296be05 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); + DcSrc, XSrc, YSrc, Rop3, 0, 0); } else if (SRCCOPY == Rop3) { NtGdiStretchBlt(DcDest, XDest, YDest, WidthDest, HeightDest, DcSrc, XSrc, YSrc, WidthSrc, HeightSrc, - Rop3); + Rop3, 0); } else { @@ -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) || + SRCCOPY, 0) || ! NtGdiBitBlt(DcDest, XDest, YDest, WidthDest, HeightDest, - DcStretched, 0, 0, Rop3)) + DcStretched, 0, 0, Rop3, 0, 0)) { 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)) + (Rop3), 0) #endif /* STRETCH_CAN_SRCCOPY_ONLY */ /* @@ -1495,7 +1495,7 @@ NtUserDrawIconEx( } if(DoFlickerFree) - NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY); + NtGdiBitBlt(hdc, xLeft, yTop, cxWidth, cyHeight, hdcOff, 0, 0, SRCCOPY, 0, 0); NtGdiSetTextColor(hdcOff, oldFg); NtGdiSetBkColor(hdcOff, oldBg); diff --git a/reactos/subsys/win32k/ntuser/desktop.c b/reactos/subsys/win32k/ntuser/desktop.c index 5b889400987..fd993c21d64 100644 --- a/reactos/subsys/win32k/ntuser/desktop.c +++ b/reactos/subsys/win32k/ntuser/desktop.c @@ -1281,7 +1281,8 @@ NtUserPaintDesktop(HDC hDC) 0, WinSta->cxWallpaper, WinSta->cyWallpaper, - SRCCOPY); + SRCCOPY, + 0); } else if (WinSta->WallpaperMode == wmTile) { @@ -1298,7 +1299,9 @@ NtUserPaintDesktop(HDC hDC) hWallpaperDC, 0, 0, - SRCCOPY); + SRCCOPY, + 0, + 0); } } } @@ -1312,7 +1315,9 @@ NtUserPaintDesktop(HDC hDC) hWallpaperDC, 0, 0, - SRCCOPY); + SRCCOPY, + 0, + 0); } NtGdiSelectObject(hWallpaperDC, hOldBitmap); NtGdiDeleteDC(hWallpaperDC); diff --git a/reactos/subsys/win32k/ntuser/menu.c b/reactos/subsys/win32k/ntuser/menu.c index 33ee8d77787..ff4128a71c6 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)); /* FIXME: default background color */ + NtGdiCreateSolidBrush(RGB(192, 192, 192), 0); /* FIXME: default background color */ Menu->MenuInfo.dwContextHelpID = 0; /* default */ Menu->MenuInfo.dwMenuData = 0; /* default */ Menu->MenuInfo.Self = *Handle; diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 524f39c41b3..4dfece994fa 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)) + SRCCOPY, 0, 0)) return FALSE; } else diff --git a/reactos/subsys/win32k/ntuser/winpos.c b/reactos/subsys/win32k/ntuser/winpos.c index 76ffe461329..5d2ad61ac54 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); + CopyRect.top + (OldWindowRect.top - NewWindowRect.top), SRCCOPY, 0, 0); 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 d2271b3ea54..fe11e3681c4 100644 --- a/reactos/subsys/win32k/objects/bitmaps.c +++ b/reactos/subsys/win32k/objects/bitmaps.c @@ -41,7 +41,9 @@ NtGdiBitBlt( HDC hDCSrc, INT XSrc, INT YSrc, - DWORD ROP) + DWORD ROP, + IN DWORD crBackColor, + IN FLONG fl) { PDC DCDest = NULL; PDC DCSrc = NULL; @@ -457,7 +459,7 @@ NtGdiCreateBitmap( INT Height, UINT Planes, UINT BitsPixel, - CONST VOID *Bits) + IN OPTIONAL LPBYTE Bits) { BITMAP BM; @@ -467,7 +469,7 @@ NtGdiCreateBitmap( BM.bmWidthBytes = BITMAPOBJ_GetWidthBytes(Width, Planes * BitsPixel); BM.bmPlanes = Planes; BM.bmBitsPixel = BitsPixel; - BM.bmBits = (LPVOID) Bits; + BM.bmBits = Bits; return IntCreateBitmapIndirect(&BM); } @@ -712,7 +714,7 @@ NtGdiGetPixel(HDC hDC, INT XPos, INT YPos) { PBITMAPOBJ bmpobj; - NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY ); + NtGdiBitBlt ( hDCTmp, 0, 0, 1, 1, hDC, XPos, YPos, SRCCOPY, 0, 0 ); NtGdiSelectObject ( hDCTmp, hBmpOld ); // our bitmap is no longer selected, so we can access it's stuff... @@ -756,7 +758,8 @@ 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) + INT xMask, INT yMask, DWORD dwRop, + IN DWORD crBackColor) { HBITMAP hOldMaskBitmap, hBitmap2, hOldBitmap2, hBitmap3, hOldBitmap3; HDC hDCMask, hDC1, hDC2; @@ -893,7 +896,7 @@ NtGdiMaskBlt ( }; if (!hbmMask) - return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop)); + return NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop), 0, 0); /* 1. make mask bitmap's dc */ hDCMask = NtGdiCreateCompatibleDC(hdcDest); @@ -907,9 +910,9 @@ NtGdiMaskBlt ( hOldBitmap2 = (HBITMAP)NtGdiSelectObject(hDC1, hBitmap2); /* 2.2 draw dest bitmap and mask */ - NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY); - NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, BKGND_ROP3(dwRop)); - NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, DSTERASE); + NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY, 0, 0); + NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, BKGND_ROP3(dwRop), 0, 0); + NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, DSTERASE, 0, 0); /* 3. make masked Foreground bitmap */ @@ -919,13 +922,13 @@ NtGdiMaskBlt ( hOldBitmap3 = (HBITMAP)NtGdiSelectObject(hDC2, hBitmap3); /* 3.2 draw src bitmap and mask */ - NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, SRCCOPY); - NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop)); - NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, SRCAND); + NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcDest, nXDest, nYDest, SRCCOPY, 0, 0); + NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, FRGND_ROP3(dwRop), 0,0); + NtGdiBitBlt(hDC2, 0, 0, nWidth, nHeight, hDCMask, xMask, yMask, SRCAND, 0, 0); /* 4. combine two bitmap and copy it to hdcDest */ - NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT); - NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY); + NtGdiBitBlt(hDC1, 0, 0, nWidth, nHeight, hDC2, 0, 0, SRCPAINT, 0, 0); + NtGdiBitBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hDC1, 0, 0, SRCCOPY, 0, 0); /* 5. restore all object */ NtGdiSelectObject(hDCMask, hOldMaskBitmap); @@ -943,18 +946,20 @@ NtGdiMaskBlt ( return TRUE; } -BOOL STDCALL +BOOL +APIENTRY NtGdiPlgBlt( - HDC hDCDest, - CONST POINT *Point, - HDC hDCSrc, - INT XSrc, - INT YSrc, - INT Width, - INT Height, - HBITMAP hMaskBitmap, - INT xMask, - INT yMask) + IN HDC hdcTrg, + IN LPPOINT pptlTrg, + IN HDC hdcSrc, + IN INT xSrc, + IN INT ySrc, + IN INT cxSrc, + IN INT cySrc, + IN HBITMAP hbmMask, + IN INT xMask, + IN INT yMask, + IN DWORD crBackColor) { UNIMPLEMENTED; return FALSE; @@ -964,7 +969,7 @@ LONG STDCALL NtGdiSetBitmapBits( HBITMAP hBitmap, DWORD Bytes, - CONST VOID *Bits) + IN PBYTE Bits) { LONG height, ret; PBITMAPOBJ bmp; @@ -1072,7 +1077,7 @@ NtGdiSetPixelV( INT Y, COLORREF Color) { - HBRUSH NewBrush = NtGdiCreateSolidBrush(Color); + HBRUSH NewBrush = NtGdiCreateSolidBrush(Color, NULL); HGDIOBJ OldBrush; if (NewBrush == NULL) @@ -1101,7 +1106,8 @@ NtGdiStretchBlt( INT YOriginSrc, INT WidthSrc, INT HeightSrc, - DWORD ROP) + DWORD ROP, + IN DWORD dwBackColor) { PDC DCDest = NULL; PDC DCSrc = NULL; @@ -1323,16 +1329,17 @@ failed: BOOL STDCALL NtGdiAlphaBlend( HDC hDCDest, - INT XOriginDest, - INT YOriginDest, - INT WidthDest, - INT HeightDest, + LONG XOriginDest, + LONG YOriginDest, + LONG WidthDest, + LONG HeightDest, HDC hDCSrc, - INT XOriginSrc, - INT YOriginSrc, - INT WidthSrc, - INT HeightSrc, - BLENDFUNCTION BlendFunc) + LONG XOriginSrc, + LONG YOriginSrc, + LONG WidthSrc, + LONG HeightSrc, + BLENDFUNCTION BlendFunc, + IN HANDLE hcmXform) { PDC DCDest = NULL; PDC DCSrc = NULL; diff --git a/reactos/subsys/win32k/objects/brush.c b/reactos/subsys/win32k/objects/brush.c index 0c89d915288..1e69f1e13b0 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, HatchBrushes[Style]); + hPattern = NtGdiCreateBitmap(8, 8, 1, 1, (LPBYTE)HatchBrushes[Style]); if (hPattern == NULL) { SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY); @@ -557,10 +557,12 @@ IntGdiPolyPatBlt( HBRUSH STDCALL NtGdiCreateDIBBrush( - CONST BITMAPINFO *BitmapInfoAndData, - UINT ColorSpec, - UINT BitmapInfoSize, - CONST VOID *PackedDIB) + IN PVOID BitmapInfoAndData, + IN FLONG ColorSpec, + IN UINT BitmapInfoSize, + IN BOOL b8X8, + IN BOOL bPen, + IN PVOID PackedDIB) { BITMAPINFO *SafeBitmapInfoAndData; NTSTATUS Status = STATUS_SUCCESS; @@ -619,7 +621,8 @@ NtGdiCreatePatternBrush( } HBRUSH STDCALL -NtGdiCreateSolidBrush(COLORREF Color) +NtGdiCreateSolidBrush(COLORREF Color, + IN OPTIONAL HBRUSH hbr) { return IntGdiCreateSolidBrush(Color); } @@ -682,9 +685,9 @@ BOOL STDCALL NtGdiPolyPatBlt( HDC hDC, DWORD dwRop, - PPATRECT pRects, - INT cRects, - ULONG Reserved) + IN PPOLYPATBLT pRects, + IN DWORD cRects, + IN DWORD Mode) { PPATRECT rb = NULL; NTSTATUS Status = STATUS_SUCCESS; @@ -721,7 +724,7 @@ NtGdiPolyPatBlt( } } - Ret = IntGdiPolyPatBlt(hDC, dwRop, pRects, cRects, Reserved); + Ret = IntGdiPolyPatBlt(hDC, dwRop, (PPATRECT)pRects, cRects, Mode); if (cRects > 0) ExFreePool(rb); diff --git a/reactos/subsys/win32k/objects/dc.c b/reactos/subsys/win32k/objects/dc.c index bdf409c5803..6dd08f62d8d 100644 --- a/reactos/subsys/win32k/objects/dc.c +++ b/reactos/subsys/win32k/objects/dc.c @@ -1137,21 +1137,25 @@ NtGdiDeleteDC(HDC DCHandle) return TRUE; } -INT STDCALL -NtGdiDrawEscape(HDC hDC, - INT nEscape, - INT cbInput, - LPCSTR lpszInData) +INT +APIENTRY +NtGdiDrawEscape( + IN HDC hdc, + IN INT iEsc, + IN INT cjIn, + IN OPTIONAL LPSTR pjIn) { UNIMPLEMENTED; return 0; } -INT STDCALL -NtGdiEnumObjects(HDC hDC, - INT ObjectType, - GOBJENUMPROC ObjectFunc, - LPARAM lParam) +ULONG +APIENTRY +NtGdiEnumObjects( + IN HDC hdc, + IN INT iObjectType, + IN ULONG cjBuf, + OUT OPTIONAL PVOID pvBuf) { UNIMPLEMENTED; return 0; @@ -1915,8 +1919,14 @@ 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 ) -HDC STDCALL -NtGdiResetDC(HDC hDC, CONST DEVMODEW *InitData) +BOOL +APIENTRY +NtGdiResetDC( + IN HDC hdc, + IN LPDEVMODEW pdm, + OUT PBOOL pbBanding, + IN OPTIONAL VOID *pDriverInfo2, + OUT VOID *ppUMdhpdev) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/dib.c b/reactos/subsys/win32k/objects/dib.c index 3d8137f9c2a..4f46e2b3c43 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); + SrcWidth, SrcHeight, hDC, XDest, YDest, ROP, 0, 0); else NtGdiStretchBlt(hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, SrcWidth, SrcHeight, hDC, XDest, YDest, DestWidth, DestHeight, - ROP); + ROP, 0); } NtGdiSetDIBits(hdcMem, hBitmap, 0, BitsInfo->bmiHeader.biHeight, Bits, @@ -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); + ROP, 0, 0); else NtGdiStretchBlt(hDC, XDest, YDest, DestWidth, DestHeight, hdcMem, XSrc, abs(BitsInfo->bmiHeader.biHeight) - SrcHeight - YSrc, - SrcWidth, SrcHeight, ROP); + SrcWidth, SrcHeight, ROP, 0); NtGdiSelectObject(hdcMem, hOldBitmap); NtGdiDeleteDC(hdcMem); @@ -586,8 +586,8 @@ INT STDCALL NtGdiStretchDIBits(HDC hDC, } LONG STDCALL NtGdiGetBitmapBits(HBITMAP hBitmap, - LONG Count, - LPVOID Bits) + ULONG Count, + OUT OPTIONAL PBYTE Bits) { PBITMAPOBJ bmp; LONG height, ret; @@ -767,11 +767,14 @@ HBITMAP STDCALL NtGdiCreateDIBitmap(HDC hDc, const BITMAPINFOHEADER *Header, } HBITMAP STDCALL NtGdiCreateDIBSection(HDC hDC, - CONST BITMAPINFO *bmi, - UINT Usage, - VOID *Bits, - HANDLE hSection, - DWORD dwOffset) + IN OPTIONAL HANDLE hSection, + IN DWORD dwOffset, + IN LPBITMAPINFO bmi, + DWORD Usage, + IN UINT cjHeader, + IN FLONG fl, + IN ULONG_PTR dwColorSpace, + PVOID *Bits) { HBITMAP hbitmap = 0; DC *dc; diff --git a/reactos/subsys/win32k/objects/icm.c b/reactos/subsys/win32k/objects/icm.c index 4286665a558..ae3008cba86 100644 --- a/reactos/subsys/win32k/objects/icm.c +++ b/reactos/subsys/win32k/objects/icm.c @@ -44,17 +44,19 @@ NtGdiColorMatchToTarget(HDC hDC, return FALSE; } -HCOLORSPACE -STDCALL -NtGdiCreateColorSpace(LPLOGCOLORSPACEW LogColorSpace) +HANDLE +APIENTRY +NtGdiCreateColorSpace( + IN PLOGCOLORSPACEEXW pLogColorSpace) { UNIMPLEMENTED; return 0; } BOOL -STDCALL -NtGdiDeleteColorSpace(HCOLORSPACE hColorSpace) +APIENTRY +NtGdiDeleteColorSpace( + IN HANDLE hColorSpace) { UNIMPLEMENTED; return FALSE; @@ -112,10 +114,10 @@ NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace, return FALSE; } -HCOLORSPACE +BOOL STDCALL -NtGdiSetColorSpace(HDC hDC, - HCOLORSPACE hColorSpace) +NtGdiSetColorSpace(IN HDC hdc, + IN HCOLORSPACE hColorSpace) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/line.c b/reactos/subsys/win32k/objects/line.c index 754a788d933..e2288a8457f 100644 --- a/reactos/subsys/win32k/objects/line.c +++ b/reactos/subsys/win32k/objects/line.c @@ -338,13 +338,14 @@ IntGdiPolyPolyline(DC *dc, /******************************************************************************/ BOOL -STDCALL -NtGdiAngleArc(HDC hDC, - int X, - int Y, - DWORD Radius, - FLOAT StartAngle, - FLOAT SweepAngle) +APIENTRY +NtGdiAngleArc( + IN HDC hdc, + IN INT x, + IN INT y, + IN DWORD dwRadius, + IN DWORD dwStartAngle, + IN DWORD dwSweepAngle) { UNIMPLEMENTED; return FALSE; @@ -725,11 +726,12 @@ NtGdiPolyBezierTo(HDC hDC, } BOOL -STDCALL -NtGdiPolyDraw(HDC hDC, - CONST LPPOINT pt, - CONST LPBYTE Types, - int Count) +APIENTRY +NtGdiPolyDraw( + IN HDC hdc, + IN LPPOINT ppt, + IN LPBYTE pjAttr, + IN ULONG cpt) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/objects/paint.c b/reactos/subsys/win32k/objects/paint.c index 8a5131fef3a..692e348c87d 100644 --- a/reactos/subsys/win32k/objects/paint.c +++ b/reactos/subsys/win32k/objects/paint.c @@ -47,21 +47,23 @@ NtGdiGdiSetBatchLimit(DWORD Limit) return 0; } -UINT -STDCALL -NtGdiGetBoundsRect(HDC hDC, - LPRECT Bounds, - UINT Flags) +DWORD +APIENTRY +NtGdiGetBoundsRect( + IN HDC hdc, + OUT LPRECT prc, + IN DWORD f) { DPRINT("stub"); return DCB_RESET; /* bounding rectangle always empty */ } -UINT -STDCALL -NtGdiSetBoundsRect(HDC hDC, - CONST PRECT Bounds, - UINT Flags) +DWORD +APIENTRY +NtGdiSetBoundsRect( + IN HDC hdc, + IN LPRECT prc, + IN DWORD f) { DPRINT("stub"); return DCB_DISABLE; /* bounding rectangle always empty */ diff --git a/reactos/subsys/win32k/objects/path.c b/reactos/subsys/win32k/objects/path.c index e1dfe5db4fb..734997189fb 100644 --- a/reactos/subsys/win32k/objects/path.c +++ b/reactos/subsys/win32k/objects/path.c @@ -19,7 +19,7 @@ /* $Id$ */ #include -#include +#include "math.h" #define NDEBUG #include @@ -174,9 +174,10 @@ NtGdiFlattenPath(HDC hDC) BOOL -STDCALL -NtGdiGetMiterLimit(HDC hDC, - PFLOAT Limit) +APIENTRY +NtGdiGetMiterLimit( + IN HDC hdc, + OUT PDWORD pdwOut) { UNIMPLEMENTED; return FALSE; @@ -202,10 +203,11 @@ NtGdiPathToRegion(HDC hDC) } BOOL -STDCALL -NtGdiSetMiterLimit(HDC hDC, - FLOAT NewLimit, - PFLOAT OldLimit) +APIENTRY +NtGdiSetMiterLimit( + IN HDC hdc, + IN DWORD dwNew, + IN OUT OPTIONAL PDWORD pdwOut) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/objects/pen.c b/reactos/subsys/win32k/objects/pen.c index c634f6d9f50..298271fff30 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, wPatternAlternate); + PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternAlternate); break; default: @@ -81,7 +81,8 @@ HPEN STDCALL NtGdiCreatePen( INT PenStyle, INT Width, - COLORREF Color) + COLORREF Color, + IN HBRUSH hbr) { LOGPEN LogPen; @@ -125,11 +126,19 @@ HPEN STDCALL NtGdiExtCreatePen( DWORD PenStyle, DWORD Width, - CONST LOGBRUSH *LogBrush, + IN ULONG iBrushStyle, + IN ULONG ulColor, + IN ULONG_PTR lClientHatch, + IN ULONG_PTR lHatch, DWORD StyleCount, - CONST DWORD *Style) + PULONG Style, + IN ULONG cjDIB, + IN BOOL bOldStylePen, + IN OPTIONAL HBRUSH hbrush) { /* NOTE: This is HACK! */ + DPRINT1("FIXME: FIX CALLERS FIRST!\n"); + KEBUGCHECK(0); LOGPEN LogPen; if (PenStyle & PS_USERSTYLE) @@ -137,7 +146,7 @@ NtGdiExtCreatePen( LogPen.lopnStyle = PenStyle & PS_STYLE_MASK; LogPen.lopnWidth.x = Width; - LogPen.lopnColor = (LogBrush != NULL) ? LogBrush->lbColor : 0; + LogPen.lopnColor = ulColor; return IntGdiCreatePenIndirect(&LogPen); } diff --git a/reactos/subsys/win32k/objects/print.c b/reactos/subsys/win32k/objects/print.c index f9dc4817c16..14b6287d84b 100644 --- a/reactos/subsys/win32k/objects/print.c +++ b/reactos/subsys/win32k/objects/print.c @@ -148,11 +148,13 @@ INT STDCALL NtGdiExtEscape( HDC hDC, + IN OPTIONAL PWCHAR pDriver, + IN INT nDriver, INT Escape, INT InSize, - LPCSTR UnsafeInData, + OPTIONAL LPSTR UnsafeInData, INT OutSize, - LPSTR UnsafeOutData) + OPTIONAL LPSTR UnsafeOutData) { PDC pDC = DC_LockDc(hDC); LPVOID SafeInData = NULL; @@ -297,9 +299,12 @@ NtGdiSetAbortProc(HDC hDC, } INT -STDCALL -NtGdiStartDoc(HDC hDC, - CONST LPDOCINFOW di) +APIENTRY +NtGdiStartDoc( + IN HDC hdc, + IN DOCINFOW *pdi, + OUT BOOL *pbBanding, + IN INT iJob) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/region.c b/reactos/subsys/win32k/objects/region.c index b9763761de9..020789d09e3 100644 --- a/reactos/subsys/win32k/objects/region.c +++ b/reactos/subsys/win32k/objects/region.c @@ -115,7 +115,6 @@ SOFTWARE. /* $Id$ */ #include -#include #define NDEBUG #include @@ -2250,9 +2249,9 @@ exit: HRGN STDCALL -NtGdiExtCreateRegion(CONST XFORM *Xform, +NtGdiExtCreateRegion(OPTIONAL LPXFORM Xform, DWORD Count, - CONST RGNDATA *RgnData) + LPRGNDATA RgnData) { HRGN hRgn; PROSRGNDATA Region; diff --git a/reactos/subsys/win32k/objects/text.c b/reactos/subsys/win32k/objects/text.c index ed02707e1f6..751e84e6cc0 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)); + hBrushFg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.textColor), 0); 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)); + hBrushBg = NtGdiCreateSolidBrush(XLATEOBJ_iXlate(XlateObj, dc->w.backgroundColor), 0); if ( !hBrushBg ) { goto fail; @@ -2115,15 +2115,17 @@ NtGdiGetFontLanguageInfo(HDC hDC) return 0; } -DWORD -STDCALL -NtGdiGetGlyphOutline(HDC hDC, - UINT Char, - UINT Format, - LPGLYPHMETRICS gm, - DWORD Bufsize, - LPVOID Buffer, - CONST LPMAT2 mat2) +ULONG +APIENTRY +NtGdiGetGlyphOutline( + IN HDC hdc, + IN WCHAR wch, + IN UINT iFormat, + OUT LPGLYPHMETRICS pgm, + IN ULONG cjBuf, + OUT OPTIONAL PVOID pvBuf, + IN LPMAT2 pmat2, + IN BOOL bIgnoreRotation) { UNIMPLEMENTED; return 0; @@ -2150,9 +2152,10 @@ NtGdiGetOutlineTextMetrics(HDC hDC, } BOOL -STDCALL -NtGdiGetRasterizerCaps(LPRASTERIZER_STATUS rs, - UINT Size) +APIENTRY +NtGdiGetRasterizerCaps( + OUT LPRASTERIZER_STATUS praststat, + IN ULONG cjBytes) { UNIMPLEMENTED; return FALSE; @@ -2166,11 +2169,12 @@ NtGdiGetTextCharset(HDC hDC) return 0; } -UINT -STDCALL -NtGdiGetTextCharsetInfo(HDC hDC, - LPFONTSIGNATURE Sig, - DWORD Flags) +INT +APIENTRY +NtGdiGetTextCharsetInfo( + IN HDC hdc, + OUT OPTIONAL LPFONTSIGNATURE lpSig, + IN DWORD dwFlags) { UNIMPLEMENTED; return 0; diff --git a/reactos/subsys/win32k/objects/wingl.c b/reactos/subsys/win32k/objects/wingl.c index 0fd56bc57d5..ed8d79985cc 100644 --- a/reactos/subsys/win32k/objects/wingl.c +++ b/reactos/subsys/win32k/objects/wingl.c @@ -63,10 +63,10 @@ NtGdiGetPixelFormat(HDC hDC) } BOOL -STDCALL -NtGdiSetPixelFormat(HDC hDC, - INT PixelFormat, - CONST PPIXELFORMATDESCRIPTOR pfd) +APIENTRY +NtGdiSetPixelFormat( + IN HDC hdc, + IN INT ipfd) { UNIMPLEMENTED; return FALSE; diff --git a/reactos/subsys/win32k/w32k.h b/reactos/subsys/win32k/w32k.h index f42e0e25f56..650d89b54b1 100644 --- a/reactos/subsys/win32k/w32k.h +++ b/reactos/subsys/win32k/w32k.h @@ -8,11 +8,13 @@ /* INCLUDES ******************************************************************/ +#define _NO_COM + /* DDK/NDK/SDK Headers */ +#include #include #include -#include -#include +#include /* Win32 Headers */ /* FIXME: Defines in winbase.h that we need... */ @@ -25,6 +27,7 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; #include #include #include +#include #include #include @@ -40,8 +43,13 @@ typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; /* Probe and capture */ #include -/* External Win32K Header */ -#include +/* Public Win32K Headers */ +#include +#include +#include +#include +#include +#include /* Internal Win32K Header */ #include "include/win32k.h" diff --git a/reactos/tools/nci/w32ksvc.db b/reactos/tools/nci/w32ksvc.db index e0d9a772575..06b1be2caaa 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 9 +NtGdiBitBlt 11 NtGdiCancelDC 1 NtGdiCheckColorsInGamut 4 NtGdiChord 9 @@ -27,8 +27,8 @@ NtGdiCreateCompatibleBitmap 3 NtGdiCreateCompatibleDC 1 NtGdiCreateDC 4 NtGdiCreateDIBitmap 6 -NtGdiCreateDIBBrush 4 -NtGdiCreateDIBSection 6 +NtGdiCreateDIBBrush 6 +NtGdiCreateDIBSection 9 NtGdiCreateDiscardableBitmap 3 NtGdiCreateEllipticRgn 4 NtGdiCreateEllipticRgnIndirect 1 @@ -49,7 +49,7 @@ NtGdiCreateRectRgn 4 NtGdiCreateRectRgnIndirect 1 NtGdiCreateRoundRectRgn 6 NtGdiCreateScalableFontResource 4 -NtGdiCreateSolidBrush 1 +NtGdiCreateSolidBrush 2 NtGdiDPtoLP 3 NtGdiDeleteColorSpace 1 NtGdiDeleteDC 1 @@ -124,7 +124,7 @@ NtGdiGetFontData 5 NtGdiGetFontFamilyInfo 4 NtGdiGetFontLanguageInfo 1 #NtGdiGetFontResourceInfo ? -NtGdiGetGlyphOutline 7 +NtGdiGetGlyphOutline 8 #NtGdiGetGlyphOutlineWow ? NtGdiGetGraphicsMode 1 NtGdiGetICMProfile 3 @@ -208,7 +208,7 @@ NtGdiRectInRegion 2 NtGdiRectVisible 2 NtGdiRectangle 5 NtGdiRemoveFontResource 1 -NtGdiResetDC 2 +NtGdiResetDC 5 NtGdiResizePalette 2 NtGdiRestoreDC 2 NtGdiRoundRect 7 @@ -264,9 +264,9 @@ NtGdiSetViewportOrgEx 4 NtGdiSetWindowExtEx 4 NtGdiSetWindowOrgEx 4 NtGdiSetWorldTransform 2 -NtGdiStartDoc 2 +NtGdiStartDoc 4 NtGdiStartPage 1 -NtGdiStretchBlt 11 +NtGdiStretchBlt 12 NtGdiStretchDIBits 13 NtGdiStrokeAndFillPath 1 NtGdiStrokePath 1 diff --git a/reactos/w32api/include/ntgdi.h b/reactos/w32api/include/ntgdi.h new file mode 100644 index 00000000000..9fe7a42be2e --- /dev/null +++ b/reactos/w32api/include/ntgdi.h @@ -0,0 +1,3624 @@ +/* + * 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 c07c17bbd62..cab8daaa470 100644 --- a/reactos/w32api/include/wingdi.h +++ b/reactos/w32api/include/wingdi.h @@ -831,6 +831,8 @@ 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 @@ -1352,7 +1354,7 @@ typedef struct tagCOLORADJUSTMENT { SHORT caBrightness; SHORT caColorfulness; SHORT caRedGreenTint; -} COLORADJUSTMENT,*LPCOLORADJUSTMENT; +} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT; typedef struct _devicemodeA { BYTE dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; @@ -2701,14 +2703,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,DWORD,CONST PIXELFORMATDESCRIPTOR*); +UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,UINT,PIXELFORMATDESCRIPTOR*); DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD); DWORD WINAPI GetFontLanguageInfo(HDC); DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*); DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*); int WINAPI GetGraphicsMode(HDC); -BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR); -BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR); +BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR); +BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR); DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR); DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR); BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD); @@ -2877,8 +2879,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,DWORD,LPSTR,UINT); -BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT); +BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT); +BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT); BOOL WINAPI WidenPath(HDC); BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT); HGLRC WINAPI wglCreateContext(HDC);