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
)
1106 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_DC
)
1108 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_METADC
)
1112 PLDC pLDC
= GdiGetLDC(hDC
);
1115 SetLastError(ERROR_INVALID_HANDLE
);
1118 if ( pLDC
->iType
== LDC_EMFLDC
) return TRUE
;
1129 GdiIsMetaPrintDC(HDC hDC
)
1132 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_DC
)
1134 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_METADC
)
1138 PLDC pLDC
= GdiGetLDC(hDC
);
1141 SetLastError(ERROR_INVALID_HANDLE
);
1144 if ( pLDC
->Flags
& LDC_META_PRINT
) return TRUE
;
1155 GdiIsPlayMetafileDC(HDC hDC
)
1160 GdiGetHandleUserData((HGDIOBJ
) hDC
, GDI_OBJECT_TYPE_DC
, (PVOID
) &Dc_Attr
);
1163 pLDC
= Dc_Attr
->pvLDC
;
1166 if ( pLDC
->Flags
& LDC_PLAY_MFDC
) return TRUE
;
1177 GdiValidateHandle(HGDIOBJ hobj
)
1180 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1189 GetBitmapAttributes(HBITMAP hbm
)
1192 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1201 GetBrushAttributes(HBRUSH hbr
)
1204 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1213 GetEUDCTimeStamp(VOID
)
1215 return NtGdiGetEudcTimeStampEx(NULL
,0,TRUE
);
1223 GetFontAssocStatus(HDC hdc
)
1229 retValue
= NtGdiQueryFontAssocInfo(hdc
);
1240 GetTextExtentExPointWPri(HDC hdc
,
1248 return NtGdiGetTextExtentExW(hdc
,lpwsz
,cwc
,dxMax
,pcCh
,pdxOut
,psize
,0);
1256 QueryFontAssocStatus(VOID
)
1259 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1268 RemoveFontMemResourceEx(HANDLE fh
)
1274 retValue
= NtGdiRemoveFontMemResourceEx(fh
);
1278 SetLastError(ERROR_INVALID_PARAMETER
);
1288 RemoveFontResourceTracking(LPCSTR lpString
,int unknown
)
1291 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1300 SetBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
1303 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1312 SetBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1315 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1324 StartFormPage(HDC hdc
)
1326 return StartPage(hdc
);
1334 UnloadNetworkFonts(DWORD unknown
)
1337 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1345 GdiRealizationInfo(HDC hdc
,
1346 PREALIZATION_INFO pri
)
1348 // ATM we do not support local font data and Language Pack.
1349 return NtGdiGetRealizationInfo(hdc
, pri
, (HFONT
) NULL
);
1358 EXTTEXTMETRIC
*petm
)
1360 BOOL Ret
= NtGdiGetETM(hdc
, petm
);
1363 petm
->emKernPairs
= GetKerningPairsA(hdc
, 0, 0);
1373 Escape(HDC hdc
, INT nEscape
, INT cbInput
, LPCSTR lpvInData
, LPVOID lpvOutData
)
1375 int retValue
= SP_ERROR
;
1376 HGDIOBJ hObject
= hdc
;
1378 LPVOID pUserData
= NULL
;
1380 Type
= GDI_HANDLE_GET_TYPE(hObject
);
1382 if (Type
== GDI_OBJECT_TYPE_METADC
)
1384 /* FIXME we do not support metafile */
1386 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1393 /* Note Winodws check see if the handle have any user data for ABORTDOC command
1394 * ReactOS copy this behavior to be compatible with windows 2003
1396 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1397 (pUserData
== NULL
) )
1399 GdiSetLastError(ERROR_INVALID_HANDLE
);
1404 retValue
= AbortDoc(hdc
);
1411 /* Note 1: DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE is outdated and been replace with other api */
1412 /* Note 2: Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1413 * ReactOS copy this behavior to be compatible with windows 2003
1415 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1416 (pUserData
== NULL
) )
1418 GdiSetLastError(ERROR_INVALID_HANDLE
);
1424 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1425 * ReactOS copy this behavior to be compatible with windows 2003
1427 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1428 (pUserData
== NULL
) )
1430 GdiSetLastError(ERROR_INVALID_HANDLE
);
1433 retValue
= SetAbortProc(hdc
, (ABORTPROC
)lpvInData
);
1437 retValue
= GetSystemPaletteEntries(hdc
, (UINT
)*lpvInData
, 1, (LPPALETTEENTRY
)lpvOutData
);
1440 retValue
= SP_ERROR
;
1445 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1446 * ReactOS copy this behavior to be compatible with windows 2003
1448 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1449 (pUserData
== NULL
) )
1451 GdiSetLastError(ERROR_INVALID_HANDLE
);
1454 retValue
= EndDoc(hdc
);
1458 case GETSCALINGFACTOR
:
1459 /* Note GETSCALINGFACTOR is outdated have been replace by GetDeviceCaps */
1460 if ( Type
== GDI_OBJECT_TYPE_DC
)
1464 PPOINT ptr
= (PPOINT
) lpvOutData
;
1472 case GETEXTENDEDTEXTMETRICS
:
1473 retValue
= (int) GetETM( hdc
, (EXTTEXTMETRIC
*) lpvOutData
) != 0;
1478 DOCINFOA
*pUserDatalpdi
;
1481 /* Note : Winodws check see if the handle have any user data for STARTDOC command
1482 * ReactOS copy this behavior to be compatible with windows 2003
1484 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserDatalpdi
)) ||
1485 (pUserData
== NULL
) )
1487 GdiSetLastError(ERROR_INVALID_HANDLE
);
1491 lpdi
.cbSize
= sizeof(DOCINFOA
);
1493 /* NOTE lpszOutput will be store in handle userdata */
1494 lpdi
.lpszOutput
= 0;
1496 lpdi
.lpszDatatype
= 0;
1498 lpdi
.lpszDocName
= lpvInData
;
1500 /* NOTE : doc for StartDocA/W at msdn http://msdn2.microsoft.com/en-us/library/ms535793(VS.85).aspx */
1501 retValue
= StartDocA(hdc
, &lpdi
);
1503 /* StartDocA fail */
1506 /* check see if outbuffer contain any data, if it does abort */
1507 if ( (pUserDatalpdi
->lpszOutput
!= 0) &&
1508 ( (*(WCHAR
*)pUserDatalpdi
->lpszOutput
) != UNICODE_NULL
) )
1510 retValue
= SP_APPABORT
;
1514 retValue
= GetLastError();
1516 /* Translate StartDocA error code to STARTDOC error code
1517 * see msdn http://msdn2.microsoft.com/en-us/library/ms535472.aspx
1521 case ERROR_NOT_ENOUGH_MEMORY
:
1522 retValue
= SP_OUTOFMEMORY
;
1525 case ERROR_PRINT_CANCELLED
:
1526 retValue
= SP_USERABORT
;
1529 case ERROR_DISK_FULL
:
1530 retValue
= SP_OUTOFDISK
;
1534 retValue
= SP_ERROR
;
1547 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1559 GdiAddGlsRecord(HDC hdc
,
1565 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1574 GdiConvertMetaFilePict(HGLOBAL hMem
)
1577 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1586 GdiConvertToDevmodeW(DEVMODEA
*dmA
)
1589 WORD dmW_size
, dmA_size
;
1591 dmA_size
= dmA
->dmSize
;
1593 /* this is the minimal dmSize that XP accepts */
1594 if (dmA_size
< FIELD_OFFSET(DEVMODEA
, dmFields
))
1597 if (dmA_size
> sizeof(DEVMODEA
))
1598 dmA_size
= sizeof(DEVMODEA
);
1600 dmW_size
= dmA_size
+ CCHDEVICENAME
;
1601 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1602 dmW_size
+= CCHFORMNAME
;
1604 dmW
= HeapAlloc(GetProcessHeap(), 0, dmW_size
+ dmA
->dmDriverExtra
);
1605 if (!dmW
) return NULL
;
1607 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmDeviceName
, CCHDEVICENAME
,
1608 dmW
->dmDeviceName
, CCHDEVICENAME
);
1609 /* copy slightly more, to avoid long computations */
1610 memcpy(&dmW
->dmSpecVersion
, &dmA
->dmSpecVersion
, dmA_size
- CCHDEVICENAME
);
1612 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1614 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmFormName
, CCHFORMNAME
,
1615 dmW
->dmFormName
, CCHFORMNAME
);
1616 if (dmA_size
> FIELD_OFFSET(DEVMODEA
, dmLogPixels
))
1617 memcpy(&dmW
->dmLogPixels
, &dmA
->dmLogPixels
, dmA_size
- FIELD_OFFSET(DEVMODEA
, dmLogPixels
));
1620 if (dmA
->dmDriverExtra
)
1621 memcpy((char *)dmW
+ dmW_size
, (const char *)dmA
+ dmA_size
, dmA
->dmDriverExtra
);
1623 dmW
->dmSize
= dmW_size
;
1633 GdiCreateLocalEnhMetaFile(HENHMETAFILE hmo
)
1636 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1645 GdiCreateLocalMetaFilePict(HENHMETAFILE hmo
)
1648 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1658 GdiGetSpoolFileHandle(LPWSTR pwszPrinterName
,
1659 LPDEVMODEW pDevmode
,
1663 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1672 GdiDeleteSpoolFileHandle(HANDLE SpoolFileHandle
)
1675 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1684 GdiGetPageCount(HANDLE SpoolFileHandle
)
1687 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1696 GdiGetDC(HANDLE SpoolFileHandle
)
1699 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1708 GdiGetPageHandle(HANDLE SpoolFileHandle
,
1710 LPDWORD pdwPageType
)
1713 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1722 GdiStartDocEMF(HANDLE SpoolFileHandle
,
1726 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1735 GdiStartPageEMF(HANDLE SpoolFileHandle
)
1738 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1747 GdiPlayPageEMF(HANDLE SpoolFileHandle
,
1749 RECT
*prectDocument
,
1754 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1763 GdiEndPageEMF(HANDLE SpoolFileHandle
,
1764 DWORD dwOptimization
)
1767 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1776 GdiEndDocEMF(HANDLE SpoolFileHandle
)
1779 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1788 GdiGetDevmodeForPage(HANDLE SpoolFileHandle
,
1794 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1803 GdiResetDCEMF(HANDLE SpoolFileHandle
,
1807 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1817 CombineRgn(HRGN hDest
,
1822 /* FIXME some part should be done in user mode */
1823 return NtGdiCombineRgn(hDest
, hSrc1
, hSrc2
, CombineMode
);
1830 XLATEOBJ_iXlate(XLATEOBJ
*XlateObj
,
1834 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1843 XLATEOBJ_piVector(XLATEOBJ
*XlateObj
)
1845 return XlateObj
->pulXlate
;
1853 GdiPlayEMF(LPWSTR pwszPrinterName
,
1854 LPDEVMODEW pDevmode
,
1856 EMFPLAYPROC pfnEMFPlayFn
,
1861 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1872 GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle
,
1874 RECT
*prectDocument
)
1877 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1884 VOID WINAPI
GdiInitializeLanguagePack(DWORD InitParam
)
1887 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1896 ExcludeClipRect(IN HDC hdc
, IN INT xLeft
, IN INT yTop
, IN INT xRight
, IN INT yBottom
)
1898 /* FIXME some part need be done on user mode size */
1899 return NtGdiExcludeClipRect(hdc
, xLeft
, yTop
, xRight
, yBottom
);
1907 ExtSelectClipRgn( IN HDC hdc
, IN HRGN hrgn
, IN INT iMode
)
1909 /* FIXME some part need be done on user mode size */
1910 return NtGdiExtSelectClipRgn(hdc
,hrgn
, iMode
);
1920 IN PTRIVERTEX pVertex
,
1926 /* FIXME some part need be done in user mode */
1927 return NtGdiGradientFill(hdc
, pVertex
, nVertex
, pMesh
, nMesh
, ulMode
);
1936 GdiTransparentBlt(IN HDC hdcDst
,
1946 IN COLORREF TransColor
1949 /* FIXME some part need be done in user mode */
1950 return NtGdiTransparentBlt(hdcDst
, xDst
, yDst
, cxDst
, cyDst
, hdcSrc
, xSrc
, ySrc
, cxSrc
, cySrc
, TransColor
);
1963 /* FIXME figout the protypes, the HUMPD are a STRUCT or COM object */
1964 /* status contain some form of return value that being save, what it is I do not known */
1965 /* unsue seam have zero effect, what it is for I do not known */
1967 // ? return NtGdiSetPUMPDOBJ(humpd->0x10,TRUE, humpd, ?) <- blackbox, OpenRCE info, and api hooks for anylaysing;
1978 HBITMAP in_format_BitMap
,
1983 /* FIXME guessing the prototypes */
1986 * it have create a new bitmap with desired in format,
1987 * then convert it src_bitmap to new format
1988 * and return it as HBITMAP
2003 return NtGdiGetAppClipBox(hdc
, lprc
);
2012 GetFontData(HDC hdc
,
2022 return NtGdiGetFontData(hdc
, dwTable
, dwOffset
, lpvBuffer
, cbData
);
2032 GetRegionData(HRGN hrgn
,
2034 LPRGNDATA lpRgnData
)
2041 return NtGdiGetRegionData(hrgn
,nCount
,lpRgnData
);
2051 GetRgnBox(HRGN hrgn
,
2056 if (!GdiGetHandleUserData((HGDIOBJ
) hRgn
, GDI_OBJECT_TYPE_REGION
, (PVOID
) &Rgn_Attr
))
2057 return NtGdiGetRgnBox(hrgn
, prcOut
);
2058 if (Rgn_Attr
->Flags
== NULLREGION
)
2067 if (Rgn_Attr
->Flags
!= SIMPLEREGION
) return NtGdiGetRgnBox(hrgn
, prcOut
);
2068 *prcOut
= Rgn_Attr
->Rect
;
2070 return Rgn_Attr
->Flags
;
2072 return NtGdiGetRgnBox(hrgn
, prcOut
);
2082 OffsetRgn( HRGN hrgn
,
2086 /* FIXME some part are done in user mode */
2087 return NtGdiOffsetRgn(hrgn
,nXOffset
,nYOffset
);
2095 IntersectClipRect(HDC hdc
,
2102 // Handle something other than a normal dc object.
2103 if (GDI_HANDLE_GET_TYPE(hdc
) != GDI_OBJECT_TYPE_DC
)
2105 if (GDI_HANDLE_GET_TYPE(hdc
) == GDI_OBJECT_TYPE_METADC
)
2106 return MFDRV_IntersectClipRect( hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2109 PLDC pLDC
= GdiGetLDC(hdc
);
2112 if (pLDC
->iType
!= LDC_EMFLDC
|| EMFDRV_IntersectClipRect( hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
))
2113 return NtGdiIntersectClipRect(hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2116 SetLastError(ERROR_INVALID_HANDLE
);
2121 return NtGdiIntersectClipRect(hdc
, nLeftRect
, nTopRect
, nRightRect
, nBottomRect
);
2129 OffsetClipRgn(HDC hdc
,
2134 // Handle something other than a normal dc object.
2135 if (GDI_HANDLE_GET_TYPE(hdc
) != GDI_OBJECT_TYPE_DC
)
2137 if (GDI_HANDLE_GET_TYPE(hdc
) == GDI_OBJECT_TYPE_METADC
)
2138 return MFDRV_OffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2141 PLDC pLDC
= GdiGetLDC(hdc
);
2144 SetLastError(ERROR_INVALID_HANDLE
);
2147 if (pLDC
->iType
== LDC_EMFLDC
&& !EMFDRV_OffsetClipRgn( hdc
, nXOffset
, nYOffset
))
2149 return NtGdiOffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2153 return NtGdiOffsetClipRgn( hdc
, nXOffset
, nYOffset
);
2159 NamedEscape(HDC hdc
,
2167 /* FIXME metadc, metadc are done most in user mode, and we do not support it
2168 * Windows 2000/XP/Vista ignore the current hdc, that are being pass and always set hdc to NULL
2169 * when it calls to NtGdiExtEscape from NamedEscape
2171 return NtGdiExtEscape(NULL
,pDriver
,wcslen(pDriver
),iEsc
,cjIn
,pjIn
,cjOut
,pjOut
);
2180 /* FIXME wrong protypes, it is a fastcall api */
2183 cGetTTFFromFOT(DWORD x1
,DWORD x2
,DWORD x3
, DWORD x4
, DWORD x5
, DWORD x6
, DWORD x7
)
2186 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);