+++ /dev/null
-#ifndef WIN32K_NTGDI_BAD_INCLUDED\r
-#define WIN32K_NTGDI_BAD_INCLUDED\r
-\r
-/*\r
- *\r
- * If you want to help, please read this:\r
- *\r
- * This file contains NtGdi APIs which are specific to ROS, including\r
- * a short comment describing the solution on how to use the actual NtGdi\r
- * call documented in ntgdi.h. Here are the main cases and information on\r
- * how to remove them from this header.\r
- *\r
- * - Simple rename. This deals with an API simply having a different name,\r
- * with absolutely no other changes needed.\r
- * - Rename and new parameters. This deals with a case similar to the one\r
- * above, except that new parameters have now\r
- * been added. This is also usually extremly\r
- * simple to fix. Either pass the right params\r
- * or pass null/0 values that you ignore.\r
- * - Rename and new structure. This is similar to the above, except that the\r
- * information is now passed in a differently\r
- * named and organized structure. Ask Alex for\r
- * the structure you need and he will add it to\r
- * ntgdityp.h\r
- * - Rename and different semantics. Similar to the previous examples, except\r
- * that parameters have usually been removed\r
- * or need to be converted in user-mode in\r
- * one form of another.\r
- * - Does not exist: user-mode. This means that the API can be fully done in\r
- * user mode. In 80% of cases, our API was already\r
- * returning NOT_IMPLEMENTED in kernel-mode, so\r
- * the work to be done is minimal. A good example\r
- * are the ICM and Metafile APIs, which can simply\r
- * be removed and added into gdi32.\r
- * - Does not exist: GDI Shared Objects. This is by far the hardest case. This\r
- * class cannot be fixed until ReactOS\r
- * has a working Shared GDI Object table\r
- * and a DC_ATTR structure in which the\r
- * attributes, selection and deletion of\r
- * objects can be quickly done from user-\r
- * mode without requiring a kernel mode\r
- * call.\r
- */\r
-/* Should be using ENUMFONTDATAW */\r
-typedef struct tagFONTFAMILYINFO\r
-{\r
- ENUMLOGFONTEXW EnumLogFontEx;\r
- NEWTEXTMETRICEXW NewTextMetricEx;\r
- DWORD FontType;\r
-} FONTFAMILYINFO, *PFONTFAMILYINFO;\r
-\r
-/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */\r
-HFONT\r
-NTAPI\r
-NtGdiCreateFontIndirect(CONST LPLOGFONTW lf);\r
-\r
-/* Should be using NtGdiHfontCreate with an ENUMLOGFONT */\r
-HFONT\r
-NTAPI\r
-NtGdiCreateFont(\r
- int Height,\r
- int Width,\r
- int Escapement,\r
- int Orientation,\r
- int Weight,\r
- DWORD Italic,\r
- DWORD Underline,\r
- DWORD StrikeOut,\r
- DWORD CharSet,\r
- DWORD OutputPrecision,\r
- DWORD ClipPrecision,\r
- DWORD Quality,\r
- DWORD PitchAndFamily,\r
- LPCWSTR Face\r
-);\r
-\r
-/* Should be using NtGdiEnumFontChunk */\r
-INT\r
-NTAPI\r
-NtGdiGetFontFamilyInfo(\r
- HDC Dc,\r
- LPLOGFONTW LogFont,\r
- PFONTFAMILYINFO Info,\r
- DWORD Size\r
-);\r
-\r
-/* Should be using NtGdiEnumFontChunk */\r
-BOOL\r
-NTAPI\r
-NtGdiTranslateCharsetInfo(\r
- PDWORD Src,\r
- LPCHARSETINFO CSI,\r
- DWORD Flags\r
-);\r
-\r
-/* The gdi32 call does all the work in user-mode, save for NtGdiMakeFontDir */\r
-BOOL\r
-NTAPI\r
-NtGdiCreateScalableFontResource(\r
- DWORD Hidden,\r
- LPCWSTR FontRes,\r
- LPCWSTR FontFile,\r
- LPCWSTR CurrentPath\r
-);\r
-\r
-/* The gdi32 call Should Use NtGdiGetRandomRgn and nothing else */\r
-HRGN\r
-NTAPI\r
-NtGdiGetClipRgn(HDC hDC);\r
-\r
-/* The gdi32 call Should Use NtGdiGetTextExtent */\r
-BOOL\r
-NTAPI\r
-NtGdiGetTextExtentPoint32(\r
- HDC hDC,\r
- LPCWSTR String,\r
- int Count,\r
- LPSIZE \r
-);\r
-\r
-BOOL\r
-STDCALL\r
-NtGdiGetCharWidth32(\r
- HDC hDC,\r
- UINT FirstChar,\r
- UINT LastChar,\r
- LPINT Buffer\r
-);\r
-\r
-/* Use NtGdiOpenDCW */\r
-HDC\r
-NTAPI \r
-NtGdiCreateDC(\r
- PUNICODE_STRING Driver,\r
- PUNICODE_STRING Device,\r
- PUNICODE_STRING Output,\r
- CONST PDEVMODEW InitData\r
-);\r
-\r
-HDC\r
-NTAPI\r
-NtGdiCreateIC(\r
- PUNICODE_STRING Driver,\r
- PUNICODE_STRING Device,\r
- PUNICODE_STRING Output,\r
- CONST PDEVMODEW DevMode\r
-);\r
-\r
-/* Use NtGdiAddFontResourceW */\r
-int\r
-STDCALL\r
-NtGdiAddFontResource(PUNICODE_STRING Filename,\r
- DWORD fl);\r
-\r
-/* Use NtGdiDoPalette with GdiPalAnimate */\r
-BOOL\r
-STDCALL\r
-NtGdiAnimatePalette (\r
- HPALETTE hpal,\r
- UINT StartIndex,\r
- UINT Entries,\r
- CONST PPALETTEENTRY ppe\r
- );\r
-\r
-/* Use NtGdiArcInternal with GdiTypeArc */\r
-BOOL\r
-STDCALL\r
-NtGdiArc(HDC hDC,\r
- int LeftRect,\r
- int TopRect,\r
- int RightRect, \r
- int BottomRect,\r
- int XStartArc,\r
- int YStartArc,\r
- int XEndArc, \r
- int YEndArc);\r
-\r
-/* Use NtGdiArcInternal with GdiTypeArcTo */\r
-BOOL\r
-STDCALL\r
-NtGdiArcTo(HDC hDC,\r
- int LeftRect,\r
- int TopRect,\r
- int RightRect,\r
- int BottomRect,\r
- int XRadial1,\r
- int YRadial1,\r
- int XRadial2,\r
- int YRadial2);\r
-\r
-/* Use NtGdiArcInternal with GdiTypeChord */\r
-BOOL\r
-STDCALL\r
-NtGdiChord(HDC hDC,\r
- int LeftRect,\r
- int TopRect,\r
- int RightRect,\r
- int BottomRect,\r
- int XRadial1,\r
- int YRadial1,\r
- int XRadial2,\r
- int YRadial2);\r
-\r
-/* Metafiles are user mode */\r
-HENHMETAFILE\r
-STDCALL\r
-NtGdiCloseEnhMetaFile (\r
- HDC hDC\r
- );\r
-\r
-/* Metafiles are user mode */\r
-HMETAFILE\r
-STDCALL\r
-NtGdiCloseMetaFile (\r
- HDC hDC\r
- );\r
-\r
-/* Does not exist */\r
-BOOL\r
-STDCALL\r
-NtGdiColorMatchToTarget(HDC hDC,\r
- HDC hDCTarget, \r
- DWORD Action);\r
-\r
-/* Metafiles are user mode */\r
-HENHMETAFILE\r
-STDCALL\r
-NtGdiCopyEnhMetaFile (\r
- HENHMETAFILE Src,\r
- LPCWSTR File\r
- );\r
-\r
-/* Metafiles are user mode */\r
-HMETAFILE\r
-STDCALL\r
-NtGdiCopyMetaFile (\r
- HMETAFILE Src,\r
- LPCWSTR File\r
- );\r
-\r
-/* Use NtGdiCreateBitmap and expand the pbm-> */\r
-HBITMAP\r
-STDCALL\r
-NtGdiCreateBitmapIndirect (\r
- CONST BITMAP * BM\r
- );\r
-\r
-/* Use NtGdiCreateDIBitmapInternal */\r
-HBITMAP\r
-STDCALL\r
-NtGdiCreateDIBitmap (\r
- HDC hDC,\r
- CONST BITMAPINFOHEADER * bmih,\r
- DWORD Init,\r
- CONST VOID * bInit,\r
- CONST BITMAPINFO * bmi,\r
- UINT Usage\r
- );\r
-\r
-/* Use NtGdiCreateCompatibleBitmap */\r
-HBITMAP\r
-STDCALL\r
-NtGdiCreateDiscardableBitmap (\r
- HDC hDC,\r
- INT Width,\r
- INT Height\r
- );\r
-\r
-/* Use NtGdiCreateEllipticRgn and expand the lprect-> */\r
-HRGN\r
-STDCALL\r
-NtGdiCreateEllipticRgnIndirect(CONST PRECT rc);\r
-\r
-/* Metafiles are user mode */\r
-HDC\r
-STDCALL\r
-NtGdiCreateEnhMetaFile (\r
- HDC hDCRef,\r
- LPCWSTR File,\r
- CONST LPRECT Rect,\r
- LPCWSTR Description\r
- );\r
-\r
-/* Metafiles are user mode */\r
-HDC\r
-STDCALL\r
-NtGdiCreateMetaFile (\r
- LPCWSTR File\r
- );\r
-\r
-/* Use NtGdiCreatePaletteInternal with palNumEntries at the end. */\r
-HPALETTE\r
-STDCALL\r
-NtGdiCreatePalette (\r
- CONST PLOGPALETTE lgpl\r
- );\r
-\r
-/* Use NtGdiCreatePen with -> as parameters. */\r
-HPEN STDCALL\r
-NtGdiCreatePenIndirect(\r
- CONST PLOGPEN LogBrush);\r
-\r
-/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */\r
-HRGN\r
-STDCALL\r
-NtGdiCreatePolygonRgn(CONST PPOINT pt,\r
- INT Count,\r
- INT PolyFillMode);\r
-\r
-/* Use NtGdiPolyPolyDraw with PolyPolyRgn. */\r
-HRGN\r
-STDCALL\r
-NtGdiCreatePolyPolygonRgn(CONST PPOINT pt,\r
- CONST PINT PolyCounts,\r
- INT Count,\r
- INT PolyFillMode);\r
-\r
-/* Use NtGdiCreateRectRgn with expanded paraemters. */\r
-HRGN\r
-STDCALL\r
-NtGdiCreateRectRgnIndirect(CONST PRECT rc);\r
-\r
-/* Use NtGdiTransformPoints with GdiDpToLp. */\r
-BOOL\r
-STDCALL\r
-NtGdiDPtoLP (\r
- HDC hDC,\r
- LPPOINT Points,\r
- int Count\r
- );\r
-\r
-/* Meta are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiDeleteEnhMetaFile (\r
- HENHMETAFILE emf\r
- );\r
-\r
-/* Meta are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiDeleteMetaFile (\r
- HMETAFILE mf\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject);\r
-\r
-/* Meta are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiEnumEnhMetaFile (\r
- HDC hDC,\r
- HENHMETAFILE emf,\r
- ENHMFENUMPROC EnhMetaFunc,\r
- LPVOID Data,\r
- CONST LPRECT Rect\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-int\r
-STDCALL\r
-NtGdiEnumFonts(HDC hDC,\r
- LPCWSTR FaceName,\r
- FONTENUMPROCW FontFunc,\r
- LPARAM lParam);\r
-\r
-/* Should be done in user-mode. */\r
-INT\r
-STDCALL\r
-NtGdiEnumICMProfiles(HDC hDC,\r
- LPWSTR lpstrBuffer,\r
- UINT cch );\r
-\r
-/* Meta are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiEnumMetaFile (\r
- HDC hDC,\r
- HMETAFILE mf,\r
- MFENUMPROC MetaFunc,\r
- LPARAM lParam\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-INT\r
-STDCALL\r
-NtGdiEscape(HDC hDC,\r
- INT Escape,\r
- INT InSize,\r
- LPCSTR InData,\r
- LPVOID OutData);\r
-\r
-/* Use NtGdiExtTextOutW with 0, 0 at the end. */\r
-BOOL\r
-STDCALL\r
-NtGdiExtTextOut(HDC hdc,\r
- int X,\r
- int Y,\r
- UINT fuOptions,\r
- CONST RECT *lprc,\r
- LPCWSTR lpString,\r
- UINT cbCount,\r
- CONST INT *lpDx);\r
-\r
-/* Use NtGdiExtFloodFill with FLOODFILLBORDER. */\r
-BOOL\r
-STDCALL\r
-NtGdiFloodFill (\r
- HDC hDC,\r
- INT XStart,\r
- INT YStart,\r
- COLORREF Fill\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGdiComment (\r
- HDC hDC,\r
- UINT Size,\r
- CONST LPBYTE Data\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL STDCALL NtGdiGdiFlush (VOID);\r
-\r
-/* Should be done in user-mode. */\r
-DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);\r
-\r
-/* Should be done in user-mode. */\r
-DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);\r
-\r
-/* Use NtGdiGetDCDword with GdiGetArcDirection. */\r
-INT\r
-STDCALL\r
-NtGdiGetArcDirection ( HDC hDC );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetAspectRatioFilterEx(HDC hDC,\r
- LPSIZE AspectRatio);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetBitmapDimensionEx (\r
- HBITMAP hBitmap,\r
- LPSIZE Dimension\r
- );\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-COLORREF STDCALL NtGdiGetBkColor(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetBkMode(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg);\r
-\r
-/* Use NtGdiGetCharABCWidthsW */\r
-BOOL\r
-STDCALL\r
-NtGdiGetCharABCWidths(HDC hDC,\r
- UINT FirstChar,\r
- UINT LastChar,\r
- LPABC abc);\r
-\r
-/* Should be done in user mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetCharABCWidthsFloat(HDC hDC,\r
- UINT FirstChar,\r
- UINT LastChar,\r
- LPABCFLOAT abcF);\r
-\r
-/* Should be done in user mode. */\r
-DWORD\r
-STDCALL\r
-NtGdiGetCharacterPlacement(HDC hDC,\r
- LPCWSTR String,\r
- int Count,\r
- int MaxExtent,\r
- LPGCP_RESULTSW Results,\r
- DWORD Flags);\r
-\r
-/* Should be done in user mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetCharWidthFloat(HDC hDC,\r
- UINT FirstChar,\r
- UINT LastChar,\r
- PFLOAT Buffer);\r
-\r
-/* Use NtGdiGetAppClipBox. */\r
-int\r
-STDCALL\r
-NtGdiGetClipBox (\r
- HDC hDC,\r
- LPRECT rc\r
- );\r
-\r
-/* Use NtGdiGetColorSpaceforBitmap. */\r
-HCOLORSPACE\r
-STDCALL\r
-NtGdiGetColorSpace(HDC hDC);\r
-\r
-/* Should be done in user-mode and/or NtGdiGetDCObject. */\r
-HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType);\r
-\r
-/* Should be done in user mode. */\r
-BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition);\r
-\r
-/* Use NtGdiGetDCPoint with GdiGetDCOrg. */\r
-BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point);\r
-\r
-/* Use NtGdiDoPalette with GdiPalGetColorTable. */\r
-UINT\r
-STDCALL\r
-NtGdiGetDIBColorTable (\r
- HDC hDC,\r
- UINT StartIndex,\r
- UINT Entries,\r
- RGBQUAD * Colors\r
- );\r
-\r
-/* Use NtGdiGetDIBitsInternal. */\r
-INT\r
-STDCALL\r
-NtGdiGetDIBits (\r
- HDC hDC,\r
- HBITMAP hBitmap,\r
- UINT StartScan,\r
- UINT ScanLines,\r
- LPVOID Bits,\r
- LPBITMAPINFO bi,\r
- UINT Usage\r
- );\r
-\r
-\r
-/* Meta are user-mode. */\r
-HENHMETAFILE\r
-STDCALL\r
-NtGdiGetEnhMetaFile (\r
- LPCWSTR MetaFile\r
- );\r
-\r
-/* Meta are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetEnhMetaFileBits (\r
- HENHMETAFILE hemf,\r
- UINT BufSize,\r
- LPBYTE Buffer\r
- );\r
-\r
-/* Meta are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetEnhMetaFileDescription (\r
- HENHMETAFILE hemf,\r
- UINT BufSize,\r
- LPWSTR Description\r
- );\r
-\r
-/* Meta are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetEnhMetaFileHeader (\r
- HENHMETAFILE hemf,\r
- UINT BufSize,\r
- LPENHMETAHEADER emh\r
- );\r
-\r
-/* Meta are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetEnhMetaFilePaletteEntries (\r
- HENHMETAFILE hemf,\r
- UINT Entries,\r
- LPPALETTEENTRY pe\r
- );\r
-\r
-/* Meta are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,\r
- DWORD BufSize, \r
- CONST PPIXELFORMATDESCRIPTOR pfd);\r
-\r
-/* Should be done in user-mode. */\r
-DWORD\r
-STDCALL\r
-NtGdiGetFontLanguageInfo(HDC hDC);\r
-\r
-/* Should be done in user-mode. */\r
-int\r
-STDCALL\r
-NtGdiGetGraphicsMode ( HDC hDC );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetICMProfile(HDC hDC, \r
- LPDWORD NameSize,\r
- LPWSTR Filename);\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,\r
- LPLOGCOLORSPACEW Buffer,\r
- DWORD Size);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetMapMode(HDC hDC);\r
-\r
-/* Meta files are user-mode. */\r
-HMETAFILE\r
-STDCALL\r
-NtGdiGetMetaFile (\r
- LPCWSTR MetaFile\r
- );\r
-\r
-/* Meta files are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetMetaFileBitsEx (\r
- HMETAFILE hmf,\r
- UINT Size,\r
- LPVOID Data\r
- );\r
-\r
-/* Meta files are user-mode. */\r
-int\r
-STDCALL\r
-NtGdiGetMetaRgn (\r
- HDC hDC,\r
- HRGN hrgn\r
- );\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj,\r
- INT BufSize,\r
- LPVOID Object);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj);\r
-\r
-/* Use NtGdiGetOutlineTextMetricsInternalW. */\r
-UINT\r
-STDCALL\r
-NtGdiGetOutlineTextMetrics(HDC hDC,\r
- UINT Data,\r
- LPOUTLINETEXTMETRICW otm);\r
-\r
-/* Use NtGdiDoPalette with GdiPalGetEntries. */\r
-UINT\r
-STDCALL\r
-NtGdiGetPaletteEntries (\r
- HPALETTE hpal,\r
- UINT StartIndex,\r
- UINT Entries,\r
- LPPALETTEENTRY pe\r
- );\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT\r
-STDCALL\r
-NtGdiGetPixelFormat(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetPolyFillMode(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetROP2(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetRelAbs(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-INT STDCALL NtGdiGetStretchBltMode(HDC hDC);\r
-\r
-/* Use NtGdiDoPalette with GdiPalSetSystemEntries. */\r
-UINT\r
-STDCALL\r
-NtGdiGetSystemPaletteEntries (\r
- HDC hDC,\r
- UINT StartIndex,\r
- UINT Entries,\r
- LPPALETTEENTRY pe\r
- );\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-UINT STDCALL NtGdiGetTextAlign(HDC hDC);\r
-\r
-/* Should be done in user-mode using shared GDI Objects. */\r
-UINT\r
-STDCALL\r
-NtGdiGetTextCharset(HDC hDC);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-COLORREF STDCALL NtGdiGetTextColor(HDC hDC);\r
-\r
-/* Rename to NtGdiGetTextExtentExW. Add 0 at the end. */\r
-BOOL\r
-STDCALL\r
-NtGdiGetTextExtentExPoint(HDC hDC,\r
- LPCWSTR String,\r
- int Count,\r
- int MaxExtent,\r
- LPINT Fit,\r
- LPINT Dx,\r
- LPSIZE Size);\r
-\r
-/* Rename to NtGdiGetTextFaceW, add FALSE at the end. */\r
-int\r
-STDCALL\r
-NtGdiGetTextFace(HDC hDC,\r
- int Count,\r
- LPWSTR FaceName);\r
-\r
-/* Use NtGdiGetTextMetricsW with 0 at the end */\r
-BOOL\r
-STDCALL\r
-NtGdiGetTextMetrics(HDC hDC,\r
- LPTEXTMETRICW tm);\r
-\r
-/* Use NtGdiGetDCPoint with GdiGetViewPortExt */\r
-BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg);\r
-\r
-/* Metafiles are user-mode. */\r
-UINT\r
-STDCALL\r
-NtGdiGetWinMetaFileBits (\r
- HENHMETAFILE hemf,\r
- UINT BufSize,\r
- LPBYTE Buffer,\r
- INT MapMode,\r
- HDC Ref\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt);\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg);\r
-\r
-/* Use NtGdiGetTransform with GdiWorldSpaceToPageSpace */\r
-BOOL\r
-STDCALL\r
-NtGdiGetWorldTransform (\r
- HDC hDC,\r
- LPXFORM Xform\r
- );\r
-\r
-/* Use NtGdiTransformPoints with GdiDpToLp */\r
-BOOL\r
-STDCALL\r
-NtGdiLPtoDP (\r
- HDC hDC,\r
- LPPOINT Points,\r
- int Count\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiMoveToEx(HDC hDC,\r
- int X,\r
- int Y,\r
- LPPOINT Point);\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiOffsetViewportOrgEx (\r
- HDC hDC,\r
- int XOffset,\r
- int YOffset,\r
- LPPOINT Point\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiOffsetWindowOrgEx (\r
- HDC hDC,\r
- int XOffset,\r
- int YOffset,\r
- LPPOINT Point\r
- );\r
-\r
-/* Use NtGdiFillRgn. Add 0 at the end. */\r
-BOOL\r
-STDCALL\r
-NtGdiPaintRgn(HDC hDC,\r
- HRGN hRgn);\r
-\r
-/* Use NtGdiArcInternal with GdiTypePie. */\r
-BOOL\r
-STDCALL\r
-NtGdiPie(HDC hDC,\r
- int LeftRect,\r
- int TopRect,\r
- int RightRect,\r
- int BottomRect,\r
- int XRadial1,\r
- int YRadial1,\r
- int XRadial2,\r
- int YRadial2);\r
-\r
-/* Metafiles are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiPlayEnhMetaFile (\r
- HDC hDC,\r
- HENHMETAFILE hemf,\r
- CONST PRECT Rect\r
- );\r
-\r
-/* Metafiles are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiPlayEnhMetaFileRecord (\r
- HDC hDC,\r
- LPHANDLETABLE Handletable,\r
- CONST ENHMETARECORD * EnhMetaRecord,\r
- UINT Handles\r
- );\r
-\r
-/* Metafiles are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiPlayMetaFile (\r
- HDC hDC,\r
- HMETAFILE hmf\r
- );\r
-\r
-/* Metafiles are user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiPlayMetaFileRecord (\r
- HDC hDC,\r
- LPHANDLETABLE Handletable,\r
- LPMETARECORD MetaRecord,\r
- UINT Handles\r
- );\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyBezier. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyBezier(HDC hDC,\r
- CONST LPPOINT pt,\r
- DWORD Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyBezierTo. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyBezierTo(HDC hDC,\r
- CONST LPPOINT pt,\r
- DWORD Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyline(HDC hDC,\r
- CONST LPPOINT pt,\r
- int Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyLineTo. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolylineTo(HDC hDC,\r
- CONST LPPOINT pt,\r
- DWORD Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyPolyline(HDC hDC,\r
- CONST LPPOINT pt,\r
- CONST LPDWORD PolyPoints,\r
- DWORD Count);\r
-\r
-/* Use NtGdiPolyTextOutW with 0 at the end. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyTextOut(HDC hDC,\r
- CONST LPPOLYTEXTW txt,\r
- int Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolygon(HDC hDC,\r
- CONST PPOINT Points,\r
- int Count);\r
-\r
-/* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */\r
-BOOL\r
-STDCALL\r
-NtGdiPolyPolygon(HDC hDC,\r
- CONST LPPOINT Points,\r
- CONST LPINT PolyCounts,\r
- int Count);\r
-\r
-/* Call UserRealizePalette. */\r
-UINT\r
-STDCALL\r
-NtGdiRealizePalette (\r
- HDC hDC\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiRemoveFontResource(LPCWSTR FileName);\r
-\r
-/* Use NtGdiExtSelectClipRgn with RGN_COPY. */\r
-int\r
-STDCALL\r
-NtGdiSelectClipRgn (\r
- HDC hDC,\r
- HRGN hrgn\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);\r
-\r
-/* Use NtUserSelectPalette. */\r
-HPALETTE\r
-STDCALL\r
-NtGdiSelectPalette (\r
- HDC hDC,\r
- HPALETTE hpal,\r
- BOOL ForceBackground\r
- );\r
-\r
-/* Should be done in user-mode. */\r
-INT\r
-STDCALL\r
-NtGdiSetAbortProc(HDC hDC,\r
- ABORTPROC AbortProc);\r
-\r
-/* Use NtGdiGetAndSetDCDword with GdiGetSetArcDirection. */\r
-int\r
-STDCALL\r
-NtGdiSetArcDirection(HDC hDC,\r
- int ArcDirection);\r
-\r
-/* Use NtGdiSetBitmapDimension. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetBitmapDimensionEx (\r
- HBITMAP hBitmap,\r
- INT Width,\r
- INT Height,\r
- LPSIZE Size\r
- );\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode);\r
-\r
-/* Use NtGdiSetBrushOrg. */\r
-BOOL STDCALL\r
-NtGdiSetBrushOrgEx(\r
- HDC hDC,\r
- INT XOrg,\r
- INT YOrg,\r
- LPPOINT Point);\r
-\r
-/* Use NtGdiDoPalette with GdiPalSetColorTable, TRUE. */\r
-UINT\r
-STDCALL\r
-NtGdiSetDIBColorTable (\r
- HDC hDC,\r
- UINT StartIndex,\r
- UINT Entries,\r
- CONST RGBQUAD * Colors\r
- );\r
-\r
-/* Use SetDIBitsToDevice in gdi32. */\r
-INT\r
-STDCALL\r
-NtGdiSetDIBits (\r
- HDC hDC,\r
- HBITMAP hBitmap,\r
- UINT StartScan,\r
- UINT ScanLines,\r
- CONST VOID * Bits,\r
- CONST BITMAPINFO * bmi,\r
- UINT ColorUse\r
- );\r
-\r
-/* Use NtGdiSetDIBitsToDeviceInternal. */\r
-INT\r
-STDCALL\r
-NtGdiSetDIBitsToDevice (\r
- HDC hDC,\r
- INT XDest,\r
- INT YDest,\r
- DWORD Width,\r
- DWORD Height,\r
- INT XSrc,\r
- INT YSrc,\r
- UINT StartScan,\r
- UINT ScanLines,\r
- CONST VOID * Bits,\r
- CONST BITMAPINFO * bmi,\r
- UINT ColorUse\r
- );\r
-\r
-/* Metafiles are user-mode. */\r
-HENHMETAFILE\r
-STDCALL\r
-NtGdiSetEnhMetaFileBits (\r
- UINT BufSize,\r
- CONST PBYTE Data\r
- );\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-int\r
-STDCALL\r
-NtGdiSetGraphicsMode (\r
- HDC hDC,\r
- int Mode\r
- );\r
-\r
-/* Use NtGdiSetIcmMode. */\r
-INT\r
-STDCALL\r
-NtGdiSetICMMode(HDC hDC,\r
- INT EnableICM);\r
-\r
-/* Should be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetICMProfile(HDC hDC,\r
- LPWSTR Filename);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-int\r
-STDCALL\r
-NtGdiSetMapMode (\r
- HDC hDC,\r
- int MapMode\r
- );\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-DWORD\r
-STDCALL\r
-NtGdiSetMapperFlags(HDC hDC,\r
- DWORD Flag);\r
-\r
-/* Metafiles are user-mode. */\r
-HMETAFILE\r
-STDCALL\r
-NtGdiSetMetaFileBitsEx (\r
- UINT Size,\r
- CONST PBYTE Data\r
- );\r
-\r
-/* Use NtGdiDoPalette with GdiPalSetEntries, TRUE. */\r
-UINT\r
-STDCALL\r
-NtGdiSetPaletteEntries (\r
- HPALETTE hpal,\r
- UINT Start,\r
- UINT Entries,\r
- CONST LPPALETTEENTRY pe\r
- );\r
-\r
-/* Use NtGdiSetPixel(hdc, x, y, color) != CLR_INVALID; */\r
-BOOL\r
-STDCALL\r
-NtGdiSetPixelV (\r
- HDC hDC,\r
- INT X,\r
- INT Y,\r
- COLORREF Color\r
- );\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-UINT\r
-STDCALL\r
-NtGdiSetTextAlign(HDC hDC,\r
- UINT Mode);\r
-\r
-/* Needs to be done in user-mode, using shared GDI Object Attributes. */\r
-COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color);\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetWindowExtEx (\r
- HDC hDC,\r
- int XExtent,\r
- int YExtent,\r
- LPSIZE Size\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetViewportOrgEx (\r
- HDC hDC,\r
- int X,\r
- int Y,\r
- LPPOINT Point\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetViewportExtEx (\r
- HDC hDC,\r
- int XExtent,\r
- int YExtent,\r
- LPSIZE Size\r
- );\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiSetWindowOrgEx (\r
- HDC hDC,\r
- int X,\r
- int Y,\r
- LPPOINT Point\r
- );\r
-\r
-/* Use NtGdiModifyWorldTransform with MWT_MAX + 1; */\r
-BOOL\r
-STDCALL\r
-NtGdiSetWorldTransform (\r
- HDC hDC,\r
- CONST LPXFORM Xform\r
- );\r
-\r
-/* Use NtGdiStretchDIBitsInternal. */\r
-INT\r
-STDCALL\r
-NtGdiStretchDIBits (\r
- HDC hDC,\r
- INT XDest,\r
- INT YDest,\r
- INT DestWidth,\r
- INT DestHeight,\r
- INT XSrc,\r
- INT YSrc,\r
- INT SrcWidth,\r
- INT SrcHeight,\r
- CONST VOID * Bits,\r
- CONST BITMAPINFO * BitsInfo,\r
- UINT Usage,\r
- DWORD ROP\r
- );\r
-\r
-/* Use NtGdiExtTextOutW with 0, 0 at the end. */\r
-BOOL\r
-STDCALL\r
-NtGdiTextOut(HDC hDC,\r
- int XStart,\r
- int YStart,\r
- LPCWSTR String,\r
- int Count);\r
-\r
-/* Needs to be done in user-mode. */\r
-BOOL\r
-STDCALL\r
-NtGdiUpdateICMRegKey(DWORD Reserved, \r
- LPWSTR CMID, \r
- LPWSTR Filename,\r
- UINT Command);\r
-\r
-/* These shouldn't even be called NtGdi */\r
-HDC STDCALL NtGdiGetDCState(HDC hDC);\r
-WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags);\r
-INT\r
-STDCALL\r
-NtGdiSelectVisRgn(HDC hdc,\r
- HRGN hrgn);\r
-VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave );\r
-\r
-/* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */\r
-DWORD\r
-NTAPI\r
-NtUserCallTwoParam(\r
- DWORD Param1,\r
- DWORD Param2,\r
- DWORD Routine);\r
-\r
-#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45\r
-#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46\r
-#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47\r
-\r
-#define NtUserGetDCBrushColor(hbr) \\r
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)\r
-\r
-#define NtUserGetDCPenColor(hbr) \\r
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)\r
-\r
-#define NtUserSetDCBrushColor(hbr, crColor) \\r
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)\r
-\r
-#define NtUserSetDCPenColor(hbr, crColor) \\r
- (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)\r
-\r
-#endif /* WIN32K_NTGDI_BAD_INCLUDED */\r