* Replace NtGdiCreatePatternBrush and NtGdiCreateHatchBrush with NtGdiCreatePatternBr...
[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 /* Use NtGdiArcInternal with GdiTypeChord */
192 BOOL
193 STDCALL
194 NtGdiChord(HDC hDC,
195 int LeftRect,
196 int TopRect,
197 int RightRect,
198 int BottomRect,
199 int XRadial1,
200 int YRadial1,
201 int XRadial2,
202 int YRadial2);
203
204 /* Metafiles are user mode */
205 HENHMETAFILE
206 STDCALL
207 NtGdiCloseEnhMetaFile (
208 HDC hDC
209 );
210
211 /* Metafiles are user mode */
212 HMETAFILE
213 STDCALL
214 NtGdiCloseMetaFile (
215 HDC hDC
216 );
217
218 /* Does not exist */
219 BOOL
220 STDCALL
221 NtGdiColorMatchToTarget(HDC hDC,
222 HDC hDCTarget,
223 DWORD Action);
224
225 /* Metafiles are user mode */
226 HENHMETAFILE
227 STDCALL
228 NtGdiCopyEnhMetaFile (
229 HENHMETAFILE Src,
230 LPCWSTR File
231 );
232
233 /* Metafiles are user mode */
234 HMETAFILE
235 STDCALL
236 NtGdiCopyMetaFile (
237 HMETAFILE Src,
238 LPCWSTR File
239 );
240
241 /* Use NtGdiCreateBitmap and expand the pbm-> */
242 HBITMAP
243 STDCALL
244 NtGdiCreateBitmapIndirect (
245 CONST BITMAP * BM
246 );
247
248 /* Use NtGdiCreateDIBitmapInternal */
249 HBITMAP
250 STDCALL
251 NtGdiCreateDIBitmap (
252 HDC hDC,
253 CONST BITMAPINFOHEADER * bmih,
254 DWORD Init,
255 CONST VOID * bInit,
256 CONST BITMAPINFO * bmi,
257 UINT Usage
258 );
259
260 /* Use NtGdiCreateCompatibleBitmap */
261 HBITMAP
262 STDCALL
263 NtGdiCreateDiscardableBitmap (
264 HDC hDC,
265 INT Width,
266 INT Height
267 );
268
269 /* Use NtGdiCreateEllipticRgn and expand the lprect-> */
270 HRGN
271 STDCALL
272 NtGdiCreateEllipticRgnIndirect(CONST PRECT rc);
273
274 /* Metafiles are user mode */
275 HDC
276 STDCALL
277 NtGdiCreateEnhMetaFile (
278 HDC hDCRef,
279 LPCWSTR File,
280 CONST LPRECT Rect,
281 LPCWSTR Description
282 );
283
284 /* Metafiles are user mode */
285 HDC
286 STDCALL
287 NtGdiCreateMetaFile (
288 LPCWSTR File
289 );
290
291 /* Use NtGdiCreatePaletteInternal with palNumEntries at the end. */
292 HPALETTE
293 STDCALL
294 NtGdiCreatePalette (
295 CONST PLOGPALETTE lgpl
296 );
297
298 /* Use NtGdiCreatePen with -> as parameters. */
299 HPEN STDCALL
300 NtGdiCreatePenIndirect(
301 CONST PLOGPEN LogBrush);
302
303 /* Use NtGdiPolyPolyDraw with PolyPolyRgn. */
304 HRGN
305 STDCALL
306 NtGdiCreatePolygonRgn(CONST PPOINT pt,
307 INT Count,
308 INT PolyFillMode);
309
310 /* Use NtGdiPolyPolyDraw with PolyPolyRgn. */
311 HRGN
312 STDCALL
313 NtGdiCreatePolyPolygonRgn(CONST PPOINT pt,
314 CONST PINT PolyCounts,
315 INT Count,
316 INT PolyFillMode);
317
318 /* Use NtGdiCreateRectRgn with expanded paraemters. */
319 HRGN
320 STDCALL
321 NtGdiCreateRectRgnIndirect(CONST PRECT rc);
322
323 /* Use NtGdiTransformPoints with GdiDpToLp. */
324 BOOL
325 STDCALL
326 NtGdiDPtoLP (
327 HDC hDC,
328 LPPOINT Points,
329 int Count
330 );
331
332 /* Meta are user-mode. */
333 BOOL
334 STDCALL
335 NtGdiDeleteEnhMetaFile (
336 HENHMETAFILE emf
337 );
338
339 /* Meta are user-mode. */
340 BOOL
341 STDCALL
342 NtGdiDeleteMetaFile (
343 HMETAFILE mf
344 );
345
346 /* Should be done in user-mode. */
347 BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject);
348
349 /* Meta are user-mode. */
350 BOOL
351 STDCALL
352 NtGdiEnumEnhMetaFile (
353 HDC hDC,
354 HENHMETAFILE emf,
355 ENHMFENUMPROC EnhMetaFunc,
356 LPVOID Data,
357 CONST LPRECT Rect
358 );
359
360 /* Should be done in user-mode. */
361 int
362 STDCALL
363 NtGdiEnumFonts(HDC hDC,
364 LPCWSTR FaceName,
365 FONTENUMPROCW FontFunc,
366 LPARAM lParam);
367
368 /* Should be done in user-mode. */
369 INT
370 STDCALL
371 NtGdiEnumICMProfiles(HDC hDC,
372 LPWSTR lpstrBuffer,
373 UINT cch );
374
375 /* Meta are user-mode. */
376 BOOL
377 STDCALL
378 NtGdiEnumMetaFile (
379 HDC hDC,
380 HMETAFILE mf,
381 MFENUMPROC MetaFunc,
382 LPARAM lParam
383 );
384
385 /* Should be done in user-mode. */
386 INT
387 STDCALL
388 NtGdiEscape(HDC hDC,
389 INT Escape,
390 INT InSize,
391 LPCSTR InData,
392 LPVOID OutData);
393
394 /* Use NtGdiExtTextOutW with 0, 0 at the end. */
395 BOOL
396 STDCALL
397 NtGdiExtTextOut(HDC hdc,
398 int X,
399 int Y,
400 UINT fuOptions,
401 CONST RECT *lprc,
402 LPCWSTR lpString,
403 UINT cbCount,
404 CONST INT *lpDx);
405
406 /* Use NtGdiExtFloodFill with FLOODFILLBORDER. */
407 BOOL
408 STDCALL
409 NtGdiFloodFill (
410 HDC hDC,
411 INT XStart,
412 INT YStart,
413 COLORREF Fill
414 );
415
416 /* Should be done in user-mode. */
417 BOOL
418 STDCALL
419 NtGdiGdiComment (
420 HDC hDC,
421 UINT Size,
422 CONST LPBYTE Data
423 );
424
425 /* Should be done in user-mode. */
426 BOOL STDCALL NtGdiGdiFlush (VOID);
427
428 /* Should be done in user-mode. */
429 DWORD STDCALL NtGdiGdiGetBatchLimit (VOID);
430
431 /* Should be done in user-mode. */
432 DWORD STDCALL NtGdiGdiSetBatchLimit (DWORD Limit);
433
434 /* Use NtGdiGetDCDword with GdiGetArcDirection. */
435 INT
436 STDCALL
437 NtGdiGetArcDirection ( HDC hDC );
438
439 /* Should be done in user-mode. */
440 BOOL
441 STDCALL
442 NtGdiGetAspectRatioFilterEx(HDC hDC,
443 LPSIZE AspectRatio);
444
445 /* Should be done in user-mode using shared GDI Objects. */
446 BOOL
447 STDCALL
448 NtGdiGetBitmapDimensionEx (
449 HBITMAP hBitmap,
450 LPSIZE Dimension
451 );
452
453 /* Should be done in user-mode using shared GDI Objects. */
454 COLORREF STDCALL NtGdiGetBkColor(HDC hDC);
455
456 /* Should be done in user-mode using shared GDI Objects. */
457 INT STDCALL NtGdiGetBkMode(HDC hDC);
458
459 /* Should be done in user-mode using shared GDI Objects. */
460 BOOL STDCALL NtGdiGetBrushOrgEx(HDC hDC, LPPOINT brushOrg);
461
462 /* Use NtGdiGetCharABCWidthsW */
463 BOOL
464 STDCALL
465 NtGdiGetCharABCWidths(HDC hDC,
466 UINT FirstChar,
467 UINT LastChar,
468 LPABC abc);
469
470 /* Should be done in user mode. */
471 BOOL
472 STDCALL
473 NtGdiGetCharABCWidthsFloat(HDC hDC,
474 UINT FirstChar,
475 UINT LastChar,
476 LPABCFLOAT abcF);
477
478 /* Should be done in user mode. */
479 DWORD
480 STDCALL
481 NtGdiGetCharacterPlacement(HDC hDC,
482 LPCWSTR String,
483 int Count,
484 int MaxExtent,
485 LPGCP_RESULTSW Results,
486 DWORD Flags);
487
488 /* Should be done in user mode. */
489 BOOL
490 STDCALL
491 NtGdiGetCharWidthFloat(HDC hDC,
492 UINT FirstChar,
493 UINT LastChar,
494 PFLOAT Buffer);
495
496 /* Use NtGdiGetAppClipBox. */
497 int
498 STDCALL
499 NtGdiGetClipBox (
500 HDC hDC,
501 LPRECT rc
502 );
503
504 /* Use NtGdiGetColorSpaceforBitmap. */
505 HCOLORSPACE
506 STDCALL
507 NtGdiGetColorSpace(HDC hDC);
508
509 /* Should be done in user-mode and/or NtGdiGetDCObject. */
510 HGDIOBJ STDCALL NtGdiGetCurrentObject(HDC hDC, UINT ObjectType);
511
512 /* Should be done in user mode. */
513 BOOL STDCALL NtGdiGetCurrentPositionEx(HDC hDC, LPPOINT currentPosition);
514
515 /* Use NtGdiGetDCPoint with GdiGetDCOrg. */
516 BOOL STDCALL NtGdiGetDCOrgEx(HDC hDC, LPPOINT Point);
517
518 /* Use NtGdiDoPalette with GdiPalGetColorTable. */
519 UINT
520 STDCALL
521 NtGdiGetDIBColorTable (
522 HDC hDC,
523 UINT StartIndex,
524 UINT Entries,
525 RGBQUAD * Colors
526 );
527
528 /* Use NtGdiGetDIBitsInternal. */
529 INT
530 STDCALL
531 NtGdiGetDIBits (
532 HDC hDC,
533 HBITMAP hBitmap,
534 UINT StartScan,
535 UINT ScanLines,
536 LPVOID Bits,
537 LPBITMAPINFO bi,
538 UINT Usage
539 );
540
541
542 /* Meta are user-mode. */
543 HENHMETAFILE
544 STDCALL
545 NtGdiGetEnhMetaFile (
546 LPCWSTR MetaFile
547 );
548
549 /* Meta are user-mode. */
550 UINT
551 STDCALL
552 NtGdiGetEnhMetaFileBits (
553 HENHMETAFILE hemf,
554 UINT BufSize,
555 LPBYTE Buffer
556 );
557
558 /* Meta are user-mode. */
559 UINT
560 STDCALL
561 NtGdiGetEnhMetaFileDescription (
562 HENHMETAFILE hemf,
563 UINT BufSize,
564 LPWSTR Description
565 );
566
567 /* Meta are user-mode. */
568 UINT
569 STDCALL
570 NtGdiGetEnhMetaFileHeader (
571 HENHMETAFILE hemf,
572 UINT BufSize,
573 LPENHMETAHEADER emh
574 );
575
576 /* Meta are user-mode. */
577 UINT
578 STDCALL
579 NtGdiGetEnhMetaFilePaletteEntries (
580 HENHMETAFILE hemf,
581 UINT Entries,
582 LPPALETTEENTRY pe
583 );
584
585 /* Meta are user-mode. */
586 UINT
587 STDCALL
588 NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
589 DWORD BufSize,
590 CONST PPIXELFORMATDESCRIPTOR pfd);
591
592 /* Should be done in user-mode. */
593 DWORD
594 STDCALL
595 NtGdiGetFontLanguageInfo(HDC hDC);
596
597 /* Should be done in user-mode. */
598 int
599 STDCALL
600 NtGdiGetGraphicsMode ( HDC hDC );
601
602 /* Should be done in user-mode. */
603 BOOL
604 STDCALL
605 NtGdiGetICMProfile(HDC hDC,
606 LPDWORD NameSize,
607 LPWSTR Filename);
608
609 /* Should be done in user-mode. */
610 BOOL
611 STDCALL
612 NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,
613 LPLOGCOLORSPACEW Buffer,
614 DWORD Size);
615
616 /* Should be done in user-mode using shared GDI Objects. */
617 INT STDCALL NtGdiGetMapMode(HDC hDC);
618
619 /* Meta files are user-mode. */
620 HMETAFILE
621 STDCALL
622 NtGdiGetMetaFile (
623 LPCWSTR MetaFile
624 );
625
626 /* Meta files are user-mode. */
627 UINT
628 STDCALL
629 NtGdiGetMetaFileBitsEx (
630 HMETAFILE hmf,
631 UINT Size,
632 LPVOID Data
633 );
634
635 /* Meta files are user-mode. */
636 int
637 STDCALL
638 NtGdiGetMetaRgn (
639 HDC hDC,
640 HRGN hrgn
641 );
642
643 /* Should be done in user-mode using shared GDI Objects. */
644 INT STDCALL NtGdiGetObject(HGDIOBJ hGDIObj,
645 INT BufSize,
646 LPVOID Object);
647
648 /* Should be done in user-mode using shared GDI Objects. */
649 DWORD STDCALL NtGdiGetObjectType(HGDIOBJ hGDIObj);
650
651 /* Use NtGdiGetOutlineTextMetricsInternalW. */
652 UINT
653 STDCALL
654 NtGdiGetOutlineTextMetrics(HDC hDC,
655 UINT Data,
656 LPOUTLINETEXTMETRICW otm);
657
658 /* Use NtGdiDoPalette with GdiPalGetEntries. */
659 UINT
660 STDCALL
661 NtGdiGetPaletteEntries (
662 HPALETTE hpal,
663 UINT StartIndex,
664 UINT Entries,
665 LPPALETTEENTRY pe
666 );
667
668 /* Should be done in user-mode using shared GDI Objects. */
669 INT
670 STDCALL
671 NtGdiGetPixelFormat(HDC hDC);
672
673 /* Should be done in user-mode using shared GDI Objects. */
674 INT STDCALL NtGdiGetPolyFillMode(HDC hDC);
675
676 /* Should be done in user-mode using shared GDI Objects. */
677 INT STDCALL NtGdiGetROP2(HDC hDC);
678
679 /* Should be done in user-mode using shared GDI Objects. */
680 INT STDCALL NtGdiGetRelAbs(HDC hDC);
681
682 /* Should be done in user-mode using shared GDI Objects. */
683 INT STDCALL NtGdiGetStretchBltMode(HDC hDC);
684
685 /* Use NtGdiDoPalette with GdiPalSetSystemEntries. */
686 UINT
687 STDCALL
688 NtGdiGetSystemPaletteEntries (
689 HDC hDC,
690 UINT StartIndex,
691 UINT Entries,
692 LPPALETTEENTRY pe
693 );
694
695 /* Should be done in user-mode using shared GDI Objects. */
696 UINT STDCALL NtGdiGetTextAlign(HDC hDC);
697
698 /* Should be done in user-mode using shared GDI Objects. */
699 UINT
700 STDCALL
701 NtGdiGetTextCharset(HDC hDC);
702
703 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
704 COLORREF STDCALL NtGdiGetTextColor(HDC hDC);
705
706 /* Rename to NtGdiGetTextExtentExW. Add 0 at the end. */
707 BOOL
708 STDCALL
709 NtGdiGetTextExtentExPoint(HDC hDC,
710 LPCWSTR String,
711 int Count,
712 int MaxExtent,
713 LPINT Fit,
714 LPINT Dx,
715 LPSIZE Size);
716
717 /* Rename to NtGdiGetTextExtent. Add 0 at the end. */
718 BOOL
719 STDCALL
720 NtGdiGetTextExtentPoint(HDC hDC,
721 LPCWSTR String,
722 int Count,
723 LPSIZE Size);
724
725 /* Rename to NtGdiGetTextFaceW, add FALSE at the end. */
726 int
727 STDCALL
728 NtGdiGetTextFace(HDC hDC,
729 int Count,
730 LPWSTR FaceName);
731
732 /* Use NtGdiGetTextMetricsW with 0 at the end */
733 BOOL
734 STDCALL
735 NtGdiGetTextMetrics(HDC hDC,
736 LPTEXTMETRICW tm);
737
738 /* Use NtGdiGetDCPoint with GdiGetViewPortExt */
739 BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
740
741 /* Needs to be done in user-mode. */
742 BOOL STDCALL NtGdiGetViewportOrgEx(HDC hDC, LPPOINT viewportOrg);
743
744 /* Metafiles are user-mode. */
745 UINT
746 STDCALL
747 NtGdiGetWinMetaFileBits (
748 HENHMETAFILE hemf,
749 UINT BufSize,
750 LPBYTE Buffer,
751 INT MapMode,
752 HDC Ref
753 );
754
755 /* Needs to be done in user-mode. */
756 BOOL STDCALL NtGdiGetWindowExtEx(HDC hDC, LPSIZE windowExt);
757
758 /* Needs to be done in user-mode. */
759 BOOL STDCALL NtGdiGetWindowOrgEx(HDC hDC, LPPOINT windowOrg);
760
761 /* Use NtGdiGetTransform with GdiWorldSpaceToPageSpace */
762 BOOL
763 STDCALL
764 NtGdiGetWorldTransform (
765 HDC hDC,
766 LPXFORM Xform
767 );
768
769 /* Use NtGdiTransformPoints with GdiDpToLp */
770 BOOL
771 STDCALL
772 NtGdiLPtoDP (
773 HDC hDC,
774 LPPOINT Points,
775 int Count
776 );
777
778 /* Needs to be done in user-mode. */
779 BOOL
780 STDCALL
781 NtGdiMoveToEx(HDC hDC,
782 int X,
783 int Y,
784 LPPOINT Point);
785
786 /* Needs to be done in user-mode. */
787 BOOL
788 STDCALL
789 NtGdiOffsetViewportOrgEx (
790 HDC hDC,
791 int XOffset,
792 int YOffset,
793 LPPOINT Point
794 );
795
796 /* Needs to be done in user-mode. */
797 BOOL
798 STDCALL
799 NtGdiOffsetWindowOrgEx (
800 HDC hDC,
801 int XOffset,
802 int YOffset,
803 LPPOINT Point
804 );
805
806 /* Use NtGdiFillRgn. Add 0 at the end. */
807 BOOL
808 STDCALL
809 NtGdiPaintRgn(HDC hDC,
810 HRGN hRgn);
811
812 /* Use NtGdiArcInternal with GdiTypePie. */
813 BOOL
814 STDCALL
815 NtGdiPie(HDC hDC,
816 int LeftRect,
817 int TopRect,
818 int RightRect,
819 int BottomRect,
820 int XRadial1,
821 int YRadial1,
822 int XRadial2,
823 int YRadial2);
824
825 /* Metafiles are user-mode. */
826 BOOL
827 STDCALL
828 NtGdiPlayEnhMetaFile (
829 HDC hDC,
830 HENHMETAFILE hemf,
831 CONST PRECT Rect
832 );
833
834 /* Metafiles are user-mode. */
835 BOOL
836 STDCALL
837 NtGdiPlayEnhMetaFileRecord (
838 HDC hDC,
839 LPHANDLETABLE Handletable,
840 CONST ENHMETARECORD * EnhMetaRecord,
841 UINT Handles
842 );
843
844 /* Metafiles are user-mode. */
845 BOOL
846 STDCALL
847 NtGdiPlayMetaFile (
848 HDC hDC,
849 HMETAFILE hmf
850 );
851
852 /* Metafiles are user-mode. */
853 BOOL
854 STDCALL
855 NtGdiPlayMetaFileRecord (
856 HDC hDC,
857 LPHANDLETABLE Handletable,
858 LPMETARECORD MetaRecord,
859 UINT Handles
860 );
861
862 /* Use NtGdiPolyPolyDraw with GdiPolyBezier. */
863 BOOL
864 STDCALL
865 NtGdiPolyBezier(HDC hDC,
866 CONST LPPOINT pt,
867 DWORD Count);
868
869 /* Use NtGdiPolyPolyDraw with GdiPolyBezierTo. */
870 BOOL
871 STDCALL
872 NtGdiPolyBezierTo(HDC hDC,
873 CONST LPPOINT pt,
874 DWORD Count);
875
876 /* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */
877 BOOL
878 STDCALL
879 NtGdiPolyline(HDC hDC,
880 CONST LPPOINT pt,
881 int Count);
882
883 /* Use NtGdiPolyPolyDraw with GdiPolyLineTo. */
884 BOOL
885 STDCALL
886 NtGdiPolylineTo(HDC hDC,
887 CONST LPPOINT pt,
888 DWORD Count);
889
890 /* Use NtGdiPolyPolyDraw with GdiPolyPolyLine. */
891 BOOL
892 STDCALL
893 NtGdiPolyPolyline(HDC hDC,
894 CONST LPPOINT pt,
895 CONST LPDWORD PolyPoints,
896 DWORD Count);
897
898 /* Use NtGdiPolyTextOutW with 0 at the end. */
899 BOOL
900 STDCALL
901 NtGdiPolyTextOut(HDC hDC,
902 CONST LPPOLYTEXTW txt,
903 int Count);
904
905 /* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */
906 BOOL
907 STDCALL
908 NtGdiPolygon(HDC hDC,
909 CONST PPOINT Points,
910 int Count);
911
912 /* Use NtGdiPolyPolyDraw with GdiPolyPolygon. */
913 BOOL
914 STDCALL
915 NtGdiPolyPolygon(HDC hDC,
916 CONST LPPOINT Points,
917 CONST LPINT PolyCounts,
918 int Count);
919
920 /* Call UserRealizePalette. */
921 UINT
922 STDCALL
923 NtGdiRealizePalette (
924 HDC hDC
925 );
926
927 /* Should be done in user-mode. */
928 BOOL
929 STDCALL
930 NtGdiRemoveFontResource(LPCWSTR FileName);
931
932 /* Use NtGdiExtSelectClipRgn with RGN_COPY. */
933 int
934 STDCALL
935 NtGdiSelectClipRgn (
936 HDC hDC,
937 HRGN hrgn
938 );
939
940 /* Should be done in user-mode. */
941 HGDIOBJ STDCALL NtGdiSelectObject(HDC hDC, HGDIOBJ hGDIObj);
942
943 /* Use NtUserSelectPalette. */
944 HPALETTE
945 STDCALL
946 NtGdiSelectPalette (
947 HDC hDC,
948 HPALETTE hpal,
949 BOOL ForceBackground
950 );
951
952 /* Should be done in user-mode. */
953 INT
954 STDCALL
955 NtGdiSetAbortProc(HDC hDC,
956 ABORTPROC AbortProc);
957
958 /* Use NtGdiGetAndSetDCDword with GdiGetSetArcDirection. */
959 int
960 STDCALL
961 NtGdiSetArcDirection(HDC hDC,
962 int ArcDirection);
963
964 /* Use NtGdiSetBitmapDimension. */
965 BOOL
966 STDCALL
967 NtGdiSetBitmapDimensionEx (
968 HBITMAP hBitmap,
969 INT Width,
970 INT Height,
971 LPSIZE Size
972 );
973
974 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
975 COLORREF STDCALL NtGdiSetBkColor (HDC hDC, COLORREF Color);
976
977 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
978 INT STDCALL NtGdiSetBkMode(HDC hDC, INT backgroundMode);
979
980 /* Use NtGdiSetBrushOrg. */
981 BOOL STDCALL
982 NtGdiSetBrushOrgEx(
983 HDC hDC,
984 INT XOrg,
985 INT YOrg,
986 LPPOINT Point);
987
988 /* Use NtGdiDoPalette with GdiPalSetColorTable, TRUE. */
989 UINT
990 STDCALL
991 NtGdiSetDIBColorTable (
992 HDC hDC,
993 UINT StartIndex,
994 UINT Entries,
995 CONST RGBQUAD * Colors
996 );
997
998 /* Use SetDIBitsToDevice in gdi32. */
999 INT
1000 STDCALL
1001 NtGdiSetDIBits (
1002 HDC hDC,
1003 HBITMAP hBitmap,
1004 UINT StartScan,
1005 UINT ScanLines,
1006 CONST VOID * Bits,
1007 CONST BITMAPINFO * bmi,
1008 UINT ColorUse
1009 );
1010
1011 /* Use NtGdiSetDIBitsToDeviceInternal. */
1012 INT
1013 STDCALL
1014 NtGdiSetDIBitsToDevice (
1015 HDC hDC,
1016 INT XDest,
1017 INT YDest,
1018 DWORD Width,
1019 DWORD Height,
1020 INT XSrc,
1021 INT YSrc,
1022 UINT StartScan,
1023 UINT ScanLines,
1024 CONST VOID * Bits,
1025 CONST BITMAPINFO * bmi,
1026 UINT ColorUse
1027 );
1028
1029 /* Metafiles are user-mode. */
1030 HENHMETAFILE
1031 STDCALL
1032 NtGdiSetEnhMetaFileBits (
1033 UINT BufSize,
1034 CONST PBYTE Data
1035 );
1036
1037 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1038 int
1039 STDCALL
1040 NtGdiSetGraphicsMode (
1041 HDC hDC,
1042 int Mode
1043 );
1044
1045 /* Use NtGdiSetIcmMode. */
1046 INT
1047 STDCALL
1048 NtGdiSetICMMode(HDC hDC,
1049 INT EnableICM);
1050
1051 /* Should be done in user-mode. */
1052 BOOL
1053 STDCALL
1054 NtGdiSetICMProfile(HDC hDC,
1055 LPWSTR Filename);
1056
1057 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1058 int
1059 STDCALL
1060 NtGdiSetMapMode (
1061 HDC hDC,
1062 int MapMode
1063 );
1064
1065 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1066 DWORD
1067 STDCALL
1068 NtGdiSetMapperFlags(HDC hDC,
1069 DWORD Flag);
1070
1071 /* Metafiles are user-mode. */
1072 HMETAFILE
1073 STDCALL
1074 NtGdiSetMetaFileBitsEx (
1075 UINT Size,
1076 CONST PBYTE Data
1077 );
1078
1079 /* Use NtGdiDoPalette with GdiPalSetEntries, TRUE. */
1080 UINT
1081 STDCALL
1082 NtGdiSetPaletteEntries (
1083 HPALETTE hpal,
1084 UINT Start,
1085 UINT Entries,
1086 CONST LPPALETTEENTRY pe
1087 );
1088
1089 /* Use NtGdiSetPixel(hdc, x, y, color) != CLR_INVALID; */
1090 BOOL
1091 STDCALL
1092 NtGdiSetPixelV (
1093 HDC hDC,
1094 INT X,
1095 INT Y,
1096 COLORREF Color
1097 );
1098
1099 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1100 INT STDCALL NtGdiSetPolyFillMode(HDC hDC, INT polyFillMode);
1101
1102 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1103 INT STDCALL NtGdiSetROP2(HDC hDC, INT ROPmode);
1104
1105 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1106 INT STDCALL NtGdiSetStretchBltMode(HDC hDC, INT stretchBltMode);
1107
1108 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1109 UINT
1110 STDCALL
1111 NtGdiSetTextAlign(HDC hDC,
1112 UINT Mode);
1113
1114 /* Needs to be done in user-mode, using shared GDI Object Attributes. */
1115 COLORREF STDCALL NtGdiSetTextColor(HDC hDC, COLORREF color);
1116
1117 /* Needs to be done in user-mode. */
1118 BOOL
1119 STDCALL
1120 NtGdiSetWindowExtEx (
1121 HDC hDC,
1122 int XExtent,
1123 int YExtent,
1124 LPSIZE Size
1125 );
1126
1127 /* Needs to be done in user-mode. */
1128 BOOL
1129 STDCALL
1130 NtGdiSetViewportOrgEx (
1131 HDC hDC,
1132 int X,
1133 int Y,
1134 LPPOINT Point
1135 );
1136
1137 /* Needs to be done in user-mode. */
1138 BOOL
1139 STDCALL
1140 NtGdiSetViewportExtEx (
1141 HDC hDC,
1142 int XExtent,
1143 int YExtent,
1144 LPSIZE Size
1145 );
1146
1147 /* Needs to be done in user-mode. */
1148 BOOL
1149 STDCALL
1150 NtGdiSetWindowOrgEx (
1151 HDC hDC,
1152 int X,
1153 int Y,
1154 LPPOINT Point
1155 );
1156
1157 /* Use NtGdiModifyWorldTransform with MWT_MAX + 1; */
1158 BOOL
1159 STDCALL
1160 NtGdiSetWorldTransform (
1161 HDC hDC,
1162 CONST LPXFORM Xform
1163 );
1164
1165 /* Use NtGdiStretchDIBitsInternal. */
1166 INT
1167 STDCALL
1168 NtGdiStretchDIBits (
1169 HDC hDC,
1170 INT XDest,
1171 INT YDest,
1172 INT DestWidth,
1173 INT DestHeight,
1174 INT XSrc,
1175 INT YSrc,
1176 INT SrcWidth,
1177 INT SrcHeight,
1178 CONST VOID * Bits,
1179 CONST BITMAPINFO * BitsInfo,
1180 UINT Usage,
1181 DWORD ROP
1182 );
1183
1184 /* Use NtGdiExtTextOutW with 0, 0 at the end. */
1185 BOOL
1186 STDCALL
1187 NtGdiTextOut(HDC hDC,
1188 int XStart,
1189 int YStart,
1190 LPCWSTR String,
1191 int Count);
1192
1193 /* Needs to be done in user-mode. */
1194 BOOL
1195 STDCALL
1196 NtGdiUpdateICMRegKey(DWORD Reserved,
1197 LPWSTR CMID,
1198 LPWSTR Filename,
1199 UINT Command);
1200
1201 /* These shouldn't even be called NtGdi */
1202 HDC STDCALL NtGdiGetDCState(HDC hDC);
1203 WORD STDCALL NtGdiSetHookFlags(HDC hDC, WORD Flags);
1204 INT
1205 STDCALL
1206 NtGdiSelectVisRgn(HDC hdc,
1207 HRGN hrgn);
1208 VOID STDCALL NtGdiSetDCState ( HDC hDC, HDC hDCSave );
1209
1210 /* All this Should be in user-mode, not NtUser calls. Especially not in GDI! */
1211 DWORD
1212 NTAPI
1213 NtUserCallTwoParam(
1214 DWORD Param1,
1215 DWORD Param2,
1216 DWORD Routine);
1217
1218 #define TWOPARAM_ROUTINE_SETDCPENCOLOR 0x45
1219 #define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46
1220 #define TWOPARAM_ROUTINE_GETDCCOLOR 0x47
1221
1222 #define NtUserGetDCBrushColor(hbr) \
1223 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR)
1224
1225 #define NtUserGetDCPenColor(hbr) \
1226 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR)
1227
1228 #define NtUserSetDCBrushColor(hbr, crColor) \
1229 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR)
1230
1231 #define NtUserSetDCPenColor(hbr, crColor) \
1232 (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR)
1233
1234 #endif /* WIN32K_NTGDI_BAD_INCLUDED */