xref: /reactos/win32ss/gdi/eng/stubs.c (revision 139a3d66)
1 /*
2  * Stubs for unimplemented WIN32K.SYS exports
3  */
4 
5 #include <win32k.h>
6 #undef XFORMOBJ
7 
8 #define UNIMPLEMENTED DbgPrint("(%s:%i) WIN32K: %s UNIMPLEMENTED\n", __FILE__, __LINE__, __FUNCTION__ )
9 
10 
11 /*
12  * @unimplemented
13  */
14 BOOL
15 APIENTRY
16 EngTextOut(
17     SURFOBJ  *pso,
18     STROBJ   *pstro,
19     FONTOBJ  *pfo,
20     CLIPOBJ  *pco,
21     RECTL    *prclExtra,
22     RECTL    *prclOpaque,
23     BRUSHOBJ *pboFore,
24     BRUSHOBJ *pboOpaque,
25     POINTL   *pptlOrg,
26     MIX       mix)
27 {
28     // www.osr.com/ddk/graphics/gdifncs_4tgn.htm
29     UNIMPLEMENTED;
30     return FALSE;
31 }
32 
33 /*
34  * @unimplemented
35  */
36 PATHOBJ*
37 APIENTRY
38 CLIPOBJ_ppoGetPath(IN CLIPOBJ *pco)
39 {
40     // www.osr.com/ddk/graphics/gdifncs_6hbb.htm
41     UNIMPLEMENTED;
42     return 0;
43 }
44 
45 /*
46  * @unimplemented
47  */
48 BOOL
49 APIENTRY
50 EngCheckAbort(IN SURFOBJ *pso)
51 {
52     // www.osr.com/ddk/graphics/gdifncs_3u7b.htm
53     UNIMPLEMENTED;
54     return FALSE;
55 }
56 
57 /*
58  * @unimplemented
59  */
60 FD_GLYPHSET*
61 APIENTRY
62 EngComputeGlyphSet(
63     IN INT nCodePage,
64     IN INT nFirstChar,
65     IN INT cChars)
66 {
67     // www.osr.com/ddk/graphics/gdifncs_9607.htm
68     UNIMPLEMENTED;
69     return NULL;
70 }
71 
72 /*
73  * @implemented
74  */
75 BOOL
76 APIENTRY
77 EngEnumForms(
78     IN  HANDLE   hPrinter,
79     IN  DWORD    Level,
80     OUT LPBYTE   pForm,
81     IN  DWORD    cbBuf,
82     OUT LPDWORD  pcbNeeded,
83     OUT LPDWORD  pcReturned)
84 {
85     // www.osr.com/ddk/graphics/gdifncs_5e07.htm
86     EngSetLastError(ERROR_NOT_SUPPORTED);
87     return FALSE;
88 }
89 
90 /*
91  * @unimplemented
92  */
93 BOOL
94 APIENTRY
95 EngFillPath(
96     IN SURFOBJ   *pso,
97     IN PATHOBJ   *ppo,
98     IN CLIPOBJ   *pco,
99     IN BRUSHOBJ  *pbo,
100     IN POINTL    *pptlBrushOrg,
101     IN MIX        mix,
102     IN FLONG      flOptions)
103 {
104     // www.osr.com/ddk/graphics/gdifncs_9pyf.htm
105     UNIMPLEMENTED;
106     return FALSE;
107 }
108 
109 /*
110  * @unimplemented
111  */
112 PVOID
113 APIENTRY
114 EngFindResource(
115     IN  HANDLE  h,
116     IN  int     iName,
117     IN  int     iType,
118     OUT PULONG  pulSize)
119 {
120     // www.osr.com/ddk/graphics/gdifncs_7rjb.htm
121     UNIMPLEMENTED;
122     return NULL;
123 }
124 
125 /*
126  * @unimplemented
127  */
128 BOOL
129 APIENTRY
130 EngGetFileChangeTime(
131     IN  HANDLE h,
132     OUT LARGE_INTEGER *pChangeTime)
133 {
134     // www.osr.com/ddk/graphics/gdifncs_1i1z.htm
135     UNIMPLEMENTED;
136     return FALSE;
137 }
138 
139 /*
140  * @unimplemented
141  */
142 BOOL
143 APIENTRY
144 EngGetFilePath(
145     IN  HANDLE h,
146     OUT WCHAR (*pDest)[MAX_PATH + 1])
147 {
148     // www.osr.com/ddk/graphics/gdifncs_5g2v.htm
149     UNIMPLEMENTED;
150     return FALSE;
151 }
152 
153 /*
154  * @implemented
155  */
156 BOOL
157 APIENTRY
158 EngGetForm(
159     IN  HANDLE   hPrinter,
160     IN  LPWSTR   pFormName,
161     IN  DWORD    Level,
162     OUT LPBYTE   pForm,
163     IN  DWORD    cbBuf,
164     OUT LPDWORD  pcbNeeded)
165 {
166     // www.osr.com/ddk/graphics/gdifncs_5vvr.htm
167     EngSetLastError(ERROR_NOT_SUPPORTED);
168     return FALSE;
169 }
170 
171 /*
172  * @implemented
173  */
174 BOOL
175 APIENTRY
176 EngGetPrinter(
177     IN  HANDLE   hPrinter,
178     IN  DWORD    dwLevel,
179     OUT LPBYTE   pPrinter,
180     IN  DWORD    cbBuf,
181     OUT LPDWORD  pcbNeeded)
182 {
183     // www.osr.com/ddk/graphics/gdifncs_50h3.htm
184     EngSetLastError(ERROR_NOT_SUPPORTED);
185     return FALSE;
186 }
187 
188 /*
189  * @implemented
190  */
191 DWORD
192 APIENTRY
193 EngGetPrinterData(
194     IN  HANDLE   hPrinter,
195     IN  LPWSTR   pValueName,
196     OUT LPDWORD  pType,
197     OUT LPBYTE   pData,
198     IN  DWORD    nSize,
199     OUT LPDWORD  pcbNeeded)
200 {
201     // www.osr.com/ddk/graphics/gdifncs_8t5z.htm
202     EngSetLastError(ERROR_NOT_SUPPORTED);
203     return 0;
204 }
205 
206 /*
207  * @unimplemented
208  */
209 LPWSTR
210 APIENTRY
211 EngGetPrinterDataFileName(IN HDEV hdev)
212 {
213     // www.osr.com/ddk/graphics/gdifncs_2giv.htm
214     UNIMPLEMENTED;
215     return NULL;
216 }
217 
218 /*
219  * @implemented
220  */
221 BOOL
222 APIENTRY
223 EngGetType1FontList(
224     IN  HDEV            hdev,
225     OUT TYPE1_FONT     *pType1Buffer,
226     IN  ULONG           cjType1Buffer,
227     OUT PULONG          pulLocalFonts,
228     OUT PULONG          pulRemoteFonts,
229     OUT LARGE_INTEGER  *pLastModified)
230 {
231     // www.osr.com/ddk/graphics/gdifncs_6e5j.htm
232     EngSetLastError(ERROR_NOT_SUPPORTED);
233     return FALSE;
234 }
235 
236 /*
237  * @unimplemented
238  */
239 BOOL
240 APIENTRY
241 EngMarkBandingSurface(IN HSURF hsurf)
242 {
243     // www.osr.com/ddk/graphics/gdifncs_2jon.htm
244     UNIMPLEMENTED;
245     return FALSE;
246 }
247 
248 INT
249 APIENTRY
250 EngMultiByteToWideChar(
251     IN UINT  CodePage,
252     OUT LPWSTR  WideCharString,
253     IN INT  BytesInWideCharString,
254     IN LPSTR  MultiByteString,
255     IN INT  BytesInMultiByteString)
256 {
257     // www.osr.com/ddk/graphics/gdifncs_32cn.htm
258     UNIMPLEMENTED;
259     return 0;
260 }
261 
262 VOID
263 APIENTRY
264 EngQueryLocalTime(
265     _Out_ PENG_TIME_FIELDS ptf)
266 {
267     LARGE_INTEGER liSystemTime, liLocalTime;
268     NT_ASSERT(ptf != NULL);
269 
270     /* Query the system time */
271     KeQuerySystemTime(&liSystemTime);
272 
273     /* Convert it to local time */
274     ExSystemTimeToLocalTime(&liSystemTime, &liLocalTime);
275 
276     /* Convert the local time into time fields
277        (note that ENG_TIME_FIELDS is identical to TIME_FIELDS) */
278     RtlTimeToTimeFields(&liLocalTime, (PTIME_FIELDS)ptf);
279 }
280 
281 ULONG
282 APIENTRY
283 EngQueryPalette(
284     IN HPALETTE  hPal,
285     OUT ULONG  *piMode,
286     IN ULONG  cColors,
287     OUT ULONG  *pulColors)
288 {
289     // www.osr.com/ddk/graphics/gdifncs_21t3.htm
290     UNIMPLEMENTED;
291     return 0;
292 }
293 
294 DWORD
295 APIENTRY
296 EngSetPrinterData(
297     IN HANDLE  hPrinter,
298     IN LPWSTR  pType,
299     IN DWORD  dwType,
300     IN LPBYTE  lpbPrinterData,
301     IN DWORD  cjPrinterData)
302 {
303     // www.osr.com/ddk/graphics/gdifncs_8drb.htm
304     EngSetLastError(ERROR_NOT_SUPPORTED);
305     return 0;
306 }
307 
308 BOOL
309 APIENTRY
310 EngStrokeAndFillPath(
311     IN SURFOBJ  *pso,
312     IN PATHOBJ  *ppo,
313     IN CLIPOBJ  *pco,
314     IN XFORMOBJ  *pxo,
315     IN BRUSHOBJ  *pboStroke,
316     IN LINEATTRS  *plineattrs,
317     IN BRUSHOBJ  *pboFill,
318     IN POINTL  *pptlBrushOrg,
319     IN MIX  mixFill,
320     IN FLONG  flOptions)
321 {
322     // www.osr.com/ddk/graphics/gdifncs_2xwn.htm
323     UNIMPLEMENTED;
324     return FALSE;
325 }
326 
327 BOOL
328 APIENTRY
329 EngStrokePath(
330     IN SURFOBJ  *pso,
331     IN PATHOBJ  *ppo,
332     IN CLIPOBJ  *pco,
333     IN XFORMOBJ  *pxo,
334     IN BRUSHOBJ  *pbo,
335     IN POINTL  *pptlBrushOrg,
336     IN LINEATTRS  *plineattrs,
337     IN MIX  mix)
338 {
339     // www.osr.com/ddk/graphics/gdifncs_4yaw.htm
340     UNIMPLEMENTED;
341     return FALSE;
342 }
343 
344 INT
345 APIENTRY
346 EngWideCharToMultiByte(
347     IN UINT  CodePage,
348     IN LPWSTR  WideCharString,
349     IN INT  BytesInWideCharString,
350     OUT LPSTR  MultiByteString,
351     IN INT  BytesInMultiByteString)
352 {
353     // www.osr.com/ddk/graphics/gdifncs_35wn.htm
354     UNIMPLEMENTED;
355     return 0;
356 }
357 
358 BOOL
359 APIENTRY
360 EngWritePrinter(
361     IN HANDLE    hPrinter,
362     IN LPVOID    pBuf,
363     IN DWORD     cbBuf,
364     OUT LPDWORD  pcWritten)
365 {
366     // www.osr.com/ddk/graphics/gdifncs_9v6v.htm
367     EngSetLastError(ERROR_NOT_SUPPORTED);
368     return FALSE;
369 }
370 
371 /*
372  * @unimplemented
373  */
374 ULONG
375 APIENTRY
376 FONTOBJ_cGetAllGlyphHandles(
377     IN FONTOBJ  *FontObj,
378     IN HGLYPH   *Glyphs)
379 {
380     UNIMPLEMENTED;
381     return 0;
382 }
383 
384 /*
385  * @unimplemented
386  */
387 ULONG
388 APIENTRY
389 FONTOBJ_cGetGlyphs(
390     IN FONTOBJ *FontObj,
391     IN ULONG    Mode,
392     IN ULONG    NumGlyphs,
393     IN HGLYPH  *GlyphHandles,
394     IN PVOID   *OutGlyphs)
395 {
396     UNIMPLEMENTED;
397     return 0;
398 }
399 
400 /*
401  * @unimplemented
402  */
403 IFIMETRICS*
404 APIENTRY
405 FONTOBJ_pifi(IN FONTOBJ *FontObj)
406 {
407     UNIMPLEMENTED;
408     return NULL;
409 }
410 
411 /*
412  * @unimplemented
413  */
414 _Ret_opt_bytecount_(*pcjFile)
415 ENGAPI
416 PVOID
417 APIENTRY
418 FONTOBJ_pvTrueTypeFontFile(
419     _In_ FONTOBJ *pfo,
420     _Out_ ULONG *pcjFile)
421 {
422     UNIMPLEMENTED;
423     return NULL;
424 }
425 
426 /*
427  * @unimplemented
428  */
429 XFORMOBJ*
430 APIENTRY
431 FONTOBJ_pxoGetXform(IN FONTOBJ *FontObj)
432 {
433     UNIMPLEMENTED;
434     return NULL;
435 }
436 
437 /*
438  * @unimplemented
439  */
440 VOID
441 APIENTRY
442 FONTOBJ_vGetInfo(
443     IN  FONTOBJ *FontObj,
444     IN  ULONG InfoSize,
445     OUT PFONTINFO FontInfo)
446 {
447     UNIMPLEMENTED;
448 }
449 
450 LONG
451 APIENTRY
452 HT_ComputeRGBGammaTable(
453     IN USHORT  GammaTableEntries,
454     IN USHORT  GammaTableType,
455     IN USHORT  RedGamma,
456     IN USHORT  GreenGamma,
457     IN USHORT  BlueGamma,
458     OUT LPBYTE  pGammaTable)
459 {
460     // www.osr.com/ddk/graphics/gdifncs_9dpj.htm
461     UNIMPLEMENTED;
462     return 0;
463 }
464 
465 LONG
466 APIENTRY
467 HT_Get8BPPFormatPalette(
468     OUT LPPALETTEENTRY  pPaletteEntry,
469     IN USHORT  RedGamma,
470     IN USHORT  GreenGamma,
471     IN USHORT  BlueGamma)
472 {
473     // www.osr.com/ddk/graphics/gdifncs_8kvb.htm
474     UNIMPLEMENTED;
475     return 0;
476 }
477 
478 /*
479  * @unimplemented
480  */
481 ULONG
482 APIENTRY
483 EngDitherColor(
484     IN HDEV hdev,
485     IN ULONG iMode,
486     IN ULONG rgb,
487     OUT ULONG *pul)
488 {
489     *pul = 0;
490     return DCR_SOLID;
491 }
492 
493 /*
494  * @unimplemented
495  */
496 HANDLE
497 APIENTRY
498 BRUSHOBJ_hGetColorTransform(
499     IN BRUSHOBJ *Brush)
500 {
501     UNIMPLEMENTED;
502     return NULL;
503 }
504 
505 /*
506  * @unimplemented
507  */
508 BOOL
509 APIENTRY
510 EngDeleteFile(
511     IN LPWSTR FileName)
512 {
513     UNIMPLEMENTED;
514     return FALSE;
515 }
516 
517 /*
518  * @implemented
519  */
520 BOOL
521 APIENTRY
522 EngGetPrinterDriver(
523     IN HANDLE Printer,
524     IN LPWSTR Environment,
525     IN DWORD Level,
526     OUT BYTE *DrvInfo,
527     IN DWORD Buf,
528     OUT DWORD *Needed)
529 {
530     EngSetLastError(ERROR_NOT_SUPPORTED);
531     return FALSE;
532 }
533 
534 /*
535  * @unimplemented
536  */
537 ULONG
538 APIENTRY
539 EngHangNotification(
540     IN HDEV Dev,
541     IN PVOID Reserved)
542 {
543     UNIMPLEMENTED;
544     return EHN_ERROR;
545 }
546 
547 /*
548  * @unimplemented
549  */
550 BOOL
551 APIENTRY
552 EngLpkInstalled(VOID)
553 {
554     UNIMPLEMENTED;
555     return FALSE;
556 }
557 
558 /*
559  * @unimplemented
560  */
561 BOOL
562 APIENTRY
563 EngPlgBlt(
564     IN SURFOBJ *Dest,
565     IN SURFOBJ *Source,
566     IN SURFOBJ *Mask,
567     IN CLIPOBJ *Clip,
568     IN XLATEOBJ *Xlate,
569     IN COLORADJUSTMENT *ColorAdjustment,
570     IN POINTL *BrusOrigin,
571     IN POINTFIX *DestPoints,
572     IN RECTL *SourceRect,
573     IN POINTL *MaskPoint,
574     IN ULONG Mode)
575 {
576     UNIMPLEMENTED;
577     return FALSE;
578 }
579 
580 /*
581  * @unimplemented
582  */
583 BOOL
584 APIENTRY
585 EngQueryDeviceAttribute(
586     _In_ HDEV hdev,
587     _In_ ENG_DEVICE_ATTRIBUTE devAttr,
588     _In_reads_bytes_(cjInSize) PVOID pvIn,
589     _In_ ULONG cjInSize,
590     _Out_writes_bytes_(cjOutSize) PVOID pvOut,
591     _In_ ULONG cjOutSize)
592 {
593     if (devAttr != QDA_ACCELERATION_LEVEL)
594         return FALSE;
595 
596     UNIMPLEMENTED;
597 
598     if (cjOutSize >= sizeof(DWORD))
599     {
600         /* Set all accelerations to enabled */
601         *(DWORD*)pvOut = 0;
602         return TRUE;
603     }
604 
605     return FALSE;
606 }
607 
608 /*
609  * @unimplemented
610  */
611 LARGE_INTEGER
612 APIENTRY
613 EngQueryFileTimeStamp(IN LPWSTR FileName)
614 {
615     LARGE_INTEGER FileTime;
616     FileTime.QuadPart = 0;
617     UNIMPLEMENTED;
618     return FileTime;
619 }
620 
621 /*
622  * @unimplemented
623  */
624 FD_GLYPHSET *
625 APIENTRY
626 FONTOBJ_pfdg(
627     IN FONTOBJ *FontObj)
628 {
629     UNIMPLEMENTED;
630     return NULL;
631 }
632 
633 /*
634  * @unimplemented
635  */
636 _Ret_opt_bytecount_(*pcjTable)
637 ENGAPI
638 PBYTE
639 APIENTRY
640 FONTOBJ_pjOpenTypeTablePointer(
641     _In_ FONTOBJ *pfo,
642     _In_ ULONG ulTag,
643     _Out_ ULONG *pcjTable)
644 {
645     UNIMPLEMENTED;
646     return NULL;
647 }
648 
649 /*
650  * @unimplemented
651  */
652 PFD_GLYPHATTR
653 APIENTRY
654 FONTOBJ_pQueryGlyphAttrs(
655     IN FONTOBJ *FontObj,
656     IN ULONG Mode)
657 {
658     UNIMPLEMENTED;
659     return NULL;
660 }
661 
662 /*
663  * @unimplemented
664  */
665 LPWSTR
666 APIENTRY
667 FONTOBJ_pwszFontFilePaths(
668     IN FONTOBJ *FontObj,
669     OUT ULONG *PathLength)
670 {
671     UNIMPLEMENTED;
672     return NULL;
673 }
674 
675 /*
676  * @unimplemented
677  */
678 LONG
679 APIENTRY
680 HT_Get8BPPMaskPalette(
681     IN OUT LPPALETTEENTRY PaletteEntry,
682     IN BOOL Use8BPPMaskPal,
683     IN BYTE CMYMask,
684     IN USHORT RedGamma,
685     IN USHORT GreenGamma,
686     IN USHORT BlueGamma)
687 {
688     UNIMPLEMENTED;
689     return 0;
690 }
691 
692 /*
693  * @unimplemented
694  */
695 BOOL
696 APIENTRY
697 NtGdiAnyLinkedFonts(VOID)
698 {
699     UNIMPLEMENTED;
700     return FALSE;
701 }
702 
703 /*
704  * @unimplemented
705  */
706 BOOL
707 APIENTRY
708 NtGdiEnableEudc(BOOL enable)
709 {
710     UNIMPLEMENTED;
711     return FALSE;
712 }
713 
714 /*
715  * @unimplemented
716  */
717 BOOL
718 APIENTRY
719 NtGdiAddRemoteFontToDC(
720     IN HDC hdc,
721     IN PVOID pvBuffer,
722     IN ULONG cjBuffer,
723     IN OPTIONAL PUNIVERSAL_FONT_ID pufi)
724 {
725     UNIMPLEMENTED;
726     return 0;
727 }
728 
729 /*
730  * @unimplemented
731  */
732 BOOL
733 APIENTRY
734 NtGdiRemoveMergeFont(
735     IN HDC hdc,
736     IN UNIVERSAL_FONT_ID *pufi)
737 {
738     UNIMPLEMENTED;
739     return FALSE;
740 }
741 
742 /*
743  * @unimplemented
744  */
745 BOOL
746 APIENTRY
747 NtGdiAddRemoteMMInstanceToDC(
748     IN HDC hdc,
749     IN DOWNLOADDESIGNVECTOR *pddv,
750     IN ULONG cjDDV)
751 {
752     UNIMPLEMENTED;
753     return FALSE;
754 }
755 
756 /*
757  * @unimplemented
758  */
759 BOOL
760 APIENTRY
761 NtGdiFontIsLinked(IN HDC hdc)
762 {
763     UNIMPLEMENTED;
764     return FALSE;
765 }
766 
767 /*
768  * @unimplemented
769  */
770 BOOL
771 APIENTRY
772 NtGdiCheckBitmapBits(
773     IN HDC hdc,
774     IN HANDLE hColorTransform,
775     IN PVOID pvBits,
776     IN ULONG bmFormat,
777     IN DWORD dwWidth,
778     IN DWORD dwHeight,
779     IN DWORD dwStride,
780     OUT PBYTE paResults)
781 {
782     UNIMPLEMENTED;
783     return FALSE;
784 }
785 
786 /*
787  * @unimplemented
788  */
789 HBITMAP
790 APIENTRY
791 NtGdiClearBitmapAttributes(
792     IN HBITMAP hbm,
793     IN DWORD dwFlags)
794 {
795     UNIMPLEMENTED;
796     return NULL;
797 }
798 
799 /*
800  * @unimplemented
801  */
802 BOOL
803 APIENTRY
804 NtGdiGetUFI(
805     IN  HDC hdc,
806     OUT PUNIVERSAL_FONT_ID pufi,
807     OUT OPTIONAL DESIGNVECTOR *pdv,
808     OUT ULONG *pcjDV,
809     OUT ULONG *pulBaseCheckSum,
810     OUT FLONG *pfl)
811 {
812     UNIMPLEMENTED;
813     return FALSE;
814 }
815 
816 
817 /*
818  * @unimplemented
819  */
820 ULONG
821 APIENTRY
822 NtGdiColorCorrectPalette(
823     IN HDC hdc,
824     IN HPALETTE hpal,
825     IN ULONG FirstEntry,
826     IN ULONG NumberOfEntries,
827     IN OUT PALETTEENTRY *ppalEntry,
828     IN ULONG Command)
829 {
830     UNIMPLEMENTED;
831     return 0;
832 }
833 
834 /*
835  * @unimplemented
836  */
837 HANDLE
838 APIENTRY
839 NtGdiCreateColorTransform(
840     IN HDC hdc,
841     IN LPLOGCOLORSPACEW pLogColorSpaceW,
842     IN OPTIONAL PVOID pvSrcProfile,
843     IN ULONG cjSrcProfile,
844     IN OPTIONAL PVOID pvDestProfile,
845     IN ULONG cjDestProfile,
846     IN OPTIONAL PVOID pvTargetProfile,
847     IN ULONG cjTargetProfile)
848 {
849     UNIMPLEMENTED;
850     return NULL;
851 }
852 
853 /*
854  * @unimplemented
855  */
856 BOOL
857 APIENTRY
858 NtGdiComputeXformCoefficients(IN HDC hdc)
859 {
860     UNIMPLEMENTED;
861     return FALSE;
862 }
863 
864 /*
865  * @unimplemented
866  */
867 BOOL
868 APIENTRY
869 NtGdiConsoleTextOut(
870     IN HDC hdc,
871     IN POLYTEXTW *lpto,
872     IN UINT nStrings,
873     IN RECTL *prclBounds)
874 {
875     UNIMPLEMENTED;
876     return FALSE;
877 }
878 
879 /*
880  * @unimplemented
881  */
882 BOOL
883 APIENTRY
884 NtGdiDeleteColorTransform(
885     IN HDC hdc,
886     IN HANDLE hColorTransform)
887 {
888     UNIMPLEMENTED;
889     return FALSE;
890 }
891 
892 /*
893  * @unimplemented
894  */
895 ULONG
896 APIENTRY
897 NtGdiGetPerBandInfo(
898     IN HDC hdc,
899     IN OUT PERBANDINFO *ppbi)
900 {
901     UNIMPLEMENTED;
902     return 0;
903 }
904 
905 /*
906  * @unimplemented
907  */
908 BOOL
909 APIENTRY
910 NtGdiDoBanding(
911     IN HDC hdc,
912     IN BOOL bStart,
913     OUT POINTL *pptl,
914     OUT PSIZE pSize)
915 {
916     UNIMPLEMENTED;
917     return FALSE;
918 }
919 
920 /*
921  * @unimplemented
922  */
923 BOOL
924 APIENTRY
925 NtGdiEnumFontChunk(
926     IN HDC hdc,
927     IN ULONG_PTR idEnum,
928     IN ULONG cjEfdw,
929     OUT ULONG *pcjEfdw,
930     OUT PENUMFONTDATAW pefdw)
931 {
932     UNIMPLEMENTED;
933     return FALSE;
934 }
935 
936 /*
937  * @unimplemented
938  */
939 BOOL
940 APIENTRY
941 NtGdiEnumFontClose(
942     IN ULONG_PTR idEnum)
943 {
944     UNIMPLEMENTED;
945     return FALSE;
946 }
947 
948 /*
949  * @unimplemented
950  */
951 ULONG_PTR
952 APIENTRY
953 NtGdiEnumFontOpen(
954     IN HDC hdc,
955     IN ULONG iEnumType,
956     IN FLONG flWin31Compat,
957     IN ULONG cwchMax,
958     IN OPTIONAL LPWSTR pwszFaceName,
959     IN ULONG lfCharSet,
960     OUT ULONG *pulCount)
961 {
962     UNIMPLEMENTED;
963     return 0;
964 }
965 
966 /*
967  * @unimplemented
968  */
969 BOOL
970 APIENTRY
971 NtGdiEudcLoadUnloadLink(
972     IN OPTIONAL LPCWSTR pBaseFaceName,
973     IN UINT cwcBaseFaceName,
974     IN LPCWSTR pEudcFontPath,
975     IN UINT cwcEudcFontPath,
976     IN INT iPriority,
977     IN INT iFontLinkType,
978     IN BOOL bLoadLin)
979 {
980     UNIMPLEMENTED;
981     return FALSE;
982 }
983 
984 /*
985  * @unimplemented
986  */
987 BOOL
988 APIENTRY
989 NtGdiForceUFIMapping(
990     IN HDC hdc,
991     IN PUNIVERSAL_FONT_ID pufi)
992 {
993     UNIMPLEMENTED;
994     return FALSE;
995 }
996 
997 /*
998  * @unimplemented
999  */
1000 NTSTATUS
1001 APIENTRY
1002 NtGdiFullscreenControl(
1003     IN FULLSCREENCONTROL FullscreenCommand,
1004     IN PVOID FullscreenInput,
1005     IN DWORD FullscreenInputLength,
1006     OUT PVOID FullscreenOutput,
1007     IN OUT PULONG FullscreenOutputLength)
1008 {
1009     UNIMPLEMENTED;
1010     return FALSE;
1011 }
1012 
1013 /*
1014  * @unimplemented
1015  */
1016 BOOL
1017 APIENTRY
1018 NtGdiGetCharWidthInfo(
1019     IN HDC hdc,
1020     OUT PCHWIDTHINFO pChWidthInfo)
1021 {
1022     UNIMPLEMENTED;
1023     return FALSE;
1024 }
1025 
1026 /*
1027  * @unimplemented
1028  */
1029 ULONG_PTR
1030 APIENTRY
1031 NtGdiGetColorSpaceforBitmap(
1032     IN HBITMAP hsurf)
1033 {
1034     UNIMPLEMENTED;
1035     return 0;
1036 }
1037 
1038 /*
1039  * @unimplemented
1040  */
1041 BOOL
1042 APIENTRY
1043 NtGdiGetETM(
1044     IN HDC hdc,
1045     OUT EXTTEXTMETRIC *petm)
1046 {
1047     UNIMPLEMENTED;
1048     return FALSE;
1049 }
1050 
1051 /*
1052  * @unimplemented
1053  */
1054 ULONG
1055 APIENTRY
1056 NtGdiGetEudcTimeStampEx(
1057     IN OPTIONAL LPWSTR lpBaseFaceName,
1058     IN ULONG cwcBaseFaceName,
1059     IN BOOL bSystemTimeStamp)
1060 {
1061     UNIMPLEMENTED;
1062     return 0;
1063 }
1064 
1065 /*
1066  * @implemented
1067  */
1068 BOOL
1069 APIENTRY
1070 NtGdiInitSpool(VOID)
1071 {
1072     EngSetLastError(ERROR_NOT_SUPPORTED);
1073     return FALSE;
1074 }
1075 
1076 /*
1077  * @unimplemented
1078  */
1079 INT
1080 APIENTRY
1081 NtGdiQueryFonts(
1082     OUT PUNIVERSAL_FONT_ID pufiFontList,
1083     IN ULONG nBufferSize,
1084     OUT PLARGE_INTEGER pTimeStamp)
1085 {
1086     UNIMPLEMENTED;
1087     return 0;
1088 }
1089 
1090 /*
1091  * @implemented
1092  */
1093 INT
1094 APIENTRY
1095 NtGdiGetSpoolMessage(
1096     DWORD u1,
1097     DWORD u2,
1098     DWORD u3,
1099     DWORD u4)
1100 {
1101     /* FIXME: The prototypes */
1102     EngSetLastError(ERROR_NOT_SUPPORTED);
1103     return 0;
1104 }
1105 
1106 /*
1107  * @unimplemented
1108  */
1109 DWORD
1110 APIENTRY
1111 NtGdiGetGlyphIndicesWInternal(
1112     IN HDC hdc,
1113     IN OPTIONAL LPWSTR pwc,
1114     IN INT cwc,
1115     OUT OPTIONAL LPWORD pgi,
1116     IN DWORD iMode,
1117     IN BOOL bSubset)
1118 {
1119     UNIMPLEMENTED;
1120     return 0;
1121 }
1122 
1123 /*
1124  * @unimplemented
1125  */
1126 INT
1127 APIENTRY
1128 NtGdiGetLinkedUFIs(
1129     IN HDC hdc,
1130     OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs,
1131     IN INT BufferSize)
1132 {
1133     UNIMPLEMENTED;
1134     return 0;
1135 }
1136 
1137 /*
1138  * @unimplemented
1139  */
1140 BOOL
1141 APIENTRY
1142 NtGdiGetMonitorID(
1143     IN  HDC hdc,
1144     IN  DWORD dwSize,
1145     OUT LPWSTR pszMonitorID)
1146 {
1147     UNIMPLEMENTED;
1148     return FALSE;
1149 }
1150 
1151 /*
1152  * @unimplemented
1153  */
1154 BOOL
1155 APIENTRY
1156 NtGdiDrawStream(
1157     IN HDC hdcDst,
1158     IN ULONG cjIn,
1159     IN VOID *pvIn)
1160 {
1161     UNIMPLEMENTED;
1162     return FALSE;
1163 }
1164 
1165 /*
1166  * @unimplemented
1167  */
1168 BOOL
1169 APIENTRY
1170 NtGdiUpdateTransform(IN HDC hdc)
1171 {
1172     UNIMPLEMENTED;
1173     return FALSE;
1174 }
1175 
1176 /*
1177  * @unimplemented
1178  */
1179 ULONG
1180 APIENTRY
1181 NtGdiQueryFontAssocInfo(
1182     IN HDC hdc)
1183 {
1184     UNIMPLEMENTED;
1185     return 0;
1186 }
1187 
1188 /*
1189  * @unimplemented
1190  */
1191 UINT
1192 APIENTRY
1193 NtGdiGetStringBitmapW(
1194     IN HDC hdc,
1195     IN LPWSTR pwsz,
1196     IN UINT cwc,
1197     OUT BYTE *lpSB,
1198     IN UINT cj)
1199 {
1200     UNIMPLEMENTED;
1201     return 0;
1202 }
1203 
1204 /*
1205  * @unimplemented
1206  */
1207 BOOL
1208 APIENTRY
1209 NtGdiRemoveFontResourceW(
1210     IN WCHAR *pwszFiles,
1211     IN ULONG cwc,
1212     IN ULONG cFiles,
1213     IN ULONG fl,
1214     IN DWORD dwPidTid,
1215     IN OPTIONAL DESIGNVECTOR *pdv)
1216 {
1217     UNIMPLEMENTED;
1218     return FALSE;
1219 }
1220 
1221 /*
1222  * @unimplemented
1223  */
1224 BOOL
1225 APIENTRY
1226 NtGdiPolyTextOutW(
1227     IN HDC hdc,
1228     IN POLYTEXTW *pptw,
1229     IN UINT cStr,
1230     IN DWORD dwCodePage)
1231 {
1232     UNIMPLEMENTED;
1233     return FALSE;
1234 }
1235 
1236 /*
1237  * @unimplemented
1238  */
1239 NTSTATUS
1240 APIENTRY
1241 NtGdiGetStats(
1242     IN HANDLE hProcess,
1243     IN INT iIndex,
1244     IN INT iPidType,
1245     OUT PVOID pResults,
1246     IN UINT cjResultSize)
1247 {
1248     UNIMPLEMENTED;
1249     return STATUS_NOT_IMPLEMENTED;
1250 }
1251 
1252 /*
1253  * @unimplemented
1254  */
1255 INT
1256 APIENTRY
1257 NtGdiSetupPublicCFONT(
1258     IN HDC hdc,
1259     IN OPTIONAL HFONT hf,
1260     IN ULONG ulAve)
1261 {
1262     UNIMPLEMENTED;
1263     return 0;
1264 }
1265 
1266 /*
1267  * @unimplemented
1268  */
1269 BOOL
1270 APIENTRY
1271 NtGdiGetEmbUFI(
1272     IN HDC hdc,
1273     OUT PUNIVERSAL_FONT_ID pufi,
1274     OUT OPTIONAL DESIGNVECTOR *pdv,
1275     OUT ULONG *pcjDV,
1276     OUT ULONG *pulBaseCheckSum,
1277     OUT FLONG  *pfl,
1278     OUT KERNEL_PVOID *embFontID)
1279 {
1280     UNIMPLEMENTED;
1281     return FALSE;
1282 }
1283 
1284 /*
1285  * @unimplemented
1286  */
1287 BOOL
1288 APIENTRY
1289 NtGdiGetUFIPathname(
1290     IN PUNIVERSAL_FONT_ID pufi,
1291     OUT OPTIONAL ULONG* pcwc,
1292     OUT OPTIONAL LPWSTR pwszPathname,
1293     OUT OPTIONAL ULONG* pcNumFiles,
1294     IN FLONG fl,
1295     OUT OPTIONAL BOOL *pbMemFont,
1296     OUT OPTIONAL ULONG *pcjView,
1297     OUT OPTIONAL PVOID pvView,
1298     OUT OPTIONAL BOOL *pbTTC,
1299     OUT OPTIONAL ULONG *piTTC)
1300 {
1301     UNIMPLEMENTED;
1302     return FALSE;
1303 }
1304 
1305 /*
1306  * @unimplemented
1307  */
1308 ULONG
1309 APIENTRY
1310 NtGdiGetEmbedFonts(
1311     VOID)
1312 {
1313     UNIMPLEMENTED;
1314     return 0;
1315 }
1316 
1317 /*
1318  * @unimplemented
1319  */
1320 BOOL
1321 APIENTRY
1322 NtGdiChangeGhostFont(
1323     IN KERNEL_PVOID *pfontID,
1324     IN BOOL bLoad)
1325 {
1326     UNIMPLEMENTED;
1327     return FALSE;
1328 }
1329 
1330 /*
1331  * @unimplemented
1332  */
1333 BOOL
1334 APIENTRY
1335 NtGdiAddEmbFontToDC(
1336     IN HDC hdc,
1337     IN VOID **pFontID)
1338 {
1339     UNIMPLEMENTED;
1340     return FALSE;
1341 }
1342 
1343 /*
1344  * @unimplemented
1345  */
1346 BOOL
1347 APIENTRY
1348 NtGdiGetWidthTable(
1349     IN HDC hdc,
1350     IN ULONG cSpecial,
1351     IN WCHAR *pwc,
1352     IN ULONG cwc,
1353     OUT USHORT *psWidth,
1354     OUT OPTIONAL WIDTHDATA *pwd,
1355     OUT FLONG *pflInfo)
1356 {
1357     UNIMPLEMENTED;
1358     return FALSE;
1359 }
1360 
1361 /*
1362  * @unimplemented
1363  */
1364 BOOL
1365 APIENTRY
1366 NtGdiIcmBrushInfo(
1367     IN HDC hdc,
1368     IN HBRUSH hbrush,
1369     IN OUT PBITMAPINFO pbmiDIB,
1370     IN OUT PVOID pvBits,
1371     IN OUT ULONG *pulBits,
1372     OUT OPTIONAL DWORD *piUsage,
1373     OUT OPTIONAL BOOL *pbAlreadyTran,
1374     IN ULONG Command)
1375 {
1376     UNIMPLEMENTED;
1377     return FALSE;
1378 }
1379 
1380 /*
1381  * @unimplemented
1382  */
1383 ULONG
1384 APIENTRY
1385 NtGdiMakeFontDir(
1386     IN FLONG flEmbed,
1387     OUT PBYTE pjFontDir,
1388     IN unsigned cjFontDir,
1389     IN LPWSTR pwszPathname,
1390     IN unsigned cjPathname)
1391 {
1392     UNIMPLEMENTED;
1393     return 0;
1394 }
1395 
1396 /*
1397  * @unimplemented
1398  */
1399 BOOL
1400 APIENTRY
1401 NtGdiMonoBitmap(
1402     IN HBITMAP hbm)
1403 {
1404     UNIMPLEMENTED;
1405     return FALSE;
1406 }
1407 
1408 /*
1409  * @unimplemented
1410  */
1411 HBITMAP
1412 APIENTRY
1413 NtGdiSetBitmapAttributes(
1414     IN HBITMAP hbm,
1415     IN DWORD dwFlags)
1416 {
1417     UNIMPLEMENTED;
1418     return NULL;
1419 }
1420 
1421 /*
1422  * @unimplemented
1423  */
1424 ULONG
1425 APIENTRY
1426 NtGdiSetFontEnumeration(
1427     IN ULONG ulType)
1428 {
1429     UNIMPLEMENTED;
1430     return 0;
1431 }
1432 
1433 /*
1434  * @unimplemented
1435  */
1436 BOOL
1437 APIENTRY
1438 NtGdiSetFontXform(
1439     IN HDC hdc,
1440     IN DWORD dwxScale,
1441     IN DWORD dwyScale)
1442 {
1443     UNIMPLEMENTED;
1444     return FALSE;
1445 }
1446 
1447 /*
1448  * @unimplemented
1449  */
1450 BOOL
1451 APIENTRY
1452 NtGdiSetLinkedUFIs(
1453     IN HDC hdc,
1454     IN PUNIVERSAL_FONT_ID pufiLinks,
1455     IN ULONG uNumUFIs)
1456 {
1457     UNIMPLEMENTED;
1458     return FALSE;
1459 }
1460 
1461 /*
1462  * @unimplemented
1463  */
1464 BOOL
1465 APIENTRY
1466 NtGdiSetMagicColors(
1467     IN HDC hdc,
1468     IN PALETTEENTRY peMagic,
1469     IN ULONG Index)
1470 {
1471     UNIMPLEMENTED;
1472     return FALSE;
1473 }
1474 
1475 /*
1476  * @implemented
1477  */
1478 BOOL
1479 APIENTRY
1480 NtGdiUnloadPrinterDriver(
1481     IN LPWSTR pDriverName,
1482     IN ULONG cbDriverName)
1483 {
1484     EngSetLastError(ERROR_NOT_SUPPORTED);
1485     return FALSE;
1486 }
1487 
1488 /*
1489  * @implemented
1490  */
1491 BOOL
1492 APIENTRY
1493 NtGdiUnmapMemFont(
1494     IN PVOID pvView)
1495 {
1496     return TRUE;
1497 }
1498 
1499 BOOL
1500 APIENTRY
1501 EngControlSprites(
1502     IN WNDOBJ  *pwo,
1503     IN FLONG  fl)
1504 {
1505     UNIMPLEMENTED;
1506     return FALSE;
1507 }
1508 
1509 _Must_inspect_result_
1510 _Ret_opt_bytecap_(cjSize)
1511 ENGAPI
1512 PVOID
1513 APIENTRY
1514 EngFntCacheAlloc(
1515     _In_ ULONG ulFastCheckSum,
1516     _In_ ULONG cjSize)
1517 {
1518     UNIMPLEMENTED;
1519     return NULL;
1520 }
1521 
1522 VOID
1523 APIENTRY
1524 EngFntCacheFault(
1525     IN ULONG ulFastCheckSum,
1526     IN ULONG iFaultMode)
1527 {
1528     UNIMPLEMENTED;
1529 }
1530 
1531 PVOID
1532 APIENTRY
1533 EngFntCacheLookUp(
1534     IN ULONG FastCheckSum,
1535     OUT PULONG pulSize)
1536 {
1537     UNIMPLEMENTED;
1538     return NULL;
1539 }
1540 
1541 BOOLEAN
1542 APIENTRY
1543 EngNineGrid(
1544     IN SURFOBJ* pDestSurfaceObj,
1545     IN SURFOBJ* pSourceSurfaceObj,
1546     IN CLIPOBJ* pClipObj,
1547     IN XLATEOBJ* pXlateObj,
1548     IN RECTL* prclSource,
1549     IN RECTL* prclDest,
1550     PVOID pvUnknown1,
1551     PVOID pvUnknown2,
1552     DWORD dwReserved)
1553 {
1554     UNIMPLEMENTED;
1555     return FALSE;
1556 }
1557 
1558 /* EOF */
1559