xref: /reactos/win32ss/gdi/eng/stubs.c (revision 50cf16b3)
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  * @unimplemented
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     UNIMPLEMENTED;
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  * @unimplemented
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     UNIMPLEMENTED;
168     return FALSE;
169 }
170 
171 /*
172  * @unimplemented
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     UNIMPLEMENTED;
185     return FALSE;
186 }
187 
188 /*
189  * @unimplemented
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     UNIMPLEMENTED;
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  * @unimplemented
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     UNIMPLEMENTED;
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     UNIMPLEMENTED;
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     UNIMPLEMENTED;
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  * @unimplemented
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     UNIMPLEMENTED;
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 Device,
587     IN ENG_DEVICE_ATTRIBUTE Attribute,
588     IN VOID *In,
589     IN ULONG InSize,
590     OUT VOID *Out,
591     OUT ULONG OutSize)
592 {
593     UNIMPLEMENTED;
594     return FALSE;
595 }
596 
597 /*
598  * @unimplemented
599  */
600 LARGE_INTEGER
601 APIENTRY
602 EngQueryFileTimeStamp(IN LPWSTR FileName)
603 {
604     LARGE_INTEGER FileTime;
605     FileTime.QuadPart = 0;
606     UNIMPLEMENTED;
607     return FileTime;
608 }
609 
610 /*
611  * @unimplemented
612  */
613 FD_GLYPHSET *
614 APIENTRY
615 FONTOBJ_pfdg(
616     IN FONTOBJ *FontObj)
617 {
618     UNIMPLEMENTED;
619     return NULL;
620 }
621 
622 /*
623  * @unimplemented
624  */
625 _Ret_opt_bytecount_(*pcjTable)
626 ENGAPI
627 PBYTE
628 APIENTRY
629 FONTOBJ_pjOpenTypeTablePointer(
630     _In_ FONTOBJ *pfo,
631     _In_ ULONG ulTag,
632     _Out_ ULONG *pcjTable)
633 {
634     UNIMPLEMENTED;
635     return NULL;
636 }
637 
638 /*
639  * @unimplemented
640  */
641 PFD_GLYPHATTR
642 APIENTRY
643 FONTOBJ_pQueryGlyphAttrs(
644     IN FONTOBJ *FontObj,
645     IN ULONG Mode)
646 {
647     UNIMPLEMENTED;
648     return NULL;
649 }
650 
651 /*
652  * @unimplemented
653  */
654 LPWSTR
655 APIENTRY
656 FONTOBJ_pwszFontFilePaths(
657     IN FONTOBJ *FontObj,
658     OUT ULONG *PathLength)
659 {
660     UNIMPLEMENTED;
661     return NULL;
662 }
663 
664 /*
665  * @unimplemented
666  */
667 LONG
668 APIENTRY
669 HT_Get8BPPMaskPalette(
670     IN OUT LPPALETTEENTRY PaletteEntry,
671     IN BOOL Use8BPPMaskPal,
672     IN BYTE CMYMask,
673     IN USHORT RedGamma,
674     IN USHORT GreenGamma,
675     IN USHORT BlueGamma)
676 {
677     UNIMPLEMENTED;
678     return 0;
679 }
680 
681 /*
682  * @unimplemented
683  */
684 BOOL
685 APIENTRY
686 NtGdiAnyLinkedFonts(VOID)
687 {
688     UNIMPLEMENTED;
689     return FALSE;
690 }
691 
692 /*
693  * @unimplemented
694  */
695 BOOL
696 APIENTRY
697 NtGdiEnableEudc(BOOL enable)
698 {
699     UNIMPLEMENTED;
700     return FALSE;
701 }
702 
703 /*
704  * @unimplemented
705  */
706 BOOL
707 APIENTRY
708 NtGdiAddRemoteFontToDC(
709     IN HDC hdc,
710     IN PVOID pvBuffer,
711     IN ULONG cjBuffer,
712     IN OPTIONAL PUNIVERSAL_FONT_ID pufi)
713 {
714     UNIMPLEMENTED;
715     return 0;
716 }
717 
718 /*
719  * @unimplemented
720  */
721 BOOL
722 APIENTRY
723 NtGdiRemoveMergeFont(
724     IN HDC hdc,
725     IN UNIVERSAL_FONT_ID *pufi)
726 {
727     UNIMPLEMENTED;
728     return FALSE;
729 }
730 
731 /*
732  * @unimplemented
733  */
734 BOOL
735 APIENTRY
736 NtGdiAddRemoteMMInstanceToDC(
737     IN HDC hdc,
738     IN DOWNLOADDESIGNVECTOR *pddv,
739     IN ULONG cjDDV)
740 {
741     UNIMPLEMENTED;
742     return FALSE;
743 }
744 
745 /*
746  * @unimplemented
747  */
748 BOOL
749 APIENTRY
750 NtGdiFontIsLinked(IN HDC hdc)
751 {
752     UNIMPLEMENTED;
753     return FALSE;
754 }
755 
756 /*
757  * @unimplemented
758  */
759 BOOL
760 APIENTRY
761 NtGdiCheckBitmapBits(
762     IN HDC hdc,
763     IN HANDLE hColorTransform,
764     IN PVOID pvBits,
765     IN ULONG bmFormat,
766     IN DWORD dwWidth,
767     IN DWORD dwHeight,
768     IN DWORD dwStride,
769     OUT PBYTE paResults)
770 {
771     UNIMPLEMENTED;
772     return FALSE;
773 }
774 
775 /*
776  * @unimplemented
777  */
778 HBITMAP
779 APIENTRY
780 NtGdiClearBitmapAttributes(
781     IN HBITMAP hbm,
782     IN DWORD dwFlags)
783 {
784     UNIMPLEMENTED;
785     return NULL;
786 }
787 
788 /*
789  * @unimplemented
790  */
791 BOOL
792 APIENTRY
793 NtGdiGetUFI(
794     IN  HDC hdc,
795     OUT PUNIVERSAL_FONT_ID pufi,
796     OUT OPTIONAL DESIGNVECTOR *pdv,
797     OUT ULONG *pcjDV,
798     OUT ULONG *pulBaseCheckSum,
799     OUT FLONG *pfl)
800 {
801     UNIMPLEMENTED;
802     return FALSE;
803 }
804 
805 
806 /*
807  * @unimplemented
808  */
809 ULONG
810 APIENTRY
811 NtGdiColorCorrectPalette(
812     IN HDC hdc,
813     IN HPALETTE hpal,
814     IN ULONG FirstEntry,
815     IN ULONG NumberOfEntries,
816     IN OUT PALETTEENTRY *ppalEntry,
817     IN ULONG Command)
818 {
819     UNIMPLEMENTED;
820     return 0;
821 }
822 
823 /*
824  * @unimplemented
825  */
826 HANDLE
827 APIENTRY
828 NtGdiCreateColorTransform(
829     IN HDC hdc,
830     IN LPLOGCOLORSPACEW pLogColorSpaceW,
831     IN OPTIONAL PVOID pvSrcProfile,
832     IN ULONG cjSrcProfile,
833     IN OPTIONAL PVOID pvDestProfile,
834     IN ULONG cjDestProfile,
835     IN OPTIONAL PVOID pvTargetProfile,
836     IN ULONG cjTargetProfile)
837 {
838     UNIMPLEMENTED;
839     return NULL;
840 }
841 
842 /*
843  * @unimplemented
844  */
845 BOOL
846 APIENTRY
847 NtGdiComputeXformCoefficients(IN HDC hdc)
848 {
849     UNIMPLEMENTED;
850     return FALSE;
851 }
852 
853 /*
854  * @unimplemented
855  */
856 BOOL
857 APIENTRY
858 NtGdiConsoleTextOut(
859     IN HDC hdc,
860     IN POLYTEXTW *lpto,
861     IN UINT nStrings,
862     IN RECTL *prclBounds)
863 {
864     UNIMPLEMENTED;
865     return FALSE;
866 }
867 
868 /*
869  * @unimplemented
870  */
871 BOOL
872 APIENTRY
873 NtGdiDeleteColorTransform(
874     IN HDC hdc,
875     IN HANDLE hColorTransform)
876 {
877     UNIMPLEMENTED;
878     return FALSE;
879 }
880 
881 /*
882  * @unimplemented
883  */
884 ULONG
885 APIENTRY
886 NtGdiGetPerBandInfo(
887     IN HDC hdc,
888     IN OUT PERBANDINFO *ppbi)
889 {
890     UNIMPLEMENTED;
891     return 0;
892 }
893 
894 /*
895  * @unimplemented
896  */
897 BOOL
898 APIENTRY
899 NtGdiDoBanding(
900     IN HDC hdc,
901     IN BOOL bStart,
902     OUT POINTL *pptl,
903     OUT PSIZE pSize)
904 {
905     UNIMPLEMENTED;
906     return FALSE;
907 }
908 
909 /*
910  * @unimplemented
911  */
912 BOOL
913 APIENTRY
914 NtGdiEnumFontChunk(
915     IN HDC hdc,
916     IN ULONG_PTR idEnum,
917     IN ULONG cjEfdw,
918     OUT ULONG *pcjEfdw,
919     OUT PENUMFONTDATAW pefdw)
920 {
921     UNIMPLEMENTED;
922     return FALSE;
923 }
924 
925 /*
926  * @unimplemented
927  */
928 BOOL
929 APIENTRY
930 NtGdiEnumFontClose(
931     IN ULONG_PTR idEnum)
932 {
933     UNIMPLEMENTED;
934     return FALSE;
935 }
936 
937 /*
938  * @unimplemented
939  */
940 ULONG_PTR
941 APIENTRY
942 NtGdiEnumFontOpen(
943     IN HDC hdc,
944     IN ULONG iEnumType,
945     IN FLONG flWin31Compat,
946     IN ULONG cwchMax,
947     IN OPTIONAL LPWSTR pwszFaceName,
948     IN ULONG lfCharSet,
949     OUT ULONG *pulCount)
950 {
951     UNIMPLEMENTED;
952     return 0;
953 }
954 
955 /*
956  * @unimplemented
957  */
958 BOOL
959 APIENTRY
960 NtGdiEudcLoadUnloadLink(
961     IN OPTIONAL LPCWSTR pBaseFaceName,
962     IN UINT cwcBaseFaceName,
963     IN LPCWSTR pEudcFontPath,
964     IN UINT cwcEudcFontPath,
965     IN INT iPriority,
966     IN INT iFontLinkType,
967     IN BOOL bLoadLin)
968 {
969     UNIMPLEMENTED;
970     return FALSE;
971 }
972 
973 /*
974  * @unimplemented
975  */
976 BOOL
977 APIENTRY
978 NtGdiForceUFIMapping(
979     IN HDC hdc,
980     IN PUNIVERSAL_FONT_ID pufi)
981 {
982     UNIMPLEMENTED;
983     return FALSE;
984 }
985 
986 /*
987  * @unimplemented
988  */
989 NTSTATUS
990 APIENTRY
991 NtGdiFullscreenControl(
992     IN FULLSCREENCONTROL FullscreenCommand,
993     IN PVOID FullscreenInput,
994     IN DWORD FullscreenInputLength,
995     OUT PVOID FullscreenOutput,
996     IN OUT PULONG FullscreenOutputLength)
997 {
998     UNIMPLEMENTED;
999     return FALSE;
1000 }
1001 
1002 /*
1003  * @unimplemented
1004  */
1005 BOOL
1006 APIENTRY
1007 NtGdiGetCharWidthInfo(
1008     IN HDC hdc,
1009     OUT PCHWIDTHINFO pChWidthInfo)
1010 {
1011     UNIMPLEMENTED;
1012     return FALSE;
1013 }
1014 
1015 /*
1016  * @unimplemented
1017  */
1018 ULONG_PTR
1019 APIENTRY
1020 NtGdiGetColorSpaceforBitmap(
1021     IN HBITMAP hsurf)
1022 {
1023     UNIMPLEMENTED;
1024     return 0;
1025 }
1026 
1027 /*
1028  * @unimplemented
1029  */
1030 BOOL
1031 APIENTRY
1032 NtGdiGetETM(
1033     IN HDC hdc,
1034     OUT EXTTEXTMETRIC *petm)
1035 {
1036     UNIMPLEMENTED;
1037     return FALSE;
1038 }
1039 
1040 /*
1041  * @unimplemented
1042  */
1043 ULONG
1044 APIENTRY
1045 NtGdiGetEudcTimeStampEx(
1046     IN OPTIONAL LPWSTR lpBaseFaceName,
1047     IN ULONG cwcBaseFaceName,
1048     IN BOOL bSystemTimeStamp)
1049 {
1050     UNIMPLEMENTED;
1051     return 0;
1052 }
1053 
1054 /*
1055  * @unimplemented
1056  */
1057 BOOL
1058 APIENTRY
1059 NtGdiInitSpool(VOID)
1060 {
1061     UNIMPLEMENTED;
1062     return FALSE;
1063 }
1064 
1065 /*
1066  * @unimplemented
1067  */
1068 INT
1069 APIENTRY
1070 NtGdiQueryFonts(
1071     OUT PUNIVERSAL_FONT_ID pufiFontList,
1072     IN ULONG nBufferSize,
1073     OUT PLARGE_INTEGER pTimeStamp)
1074 {
1075     UNIMPLEMENTED;
1076     return 0;
1077 }
1078 
1079 /*
1080  * @unimplemented
1081  */
1082 INT
1083 APIENTRY
1084 NtGdiGetSpoolMessage(
1085     DWORD u1,
1086     DWORD u2,
1087     DWORD u3,
1088     DWORD u4)
1089 {
1090     /* FIXME: The prototypes */
1091     UNIMPLEMENTED;
1092     return 0;
1093 }
1094 
1095 /*
1096  * @unimplemented
1097  */
1098 DWORD
1099 APIENTRY
1100 NtGdiGetGlyphIndicesWInternal(
1101     IN HDC hdc,
1102     IN OPTIONAL LPWSTR pwc,
1103     IN INT cwc,
1104     OUT OPTIONAL LPWORD pgi,
1105     IN DWORD iMode,
1106     IN BOOL bSubset)
1107 {
1108     UNIMPLEMENTED;
1109     return 0;
1110 }
1111 
1112 /*
1113  * @unimplemented
1114  */
1115 INT
1116 APIENTRY
1117 NtGdiGetLinkedUFIs(
1118     IN HDC hdc,
1119     OUT OPTIONAL PUNIVERSAL_FONT_ID pufiLinkedUFIs,
1120     IN INT BufferSize)
1121 {
1122     UNIMPLEMENTED;
1123     return 0;
1124 }
1125 
1126 /*
1127  * @unimplemented
1128  */
1129 BOOL
1130 APIENTRY
1131 NtGdiGetMonitorID(
1132     IN  HDC hdc,
1133     IN  DWORD dwSize,
1134     OUT LPWSTR pszMonitorID)
1135 {
1136     UNIMPLEMENTED;
1137     return FALSE;
1138 }
1139 
1140 /*
1141  * @unimplemented
1142  */
1143 BOOL
1144 APIENTRY
1145 NtGdiDrawStream(
1146     IN HDC hdcDst,
1147     IN ULONG cjIn,
1148     IN VOID *pvIn)
1149 {
1150     UNIMPLEMENTED;
1151     return FALSE;
1152 }
1153 
1154 /*
1155  * @unimplemented
1156  */
1157 BOOL
1158 APIENTRY
1159 NtGdiUpdateTransform(IN HDC hdc)
1160 {
1161     UNIMPLEMENTED;
1162     return FALSE;
1163 }
1164 
1165 /*
1166  * @unimplemented
1167  */
1168 ULONG
1169 APIENTRY
1170 NtGdiQueryFontAssocInfo(
1171     IN HDC hdc)
1172 {
1173     UNIMPLEMENTED;
1174     return 0;
1175 }
1176 
1177 /*
1178  * @unimplemented
1179  */
1180 UINT
1181 APIENTRY
1182 NtGdiGetStringBitmapW(
1183     IN HDC hdc,
1184     IN LPWSTR pwsz,
1185     IN UINT cwc,
1186     OUT BYTE *lpSB,
1187     IN UINT cj)
1188 {
1189     UNIMPLEMENTED;
1190     return 0;
1191 }
1192 
1193 /*
1194  * @unimplemented
1195  */
1196 BOOL
1197 APIENTRY
1198 NtGdiRemoveFontResourceW(
1199     IN WCHAR *pwszFiles,
1200     IN ULONG cwc,
1201     IN ULONG cFiles,
1202     IN ULONG fl,
1203     IN DWORD dwPidTid,
1204     IN OPTIONAL DESIGNVECTOR *pdv)
1205 {
1206     UNIMPLEMENTED;
1207     return FALSE;
1208 }
1209 
1210 /*
1211  * @unimplemented
1212  */
1213 BOOL
1214 APIENTRY
1215 NtGdiPolyTextOutW(
1216     IN HDC hdc,
1217     IN POLYTEXTW *pptw,
1218     IN UINT cStr,
1219     IN DWORD dwCodePage)
1220 {
1221     UNIMPLEMENTED;
1222     return FALSE;
1223 }
1224 
1225 /*
1226  * @unimplemented
1227  */
1228 NTSTATUS
1229 APIENTRY
1230 NtGdiGetStats(
1231     IN HANDLE hProcess,
1232     IN INT iIndex,
1233     IN INT iPidType,
1234     OUT PVOID pResults,
1235     IN UINT cjResultSize)
1236 {
1237     UNIMPLEMENTED;
1238     return STATUS_NOT_IMPLEMENTED;
1239 }
1240 
1241 /*
1242  * @unimplemented
1243  */
1244 INT
1245 APIENTRY
1246 NtGdiSetupPublicCFONT(
1247     IN HDC hdc,
1248     IN OPTIONAL HFONT hf,
1249     IN ULONG ulAve)
1250 {
1251     UNIMPLEMENTED;
1252     return 0;
1253 }
1254 
1255 /*
1256  * @unimplemented
1257  */
1258 BOOL
1259 APIENTRY
1260 NtGdiGetEmbUFI(
1261     IN HDC hdc,
1262     OUT PUNIVERSAL_FONT_ID pufi,
1263     OUT OPTIONAL DESIGNVECTOR *pdv,
1264     OUT ULONG *pcjDV,
1265     OUT ULONG *pulBaseCheckSum,
1266     OUT FLONG  *pfl,
1267     OUT KERNEL_PVOID *embFontID)
1268 {
1269     UNIMPLEMENTED;
1270     return FALSE;
1271 }
1272 
1273 /*
1274  * @unimplemented
1275  */
1276 BOOL
1277 APIENTRY
1278 NtGdiGetUFIPathname(
1279     IN PUNIVERSAL_FONT_ID pufi,
1280     OUT OPTIONAL ULONG* pcwc,
1281     OUT OPTIONAL LPWSTR pwszPathname,
1282     OUT OPTIONAL ULONG* pcNumFiles,
1283     IN FLONG fl,
1284     OUT OPTIONAL BOOL *pbMemFont,
1285     OUT OPTIONAL ULONG *pcjView,
1286     OUT OPTIONAL PVOID pvView,
1287     OUT OPTIONAL BOOL *pbTTC,
1288     OUT OPTIONAL ULONG *piTTC)
1289 {
1290     UNIMPLEMENTED;
1291     return FALSE;
1292 }
1293 
1294 /*
1295  * @unimplemented
1296  */
1297 ULONG
1298 APIENTRY
1299 NtGdiGetEmbedFonts(
1300     VOID)
1301 {
1302     UNIMPLEMENTED;
1303     return 0;
1304 }
1305 
1306 /*
1307  * @unimplemented
1308  */
1309 BOOL
1310 APIENTRY
1311 NtGdiChangeGhostFont(
1312     IN KERNEL_PVOID *pfontID,
1313     IN BOOL bLoad)
1314 {
1315     UNIMPLEMENTED;
1316     return FALSE;
1317 }
1318 
1319 /*
1320  * @unimplemented
1321  */
1322 BOOL
1323 APIENTRY
1324 NtGdiAddEmbFontToDC(
1325     IN HDC hdc,
1326     IN VOID **pFontID)
1327 {
1328     UNIMPLEMENTED;
1329     return FALSE;
1330 }
1331 
1332 /*
1333  * @unimplemented
1334  */
1335 BOOL
1336 APIENTRY
1337 NtGdiGetWidthTable(
1338     IN HDC hdc,
1339     IN ULONG cSpecial,
1340     IN WCHAR *pwc,
1341     IN ULONG cwc,
1342     OUT USHORT *psWidth,
1343     OUT OPTIONAL WIDTHDATA *pwd,
1344     OUT FLONG *pflInfo)
1345 {
1346     UNIMPLEMENTED;
1347     return FALSE;
1348 }
1349 
1350 /*
1351  * @unimplemented
1352  */
1353 BOOL
1354 APIENTRY
1355 NtGdiIcmBrushInfo(
1356     IN HDC hdc,
1357     IN HBRUSH hbrush,
1358     IN OUT PBITMAPINFO pbmiDIB,
1359     IN OUT PVOID pvBits,
1360     IN OUT ULONG *pulBits,
1361     OUT OPTIONAL DWORD *piUsage,
1362     OUT OPTIONAL BOOL *pbAlreadyTran,
1363     IN ULONG Command)
1364 {
1365     UNIMPLEMENTED;
1366     return FALSE;
1367 }
1368 
1369 /*
1370  * @unimplemented
1371  */
1372 ULONG
1373 APIENTRY
1374 NtGdiMakeFontDir(
1375     IN FLONG flEmbed,
1376     OUT PBYTE pjFontDir,
1377     IN unsigned cjFontDir,
1378     IN LPWSTR pwszPathname,
1379     IN unsigned cjPathname)
1380 {
1381     UNIMPLEMENTED;
1382     return 0;
1383 }
1384 
1385 /*
1386  * @unimplemented
1387  */
1388 BOOL
1389 APIENTRY
1390 NtGdiMonoBitmap(
1391     IN HBITMAP hbm)
1392 {
1393     UNIMPLEMENTED;
1394     return FALSE;
1395 }
1396 
1397 /*
1398  * @unimplemented
1399  */
1400 HBITMAP
1401 APIENTRY
1402 NtGdiSetBitmapAttributes(
1403     IN HBITMAP hbm,
1404     IN DWORD dwFlags)
1405 {
1406     UNIMPLEMENTED;
1407     return NULL;
1408 }
1409 
1410 /*
1411  * @unimplemented
1412  */
1413 ULONG
1414 APIENTRY
1415 NtGdiSetFontEnumeration(
1416     IN ULONG ulType)
1417 {
1418     UNIMPLEMENTED;
1419     return 0;
1420 }
1421 
1422 /*
1423  * @unimplemented
1424  */
1425 BOOL
1426 APIENTRY
1427 NtGdiSetFontXform(
1428     IN HDC hdc,
1429     IN DWORD dwxScale,
1430     IN DWORD dwyScale)
1431 {
1432     UNIMPLEMENTED;
1433     return FALSE;
1434 }
1435 
1436 /*
1437  * @unimplemented
1438  */
1439 BOOL
1440 APIENTRY
1441 NtGdiSetLinkedUFIs(
1442     IN HDC hdc,
1443     IN PUNIVERSAL_FONT_ID pufiLinks,
1444     IN ULONG uNumUFIs)
1445 {
1446     UNIMPLEMENTED;
1447     return FALSE;
1448 }
1449 
1450 /*
1451  * @unimplemented
1452  */
1453 BOOL
1454 APIENTRY
1455 NtGdiSetMagicColors(
1456     IN HDC hdc,
1457     IN PALETTEENTRY peMagic,
1458     IN ULONG Index)
1459 {
1460     UNIMPLEMENTED;
1461     return FALSE;
1462 }
1463 
1464 /*
1465  * @unimplemented
1466  */
1467 BOOL
1468 APIENTRY
1469 NtGdiUnloadPrinterDriver(
1470     IN LPWSTR pDriverName,
1471     IN ULONG cbDriverName)
1472 {
1473     UNIMPLEMENTED;
1474     return FALSE;
1475 }
1476 
1477 /*
1478  * @implemented
1479  */
1480 BOOL
1481 APIENTRY
1482 NtGdiUnmapMemFont(
1483     IN PVOID pvView)
1484 {
1485     return TRUE;
1486 }
1487 
1488 BOOL
1489 APIENTRY
1490 EngControlSprites(
1491     IN WNDOBJ  *pwo,
1492     IN FLONG  fl)
1493 {
1494     UNIMPLEMENTED;
1495     return FALSE;
1496 }
1497 
1498 _Must_inspect_result_
1499 _Ret_opt_bytecap_(cjSize)
1500 ENGAPI
1501 PVOID
1502 APIENTRY
1503 EngFntCacheAlloc(
1504     _In_ ULONG ulFastCheckSum,
1505     _In_ ULONG cjSize)
1506 {
1507     UNIMPLEMENTED;
1508     return NULL;
1509 }
1510 
1511 VOID
1512 APIENTRY
1513 EngFntCacheFault(
1514     IN ULONG ulFastCheckSum,
1515     IN ULONG iFaultMode)
1516 {
1517     UNIMPLEMENTED;
1518 }
1519 
1520 PVOID
1521 APIENTRY
1522 EngFntCacheLookUp(
1523     IN ULONG FastCheckSum,
1524     OUT PULONG pulSize)
1525 {
1526     UNIMPLEMENTED;
1527     return NULL;
1528 }
1529 
1530 BOOLEAN
1531 APIENTRY
1532 EngNineGrid(
1533     IN SURFOBJ* pDestSurfaceObj,
1534     IN SURFOBJ* pSourceSurfaceObj,
1535     IN CLIPOBJ* pClipObj,
1536     IN XLATEOBJ* pXlateObj,
1537     IN RECTL* prclSource,
1538     IN RECTL* prclDest,
1539     PVOID pvUnknown1,
1540     PVOID pvUnknown2,
1541     DWORD dwReserved)
1542 {
1543     UNIMPLEMENTED;
1544     return FALSE;
1545 }
1546 
1547 /* EOF */
1548