http://bugs.winehq.org/show_bug.cgi?id=3840
------- Additional Comments From focht@gmx.net 2007-10-05 10:58 ------- Hello,
well the auto-allocation is just linear with each .def entry increasing. Windows export definitions are alphanumerically sorted. Wine does the same. Due to some exports missing, the next defined function in wine gets the ordinal of the missing one and so on...
Example (user32.dll):
windows:
--- snip --- ordinal hint RVA name ... 4 3 0005D2A6 AlignRects = _AlignRects@16 5 4 000461B4 AllowForegroundActivation = _AllowForegroundActivation@0 6 5 0001C477 AllowSetForegroundWindow = _AllowSetForegroundWindow@4 7 6 0001A024 AnimateWindow = _AnimateWindow@12 8 7 000599FF AnyPopup = _AnyPopup@0 ... --- snip ---
wine:
--- snip --- ... AlignRects@16 @4 AllowSetForegroundWindow@4 @5 AnimateWindow@12 @6 AnyPopup@0 @7 ... --- snip ---
AllowForegroundActivation() isnt defined in wine so AllowSetForegroundWindow() gets ordinal 5 where windows one is 6 (due to AllowForegroundActivation taken 5).
Even if we fill missing gaps (stubs/prototypes) to force a specific order, one would have to re-check the list with every new Windows OS version for possible insertion of new API functions (ordinal order changed).
Just mark this bug report/type either INVALID or WONTFIX. Importing system dlls by ordinals only is bad ... NO-NO.
Maybe a bit off-topic: If needed i can supply missing prototypes for almost any export. But the requests have to be specific :-)
Regards