Author: sginsberg
Date: Wed Sep 9 13:49:39 2015
New Revision: 69147
URL:
http://svn.reactos.org/svn/reactos?rev=69147&view=rev
Log:
[WIN32K]
- Reorder some more driver exports to alphabetical order.
- Remove NtGdiFlushUserBatch and NtUserQueryUserCounters from syscall list (unused, and
not compatible).
- Move and add some debug-only syscalls to the end of the syscall list.
- Fix parameter count of UserValidateTimerCallback, UserValidateHandleSecure, and
UserChangeDisplaySettings to match what is compatible, by removing unused or ignored
parameters. NtGdiOpenDCW, NtUserEnumDisplayMonitors and NtUserSetCursorIconData still have
the wrong numbers.
- Add "stray" NtGdiMakeObjectXferable and
"NtDxEngGetRedirectionBitmap" syscall stubs.
- The syscalls should now be compatible with 2K3 SP2 in their order, but not in their
argument count (or, most likely, their actual parameters). This means a Windows 2k3 gdi32
or user32 should crash somewhat later now that half of the syscalls' order is not in
disarray.
Modified:
trunk/reactos/include/psdk/ntgdi.h
trunk/reactos/win32ss/gdi/ntgdi/intgdi.h
trunk/reactos/win32ss/include/ntuser.h
trunk/reactos/win32ss/user/ntuser/display.c
trunk/reactos/win32ss/user/ntuser/main.c
trunk/reactos/win32ss/user/ntuser/ntstubs.c
trunk/reactos/win32ss/user/ntuser/object.c
trunk/reactos/win32ss/user/ntuser/timer.c
trunk/reactos/win32ss/user/user32/misc/display.c
trunk/reactos/win32ss/user/user32/windows/message.c
trunk/reactos/win32ss/w32ksvc.db
trunk/reactos/win32ss/w32ksvc.h
trunk/reactos/win32ss/win32k.spec
Modified: trunk/reactos/include/psdk/ntgdi.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/ntgdi.h?rev=6…
==============================================================================
--- trunk/reactos/include/psdk/ntgdi.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/ntgdi.h [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -1764,14 +1764,6 @@
NtGdiFlattenPath(
_In_ HDC hdc);
-/* Not in MS ntgdi.h */
-__kernel_entry
-W32KAPI
-NTSTATUS
-APIENTRY
-NtGdiFlushUserBatch(
- VOID);
-
__kernel_entry
W32KAPI
HRGN
Modified: trunk/reactos/win32ss/gdi/ntgdi/intgdi.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/intgdi.h…
==============================================================================
--- trunk/reactos/win32ss/gdi/ntgdi/intgdi.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/ntgdi/intgdi.h [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -94,6 +94,16 @@
/* Other Stuff */
+NTSTATUS
+APIENTRY
+NtGdiFlushUserBatch(
+ VOID);
+
+DWORD
+APIENTRY
+NtDxEngGetRedirectionBitmap(
+ DWORD Unknown0);
+
HBITMAP
FASTCALL
IntCreateCompatibleBitmap(
Modified: trunk/reactos/win32ss/include/ntuser.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/include/ntuser.h?r…
==============================================================================
--- trunk/reactos/win32ss/include/ntuser.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/include/ntuser.h [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -1218,6 +1218,18 @@
DWORD dwUnknown1,
DWORD dwUnknown2,
DWORD dwUnknown3);
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapFail(
+ DWORD Unknown0,
+ DWORD Unknown1);
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapStat(
+ DWORD Unknown0,
+ DWORD Unknown1);
BOOL
NTAPI
@@ -1685,8 +1697,7 @@
PUNICODE_STRING lpszDeviceName,
LPDEVMODEW lpDevMode,
HWND hwnd,
- DWORD dwflags,
- LPVOID lParam);
+ DWORD dwflags);
BOOL
NTAPI
@@ -3026,6 +3037,11 @@
NtUserSetDbgTag(
DWORD Unknown0,
DWORD Unknown1);
+
+DWORD
+APIENTRY
+NtUserSetDbgTagCount(
+ DWORD Unknown0);
HWND
NTAPI
@@ -3123,8 +3139,7 @@
DWORD
NTAPI
NtUserSetRipFlags(
- DWORD Unknown0,
- DWORD Unknown1);
+ DWORD Unknown0);
DWORD
NTAPI
@@ -3430,8 +3445,7 @@
BOOL
NTAPI
NtUserValidateHandleSecure(
- HANDLE hHdl,
- BOOL Restricted);
+ HANDLE hHdl);
BOOL
NTAPI
@@ -3442,8 +3456,6 @@
BOOL
APIENTRY
NtUserValidateTimerCallback(
- HWND hWnd,
- WPARAM wParam,
LPARAM lParam);
DWORD
Modified: trunk/reactos/win32ss/user/ntuser/display.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/displa…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/display.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/display.c [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -816,8 +816,7 @@
PUNICODE_STRING pustrDevice,
LPDEVMODEW lpDevMode,
HWND hwnd,
- DWORD dwflags,
- LPVOID lParam)
+ DWORD dwflags)
{
WCHAR awcDevice[CCHDEVICENAME];
UNICODE_STRING ustrDevice;
@@ -825,7 +824,7 @@
LONG lRet;
/* Check arguments */
- if ((dwflags != CDS_VIDEOPARAMETERS && lParam != NULL) ||
+ if ((dwflags != CDS_VIDEOPARAMETERS) ||
(hwnd != NULL))
{
EngSetLastError(ERROR_INVALID_PARAMETER);
Modified: trunk/reactos/win32ss/user/ntuser/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/main.c…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/main.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/main.c [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -888,7 +888,7 @@
/*
* This definition doesn't work
*/
-INIT_FUNCTION
+INIT_SECTION
NTSTATUS
APIENTRY
DriverEntry(
@@ -942,7 +942,7 @@
PsEstablishWin32Callouts(&CalloutData);
/* Register service hook callbacks */
-#if DBG
+#if DBG && defined(KDBG)
KdSystemDebugControl('CsoR', DbgPreServiceHook, ID_Win32PreServiceHook, 0, 0,
0, 0);
KdSystemDebugControl('CsoR', DbgPostServiceHook, ID_Win32PostServiceHook, 0,
0, 0, 0);
#endif
Modified: trunk/reactos/win32ss/user/ntuser/ntstubs.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/ntstub…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/ntstubs.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/ntstubs.c [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -270,16 +270,47 @@
DWORD Unknown0,
DWORD Unknown1)
{
- STUB
-
- return 0;
+ STUB;
+
+ return 0;
+}
+
+DWORD
+APIENTRY
+NtUserSetDbgTagCount(
+ DWORD Unknown0)
+{
+ STUB;
+
+ return 0;
}
DWORD
APIENTRY
NtUserSetRipFlags(
- DWORD Unknown0,
- DWORD Unknown1)
+ DWORD Unknown0)
+{
+ STUB;
+
+ return 0;
+}
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapFail(
+ DWORD Unknown0,
+ DWORD Unknown1)
+{
+ STUB
+
+ return 0;
+}
+
+DWORD
+APIENTRY
+NtUserDbgWin32HeapStat(
+ DWORD Unknown0,
+ DWORD Unknown1)
{
STUB
@@ -1030,4 +1061,25 @@
return FALSE;
}
+// Yes, I know, these do not belong here, just tell me where to put them
+BOOL
+APIENTRY
+NtGdiMakeObjectXferable(
+ _In_ HANDLE hHandle,
+ _In_ DWORD dwProcessId)
+{
+ STUB;
+ return 0;
+}
+
+DWORD
+APIENTRY
+NtDxEngGetRedirectionBitmap(
+ DWORD Unknown0)
+{
+ STUB;
+ return 0;
+}
+
+
/* EOF */
Modified: trunk/reactos/win32ss/user/ntuser/object.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/object…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/object.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/object.c [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -726,7 +726,6 @@
}
/*
- * NtUserValidateHandleSecure W2k3 has one argument.
*
* Status
* @implemented
@@ -735,8 +734,7 @@
BOOL
APIENTRY
NtUserValidateHandleSecure(
- HANDLE handle,
- BOOL Restricted)
+ HANDLE handle)
{
UINT uType;
PPROCESSINFO ppi;
Modified: trunk/reactos/win32ss/user/ntuser/timer.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/timer.…
==============================================================================
--- trunk/reactos/win32ss/user/ntuser/timer.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/ntuser/timer.c [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -696,8 +696,6 @@
BOOL
APIENTRY
NtUserValidateTimerCallback(
- HWND hWnd,
- WPARAM wParam,
LPARAM lParam)
{
BOOL Ret = FALSE;
Modified: trunk/reactos/win32ss/user/user32/misc/display.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/misc/d…
==============================================================================
--- trunk/reactos/win32ss/user/user32/misc/display.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/user32/misc/display.c [iso-8859-1] Wed Sep 9 13:49:39
2015
@@ -457,14 +457,14 @@
pDevModeW = GdiConvertToDevmodeW(lpDevMode);
if(pDevModeW)
{
- rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, hwnd, dwflags,
lParam);
+ rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, hwnd, dwflags);
RtlFreeHeap(GetProcessHeap(), 0, pDevModeW);
}
else
rc = DISP_CHANGE_SUCCESSFUL;
}
else
- rc = NtUserChangeDisplaySettings(pDeviceName, NULL, hwnd, dwflags, lParam);
+ rc = NtUserChangeDisplaySettings(pDeviceName, NULL, hwnd, dwflags);
if (lpszDeviceName != NULL)
RtlFreeUnicodeString(&DeviceName);
@@ -509,7 +509,7 @@
else
pDeviceName = NULL;
- rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, hwnd, dwflags, lParam);
+ rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, hwnd, dwflags);
return rc;
}
Modified: trunk/reactos/win32ss/user/user32/windows/message.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/window…
==============================================================================
--- trunk/reactos/win32ss/user/user32/windows/message.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/user32/windows/message.c [iso-8859-1] Wed Sep 9 13:49:39
2015
@@ -1876,7 +1876,7 @@
if ( lpmsg->message == WM_SYSTIMER )
return NtUserDispatchMessage( (PMSG)lpmsg );
- if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam,
lpmsg->lParam))
+ if (!NtUserValidateTimerCallback(lpmsg->lParam))
{
WARN("Validating Timer Callback failed!\n");
return 0;
@@ -1969,7 +1969,7 @@
if ( lpmsg->message == WM_SYSTIMER )
return NtUserDispatchMessage( (PMSG) lpmsg );
- if (!NtUserValidateTimerCallback(lpmsg->hwnd, lpmsg->wParam,
lpmsg->lParam))
+ if (!NtUserValidateTimerCallback(lpmsg->lParam))
{
WARN("Validating Timer Callback failed!\n");
return 0;
Modified: trunk/reactos/win32ss/w32ksvc.db
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/w32ksvc.db?rev=691…
==============================================================================
--- trunk/reactos/win32ss/w32ksvc.db [iso-8859-1] (original)
+++ trunk/reactos/win32ss/w32ksvc.db [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -152,7 +152,6 @@
NtGdiFillPath 1
NtGdiFillRgn 3
NtGdiFlattenPath 1
-NtGdiFlushUserBatch 0
NtGdiFlush 0
NtGdiForceUFIMapping 2
NtGdiFrameRgn 5
@@ -235,7 +234,7 @@
NtGdiMoveTo 4
NtGdiOffsetClipRgn 3
NtGdiOffsetRgn 3
-NtGdiOpenDCW 8
+NtGdiOpenDCW 8 #7
NtGdiPatBlt 6
NtGdiPolyPatBlt 5
NtGdiPathToRegion 1
@@ -328,7 +327,7 @@
NtUserCallOneParam 2
NtUserCallTwoParam 3
NtUserChangeClipboardChain 2
-NtUserChangeDisplaySettings 5
+NtUserChangeDisplaySettings 5 #4
NtUserCheckImeHotKey 2
NtUserCheckMenuItem 3
NtUserChildWindowFromPointEx 4
@@ -374,14 +373,12 @@
NtUserEndMenu 0
NtUserEndPaint 2
NtUserEnumDisplayDevices 4
-# NtUserEnumDisplayMonitors 4 Wrong number of param ?
-NtUserEnumDisplayMonitors 5
+NtUserEnumDisplayMonitors 5 #4
NtUserEnumDisplaySettings 4
NtUserEvent 1
NtUserExcludeUpdateRgn 2
NtUserFillWindow 4
-# NtUserFindExistingCursorIcon 3 Wrong number of param ?
-NtUserFindExistingCursorIcon 4
+NtUserFindExistingCursorIcon 3
NtUserFindWindowEx 5
NtUserFlashWindowEx 1
NtUserGetAltTabInfo 6
@@ -391,7 +388,7 @@
NtUserGetAtomName 2
NtUserGetCaretBlinkTime 0
NtUserGetCaretPos 1
-NtUserGetClassInfo 5
+NtUserGetClassInfo 5 #Ex?
NtUserGetClassName 3
NtUserGetClipboardData 2
NtUserGetClipboardFormatName 3
@@ -486,7 +483,6 @@
NtUserQueryInformationThread 4
NtUserQueryInputContext 2
NtUserQuerySendMessage 1
-NtUserQueryUserCounters 5
NtUserQueryWindow 2
NtUserRealChildWindowFromPoint 3
NtUserRealInternalGetMessage 6
@@ -518,7 +514,6 @@
NtUserSetCursor 1
NtUserSetCursorContents 2
NtUserSetCursorIconData 6 #4
-NtUserSetDbgTag 2
NtUserSetFocus 1
NtUserSetImeHotKey 5
NtUserSetImeInfoEx 1
@@ -536,7 +531,6 @@
NtUserSetParent 2
NtUserSetProcessWindowStation 1
NtUserSetProp 3
-NtUserSetRipFlags 2
NtUserSetScrollInfo 4
NtUserSetShellWindowEx 2
NtUserSetSysColors 4
@@ -588,9 +582,9 @@
NtUserSetLayeredWindowAttributes 4
NtUserUpdatePerUserSystemParameters 2
NtUserUserHandleGrantAccess 3
-NtUserValidateHandleSecure 2
+NtUserValidateHandleSecure 1
NtUserValidateRect 2
-NtUserValidateTimerCallback 3
+NtUserValidateTimerCallback 1
NtUserVkKeyScanEx 3
NtUserWaitForInputIdle 3
NtUserWaitForMsgAndEvent 1
@@ -671,8 +665,18 @@
NtGdiBRUSHOBJ_DeleteRbrush 2
NtGdiUMPDEngFreeUserMem 1
NtGdiDrawStream 3
-#
-#
+
+# Checked build only
+NtUserDbgWin32HeapFail 2
+NtUserDbgWin32HeapStat 2
+NtUserSetDbgTag 2
+NtUserSetDbgTagCount 1
+NtUserSetRipFlags 2
+
+# Stray Syscalls
+NtGdiMakeObjectXferable 2
+DxEngGetRedirectionBitmap 1
+
#ReactOS specific syscalls
NtGdiSetViewportOrgEx 4
NtGdiSetWindowOrgEx 4
@@ -685,3 +689,4 @@
NtUserMonitorFromRect 2
NtUserMonitorFromWindow 2
NtUserSetScrollBarInfo 3
+#
Modified: trunk/reactos/win32ss/w32ksvc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/w32ksvc.h?rev=6914…
==============================================================================
--- trunk/reactos/win32ss/w32ksvc.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/w32ksvc.h [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -153,7 +153,6 @@
SVC_(GdiFillPath, 1)
SVC_(GdiFillRgn, 3)
SVC_(GdiFlattenPath, 1)
- SVC_(GdiFlushUserBatch, 0)
SVC_(GdiFlush, 0)
SVC_(GdiForceUFIMapping, 2)
SVC_(GdiFrameRgn, 5)
@@ -329,7 +328,7 @@
SVC_(UserCallOneParam, 2)
SVC_(UserCallTwoParam, 3)
SVC_(UserChangeClipboardChain, 2)
- SVC_(UserChangeDisplaySettings, 5)
+ SVC_(UserChangeDisplaySettings, 4)
SVC_(UserCheckImeHotKey, 2)
SVC_(UserCheckMenuItem, 3)
SVC_(UserChildWindowFromPointEx, 4)
@@ -485,7 +484,6 @@
SVC_(UserQueryInformationThread, 4)
SVC_(UserQueryInputContext, 2)
SVC_(UserQuerySendMessage, 1)
- SVC_(UserQueryUserCounters, 5)
SVC_(UserQueryWindow, 2)
SVC_(UserRealChildWindowFromPoint, 3)
SVC_(UserRealInternalGetMessage, 6)
@@ -517,7 +515,6 @@
SVC_(UserSetCursor, 1)
SVC_(UserSetCursorContents, 2)
SVC_(UserSetCursorIconData, 4)
- SVC_(UserSetDbgTag, 2)
SVC_(UserSetFocus, 1)
SVC_(UserSetImeHotKey, 5)
SVC_(UserSetImeInfoEx, 1)
@@ -535,7 +532,6 @@
SVC_(UserSetParent, 2)
SVC_(UserSetProcessWindowStation, 1)
SVC_(UserSetProp, 3)
- SVC_(UserSetRipFlags, 2)
SVC_(UserSetScrollInfo, 4)
SVC_(UserSetShellWindowEx, 2)
SVC_(UserSetSysColors, 4)
@@ -587,9 +583,9 @@
SVC_(UserSetLayeredWindowAttributes, 4)
SVC_(UserUpdatePerUserSystemParameters, 2)
SVC_(UserUserHandleGrantAccess, 3)
- SVC_(UserValidateHandleSecure, 2)
+ SVC_(UserValidateHandleSecure, 1)
SVC_(UserValidateRect, 2)
- SVC_(UserValidateTimerCallback, 3)
+ SVC_(UserValidateTimerCallback, 1)
SVC_(UserVkKeyScanEx, 3)
SVC_(UserWaitForInputIdle, 3)
SVC_(UserWaitForMsgAndEvent, 1)
@@ -670,9 +666,19 @@
SVC_(GdiBRUSHOBJ_DeleteRbrush, 2)
SVC_(GdiUMPDEngFreeUserMem, 1)
SVC_(GdiDrawStream, 3)
+#if DBG
+ // Checked Build only
+ SVC_(UserDbgWin32HeapFail, 2)
+ SVC_(UserDbgWin32HeapStat, 2)
+ SVC_(UserSetDbgTag, 2)
+ SVC_(UserSetDbgTagCount, 1)
+ SVC_(UserSetRipFlags, 1)
+#endif //DBG
+ //Stray syscalls
+ SVC_(GdiMakeObjectXferable, 2)
+ SVC_(DxEngGetRedirectionBitmap, 1)
-
- // ReactOS, specific, syscalls)
+ // ReactOS-specific syscalls)
SVC_(GdiSetViewportOrgEx, 4)
SVC_(GdiSetWindowOrgEx, 4)
SVC_(GdiGetFontFamilyInfo, 4)
Modified: trunk/reactos/win32ss/win32k.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/win32k.spec?rev=69…
==============================================================================
--- trunk/reactos/win32ss/win32k.spec [iso-8859-1] (original)
+++ trunk/reactos/win32ss/win32k.spec [iso-8859-1] Wed Sep 9 13:49:39 2015
@@ -1,7 +1,3 @@
-@ stdcall -arch=i386 FLOATOBJ_AddFloatObj(ptr ptr) FLOATOBJ_Add
-@ stdcall -arch=i386 FLOATOBJ_DivFloatObj(ptr ptr) FLOATOBJ_Div
-@ stdcall -arch=i386 FLOATOBJ_MulFloatObj(ptr ptr) FLOATOBJ_Mul
-@ stdcall -arch=i386 FLOATOBJ_SubFloatObj(ptr ptr) FLOATOBJ_Sub
@ stdcall BRUSHOBJ_hGetColorTransform(ptr)
@ stdcall BRUSHOBJ_pvAllocRbrush(ptr long)
@ stdcall BRUSHOBJ_pvGetRbrush(ptr)
@@ -147,9 +143,11 @@
@ stdcall EngWritePrinter(ptr ptr long ptr)
@ stdcall -arch=i386 FLOATOBJ_Add(ptr ptr)
@ stdcall -arch=i386 FLOATOBJ_AddFloat(ptr long)
+@ stdcall -arch=i386 FLOATOBJ_AddFloatObj(ptr ptr) FLOATOBJ_Add
@ stdcall -arch=i386 FLOATOBJ_AddLong(ptr long)
@ stdcall -arch=i386 FLOATOBJ_Div(ptr ptr)
@ stdcall -arch=i386 FLOATOBJ_DivFloat(ptr long)
+@ stdcall -arch=i386 FLOATOBJ_DivFloatObj(ptr ptr) FLOATOBJ_Div
@ stdcall -arch=i386 FLOATOBJ_DivLong(ptr long)
@ stdcall -arch=i386 FLOATOBJ_Equal(ptr ptr)
@ stdcall -arch=i386 FLOATOBJ_EqualLong(ptr long)
@@ -161,12 +159,14 @@
@ stdcall -arch=i386 FLOATOBJ_LessThanLong(ptr long)
@ stdcall -arch=i386 FLOATOBJ_Mul(ptr ptr)
@ stdcall -arch=i386 FLOATOBJ_MulFloat(ptr long)
+@ stdcall -arch=i386 FLOATOBJ_MulFloatObj(ptr ptr) FLOATOBJ_Mul
@ stdcall -arch=i386 FLOATOBJ_MulLong(ptr long)
@ stdcall -arch=i386 FLOATOBJ_Neg(ptr)
@ stdcall -arch=i386 FLOATOBJ_SetFloat(ptr long)
@ stdcall -arch=i386 FLOATOBJ_SetLong(ptr long)
@ stdcall -arch=i386 FLOATOBJ_Sub(ptr ptr)
@ stdcall -arch=i386 FLOATOBJ_SubFloat(ptr long)
+@ stdcall -arch=i386 FLOATOBJ_SubFloatObj(ptr ptr) FLOATOBJ_Sub
@ stdcall -arch=i386 FLOATOBJ_SubLong(ptr long)
@ stdcall FONTOBJ_cGetAllGlyphHandles(ptr ptr)
@ stdcall FONTOBJ_cGetGlyphs(ptr long long ptr ptr)