start moving includes
[reactos.git] / reactos / include / win32k / ntgdibad.h
diff --git a/reactos/include/win32k/ntgdibad.h b/reactos/include/win32k/ntgdibad.h
deleted file mode 100644 (file)
index 0148c28..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#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