2 * dll/win32/gdi32/misc/stubs.c
6 * When you implement one of these functions,
7 * 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
29 /* FIXME Sharememory */
30 return NtGdiRestoreDC(hdc
, iLevel
);
40 /* FIXME Sharememory */
41 return NtGdiSaveDC(hdc
);
53 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_DC
&&
54 GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_METADC
)
56 PLDC pLDC
= GdiGetLDC(hDC
);
59 SetLastError(ERROR_INVALID_HANDLE
);
62 /* If a document has started set it to die. */
63 if (pLDC
->Flags
& LDC_INIT_DOCUMENT
) pLDC
->Flags
|= LDC_KILL_DOCUMENT
;
65 return NtGdiCancelDC(hDC
);
68 if (GdiGetHandleUserData((HGDIOBJ
) hDC
, GDI_OBJECT_TYPE_DC
, (PVOID
) &pDc_Attr
))
70 pDc_Attr
->ulDirty_
&= ~DC_PLAYMETAFILE
;
88 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_DC
)
89 return NtGdiDrawEscape(hDC
, nEscape
, cbInput
, (LPSTR
) lpszInData
);
91 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_METADC
)
93 PLDC pLDC
= GdiGetLDC(hDC
);
96 if (pLDC
->Flags
& LDC_META_PRINT
)
98 // if (nEscape != QUERYESCSUPPORT)
99 // return EMFDRV_WriteEscape(hDC, nEscape, cbInput, lpszInData, EMR_DRAWESCAPE);
101 return NtGdiDrawEscape(hDC
, nEscape
, cbInput
, (LPSTR
) lpszInData
);
104 SetLastError(ERROR_INVALID_HANDLE
);
117 GOBJENUMPROC lpObjectFunc
,
123 DWORD_PTR EndOfBuffer
;
129 Size
= sizeof(LOGBRUSH
);
133 Size
= sizeof(LOGPEN
);
137 SetLastError(ERROR_INVALID_PARAMETER
);
141 ObjectsCount
= NtGdiEnumObjects(hdc
, nObjectType
, 0, NULL
);
142 if (!ObjectsCount
) return 0;
144 Buffer
= HeapAlloc(GetProcessHeap(), 0, ObjectsCount
* Size
);
147 SetLastError(ERROR_NOT_ENOUGH_MEMORY
);
151 if (!NtGdiEnumObjects(hdc
, nObjectType
, ObjectsCount
* Size
, Buffer
))
153 HeapFree(GetProcessHeap(), 0, Buffer
);
157 EndOfBuffer
= (DWORD_PTR
)Buffer
+ (ObjectsCount
* Size
);
158 while ((DWORD_PTR
)Buffer
< EndOfBuffer
)
160 Result
= lpObjectFunc(Buffer
, lParam
);
162 Buffer
= (PVOID
)((DWORD_PTR
)Buffer
+ Size
);
165 HeapFree(GetProcessHeap(), 0, Buffer
);
180 return NtGdiGetBoundsRect(hdc
,lprcBounds
,flags
& DCB_RESET
);
195 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
210 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
219 SetBoundsRect(HDC hdc
,
223 /* FIXME add check for validate the flags */
224 return NtGdiSetBoundsRect(hdc
, (LPRECT
)prc
, flags
);
237 const METAHEADER
*mh_in
= (const METAHEADER
*)lpData
;
239 if (size
& 1) return 0;
241 if (!size
|| mh_in
->mtType
!= METAFILE_MEMORY
|| mh_in
->mtVersion
!= 0x300 ||
242 mh_in
->mtHeaderSize
!= sizeof(METAHEADER
) / 2)
244 SetLastError(ERROR_INVALID_DATA
);
249 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
266 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
284 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
298 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
310 ENHMFENUMPROC callback
,
317 SetLastError(ERROR_INVALID_PARAMETER
);
322 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
338 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
348 GetEnhMetaFileHeader(
355 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
364 GetEnhMetaFilePaletteEntries(
371 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
389 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
406 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
416 PlayEnhMetaFileRecord(
419 CONST ENHMETARECORD
*a2
,
424 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
440 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
454 CONST METAFILEPICT
*a3
)
457 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
474 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_EMF
)
476 PLDC pLDC
= GdiGetLDC(hDC
);
479 SetLastError(ERROR_INVALID_HANDLE
);
482 if (pLDC
->iType
== LDC_EMFLDC
)
484 return EMFDRV_GdiComment( hDC
, bytes
, buffer
);
499 CONST COLORADJUSTMENT
*a1
503 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
512 UnrealizeObject(HGDIOBJ hgdiobj
)
514 BOOL retValue
= TRUE
;
516 Win 2k Graphics API, Black Book. by coriolis.com
517 Page 62, Note that Steps 3, 5, and 6 are not required for Windows NT(tm)
518 and Windows 2000(tm).
520 Step 5. UnrealizeObject(hTrackBrush);
524 "Windows 2000/XP: If hgdiobj is a brush, UnrealizeObject does nothing,
525 and the function returns TRUE. Use SetBrushOrgEx to set the origin of
528 if (GDI_HANDLE_GET_TYPE(hgdiobj
) != GDI_OBJECT_TYPE_BRUSH
)
530 retValue
= NtGdiUnrealizeObject(hgdiobj
);
559 /*FIXME: Assume that ICM is always off, and cannot be turned on */
560 if (iEnableICM
== ICM_OFF
) return ICM_OFF
;
561 if (iEnableICM
== ICM_ON
) return 0;
562 if (iEnableICM
== ICM_QUERY
) return ICM_OFF
;
565 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
583 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
593 GetDeviceGammaRamp( HDC hdc
,
596 BOOL retValue
= FALSE
;
597 if (lpGammaRamp
== NULL
)
599 SetLastError(ERROR_INVALID_PARAMETER
);
603 retValue
= NtGdiGetDeviceGammaRamp(hdc
,lpGammaRamp
);
614 SetDeviceGammaRamp(HDC hdc
,
617 BOOL retValue
= FALSE
;
621 retValue
= NtGdiSetDeviceGammaRamp(hdc
, lpGammaRamp
);
625 SetLastError(ERROR_INVALID_PARAMETER
);
644 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
648 /* === AFTER THIS POINT I GUESS... =========
649 * (based on stack size in Norlander's .def)
650 * === WHERE ARE THEY DEFINED? =============
658 IsValidEnhMetaRecord(
664 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
674 IsValidEnhMetaRecordOffExt(
682 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
703 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
722 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
731 AddFontMemResourceEx(
738 if ( pbFont
&& cbFont
&& pcFonts
)
740 return NtGdiAddFontMemResourceEx(pbFont
, cbFont
, NULL
, 0, pcFonts
);
742 SetLastError(ERROR_INVALID_PARAMETER
);
751 AddFontResourceTracking(
757 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
768 ClearBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
771 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
780 ClearBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
783 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
792 ColorCorrectPalette(HDC hDC
,HPALETTE hPalette
,DWORD dwFirstEntry
,DWORD dwNumOfEntries
)
795 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
804 GdiArtificialDecrementDriver(LPWSTR pDriverName
,BOOL unknown
)
807 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
816 GdiCleanCacheDC(HDC hdc
)
818 if (GDI_HANDLE_GET_TYPE(hdc
) == GDILoObjType_LO_DC_TYPE
)
820 SetLastError(ERROR_INVALID_HANDLE
);
829 GdiConvertAndCheckDC(HDC hdc
)
832 ULONG hType
= GDI_HANDLE_GET_TYPE(hdc
);
833 if (hType
== GDILoObjType_LO_DC_TYPE
|| hType
== GDILoObjType_LO_METADC16_TYPE
)
835 pldc
= GdiGetLDC(hdc
);
838 if (pldc
->Flags
& LDC_SAPCALLBACK
) GdiSAPCallback(pldc
);
839 if (pldc
->Flags
& LDC_KILL_DOCUMENT
) return NULL
;
840 if (pldc
->Flags
& LDC_STARTPAGE
) StartPage(hdc
);
843 SetLastError(ERROR_INVALID_HANDLE
);
852 GdiConvertEnhMetaFile(HENHMETAFILE hmf
)
855 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
864 GdiDrawStream(HDC dc
, ULONG l
, VOID
*v
) // See Bug 4784
867 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
876 GdiIsMetaFileDC(HDC hDC
)
878 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_DC
)
880 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_METADC
)
884 PLDC pLDC
= GdiGetLDC(hDC
);
887 SetLastError(ERROR_INVALID_HANDLE
);
890 if ( pLDC
->iType
== LDC_EMFLDC
) return TRUE
;
901 GdiIsMetaPrintDC(HDC hDC
)
904 if (GDI_HANDLE_GET_TYPE(hDC
) != GDI_OBJECT_TYPE_DC
)
906 if (GDI_HANDLE_GET_TYPE(hDC
) == GDI_OBJECT_TYPE_METADC
)
910 PLDC pLDC
= GdiGetLDC(hDC
);
913 SetLastError(ERROR_INVALID_HANDLE
);
916 if ( pLDC
->Flags
& LDC_META_PRINT
) return TRUE
;
927 GdiIsPlayMetafileDC(HDC hDC
)
929 PLDC pLDC
= GdiGetLDC(hDC
);
932 if ( pLDC
->Flags
& LDC_PLAY_MFDC
) return TRUE
;
942 GdiValidateHandle(HGDIOBJ hobj
)
944 PGDI_TABLE_ENTRY Entry
= GdiHandleTable
+ GDI_HANDLE_GET_INDEX(hobj
);
945 if ( (Entry
->Type
& GDI_ENTRY_BASETYPE_MASK
) != 0 &&
946 ( (Entry
->Type
<< GDI_ENTRY_UPPER_SHIFT
) & GDI_HANDLE_TYPE_MASK
) ==
947 GDI_HANDLE_GET_TYPE(hobj
) )
949 HANDLE pid
= (HANDLE
)((ULONG_PTR
)Entry
->ProcessId
& ~0x1);
950 if(pid
== NULL
|| pid
== CurrentProcessId
)
964 GetBitmapAttributes(HBITMAP hbm
)
967 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
976 GetBrushAttributes(HBRUSH hbr
)
979 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
988 GetEUDCTimeStamp(VOID
)
990 return NtGdiGetEudcTimeStampEx(NULL
,0,TRUE
);
998 GetFontAssocStatus(HDC hdc
)
1004 retValue
= NtGdiQueryFontAssocInfo(hdc
);
1015 GetTextExtentExPointWPri(HDC hdc
,
1023 return NtGdiGetTextExtentExW(hdc
,lpwsz
,cwc
,dxMax
,pcCh
,pdxOut
,psize
,0);
1031 QueryFontAssocStatus(VOID
)
1034 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1043 RemoveFontMemResourceEx(HANDLE fh
)
1047 return NtGdiRemoveFontMemResourceEx(fh
);
1049 SetLastError(ERROR_INVALID_PARAMETER
);
1058 RemoveFontResourceTracking(LPCSTR lpString
,int unknown
)
1061 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1070 SetBitmapAttributes(HBITMAP hbm
, DWORD dwFlags
)
1073 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1082 SetBrushAttributes(HBRUSH hbm
, DWORD dwFlags
)
1085 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1094 StartFormPage(HDC hdc
)
1096 return StartPage(hdc
);
1104 UnloadNetworkFonts(DWORD unknown
)
1107 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1115 GdiRealizationInfo(HDC hdc
,
1116 PREALIZATION_INFO pri
)
1118 // ATM we do not support local font data and Language Pack.
1119 return NtGdiGetRealizationInfo(hdc
, pri
, (HFONT
) NULL
);
1128 EXTTEXTMETRIC
*petm
)
1130 BOOL Ret
= NtGdiGetETM(hdc
, petm
);
1133 petm
->emKernPairs
= GetKerningPairsA(hdc
, 0, 0);
1143 Escape(HDC hdc
, INT nEscape
, INT cbInput
, LPCSTR lpvInData
, LPVOID lpvOutData
)
1145 int retValue
= SP_ERROR
;
1146 HGDIOBJ hObject
= hdc
;
1148 LPVOID pUserData
= NULL
;
1150 Type
= GDI_HANDLE_GET_TYPE(hObject
);
1152 if (Type
== GDI_OBJECT_TYPE_METADC
)
1154 /* FIXME we do not support metafile */
1156 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1163 /* Note Winodws check see if the handle have any user data for ABORTDOC command
1164 * ReactOS copy this behavior to be compatible with windows 2003
1166 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1167 (pUserData
== NULL
) )
1169 GdiSetLastError(ERROR_INVALID_HANDLE
);
1174 retValue
= AbortDoc(hdc
);
1181 /* Note 1: DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE is outdated and been replace with other api */
1182 /* Note 2: Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1183 * ReactOS copy this behavior to be compatible with windows 2003
1185 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1186 (pUserData
== NULL
) )
1188 GdiSetLastError(ERROR_INVALID_HANDLE
);
1194 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1195 * ReactOS copy this behavior to be compatible with windows 2003
1197 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1198 (pUserData
== NULL
) )
1200 GdiSetLastError(ERROR_INVALID_HANDLE
);
1203 retValue
= SetAbortProc(hdc
, (ABORTPROC
)lpvInData
);
1207 retValue
= GetSystemPaletteEntries(hdc
, (UINT
)*lpvInData
, 1, (LPPALETTEENTRY
)lpvOutData
);
1210 retValue
= SP_ERROR
;
1215 /* Note : Winodws check see if the handle have any user data for DRAFTMODE, FLUSHOUTPUT, SETCOLORTABLE command
1216 * ReactOS copy this behavior to be compatible with windows 2003
1218 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserData
)) ||
1219 (pUserData
== NULL
) )
1221 GdiSetLastError(ERROR_INVALID_HANDLE
);
1224 retValue
= EndDoc(hdc
);
1228 case GETSCALINGFACTOR
:
1229 /* Note GETSCALINGFACTOR is outdated have been replace by GetDeviceCaps */
1230 if ( Type
== GDI_OBJECT_TYPE_DC
)
1234 PPOINT ptr
= (PPOINT
) lpvOutData
;
1242 case GETEXTENDEDTEXTMETRICS
:
1243 retValue
= (int) GetETM( hdc
, (EXTTEXTMETRIC
*) lpvOutData
) != 0;
1248 DOCINFOA
*pUserDatalpdi
;
1251 /* Note : Winodws check see if the handle have any user data for STARTDOC command
1252 * ReactOS copy this behavior to be compatible with windows 2003
1254 if ( (!GdiGetHandleUserData(hObject
, (DWORD
)Type
, (PVOID
) &pUserDatalpdi
)) ||
1255 (pUserData
== NULL
) )
1257 GdiSetLastError(ERROR_INVALID_HANDLE
);
1261 lpdi
.cbSize
= sizeof(DOCINFOA
);
1263 /* NOTE lpszOutput will be store in handle userdata */
1264 lpdi
.lpszOutput
= 0;
1266 lpdi
.lpszDatatype
= 0;
1268 lpdi
.lpszDocName
= lpvInData
;
1270 /* NOTE : doc for StartDocA/W at msdn http://msdn2.microsoft.com/en-us/library/ms535793(VS.85).aspx */
1271 retValue
= StartDocA(hdc
, &lpdi
);
1273 /* StartDocA fail */
1276 /* check see if outbuffer contain any data, if it does abort */
1277 if ( (pUserDatalpdi
->lpszOutput
!= 0) &&
1278 ( (*(WCHAR
*)pUserDatalpdi
->lpszOutput
) != UNICODE_NULL
) )
1280 retValue
= SP_APPABORT
;
1284 retValue
= GetLastError();
1286 /* Translate StartDocA error code to STARTDOC error code
1287 * see msdn http://msdn2.microsoft.com/en-us/library/ms535472.aspx
1291 case ERROR_NOT_ENOUGH_MEMORY
:
1292 retValue
= SP_OUTOFMEMORY
;
1295 case ERROR_PRINT_CANCELLED
:
1296 retValue
= SP_USERABORT
;
1299 case ERROR_DISK_FULL
:
1300 retValue
= SP_OUTOFDISK
;
1304 retValue
= SP_ERROR
;
1317 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1329 GdiAddGlsRecord(HDC hdc
,
1335 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1344 GdiConvertMetaFilePict(HGLOBAL hMem
)
1347 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1356 GdiConvertToDevmodeW(DEVMODEA
*dmA
)
1359 WORD dmW_size
, dmA_size
;
1361 dmA_size
= dmA
->dmSize
;
1363 /* this is the minimal dmSize that XP accepts */
1364 if (dmA_size
< FIELD_OFFSET(DEVMODEA
, dmFields
))
1367 if (dmA_size
> sizeof(DEVMODEA
))
1368 dmA_size
= sizeof(DEVMODEA
);
1370 dmW_size
= dmA_size
+ CCHDEVICENAME
;
1371 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1372 dmW_size
+= CCHFORMNAME
;
1374 dmW
= HeapAlloc(GetProcessHeap(), 0, dmW_size
+ dmA
->dmDriverExtra
);
1375 if (!dmW
) return NULL
;
1377 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmDeviceName
, CCHDEVICENAME
,
1378 dmW
->dmDeviceName
, CCHDEVICENAME
);
1379 /* copy slightly more, to avoid long computations */
1380 memcpy(&dmW
->dmSpecVersion
, &dmA
->dmSpecVersion
, dmA_size
- CCHDEVICENAME
);
1382 if (dmA_size
>= FIELD_OFFSET(DEVMODEA
, dmFormName
) + CCHFORMNAME
)
1384 MultiByteToWideChar(CP_ACP
, 0, (const char*) dmA
->dmFormName
, CCHFORMNAME
,
1385 dmW
->dmFormName
, CCHFORMNAME
);
1386 if (dmA_size
> FIELD_OFFSET(DEVMODEA
, dmLogPixels
))
1387 memcpy(&dmW
->dmLogPixels
, &dmA
->dmLogPixels
, dmA_size
- FIELD_OFFSET(DEVMODEA
, dmLogPixels
));
1390 if (dmA
->dmDriverExtra
)
1391 memcpy((char *)dmW
+ dmW_size
, (const char *)dmA
+ dmA_size
, dmA
->dmDriverExtra
);
1393 dmW
->dmSize
= dmW_size
;
1403 GdiCreateLocalEnhMetaFile(HENHMETAFILE hmo
)
1406 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1415 GdiCreateLocalMetaFilePict(HENHMETAFILE hmo
)
1418 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1427 GdiGetDC(HANDLE SpoolFileHandle
)
1430 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1439 GdiGetPageHandle(HANDLE SpoolFileHandle
,
1441 LPDWORD pdwPageType
)
1444 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1453 GdiStartDocEMF(HANDLE SpoolFileHandle
,
1457 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1466 GdiStartPageEMF(HANDLE SpoolFileHandle
)
1469 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1478 GdiPlayPageEMF(HANDLE SpoolFileHandle
,
1480 RECT
*prectDocument
,
1485 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1494 GdiEndPageEMF(HANDLE SpoolFileHandle
,
1495 DWORD dwOptimization
)
1498 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1507 GdiEndDocEMF(HANDLE SpoolFileHandle
)
1510 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1519 GdiGetDevmodeForPage(HANDLE SpoolFileHandle
,
1525 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1534 GdiResetDCEMF(HANDLE SpoolFileHandle
,
1538 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1547 XLATEOBJ_piVector(XLATEOBJ
*XlateObj
)
1549 return XlateObj
->pulXlate
;
1557 GdiPlayEMF(LPWSTR pwszPrinterName
,
1558 LPDEVMODEW pDevmode
,
1560 EMFPLAYPROC pfnEMFPlayFn
,
1565 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1574 GdiPlayPrivatePageEMF(HANDLE SpoolFileHandle
,
1576 RECT
*prectDocument
)
1579 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1586 VOID WINAPI
GdiInitializeLanguagePack(DWORD InitParam
)
1589 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);
1599 IN PTRIVERTEX pVertex
,
1605 /* FIXME some part need be done in user mode */
1606 return NtGdiGradientFill(hdc
, pVertex
, nVertex
, pMesh
, nMesh
, ulMode
);
1614 GdiTransparentBlt(IN HDC hdcDst
,
1624 IN COLORREF TransColor
1627 /* FIXME some part need be done in user mode */
1628 return NtGdiTransparentBlt(hdcDst
, xDst
, yDst
, cxDst
, cyDst
, hdcSrc
, xSrc
, ySrc
, cxSrc
, cySrc
, TransColor
);
1641 /* FIXME figout the protypes, the HUMPD are a STRUCT or COM object */
1642 /* status contain some form of return value that being save, what it is I do not known */
1643 /* unsue seam have zero effect, what it is for I do not known */
1645 // ? return NtGdiSetPUMPDOBJ(humpd->0x10,TRUE, humpd, ?) <- blackbox, OpenRCE info, and api hooks for anylaysing;
1656 HBITMAP in_format_BitMap
,
1661 /* FIXME guessing the prototypes */
1664 * it have create a new bitmap with desired in format,
1665 * then convert it src_bitmap to new format
1666 * and return it as HBITMAP
1681 return NtGdiGetAppClipBox(hdc
, lprc
);
1690 GetFontData(HDC hdc
,
1700 return NtGdiGetFontData(hdc
, dwTable
, dwOffset
, lpvBuffer
, cbData
);
1705 NamedEscape(HDC hdc
,
1713 /* FIXME metadc, metadc are done most in user mode, and we do not support it
1714 * Windows 2000/XP/Vista ignore the current hdc, that are being pass and always set hdc to NULL
1715 * when it calls to NtGdiExtEscape from NamedEscape
1717 return NtGdiExtEscape(NULL
,pDriver
,wcslen(pDriver
),iEsc
,cjIn
,pjIn
,cjOut
,pjOut
);
1724 /* FIXME wrong protypes, it is a fastcall api */
1727 cGetTTFFromFOT(DWORD x1
,DWORD x2
,DWORD x3
, DWORD x4
, DWORD x5
, DWORD x6
, DWORD x7
)
1730 SetLastError(ERROR_CALL_NOT_IMPLEMENTED
);