Fix some MSVC warnings
[reactos.git] / reactos / include / win32k / ntgdibad.h
1 #ifndef WIN32K_NTGDI_BAD_INCLUDED
2 #define WIN32K_NTGDI_BAD_INCLUDED
3
4 /*
5 *
6 * If you want to help, please read this:
7 *
8 * This file contains NtGdi APIs which are specific to ROS, including
9 * a short comment describing the solution on how to use the actual NtGdi
10 * call documented in ntgdi.h. Here are the main cases and information on
11 * how to remove them from this header.
12 *
13 * - Simple rename. This deals with an API simply having a different name,
14 * with absolutely no other changes needed.
15 * - Rename and new parameters. This deals with a case similar to the one
16 * above, except that new parameters have now
17 * been added. This is also usually extremly
18 * simple to fix. Either pass the right params
19 * or pass null/0 values that you ignore.
20 * - Rename and new structure. This is similar to the above, except that the
21 * information is now passed in a differently
22 * named and organized structure. Ask Alex for
23 * the structure you need and he will add it to
24 * ntgdityp.h
25 * - Rename and different semantics. Similar to the previous examples, except
26 * that parameters have usually been removed
27 * or need to be converted in user-mode in
28 * one form of another.
29 * - Does not exist: user-mode. This means that the API can be fully done in
30 * user mode. In 80% of cases, our API was already
31 * returning NOT_IMPLEMENTED in kernel-mode, so
32 * the work to be done is minimal. A good example
33 * are the ICM and Metafile APIs, which can simply
34 * be removed and added into gdi32.
35 * - Does not exist: GDI Shared Objects. This is by far the hardest case. This
36 * class cannot be fixed until ReactOS
37 * has a working Shared GDI Object table
38 * and a DC_ATTR structure in which the
39 * attributes, selection and deletion of
40 * objects can be quickly done from user-
41 * mode without requiring a kernel mode
42 * call.
43 */
44 /* Should be using ENUMFONTDATAW */
45 typedef struct tagFONTFAMILYINFO
46 {
47 ENUMLOGFONTEXW EnumLogFontEx;
48 NEWTEXTMETRICEXW NewTextMetricEx;
49 DWORD FontType;
50 } FONTFAMILYINFO, *PFONTFAMILYINFO;
51
52 /* Should be using NtGdiHfontCreate with an ENUMLOGFONT */
53 HFONT
54 NTAPI
55 NtGdiCreateFontIndirect(CONST LPLOGFONTW lf);
56
57 /* Should be using NtGdiHfontCreate with an ENUMLOGFONT */
58 HFONT
59 NTAPI
60 NtGdiCreateFont(
61 int Height,
62 int Width,
63 int Escapement,
64 int Orientation,
65 int Weight,
66 DWORD Italic,
67 DWORD Underline,
68 DWORD StrikeOut,
69 DWORD CharSet,
70 DWORD OutputPrecision,
71 DWORD ClipPrecision,
72 DWORD Quality,
73 DWORD PitchAndFamily,
74 LPCWSTR Face
75 );
76
77 /* Should be using NtGdiEnumFontChunk */
78 INT
79 NTAPI
80 NtGdiGetFontFamilyInfo(
81 HDC Dc,
82 LPLOGFONTW LogFont,
83 PFONTFAMILYINFO Info,
84 DWORD Size
85 );
86
87 /* Should be using NtGdiEnumFontChunk */
88 BOOL
89 NTAPI
90 NtGdiTranslateCharsetInfo(
91 PDWORD Src,
92 LPCHARSETINFO CSI,
93 DWORD Flags
94 );
95
96 /* The gdi32 call does all the work in user-mode, save for NtGdiMakeFontDir */
97 BOOL
98 NTAPI
99 NtGdiCreateScalableFontResource(
100 DWORD Hidden,
101 LPCWSTR FontRes,
102 LPCWSTR FontFile,
103 LPCWSTR CurrentPath
104 );
105
106 /* The gdi32 call Should Use NtGdiGetRandomRgn and nothing else */
107 HRGN
108 NTAPI
109 NtGdiGetClipRgn(HDC hDC);
110
111 /* The gdi32 call Should Use NtGdiGetTextExtent */
112 BOOL
113 NTAPI
114 NtGdiGetTextExtentPoint32(
115 HDC hDC,
116 LPCWSTR String,
117 int Count,
118 LPSIZE
119 );
120
121 BOOL
122 STDCALL
123 NtGdiGetCharWidth32(
124 HDC hDC,
125 UINT FirstChar,
126 UINT LastChar,
127 LPINT Buffer
128 );
129
130 /* Use NtGdiOpenDCW */
131 HDC
132 NTAPI
133 NtGdiCreateDC(
134 PUNICODE_STRING Driver,
135 PUNICODE_STRING Device,
136 PUNICODE_STRING Output,
137 CONST PDEVMODEW InitData
138 );
139
140 HDC
141 NTAPI
142 NtGdiCreateIC(
143 PUNICODE_STRING Driver,
144 PUNICODE_STRING Device,
145 PUNICODE_STRING Output,
146 CONST PDEVMODEW DevMode
147 );
148
149 /* Use NtGdiAddFontResourceW */
150 int
151 STDCALL
152 NtGdiAddFontResource(PUNICODE_STRING Filename,
153 DWORD fl);
154
155 /* Use NtGdiDoPalette with GdiPalAnimate */
156 BOOL
157 STDCALL
158 NtGdiAnimatePalette (
159 HPALETTE hpal,
160 UINT StartIndex,
161 UINT Entries,
162 CONST PPALETTEENTRY ppe
163 );
164
165 /* Use NtGdiArcInternal with GdiTypeArc */
166 BOOL
167 STDCALL
168 NtGdiArc(HDC hDC,
169 int LeftRect,
170 int TopRect,
171 int RightRect,
172 int BottomRect,
173 int XStartArc,
174 int YStartArc,
175 int XEndArc,
176 int YEndArc);
177
178 /* Use NtGdiArcInternal with GdiTypeArcTo */
179 BOOL
180 STDCALL
181 NtGdiArcTo(HDC hDC,
182 int LeftRect,
183 int TopRect,
184 int RightRect,
185 int BottomRect,
186 int XRadial1,
187 int YRadial1,
188 int XRadial2,
189 int YRadial2);
190
191 /* Does not exist */
192 BOOL
193 STDCALL
194 NtGdiCheckColorsInGamut(HDC hDC,
195 LPVOID RGBTriples,
196 LPVOID Buffer,
197 UINT Count);
198
199 /* Use NtGdiArcInternal with GdiTypeChord */
200 BOOL
201 STDCALL
202 NtGdiChord(HDC hDC,
203 int LeftRect,
204 int TopRect,
205 int RightRect,
206 int BottomRect,
207 int XRadial1,
208 int YRadial1,
209 int XRadial2,
210 int YRadial2);
211
212 /* Metafiles are user mode */
213 HENHMETAFILE
214 STDCALL
215 NtGdiCloseEnhMetaFile (
216 HDC hDC
217 );
218
219 /* Metafiles are user mode */
220 HMETAFILE
221 STDCALL
222 NtGdiCloseMetaFile (
223 HDC hDC
224 );
225
226 /* Does not exist */
227 BOOL
228 STDCALL
229 NtGdiColorMatchToTarget(HDC hDC,
230 HDC hDCTarget,
231 DWORD Action);
232
233 /* Metafiles are user mode */
234 HENHMETAFILE
235 STDCALL
236 NtGdiCopyEnhMetaFile (
237 HENHMETAFILE Src,
238 LPCWSTR File
239 );
240
241 /* Metafiles are user mode */
242 HMETAFILE
243 STDCALL
244 NtGdiCopyMetaFile (
245 HMETAFILE Src,
246 LPCWSTR File
247 );
248
249 /* Use NtGdiCreateBitmap and expand the pbm-> */
250 HBITMAP
251 STDCALL
252 NtGdiCreateBitmapIndirect (
253 CONST BITMAP * BM
254 );
255
256 /* Use NtGdiCreateDIBitmapInternal */
257 HBITMAP
258 STDCALL
259 NtGdiCreateDIBitmap (
260 HDC hDC,
261 CONST BITMAPINFOHEADER * bmih,
262 DWORD Init,
263 CONST VOID * bInit,
264 CONST BITMAPINFO * bmi,
265 UINT Usage
266 );
267
268 /* Use NtGdiCreateCompatibleBitmap */
269 HBITMAP
270 STDCALL
271 NtGdiCreateDiscardableBitmap (
272 HDC hDC,
273 INT Width,
274 INT Height
275 );
276
277 /* Use NtGdiCreateEllipticRgn and expand the lprect-> */
278 HRGN
279 STDCALL
280 NtGdiCreateEllipticRgnIndirect(CONST PRECT rc);
281
282 /* Metafiles are user mode */
283 HDC
284 STDCALL
285 NtGdiCreateEnhMetaFile (
286 HDC hDCRef,
287 LPCWSTR File,
288 CONST LPRECT Rect,
289 LPCWSTR Description
290 );
291
292 /* Use NtGdiCreateHatchBrushInternal with FALSE at the end. */
293 HBRUSH STDCALL
294 NtGdiCreateHatchBrush(
295 INT Style,
296 COLORREF Color);
297
298 /* Metafiles are user mode */
299 HDC
300 STDCALL
301 NtGdiCreateMetaFile (
302 LPCWSTR File
303 );
304
305 /* Use NtGdiCreatePaletteInternal with palNumEntries at the end. */
306 HPALETTE
307 STDCALL
308 NtGdiCreatePalette (
309 CONST PLOGPALETTE lgpl
310 );
311
312 /* Use NtGdiCreatePatternBrushInternal with false, false at the end. */
313 HBRUSH STDCALL
314 NtGdiCreatePatternBrush(
315 HBITMAP hBitmap);
316
317 /* Use NtGdiCreatePen with -> as parameters. */
318 HPEN STDCALL
319 NtGdiCreatePenIndirect(
320 CONST PLOGPEN LogBrush);
321
322 /* Use NtGdiPolyPolyDraw with PolyPolyRgn. */
323 HRGN
324 STDCALL
325 NtGdiCreatePolygonRgn(CONST PPOINT pt,
326 INT Count,
327 INT PolyFillMode);
328
329 /* Use NtGdiPolyPolyDraw with PolyPolyRgn. */
330 HRGN
331 STDCALL
332 NtGdiCreatePolyPolygonRgn(CONST PPOINT pt,
333 CONST PINT PolyCounts,
334 INT Count,
335 INT PolyFillMode);
336
337 /* Use NtGdiCreateRectRgn with expanded paraemters. */
338 HRGN
339 STDCALL
340 NtGdiCreateRectRgnIndirect(CONST PRECT rc);
341
342 /* Use NtGdiTransformPoints with GdiDpToLp. */
343 BOOL
344 STDCALL
345 NtGdiDPtoLP (
346 HDC hDC,
347 LPPOINT Points,
348 int Count
349 );
350
351 /* Use NtGdiDeleteObjectApp. */
352 BOOL STDCALL NtGdiDeleteDC(HDC hDC);
353
354 /* Meta are user-mode. */
355 BOOL
356 STDCALL
357 NtGdiDeleteEnhMetaFile (
358 HENHMETAFILE emf
359 );
360
361 /* Meta are user-mode. */
362 BOOL
363 STDCALL
364 NtGdiDeleteMetaFile (
365 HMETAFILE mf
366 );
367
368 /* Should be done in user-mode. */
369 BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject);
370
371 /* Meta are user-mode. */
372 BOOL
373 STDCALL
374 NtGdiEnumEnhMetaFile (
375 HDC hDC,
376 HENHMETAFILE emf,
377 ENHMFENUMPROC EnhMetaFunc,
378 LPVOID Data,
379 CONST LPRECT Rect
380 );
381
382 /* Should be done in user-mode. */
383 int
384 STDCALL
385 NtGdiEnumFonts(HDC hDC,
386 LPCWSTR FaceName,
387 FONTENUMPROCW FontFunc,
388 LPARAM lParam);
389
390 /* Should be done in user-mode. */
391 INT
392 STDCALL
393 NtGdiEnumICMProfiles(HDC hDC,
394 LPWSTR lpstrBuffer,
395 UINT cch );
396
397 /* Meta are user-mode. */
398 BOOL
399 STDCALL
400 NtGdiEnumMetaFile (
401 HDC hDC,
402 HMETAFILE mf,
403 MFENUMPROC MetaFunc,
404 LPARAM lParam
405 );
406
407 /* Should be done in user-mode. */
408 INT
409 STDCALL
410 NtGdiEscape(HDC hDC,
411 INT Escape,
412 INT InSize,
413 LPCSTR InData,
414 LPVOID OutData);
415
416 /* Use NtGdiExtTextOutW with 0, 0 at the end. */
417 BOOL
418 STDCALL
419 NtGdiExtTextOut(HDC hdc,
420 int X,
421 int Y,
422 UINT fuOptions,
423 CONST RECT *lprc,
424 LPCWSTR lpString,
425 UINT cbCount,
426 CONST INT *lpDx);
427
428 /* Use NtGdiExtFloodFill with FLOODFILLBORDER. */
429 BOOL
430 STDCALL
431 NtGdiFloodFill (
432 HDC hDC,
433 INT XStart,
434 INT YStart,
435 COLORREF Fill
436 );
437
438 /* Should be done in user-mode. */
439 BOOL
440 STDCALL
441 NtGdiGdiComment (
442 HDC hDC,
443 UINT Size,
444 CONST LPBYTE Data
445 );
446
447 /* Should be done in user-mode. */
448 BOOL STDCALL NtGdiGdiFlush (VOID);
449
450 /* Should be done in user-mode. */
451 DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);
452
453 /* Should be done in user-mode. */
454 DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);
455
456 /* Use NtGdiGetDCDword with GdiGetArcDirection. */
457 INT
458 STDCALL
459 NtGdiGetArcDirection ( HDC hDC );
460
461 /* Should be done in user-mode. */
462 BOOL
463 STDCALL
464 NtGdiGetAspectRatioFilterEx(HDC hDC,
465 LPSIZE AspectRatio);
466
467 /* Should be done in user-mode using shared GDI Objects. */
468 BOOL
469 STDCALL
470 NtGdiGetBitmapDimensionEx (
471 HBITMAP hBitmap,
472 LPSIZE Dimension
473 );
474
475 /* Should be done in user-mode using shared GDI Objects. */
476 COLORREF STDCALL NtGdiGetBkColor(HDC hDC);
477
478 /* Should be done in user-mode using shared GDI Objects. */
479 INT STDCALL NtGdiGetBkMode(HDC hDC);
480
481 /* Should be done in user-mode using shared GDI Objects. */
482 BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg);
483
484 /* Use NtGdiGetCharABCWidthsW */
485 BOOL
486 STDCALL
487 NtGdiGetCharABCWidths(HDC hDC,
488 UINT FirstChar,
489 UINT LastChar,
490 LPABC abc);
491
492 /* Should be done in user mode. */
493 BOOL
494 STDCALL
495 NtGdiGetCharABCWidthsFloat(HDC hDC,
496 UINT FirstChar,
497 UINT LastChar,
498 LPABCFLOAT abcF);
499
500 /* Should be done in user mode. */
501 DWORD
502 STDCALL
503 NtGdiGetCharacterPlacement(HDC hDC,
504 LPCWSTR String,
505 int Count,
506 int MaxExtent,
507 LPGCP_RESULTSW Results,
508 DWORD Flags);
509
510 /* Should be done in user mode. */
511 BOOL
512 STDCALL
513 NtGdiGetCharWidthFloat(HDC hDC,
514 UINT FirstChar,
515 UINT LastChar,
516 PFLOAT Buffer);
517
518 /* Use NtGdiGetAppClipBox. */
519 int
520 STDCALL
521 NtGdiGetClipBox (
522 HDC hDC,
523 LPRECT rc
524 );
525
526 /* Use NtGdiGetColorSpaceforBitmap. */
527 HCOLORSPACE
528 STDCALL
529 NtGdiGetColorSpace(HDC hDC);
530
531 /* Should be done in user-mode and/or NtGdiGetDCObject. */
532 HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType);
533
534 /* Should be done in user mode. */
535 BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition);
536
537 /* Use NtGdiGetDCPoint with GdiGetDCOrg. */
538 BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point);
539
540 /* Use NtGdiDoPalette with GdiPalGetColorTable. */
541 UINT
542 STDCALL
543 NtGdiGetDIBColorTable (
544 HDC hDC,
545 UINT StartIndex,
546 UINT Entries,
547 RGBQUAD * Colors
548 );
549
550 /* Use NtGdiGetDIBitsInternal. */
551 INT
552 STDCALL
553 NtGdiGetDIBits (
554 HDC hDC,
555 HBITMAP hBitmap,
556 UINT StartScan,
557 UINT ScanLines,
558 LPVOID Bits,
559 LPBITMAPINFO bi,
560 UINT Usage
561 );
562
563
564 /* Meta are user-mode. */
565 HENHMETAFILE
566 STDCALL
567 NtGdiGetEnhMetaFile (
568 LPCWSTR MetaFile
569 );
570
571 /* Meta are user-mode. */
572 UINT
573 STDCALL
574 NtGdiGetEnhMetaFileBits (
575 HENHMETAFILE hemf,
576 UINT BufSize,
577 LPBYTE Buffer
578 );
579
580 /* Meta are user-mode. */
581 UINT
582 STDCALL
583 NtGdiGetEnhMetaFileDescription (
584 HENHMETAFILE hemf,
585 UINT BufSize,
586 LPWSTR Description
587 );
588
589 /* Meta are user-mode. */
590 UINT
591 STDCALL
592 NtGdiGetEnhMetaFileHeader (
593 HENHMETAFILE hemf,
594 UINT BufSize,
595 LPENHMETAHEADER emh
596 );
597
598 /* Meta are user-mode. */
599 UINT
600 STDCALL
601 NtGdiGetEnhMetaFilePaletteEntries (
602 HENHMETAFILE hemf,
603 UINT Entries,
604 LPPALETTEENTRY pe
605 );
606
607 /* Meta are user-mode. */
608 UINT
609 STDCALL
610 NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
611 DWORD BufSize,
612 CONST PPIXELFORMATDESCRIPTOR pfd);
613
614 /* Should be done in user-mode. */
615 DWORD
616 STDCALL
617 NtGdiGetFontLanguageInfo(HDC hDC);
618
619 /* Should be done in user-mode. */
620 int
621 STDCALL
622 NtGdiGetGraphicsMode ( HDC hDC );
623
624 /* Should be done in user-mode. */
625 BOOL
626 STDCALL
627 NtGdiGetICMProfile(HDC hDC,
628 LPDWORD NameSize,
629 LPWSTR Filename);
630
631 /* Should be done in user-mode. */
632 BOOL
633 STDCALL
634 NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,
635 LPLOGCOLORSPACEW Buffer,
636 DWORD Size);
637
638 /* Should be done in user-mode using shared GDI Objects. */
639 INT STDCALL NtGdiGetMapMode(HDC hDC);
640
641 /* Meta files are user-mode. */
642 HMETAFILE
643 STDCALL
644 NtGdiGetMetaFile (
645 LPCWSTR MetaFile
646 );
647
648 /* Meta files are user-mode. */
649 UINT
650 STDCALL
651 NtGdiGetMetaFileBitsEx (
652 HMETAFILE hmf,
653 UINT Size,
654 LPVOID Data
655 );
656
657 /* Meta files are user-mode. */
658 int
659 STDCALL
660 NtGdiGetMetaRgn (
661 HDC hDC,
662 HRGN hrgn
663 );
664
665 /* Should be done in user-mode using shared GDI Objects. */
666 INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj,
667 INT BufSize,
668 LPVOID Object);
669
670 /* Should be done in user-mode using shared GDI Objects. */
671 DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj);
672
673 /* Use NtGdiGetOutlineTextMetricsInternalW. */
674 UINT
675 STDCALL
676 NtGdiGetOutlineTextMetrics(HDC hDC,
677 UINT Data,
678 LPOUTLINETEXTMETRICW otm);
679
680 /* Use NtGdiDoPalette with GdiPalGetEntries. */
681 UINT
682 STDCALL
683 NtGdiGetPaletteEntries (
684 HPALETTE hpal,
685 UINT StartIndex,
686 UINT Entries,
687 LPPALETTEENTRY pe
688 );
689
690 /* Should be done in user-mode using shared GDI Objects. */
691 INT
692 STDCALL
693 NtGdiGetPixelFormat(HDC hDC);
694
695 /* Should be done in user-mode using shared GDI Objects. */
696 INT STDCALL NtGdiGetPolyFillMode(HDC hDC);
697
698 /* Should be done in user-mode using shared GDI Objects. */
699 INT STDCALL NtGdiGetROP2(HDC hDC);
700
701 /* Should be done in user-mode using shared GDI Objects. */
702 INT STDCALL NtGdiGetRelAbs(HDC hDC);
703
704 /* Should be done in user-mode using shared GDI Objects. */
705 INT STDCALL NtGdiGetStretchBltMode(HDC hDC);
706
707 /* Use NtGdiDoPalette with GdiPalSetSystemEntries. */
708 UINT
709 STDCALL
710 NtGdiGetSystemPaletteEntries (
711 HDC hDC,
712 UINT StartIndex,
713 UINT Entries,
714 LPPALETTEENTRY pe
715 );
716
717 /* Should be done in user-mode using shared GDI Objects. */
718 UINT STDCALL NtGdiGetTextAlign(HDC hDC);
719
720 /* Should be done in user-mode using shared GDI Objects. */
721 UINT
722 STDCALL
723 NtGdiGetTextCharset(HDC hDC);
724
725 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
726 COLORREF STDCALL NtGdiGetTextColor(HDC hDC);
727
728 /* Rename to NtGdiGetTextExtentExW. Add 0 at the end. */
729 BOOL
730 STDCALL
731 NtGdiGetTextExtentExPoint(HDC hDC,
732 LPCWSTR String,
733 int Count,
734 int MaxExtent,
735 LPINT Fit,
736 LPINT Dx,
737 LPSIZE Size);
738
739 /* Rename to NtGdiGetTextExtent. Add 0 at the end. */
740 BOOL
741 STDCALL
742 NtGdiGetTextExtentPoint(HDC hDC,
743 LPCWSTR String,
744 int Count,
745 LPSIZE Size);
746
747 /* Rename to NtGdiGetTextFaceW, add FALSE at the end. */
748 int
749 STDCALL
750 NtGdiGetTextFace(HDC hDC,
751 int Count,
752 LPWSTR FaceName);
753
754 /* Use NtGdiGetTextMetricsW with 0 at the end */
755 BOOL
756 STDCALL
757 NtGdiGetTextMetrics(HDC hDC,
758 LPTEXTMETRICW tm);
759
760 /* Use NtGdiGetDCPoint with GdiGetViewPortExt */
761 BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
762
763 /* Needs to be done in user-mode. */
764 BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg);
765
766 /* Metafiles are user-mode. */
767 UINT
768 STDCALL
769 NtGdiGetWinMetaFileBits (
770 HENHMETAFILE hemf,
771 UINT BufSize,
772 LPBYTE Buffer,
773 INT MapMode,
774 HDC Ref
775 );
776
777 /* Needs to be done in user-mode. */
778 BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt);
779
780 /* Needs to be done in user-mode. */
781 BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg);
782
783 /* Use NtGdiGetTransform with GdiWorldSpaceToPageSpace */
784 BOOL
785 STDCALL
786 NtGdiGetWorldTransform (
787 HDC hDC,
788 LPXFORM Xform
789 );
790
791 /* Use NtGdiTransformPoints with GdiDpToLp */
792 BOOL
793 STDCALL
794 NtGdiLPtoDP (
795 HDC hDC,
796 LPPOINT Points,
797 int Count
798 );
799
800 /* Needs to be done in user-mode. */
801 BOOL
802 STDCALL
803 NtGdiMoveToEx(HDC hDC,
804 int X,
805 int Y,
806 LPPOINT Point);
807
808 /* Needs to be done in user-mode. */
809 BOOL
810 STDCALL
811 NtGdiOffsetViewportOrgEx (
812 HDC hDC,
813 int XOffset,
814 int YOffset,
815 LPPOINT Point
816 );
817
818 /* Needs to be done in user-mode. */
819 BOOL
820 STDCALL
821 NtGdiOffsetWindowOrgEx (
822 HDC hDC,
823 int XOffset,
824 int YOffset,
825 LPPOINT Point
826 );
827
828 /* Use NtGdiFillRgn. Add 0 at the end. */
829 BOOL
830 STDCALL
831 NtGdiPaintRgn(HDC hDC,
832 HRGN hRgn);
833
834 /* Use NtGdiArcInternal with GdiTypePie. */
835 BOOL
836 STDCALL
837 NtGdiPie(HDC hDC,
838 int LeftRect,
839 int TopRect,
840 int RightRect,
841 int BottomRect,
842 int XRadial1,
843 int YRadial1,
844 int XRadial2,
845 int YRadial2);
846
847 /* Metafiles are user-mode. */
848 BOOL
849 STDCALL
850 NtGdiPlayEnhMetaFile (
851 HDC hDC,
852 HENHMETAFILE hemf,
853 CONST PRECT Rect
854 );
855
856 /* Metafiles are user-mode. */
857 BOOL
858 STDCALL
859 NtGdiPlayEnhMetaFileRecord (
860 HDC hDC,
861 LPHANDLETABLE Handletable,
862 CONST ENHMETARECORD * EnhMetaRecord,
863 UINT Handles
864 );
865
866 /* Metafiles are user-mode. */
867 BOOL
868 STDCALL
869 NtGdiPlayMetaFile (
870 HDC hDC,
871 HMETAFILE hmf
872 );
873
874 /* Metafiles are user-mode. */
875 BOOL
876 STDCALL
877 NtGdiPlayMetaFileRecord (
878 HDC hDC,
879 LPHANDLETABLE Handletable,
880 LPMETARECORD MetaRecord,
881 UINT Handles
882 );
883
884 /* Use NtGdiPolyPolyDraw with GdiPolyBezier. */
885 BOOL
886 STDCALL
887 NtGdiPolyBezier(HDC hDC,
888 CONST LPPOINT pt,
889 DWORD Count);
890
891 /* Use NtGdiPolyPolyDraw with GdiPolyBezierTo. */
892 BOOL
893 STDCALL
894 NtGdiPolyBezierTo(HDC hDC,
895 CONST LPPOINT pt,
896 DWORD Count);
897
898 /* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */
899 BOOL
900 STDCALL
901 NtGdiPolyline(HDC hDC,
902 CONST LPPOINT pt,
903 int Count);
904
905 /* Use NtGdiPolyPolyDraw with GdiPolyLineTo. */
906 BOOL
907 STDCALL
908 NtGdiPolylineTo(HDC hDC,
909 CONST LPPOINT pt,
910 DWORD Count);
911
912 /* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */
913 BOOL
914 STDCALL
915 NtGdiPolyPolyline(HDC hDC,
916 CONST LPPOINT pt,
917 CONST LPDWORD PolyPoints,
918 DWORD Count);
919
920 /* Use NtGdiPolyTextOutW with 0 at the end. */
921 BOOL
922 STDCALL
923 NtGdiPolyTextOut(HDC hDC,
924 CONST LPPOLYTEXTW txt,
925 int Count);
926
927 /* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */
928 BOOL
929 STDCALL
930 NtGdiPolygon(HDC hDC,
931 CONST PPOINT Points,
932 int Count);
933
934 /* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */
935 BOOL
936 STDCALL
937 NtGdiPolyPolygon(HDC hDC,
938 CONST LPPOINT Points,
939 CONST LPINT PolyCounts,
940 int Count);
941
942 /* Call UserRealizePalette. */
943 UINT
944 STDCALL
945 NtGdiRealizePalette (
946 HDC hDC
947 );
948
949 /* Should be done in user-mode. */
950 BOOL
951 STDCALL
952 NtGdiRemoveFontResource(LPCWSTR FileName);
953
954 /* Use NtGdiExtSelectClipRgn with RGN_COPY. */
955 int
956 STDCALL
957 NtGdiSelectClipRgn (
958 HDC hDC,
959 HRGN hrgn
960 );
961
962 /* Should be done in user-mode. */
963 HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
964
965 /* Use NtUserSelectPalette. */
966 HPALETTE
967 STDCALL
968 NtGdiSelectPalette (
969 HDC hDC,
970 HPALETTE hpal,
971 BOOL ForceBackground
972 );
973
974 /* Should be done in user-mode. */
975 INT
976 STDCALL
977 NtGdiSetAbortProc(HDC hDC,
978 ABORTPROC AbortProc);
979
980 /* Use NtGdiGetAndSetDCDword with GdiGetSetArcDirection. */
981 int
982 STDCALL
983 NtGdiSetArcDirection(HDC hDC,
984 int ArcDirection);
985
986 /* Use NtGdiSetBitmapDimension. */
987 BOOL
988 STDCALL
989 NtGdiSetBitmapDimensionEx (
990 HBITMAP hBitmap,
991 INT Width,
992 INT Height,
993 LPSIZE Size
994 );
995
996 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
997 COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
998
999 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1000 INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode);
1001
1002 /* Use NtGdiSetBrushOrg. */
1003 BOOL STDCALL
1004 NtGdiSetBrushOrgEx(
1005 HDC hDC,
1006 INT XOrg,
1007 INT YOrg,
1008 LPPOINT Point);
1009
1010 /* Use NtGdiDoPalette with GdiPalSetColorTable, TRUE. */
1011 UINT
1012 STDCALL
1013 NtGdiSetDIBColorTable (
1014 HDC hDC,
1015 UINT StartIndex,
1016 UINT Entries,
1017 CONST RGBQUAD * Colors
1018 );
1019
1020 /* Use SetDIBitsToDevice in gdi32. */
1021 INT
1022 STDCALL
1023 NtGdiSetDIBits (
1024 HDC hDC,
1025 HBITMAP hBitmap,
1026 UINT StartScan,
1027 UINT ScanLines,
1028 CONST VOID * Bits,
1029 CONST BITMAPINFO * bmi,
1030 UINT ColorUse
1031 );
1032
1033 /* Use NtGdiSetDIBitsToDeviceInternal. */
1034 INT
1035 STDCALL
1036 NtGdiSetDIBitsToDevice (
1037 HDC hDC,
1038 INT XDest,
1039 INT YDest,
1040 DWORD Width,
1041 DWORD Height,
1042 INT XSrc,
1043 INT YSrc,
1044 UINT StartScan,
1045 UINT ScanLines,
1046 CONST VOID * Bits,
1047 CONST BITMAPINFO * bmi,
1048 UINT ColorUse
1049 );
1050
1051 /* Metafiles are user-mode. */
1052 HENHMETAFILE
1053 STDCALL
1054 NtGdiSetEnhMetaFileBits (
1055 UINT BufSize,
1056 CONST PBYTE Data
1057 );
1058
1059 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1060 int
1061 STDCALL
1062 NtGdiSetGraphicsMode (
1063 HDC hDC,
1064 int Mode
1065 );
1066
1067 /* Use NtGdiSetIcmMode. */
1068 INT
1069 STDCALL
1070 NtGdiSetICMMode(HDC hDC,
1071 INT EnableICM);
1072
1073 /* Should be done in user-mode. */
1074 BOOL
1075 STDCALL
1076 NtGdiSetICMProfile(HDC hDC,
1077 LPWSTR Filename);
1078
1079 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1080 int
1081 STDCALL
1082 NtGdiSetMapMode (
1083 HDC hDC,
1084 int MapMode
1085 );
1086
1087 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1088 DWORD
1089 STDCALL
1090 NtGdiSetMapperFlags(HDC hDC,
1091 DWORD Flag);
1092
1093 /* Metafiles are user-mode. */
1094 HMETAFILE
1095 STDCALL
1096 NtGdiSetMetaFileBitsEx (
1097 UINT Size,
1098 CONST PBYTE Data
1099 );
1100
1101 /* Use NtGdiDoPalette with GdiPalSetEntries, TRUE. */
1102 UINT
1103 STDCALL
1104 NtGdiSetPaletteEntries (
1105 HPALETTE hpal,
1106 UINT Start,
1107 UINT Entries,
1108 CONST LPPALETTEENTRY pe
1109 );
1110
1111 /* Use NtGdiSetPixel(hdc, x, y, color) != CLR_INVALID; */
1112 BOOL
1113 STDCALL
1114 NtGdiSetPixelV (
1115 HDC hDC,
1116 INT X,
1117 INT Y,
1118 COLORREF Color
1119 );
1120
1121 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1122 INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode);
1123
1124 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1125 INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode);
1126
1127 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1128 INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode);
1129
1130 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1131 UINT
1132 STDCALL
1133 NtGdiSetTextAlign(HDC hDC,
1134 UINT Mode);
1135
1136 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1137 COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color);
1138
1139 /* Needs to be done in user-mode. */
1140 BOOL
1141 STDCALL
1142 NtGdiSetWindowExtEx (
1143 HDC hDC,
1144 int XExtent,
1145 int YExtent,
1146 LPSIZE Size
1147 );
1148
1149 /* Needs to be done in user-mode. */
1150 BOOL
1151 STDCALL
1152 NtGdiSetViewportOrgEx (
1153 HDC hDC,
1154 int X,
1155 int Y,
1156 LPPOINT Point
1157 );
1158
1159 /* Needs to be done in user-mode. */
1160 BOOL
1161 STDCALL
1162 NtGdiSetViewportExtEx (
1163 HDC hDC,
1164 int XExtent,
1165 int YExtent,
1166 LPSIZE Size
1167 );
1168
1169 /* Needs to be done in user-mode. */
1170 BOOL
1171 STDCALL
1172 NtGdiSetWindowOrgEx (
1173 HDC hDC,
1174 int X,
1175 int Y,
1176 LPPOINT Point
1177 );
1178
1179 /* Use NtGdiModifyWorldTransform with MWT_MAX + 1; */
1180 BOOL
1181 STDCALL
1182 NtGdiSetWorldTransform (
1183 HDC hDC,
1184 CONST LPXFORM Xform
1185 );
1186
1187 /* Use NtGdiStretchDIBitsInternal. */
1188 INT
1189 STDCALL
1190 NtGdiStretchDIBits (
1191 HDC hDC,
1192 INT XDest,
1193 INT YDest,
1194 INT DestWidth,
1195 INT DestHeight,
1196 INT XSrc,
1197 INT YSrc,
1198 INT SrcWidth,
1199 INT SrcHeight,
1200 CONST VOID * Bits,
1201 CONST BITMAPINFO * BitsInfo,
1202 UINT Usage,
1203 DWORD ROP
1204 );
1205
1206 /* Use NtGdiExtTextOutW with 0, 0 at the end. */
1207 BOOL
1208 STDCALL
1209 NtGdiTextOut(HDC hDC,
1210 int XStart,
1211 int YStart,
1212 LPCWSTR String,
1213 int Count);
1214
1215 /* Needs to be done in user-mode. */
1216 BOOL
1217 STDCALL
1218 NtGdiUpdateICMRegKey(DWORD Reserved,
1219 LPWSTR CMID,
1220 LPWSTR Filename,
1221 UINT Command);
1222
1223 /* These shouldn't even be called NtGdi */
1224 HDC STDCALL NtGdiGetDCState(HDC hDC);
1225 WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags);
1226 INT
1227 STDCALL
1228 NtGdiSelectVisRgn(HDC hdc,
1229 HRGN hrgn);
1230 VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave );
1231
1232 /* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */
1233 DWORD
1234 NTAPI
1235 NtUserCallTwoParam(
1236 DWORD Param1,
1237 DWORD Param2,
1238 DWORD Routine);
1239
1240 #define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
1241 #define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
1242 #define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
1243
1244 #define NtUserGetDCBrushColor(hbr) \
1245 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
1246
1247 #define NtUserGetDCPenColor(hbr) \
1248 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
1249
1250 #define NtUserSetDCBrushColor(hbr, crColor) \
1251 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
1252
1253 #define NtUserSetDCPenColor(hbr, crColor) \
1254 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
1255
1256 #endif /* WIN32K_NTGDI_BAD_INCLUDED */