UNIMPLEMENTED;
}
-BOOL
-APIENTRY
-XFORMOBJ_bApplyXform(
- IN XFORMOBJ *pxo,
- IN ULONG iMode,
- IN ULONG cPoints,
- IN PVOID pvIn,
- OUT PVOID pvOut
- )
-{
- // www.osr.com/ddk/graphics/gdifncs_027b.htm
- UNIMPLEMENTED;
- return FALSE;
-}
-
-ULONG
-APIENTRY
-XFORMOBJ_iGetFloatObjXform(
- IN XFORMOBJ *pxo,
- OUT FLOATOBJ_XFORM *pxfo
- )
-{
- // www.osr.com/ddk/graphics/gdifncs_5ig7.htm
- UNIMPLEMENTED;
- return 0;
-}
-
-ULONG
-APIENTRY
-XFORMOBJ_iGetXform(
- IN XFORMOBJ *pxo,
- OUT XFORML *pxform
- )
-{
- // www.osr.com/ddk/graphics/gdifncs_0s2v.htm
- UNIMPLEMENTED;
- return 0;
-}
-
/*
* @unimplemented
*/
}
/*
- * @unimplemented
+ * @implemented
*/
BOOL APIENTRY
EngQuerySystemAttribute(
IN ENG_SYSTEM_ATTRIBUTE CapNum,
OUT PDWORD pCapability)
{
+ SYSTEM_BASIC_INFORMATION sbi;
+ SYSTEM_PROCESSOR_INFORMATION spi;
+
switch (CapNum)
{
case EngNumberOfProcessors:
- *pCapability = 1;
+ NtQuerySystemInformation(
+ SystemBasicInformation,
+ &sbi,
+ sizeof(SYSTEM_BASIC_INFORMATION),
+ NULL);
+ *pCapability = sbi.NumberOfProcessors;
return TRUE;
case EngProcessorFeature:
- *pCapability = 0;
+ NtQuerySystemInformation(
+ SystemProcessorInformation,
+ &spi,
+ sizeof(SYSTEM_PROCESSOR_INFORMATION),
+ NULL);
+ *pCapability = spi.ProcessorFeatureBits;
return TRUE;
default:
return FALSE;
}
+/*
+ * @unimplemented
+ */
+LARGE_INTEGER
+APIENTRY
+EngQueryFileTimeStamp(IN LPWSTR FileName)
+{
+ LARGE_INTEGER FileTime;
+ FileTime.QuadPart = 0;
+ UNIMPLEMENTED;
+ return FileTime;
+}
+
/*
* @unimplemented
*/
*/
BOOL
APIENTRY
-NtGdiGetDeviceCapsAll (
- IN HDC hdc,
- OUT PDEVCAPS pDevCaps)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
NtGdiGetETM(
IN HDC hdc,
OUT EXTTEXTMETRIC *petm)
*/
BOOL
APIENTRY
-NtGdiGetRealizationInfo(
- IN HDC hdc,
- OUT PREALIZATION_INFO pri,
- IN HFONT hf)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
NtGdiDrawStream(
IN HDC hdcDst,
IN ULONG cjIn,
return 0;
}
- /*
- * @unimplemented
- */
-DWORD
-APIENTRY
-NtGdiGetFontUnicodeRanges(
- IN HDC hdc,
- OUT OPTIONAL LPGLYPHSET pgs)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
/*
* @unimplemented
*/
*/
BOOL
APIENTRY
-NtGdiMakeInfoDC(
- IN HDC hdc,
- IN BOOL bSet)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
NtGdiMonoBitmap(
IN HBITMAP hbm)
{
return FALSE;
}
- /*
- * @unimplemented
- */
-BOOL
-APIENTRY
-NtGdiMoveTo(
- IN HDC hdc,
- IN INT x,
- IN INT y,
- OUT OPTIONAL LPPOINT pptOut)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
/*
* @unimplemented
*/
}
BOOL
-STDCALL
+APIENTRY
EngControlSprites(
IN WNDOBJ *pwo,
IN FLONG fl)
UNIMPLEMENTED;
return FALSE;
}
-
+
ULONGLONG
APIENTRY
EngGetTickCount(VOID)
{
- return ((ULONGLONG)SharedUserData->TickCountLowDeprecated * SharedUserData->TickCountMultiplier / 16777216);
+ ULONG Multiplier;
+ LARGE_INTEGER TickCount;
+
+ /* Get the multiplier and current tick count */
+ KeQueryTickCount(&TickCount);
+ Multiplier = SharedUserData->TickCountMultiplier;
+
+ /* Convert to milliseconds and return */
+ return (Int64ShrlMod32(UInt32x32To64(Multiplier, TickCount.LowPart), 24) +
+ (Multiplier * (TickCount.HighPart << 8)));
}
BOOLEAN