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