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 PtInRegion(IN HRGN hrgn
,
33 /* FIXME some stuff at user mode need be fixed */
34 return NtGdiPtInRegion(hrgn
,x
,y
);
42 RectInRegion(HRGN hrgn
,
45 /* FIXME some stuff at user mode need be fixed */
46 return NtGdiRectInRegion(hrgn
, (LPRECT
) prcl
);
57 /* FIXME Sharememory */
58 return NtGdiRestoreDC(hdc
, iLevel
);
68 /* FIXME Sharememory */
69 return NtGdiSaveDC(hdc
);
82 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
98 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
114 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
131 return NtGdiGetBoundsRect(hdc
,lprcBounds
,flags
& DCB_RESET
);
147 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
162 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
171 SetBoundsRect(HDC hdc
,
175 /* FIXME add check for validate the flags */
176 return NtGdiSetBoundsRect(hdc
, (LPRECT
)prc
, flags
);
190 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
207 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
225 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
239 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
257 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
273 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
283 GetEnhMetaFileHeader(
290 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
299 GetEnhMetaFilePaletteEntries(
306 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
324 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
341 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
351 PlayEnhMetaFileRecord(
354 CONST ENHMETARECORD
*a2
,
359 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
375 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
389 CONST METAFILEPICT
*a3
)
392 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
409 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_EMF
)
411 PLDC pLDC
= GdiGetLDC(hDC
);
414 SetLastError(ERROR_INVALID_HANDLE
);
417 if (pLDC
->iType
== LDC_EMFLDC
)
419 return EMFDRV_GdiComment( hDC
, bytes
, buffer
);
434 CONST COLORADJUSTMENT
*a1
438 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
452 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
467 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
482 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
497 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
509 ABORTPROC lpAbortProc
)
512 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
521 UnrealizeObject(HGDIOBJ hgdiobj
)
523 BOOL retValue
= TRUE
;
525 Win 2k Graphics API, Black Book. by coriolis.com
526 Page 62, Note that Steps 3, 5, and 6 are not required for Windows NT(tm)
527 and Windows 2000(tm).
529 Step 5. UnrealizeObject(hTrackBrush);
533 "Windows 2000/XP: If hgdiobj is a brush, UnrealizeObject does nothing,
534 and the function returns TRUE. Use SetBrushOrgEx to set the origin of
537 if (GDI_HANDLE_GET_TYPE(hgdiobj
) != GDI_OBJECT_TYPE_BRUSH
)
539 retValue
= NtGdiUnrealizeObject(hgdiobj
);
569 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
587 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
597 GetDeviceGammaRamp( HDC hdc
,
600 BOOL retValue
= FALSE
;
601 if (lpGammaRamp
== NULL
)
603 SetLastError(ERROR_INVALID_PARAMETER
);
607 retValue
= NtGdiGetDeviceGammaRamp(hdc
,lpGammaRamp
);
618 SetDeviceGammaRamp(HDC hdc
,
621 BOOL retValue
= FALSE
;
625 retValue
= NtGdiSetDeviceGammaRamp(hdc
, lpGammaRamp
);
629 SetLastError(ERROR_INVALID_PARAMETER
);
648 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
665 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
680 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
690 wglCreateLayerContext(
696 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
711 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
721 wglGetCurrentContext(VOID
)
724 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
734 wglGetCurrentDC(VOID
)
737 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
752 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
768 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
784 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
794 wglDescribeLayerPlane(
799 LPLAYERPLANEDESCRIPTOR a4
803 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
813 wglSetLayerPaletteEntries(
822 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
832 wglGetLayerPaletteEntries(
841 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
851 wglRealizeLayerPalette(
858 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
874 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
879 /* === AFTER THIS POINT I GUESS... =========
880 * (based on stack size in Norlander's .def)
881 * === WHERE ARE THEY DEFINED? =============
889 IsValidEnhMetaRecord(
895 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
905 IsValidEnhMetaRecordOffExt(
913 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
934 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
953 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
962 AddFontMemResourceEx(
970 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
979 AddFontResourceTracking(
985 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
996 ClearBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
999 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1008 ClearBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1011 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1020 ColorCorrectPalette(HDC hDC
,HPALETTE hPalette
,DWORD dwFirstEntry
,DWORD dwNumOfEntries
)
1023 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1032 EndFormPage(HDC hdc
)
1035 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1044 GdiArtificialDecrementDriver(LPWSTR pDriverName
,BOOL unknown
)
1047 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1056 GdiCleanCacheDC(HDC hdc
)
1059 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1068 GdiConvertAndCheckDC(HDC hdc
)
1071 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1080 GdiConvertEnhMetaFile(HENHMETAFILE hmf
)
1083 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1092 GdiDrawStream(HDC dc
, ULONG l
, VOID
*v
)
1095 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1104 GdiIsMetaFileDC(HDC hdc
)
1107 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1116 GdiIsMetaPrintDC(HDC hdc
)
1119 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1128 GdiIsPlayMetafileDC(HDC hdc
)
1131 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1140 GdiValidateHandle(HGDIOBJ hobj
)
1143 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1152 GetBitmapAttributes(HBITMAP hbm
)
1155 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1164 GetBrushAttributes(HBRUSH hbr
)
1167 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1176 GetEUDCTimeStamp(VOID
)
1178 return NtGdiGetEudcTimeStampEx(NULL
,0,TRUE
);
1186 GetFontAssocStatus(HDC hdc
)
1192 retValue
= NtGdiQueryFontAssocInfo(hdc
);
1203 GetTextExtentExPointWPri(HDC hdc
,
1211 return NtGdiGetTextExtentExW(hdc
,lpwsz
,cwc
,dxMax
,pcCh
,pdxOut
,psize
,0);
1219 QueryFontAssocStatus(VOID
)
1222 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1231 RemoveFontMemResourceEx(HANDLE fh
)
1237 retValue
= NtGdiRemoveFontMemResourceEx(fh
);
1241 SetLastError(ERROR_INVALID_PARAMETER
);
1251 RemoveFontResourceTracking(LPCSTR lpString
,int unknown
)
1254 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1263 SetBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
1266 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1275 SetBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1278 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1287 StartFormPage(HDC hdc
)
1289 return StartPage(hdc
);
1297 UnloadNetworkFonts(DWORD unknown
)
1300 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1308 GdiRealizationInfo(HDC hdc
,
1309 PREALIZATION_INFO pri
)
1311 // ATM we do not support local font data and Language Pack.
1312 return NtGdiGetRealizationInfo(hdc
, pri
, (HFONT
) NULL
);
1321 EXTTEXTMETRIC
*petm
)
1323 BOOL Ret
= NtGdiGetETM(hdc
, petm
);
1326 petm
->emKernPairs
= GetKerningPairsA(hdc
, 0, 0);
1336 Escape(HDC hdc
, INT nEscape
, INT cbInput
, LPCSTR lpvInData
, LPVOID lpvOutData
)
1338 int retValue
= SP_ERROR
;
1339 HGDIOBJ hObject
= hdc
;
1341 LPVOID pUserData
= NULL
;
1343 Type
= GDI_HANDLE_GET_TYPE(hObject
);
1345 if (Type
== GDI_OBJECT_TYPE_METADC
)
1347 /* FIXME we do not support metafile */
1349 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1356 /* Note Winodws check see if the handle have any user data for ABORTDOC command
1357 * ReactOS copy this behavior to be compatible with windows 2003
1359 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1360 (pUserData
== NULL
) )
1362 GdiSetLastError(ERROR_INVALID_HANDLE
);
1367 retValue
= AbortDoc(hdc
);
1374 /* Note 1: DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE is outdated and been replace with other api */
1375 /* Note 2: Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1376 * ReactOS copy this behavior to be compatible with windows 2003
1378 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1379 (pUserData
== NULL
) )
1381 GdiSetLastError(ERROR_INVALID_HANDLE
);
1387 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1388 * ReactOS copy this behavior to be compatible with windows 2003
1390 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1391 (pUserData
== NULL
) )
1393 GdiSetLastError(ERROR_INVALID_HANDLE
);
1396 retValue
= SetAbortProc(hdc
, (ABORTPROC
)lpvInData
);
1400 retValue
= GetSystemPaletteEntries(hdc
, (UINT
)*lpvInData
, 1, (LPPALETTEENTRY
)lpvOutData
);
1403 retValue
= SP_ERROR
;
1408 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1409 * ReactOS copy this behavior to be compatible with windows 2003
1411 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1412 (pUserData
== NULL
) )
1414 GdiSetLastError(ERROR_INVALID_HANDLE
);
1417 retValue
= EndDoc(hdc
);
1421 case GETSCALINGFACTOR
:
1422 /* Note GETSCALINGFACTOR is outdated have been replace by GetDeviceCaps */
1423 if ( Type
== GDI_OBJECT_TYPE_DC
)
1427 PPOINT ptr
= (PPOINT
) lpvOutData
;
1435 case GETEXTENDEDTEXTMETRICS
:
1436 retValue
= (int) GetETM( hdc
, (EXTTEXTMETRIC
*) lpvOutData
) != 0;
1441 DOCINFOA
*pUserDatalpdi
;
1444 /* Note : Winodws check see if the handle have any user data for STARTDOC command
1445 * ReactOS copy this behavior to be compatible with windows 2003
1447 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserDatalpdi
)) ||
1448 (pUserData
== NULL
) )
1450 GdiSetLastError(ERROR_INVALID_HANDLE
);
1454 lpdi
.cbSize
= sizeof(DOCINFOA
);
1456 /* NOTE lpszOutput will be store in handle userdata */
1457 lpdi
.lpszOutput
= 0;
1459 lpdi
.lpszDatatype
= 0;
1461 lpdi
.lpszDocName
= lpvInData
;
1463 /* NOTE : doc for StartDocA/W at msdn http://msdn2.microsoft.com/en-us/library/ms535793(VS.85).aspx */
1464 retValue
= StartDocA(hdc
, &lpdi
);
1466 /* StartDocA fail */
1469 /* check see if outbuffer contain any data, if it does abort */
1470 if ( (pUserDatalpdi
->lpszOutput
!= 0) &&
1471 ( (*(WCHAR
*)pUserDatalpdi
->lpszOutput
) != UNICODE_NULL
) )
1473 retValue
= SP_APPABORT
;
1477 retValue
= GetLastError();
1479 /* Translate StartDocA error code to STARTDOC error code
1480 * see msdn http://msdn2.microsoft.com/en-us/library/ms535472.aspx
1484 case ERROR_NOT_ENOUGH_MEMORY
:
1485 retValue
= SP_OUTOFMEMORY
;
1488 case ERROR_PRINT_CANCELLED
:
1489 retValue
= SP_USERABORT
;
1492 case ERROR_DISK_FULL
:
1493 retValue
= SP_OUTOFDISK
;
1497 retValue
= SP_ERROR
;
1510 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1522 GdiAddGlsRecord(HDC hdc
,
1528 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1537 GdiConvertMetaFilePict(HGLOBAL hMem
)
1540 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1549 GdiConvertToDevmodeW(DEVMODEA
*dmA
)
1552 WORD dmW_size
, dmA_size
;
1554 dmA_size
= dmA
->dmSize
;
1556 /* this is the minimal dmSize that XP accepts */
1557 if (dmA_size
< FIELD_OFFSET(DEVMODEA
, dmFields
))
1560 if (dmA_size
> sizeof(DEVMODEA
))
1561 dmA_size
= sizeof(DEVMODEA
);
1563 dmW_size
= dmA_size
+ CCHDEVICENAME
;
1564 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1565 dmW_size
+= CCHFORMNAME
;
1567 dmW
= HeapAlloc(GetProcessHeap(), 0, dmW_size
+ dmA
->dmDriverExtra
);
1568 if (!dmW
) return NULL
;
1570 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmDeviceName
, CCHDEVICENAME
,
1571 dmW
->dmDeviceName
, CCHDEVICENAME
);
1572 /* copy slightly more, to avoid long computations */
1573 memcpy(&dmW
->dmSpecVersion
, &dmA
->dmSpecVersion
, dmA_size
- CCHDEVICENAME
);
1575 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1577 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmFormName
, CCHFORMNAME
,
1578 dmW
->dmFormName
, CCHFORMNAME
);
1579 if (dmA_size
> FIELD_OFFSET(DEVMODEA
, dmLogPixels
))
1580 memcpy(&dmW
->dmLogPixels
, &dmA
->dmLogPixels
, dmA_size
- FIELD_OFFSET(DEVMODEA
, dmLogPixels
));
1583 if (dmA
->dmDriverExtra
)
1584 memcpy((char *)dmW
+ dmW_size
, (const char *)dmA
+ dmA_size
, dmA
->dmDriverExtra
);
1586 dmW
->dmSize
= dmW_size
;
1596 GdiCreateLocalEnhMetaFile(HENHMETAFILE hmo
)
1599 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1608 GdiCreateLocalMetaFilePict(HENHMETAFILE hmo
)
1611 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1621 GdiGetSpoolFileHandle(LPWSTR pwszPrinterName
,
1622 LPDEVMODEW pDevmode
,
1626 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1635 GdiDeleteSpoolFileHandle(HANDLE SpoolFileHandle
)
1638 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1647 GdiGetPageCount(HANDLE SpoolFileHandle
)
1650 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1659 GdiGetDC(HANDLE SpoolFileHandle
)
1662 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1671 GdiGetPageHandle(HANDLE SpoolFileHandle
,
1673 LPDWORD pdwPageType
)
1676 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1685 GdiStartDocEMF(HANDLE SpoolFileHandle
,
1689 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1698 GdiStartPageEMF(HANDLE SpoolFileHandle
)
1701 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1710 GdiPlayPageEMF(HANDLE SpoolFileHandle
,
1712 RECT
*prectDocument
,
1717 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1726 GdiEndPageEMF(HANDLE SpoolFileHandle
,
1727 DWORD dwOptimization
)
1730 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1739 GdiEndDocEMF(HANDLE SpoolFileHandle
)
1742 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1751 GdiGetDevmodeForPage(HANDLE SpoolFileHandle
,
1757 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1766 GdiResetDCEMF(HANDLE SpoolFileHandle
,
1770 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1780 CombineRgn(HRGN hDest
,
1785 /* FIXME some part should be done in user mode */
1786 return NtGdiCombineRgn(hDest
, hSrc1
, hSrc2
, CombineMode
);
1793 XLATEOBJ_iXlate(XLATEOBJ
*XlateObj
,
1797 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1806 XLATEOBJ_piVector(XLATEOBJ
*XlateObj
)
1808 return XlateObj
->pulXlate
;
1816 GdiPlayEMF(LPWSTR pwszPrinterName
,
1817 LPDEVMODEW pDevmode
,
1819 EMFPLAYPROC pfnEMFPlayFn
,
1824 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1835 GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle
,
1837 RECT
*prectDocument
)
1840 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1847 VOID WINAPI
GdiInitializeLanguagePack(DWORD InitParam
)
1850 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1859 ExcludeClipRect(IN HDC hdc
, IN INT xLeft
, IN INT yTop
, IN INT xRight
, IN INT yBottom
)
1861 /* FIXME some part need be done on user mode size */
1862 return NtGdiExcludeClipRect(hdc
, xLeft
, yTop
, xRight
, yBottom
);
1870 ExtSelectClipRgn( IN HDC hdc
, IN HRGN hrgn
, IN INT iMode
)
1872 /* FIXME some part need be done on user mode size */
1873 return NtGdiExtSelectClipRgn(hdc
,hrgn
, iMode
);
1883 IN PTRIVERTEX pVertex
,
1889 /* FIXME some part need be done in user mode */
1890 return NtGdiGradientFill(hdc
, pVertex
, nVertex
, pMesh
, nMesh
, ulMode
);
1899 GdiTransparentBlt(IN HDC hdcDst
,
1909 IN COLORREF TransColor
1912 /* FIXME some part need be done in user mode */
1913 return NtGdiTransparentBlt(hdcDst
, xDst
, yDst
, cxDst
, cyDst
, hdcSrc
, xSrc
, ySrc
, cxSrc
, cySrc
, TransColor
);
1926 /* FIXME figout the protypes, the HUMPD are a STRUCT or COM object */
1927 /* status contain some form of return value that being save, what it is I do not known */
1928 /* unsue seam have zero effect, what it is for I do not known */
1930 // ? return NtGdiSetPUMPDOBJ(humpd->0x10,TRUE, humpd, ?) <- blackbox, OpenRCE info, and api hooks for anylaysing;
1941 HBITMAP in_format_BitMap
,
1946 /* FIXME guessing the prototypes */
1949 * it have create a new bitmap with desired in format,
1950 * then convert it src_bitmap to new format
1951 * and return it as HBITMAP
1966 return NtGdiGetAppClipBox(hdc
, lprc
);
1975 GetFontData(HDC hdc
,
1985 return NtGdiGetFontData(hdc
, dwTable
, dwOffset
, lpvBuffer
, cbData
);
1995 GetRegionData(HRGN hrgn
,
1997 LPRGNDATA lpRgnData
)
2004 return NtGdiGetRegionData(hrgn
,nCount
,lpRgnData
);
2014 GetRgnBox(HRGN hrgn
,
2019 if (!GdiGetHandleUserData((HGDIOBJ
) hRgn
, GDI_OBJECT_TYPE_REGION
, (PVOID
) &Rgn_Attr
))
2020 return NtGdiGetRgnBox(hrgn
, prcOut
);
2021 if (Rgn_Attr
->Flags
== NULLREGION
)
2030 if (Rgn_Attr
->Flags
!= SIMPLEREGION
) return NtGdiGetRgnBox(hrgn
, prcOut
);
2031 *prcOut
= Rgn_Attr
->Rect
;
2033 return Rgn_Attr
->Flags
;
2035 return NtGdiGetRgnBox(hrgn
, prcOut
);
2045 OffsetRgn( HRGN hrgn
,
2049 /* FIXME some part are done in user mode */
2050 return NtGdiOffsetRgn(hrgn
,nXOffset
,nYOffset
);
2058 IntersectClipRect(HDC hdc
,
2065 // Handle something other than a normal dc object.
2066 if (GDI_HANDLE_GET_TYPE(hdc
) != GDI_OBJECT_TYPE_DC
)
2068 if (GDI_HANDLE_GET_TYPE(hdc
) == GDI_OBJECT_TYPE_METADC
)
2069 return MFDRV_IntersectClipRect( hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2072 PLDC pLDC
= GdiGetLDC(hdc
);
2075 if (pLDC
->iType
!= LDC_EMFLDC
|| EMFDRV_IntersectClipRect( hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
))
2076 return NtGdiIntersectClipRect(hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2079 SetLastError(ERROR_INVALID_HANDLE
);
2084 return NtGdiIntersectClipRect(hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2092 OffsetClipRgn(HDC hdc
,
2097 // Handle something other than a normal dc object.
2098 if (GDI_HANDLE_GET_TYPE(hdc
) != GDI_OBJECT_TYPE_DC
)
2100 if (GDI_HANDLE_GET_TYPE(hdc
) == GDI_OBJECT_TYPE_METADC
)
2101 return MFDRV_OffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2104 PLDC pLDC
= GdiGetLDC(hdc
);
2107 SetLastError(ERROR_INVALID_HANDLE
);
2110 if (pLDC
->iType
== LDC_EMFLDC
&& !EMFDRV_OffsetClipRgn( hdc
, nXOffset
, nYOffset
))
2112 return NtGdiOffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2116 return NtGdiOffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2122 NamedEscape(HDC hdc
,
2130 /* FIXME metadc, metadc are done most in user mode, and we do not support it
2131 * Windows 2000/XP/Vista ignore the current hdc, that are being pass and always set hdc to NULL
2132 * when it calls to NtGdiExtEscape from NamedEscape
2134 return NtGdiExtEscape(NULL
,pDriver
,wcslen(pDriver
),iEsc
,cjIn
,pjIn
,cjOut
,pjOut
);
2143 /* FIXME wrong protypes, it is a fastcall api */
2146 cGetTTFFromFOT(DWORD x1
,DWORD x2
,DWORD x3
, DWORD x4
, DWORD x5
, DWORD x6
, DWORD x7
)
2149 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);