3 * reactos/lib/gdi32/misc/stubs.c
7 * When you implement one of these functions,
8 * remove its stub from this file.
14 #define SIZEOF_DEVMODEA_300 124
15 #define SIZEOF_DEVMODEA_400 148
16 #define SIZEOF_DEVMODEA_500 156
17 #define SIZEOF_DEVMODEW_300 188
18 #define SIZEOF_DEVMODEW_400 212
19 #define SIZEOF_DEVMODEW_500 220
21 #define UNIMPLEMENTED DbgPrint("GDI32: %s is unimplemented, please try again later.\n", __FUNCTION__);
29 StretchDIBits(HDC hdc
,
39 CONST BITMAPINFO
*lpBitsInfo
,
44 /* FIXME share memory */
45 return NtGdiStretchDIBits(hdc
, XDest
, YDest
, nDestWidth
, nDestHeight
, XSrc
, YSrc
,
46 nSrcWidth
, nSrcHeight
, lpBits
, lpBitsInfo
, iUsage
, dwRop
);
59 CONST BITMAPINFO
*lpbmi
,
62 /* FIXME share memory */
63 return NtGdiSetDIBits(hdc
, hbmp
, uStartScan
, cScanLines
, lpvBits
, lpbmi
, fuColorUse
);
71 PtInRegion(IN HRGN hrgn
,
75 /* FIXME some stuff at user mode need be fixed */
76 return NtGdiPtInRegion(hrgn
,x
,y
);
84 RectInRegion(HRGN hrgn
,
87 /* FIXME some stuff at user mode need be fixed */
88 return NtGdiRectInRegion(hrgn
, (LPRECT
) prcl
);
99 /* FIXME Sharememory */
100 return NtGdiRestoreDC(hdc
, iLevel
);
110 /* FIXME Sharememory */
111 return NtGdiSaveDC(hdc
);
124 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
140 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
156 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
165 Escape(HDC hdc
, INT escape
, INT in_count
, LPCSTR in_data
, LPVOID out_data
)
168 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
183 return NtGdiGetBoundsRect(hdc
,lprcBounds
,flags
& DCB_RESET
);
199 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
214 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
229 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
238 SetBoundsRect(HDC hdc
,
242 /* FIXME add check for vaildate the flags */
243 return NtGdiSetBoundsRect(hdc
, (LPRECT
)prc
, flags
);
258 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
273 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
290 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
308 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
322 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
340 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
356 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
366 GetEnhMetaFileHeader(
373 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
382 GetEnhMetaFilePaletteEntries(
389 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
407 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
424 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
434 PlayEnhMetaFileRecord(
437 CONST ENHMETARECORD
*a2
,
442 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
458 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
472 CONST METAFILEPICT
*a3
)
475 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
492 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_EMF
)
494 PLDC pLDC
= GdiGetLDC(hDC
);
497 SetLastError(ERROR_INVALID_HANDLE
);
500 if (pLDC
->iType
== LDC_EMFLDC
)
502 return EMFDRV_GdiComment( hDC
, bytes
, buffer
);
525 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
537 CONST COLORADJUSTMENT
*a1
541 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
555 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
570 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
585 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
600 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
616 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
625 UnrealizeObject(HGDIOBJ hgdiobj
)
627 BOOL retValue
= TRUE
;
629 if (GDI_HANDLE_GET_TYPE(hgdiobj
) != GDI_OBJECT_TYPE_BRUSH
)
631 retValue
= NtGdiUnrealizeObject(hgdiobj
);
661 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
679 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
689 GetColorSpace(HDC hDc
)
692 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
708 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
717 GetDeviceGammaRamp( HDC hdc
,
720 BOOL retValue
= FALSE
;
721 if (lpGammaRamp
== NULL
)
723 SetLastError(ERROR_INVALID_PARAMETER
);
727 retValue
= NtGdiGetDeviceGammaRamp(hdc
,lpGammaRamp
);
738 SetDeviceGammaRamp(HDC hdc
,
741 BOOL retValue
= FALSE
;
745 retValue
= NtGdiSetDeviceGammaRamp(hdc
, lpGammaRamp
);
749 SetLastError(ERROR_INVALID_PARAMETER
);
768 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
785 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
800 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
810 wglCreateLayerContext(
816 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
831 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
841 wglGetCurrentContext(VOID
)
844 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
854 wglGetCurrentDC(VOID
)
857 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
872 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
888 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
904 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
914 wglDescribeLayerPlane(
919 LPLAYERPLANEDESCRIPTOR a4
923 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
933 wglSetLayerPaletteEntries(
942 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
952 wglGetLayerPaletteEntries(
961 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
971 wglRealizeLayerPalette(
978 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
994 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
999 /* === AFTER THIS POINT I GUESS... =========
1000 * (based on stack size in Norlander's .def)
1001 * === WHERE ARE THEY DEFINED? =============
1009 IsValidEnhMetaRecord(
1015 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1025 IsValidEnhMetaRecordOffExt(
1033 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1054 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1073 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1082 AddFontMemResourceEx(
1090 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1099 AddFontResourceTracking(
1105 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1116 ClearBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
1119 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1128 ClearBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1131 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1140 ColorCorrectPalette(HDC hDC
,HPALETTE hPalette
,DWORD dwFirstEntry
,DWORD dwNumOfEntries
)
1143 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1152 EndFormPage(HDC hdc
)
1155 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1166 GdiAddGlsBounds(HDC hdc
,LPRECT prc
)
1169 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1178 GdiArtificialDecrementDriver(LPWSTR pDriverName
,BOOL unknown
)
1181 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1190 GdiCleanCacheDC(HDC hdc
)
1193 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1202 GdiConvertAndCheckDC(HDC hdc
)
1205 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1214 GdiConvertEnhMetaFile(HENHMETAFILE hmf
)
1217 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1226 GdiDrawStream(HDC dc
, ULONG l
, VOID
*v
)
1229 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1238 GdiIsMetaFileDC(HDC hdc
)
1241 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1250 GdiIsMetaPrintDC(HDC hdc
)
1253 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1262 GdiIsPlayMetafileDC(HDC hdc
)
1265 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1274 GdiValidateHandle(HGDIOBJ hobj
)
1277 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1286 GetBitmapAttributes(HBITMAP hbm
)
1289 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1298 GetBrushAttributes(HBRUSH hbr
)
1301 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1310 GetEUDCTimeStamp(VOID
)
1312 return NtGdiGetEudcTimeStampEx(NULL
,0,TRUE
);
1320 GetFontAssocStatus(HDC hdc
)
1326 retValue
= NtGdiQueryFontAssocInfo(hdc
);
1337 GetTextExtentExPointWPri(HDC hdc
,
1345 return NtGdiGetTextExtentExW(hdc
,lpwsz
,cwc
,dxMax
,pcCh
,pdxOut
,psize
,0);
1353 GetTextFaceAliasW(HDC hdc
,
1358 if ((!pszOut
) || (cChar
))
1360 retValue
= NtGdiGetTextFaceW(hdc
,cChar
,pszOut
,TRUE
);
1364 SetLastError(ERROR_INVALID_PARAMETER
);
1374 QueryFontAssocStatus(VOID
)
1377 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1386 RemoveFontMemResourceEx(HANDLE fh
)
1392 retValue
= NtGdiRemoveFontMemResourceEx(fh
);
1396 SetLastError(ERROR_INVALID_PARAMETER
);
1406 RemoveFontResourceTracking(LPCSTR lpString
,int unknown
)
1409 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1418 SetBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
1421 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1430 SetBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1433 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1442 StartFormPage(HDC hdc
)
1444 return StartPage(hdc
);
1452 UnloadNetworkFonts(DWORD unknown
)
1455 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1463 GdiRealizationInfo(HDC hdc
,
1464 PREALIZATION_INFO pri
)
1467 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1477 EXTTEXTMETRIC
*petm
)
1479 BOOL Ret
= NtGdiGetETM(hdc
, petm
);
1482 petm
->emKernPairs
= GetKerningPairsA(hdc
, 0, 0);
1492 GdiAddGlsRecord(HDC hdc
,
1498 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1507 GdiConvertMetaFilePict(HGLOBAL hMem
)
1510 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1519 GdiConvertToDevmodeW(DEVMODEA
*dm
)
1523 dmw
= HEAP_alloc(sizeof(DEVMODEW
));
1524 #define COPYS(f,len) MultiByteToWideChar ( CP_THREAD_ACP, 0, (LPSTR)dm->f, len, dmw->f, len )
1525 #define COPYN(f) dmw->f = dm->f
1526 COPYS(dmDeviceName
, CCHDEVICENAME
);
1527 COPYN(dmSpecVersion
);
1528 COPYN(dmDriverVersion
);
1529 switch ( dm
->dmSize
)
1531 case SIZEOF_DEVMODEA_300
:
1532 dmw
->dmSize
= SIZEOF_DEVMODEW_300
;
1534 case SIZEOF_DEVMODEA_400
:
1535 dmw
->dmSize
= SIZEOF_DEVMODEW_400
;
1537 case SIZEOF_DEVMODEA_500
:
1538 default: /* FIXME what to do??? */
1539 dmw
->dmSize
= SIZEOF_DEVMODEW_500
;
1542 COPYN(dmDriverExtra
);
1544 COPYN(dmPosition
.x
);
1545 COPYN(dmPosition
.y
);
1548 COPYN(dmDefaultSource
);
1549 COPYN(dmPrintQuality
);
1552 COPYN(dmYResolution
);
1555 COPYS(dmFormName
,CCHFORMNAME
);
1557 COPYN(dmBitsPerPel
);
1559 COPYN(dmPelsHeight
);
1560 COPYN(dmDisplayFlags
); // aka dmNup
1561 COPYN(dmDisplayFrequency
);
1563 if ( dm
->dmSize
<= SIZEOF_DEVMODEA_300
)
1565 return dmw
; // we're done with 0x300 fields
1571 COPYN(dmDitherType
);
1575 if ( dm
->dmSize
<= SIZEOF_DEVMODEA_400
)
1577 return dmw
; // we're done with 0x400 fields
1580 COPYN(dmPanningWidth
);
1581 COPYN(dmPanningHeight
);
1594 GdiCreateLocalEnhMetaFile(HENHMETAFILE hmo
)
1597 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1606 GdiCreateLocalMetaFilePict(HENHMETAFILE hmo
)
1609 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1619 GdiGetSpoolFileHandle(LPWSTR pwszPrinterName
,
1620 LPDEVMODEW pDevmode
,
1624 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1633 GdiDeleteSpoolFileHandle(HANDLE SpoolFileHandle
)
1636 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1645 GdiGetPageCount(HANDLE SpoolFileHandle
)
1648 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1657 GdiGetDC(HANDLE SpoolFileHandle
)
1660 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1669 GdiGetPageHandle(HANDLE SpoolFileHandle
,
1671 LPDWORD pdwPageType
)
1674 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1683 GdiStartDocEMF(HANDLE SpoolFileHandle
,
1687 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1696 GdiStartPageEMF(HANDLE SpoolFileHandle
)
1699 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1708 GdiPlayPageEMF(HANDLE SpoolFileHandle
,
1710 RECT
*prectDocument
,
1715 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1724 GdiEndPageEMF(HANDLE SpoolFileHandle
,
1725 DWORD dwOptimization
)
1728 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1737 GdiEndDocEMF(HANDLE SpoolFileHandle
)
1740 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1749 GdiGetDevmodeForPage(HANDLE SpoolFileHandle
,
1755 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1764 GdiResetDCEMF(HANDLE SpoolFileHandle
,
1768 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1775 CreateDIBitmap(HDC hDc
,
1776 const BITMAPINFOHEADER
*Header
,
1777 DWORD Init
, LPCVOID Bits
, const BITMAPINFO
*Data
,
1780 /* FIMXE we need do more thing in user mode */
1781 return NtGdiCreateDIBitmap(hDc
, Header
, Init
, Bits
, Data
, ColorUse
);
1789 CombineRgn(HRGN hDest
,
1794 /* FIXME some part should be done in user mode */
1795 return NtGdiCombineRgn(hDest
, hSrc1
, hSrc2
, CombineMode
);
1802 CreateBitmap(INT Width
,
1808 /* FIXME some part should be done in user mode */
1809 return NtGdiCreateBitmap(Width
, Height
, Planes
, BitsPixel
, (LPBYTE
) pUnsafeBits
);
1816 EngGetDriverName(HDEV hdev
)
1819 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1827 XLATEOBJ_iXlate(XLATEOBJ
*XlateObj
,
1831 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1840 XLATEOBJ_piVector(XLATEOBJ
*XlateObj
)
1842 return XlateObj
->pulXlate
;
1850 GdiPlayEMF(LPWSTR pwszPrinterName
,
1851 LPDEVMODEW pDevmode
,
1853 EMFPLAYPROC pfnEMFPlayFn
,
1858 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1869 GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle
,
1871 RECT
*prectDocument
)
1874 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1881 VOID STDCALL
GdiInitializeLanguagePack(DWORD InitParam
)
1884 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1893 ExcludeClipRect(IN HDC hdc
, IN INT xLeft
, IN INT yTop
, IN INT xRight
, IN INT yBottom
)
1895 /* FIXME some part need be done on user mode size */
1896 return NtGdiExcludeClipRect(hdc
, xLeft
, yTop
, xRight
, yBottom
);
1904 ExtSelectClipRgn( IN HDC hdc
, IN HRGN hrgn
, IN INT iMode
)
1906 /* FIXME some part need be done on user mode size */
1907 return NtGdiExtSelectClipRgn(hdc
,hrgn
, iMode
);
1917 IN PTRIVERTEX pVertex
,
1923 /* FIXME some part need be done in user mode */
1924 return NtGdiGradientFill(hdc
, pVertex
, nVertex
, pMesh
, nMesh
, ulMode
);
1933 GdiTransparentBlt(IN HDC hdcDst
,
1943 IN COLORREF TransColor
1946 /* FIXME some part need be done in user mode */
1947 return NtGdiTransparentBlt(hdcDst
, xDst
, yDst
, cxDst
, cyDst
, hdcSrc
, xSrc
, ySrc
, cxSrc
, cySrc
, TransColor
);
1960 /* FIXME figout the protypes, the HUMPD are a STRUCT or COM object */
1961 /* status contain some form of return value that being save, what it is I do not known */
1962 /* unsue seam have zero effect, what it is for I do not known */
1964 // ? return NtGdiSetPUMPDOBJ(humpd->0x10,TRUE, humpd, ?) <- blackbox, OpenRCE info, and api hooks for anylaysing;
1975 HBITMAP in_format_BitMap
,
1980 /* FIXME guessing the prototypes */
1983 * it have create a new bitmap with desired in format,
1984 * then convert it src_bitmap to new format
1985 * and return it as HBITMAP
1998 GetDeviceCaps(HDC hdc
,
2001 /* FIXME some part need be done in user mode */
2002 return NtGdiGetDeviceCaps(hdc
,i
);
2014 /* FIXME some part need be done in user mode */
2015 return NtGdiGetAppClipBox(hdc
, lprc
);
2024 GetFontData(HDC hdc
,
2034 return NtGdiGetFontData(hdc
, dwTable
, dwOffset
, lpvBuffer
, cbData
);
2044 GetRegionData(HRGN hrgn
,
2046 LPRGNDATA lpRgnData
)
2053 return NtGdiGetRegionData(hrgn
,nCount
,lpRgnData
);
2063 GetRgnBox(HRGN hrgn
,
2066 /* FIXME some stuff need be done in user mode */
2067 return NtGdiGetRgnBox(hrgn
, prcOut
);
2077 OffsetRgn( HRGN hrgn
,
2081 /* FIXME some part are done in user mode */
2082 return NtGdiOffsetRgn(hrgn
,nXOffset
,nYOffset
);
2088 GetTextCharsetInfo(HDC hdc
,
2089 LPFONTSIGNATURE lpSig
,
2092 /* FIXME some part are done in user mode */
2093 return NtGdiGetTextCharsetInfo(hdc
, lpSig
, dwFlags
);
2100 IntersectClipRect(HDC hdc
,
2106 /* FIXME some part are done in user mode */
2107 return NtGdiIntersectClipRect(hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2112 OffsetClipRgn(HDC hdc
,
2116 /* FIXME some part are done in user mode */
2117 return NtGdiOffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2123 NamedEscape(HDC hdc
,
2131 /* FIXME metadc, metadc are done most in user mode, and we do not support it
2132 * Windows 2000/XP/Vista ignore the current hdc, that are being pass and always set hdc to NULL
2133 * when it calls to NtGdiExtEscape from NamedEscape
2135 return NtGdiExtEscape(NULL
,pDriver
,wcslen(pDriver
),iEsc
,cjIn
,pjIn
,cjOut
,pjOut
);
2144 /* FIXME wrong protypes, it is a fastcall api */
2147 cGetTTFFromFOT(DWORD x1
,DWORD x2
,DWORD x3
, DWORD x4
, DWORD x5
, DWORD x6
, DWORD x7
)
2150 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);