[Bug 16051] LOTRO launcher fails on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Nov 20 16:12:58 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=16051





--- Comment #5 from Anastasius Focht <focht at gmx.net>  2008-11-20 16:12:57 ---
Hello,

--- quote ---
Actually that one is probably not needed. When a stub exception is continued,
execution will proceed into the next stub defined for that dll and cause
another exception, it doesn't mean that the app called that function.
--- quote ---

Maybe you misread ... it's not the infamous "unimplemented function" exception.
The stub returns gdiplus specific "not implemented" code which gets thrown as
CLR exception by .NET runtime callable wrapper.

--- snip dlls/gdiplus/font.c ---
GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**
fontCollection)
{
    FIXME("stub %p\n", fontCollection);

    if (!fontCollection)
        return InvalidParameter;

    return NotImplemented;
} 
--- snip dlls/gdiplus/font.c ---

--- snip ---
0033:Call KERNEL32.LoadLibraryExW(0032da7c
L"c:\\windows\\assembly\\gac\\system.drawing\\1.0.5000.0__b03f5f7f11d50a3a\\gdiplus.dll",00000000,00000008)
ret=791b7b63
0033:Call PE DLL (proc=0x60c37a2c,module=0x60c10000
L"gdiplus.dll",reason=PROCESS_ATTACH,res=(nil)) 
...
0033:Call gdiplus.GdiplusStartup(7b59017c,00166ac8,0032df04) ret=003ea442
0033:trace:gdiplus:GdiplusStartup 0x7b59017c 0x166ac8 0x32df04
0033:trace:gdiplus:GdiplusStartup GdiplusStartupInput 1 (nil) 1 0
0033:Ret  gdiplus.GdiplusStartup() retval=00000000 ret=003ea442 
...
0033:Call KERNEL32.GetProcAddress(60c10000,7b592860
"GdipNewPrivateFontCollection") ret=791e0ce5
0033:Ret  KERNEL32.GetProcAddress() retval=60c14aac ret=791e0ce5 
...
0033:Call gdiplus.GdipNewPrivateFontCollection(049b8458) ret=003ea902
0033:fixme:gdiplus:GdipNewPrivateFontCollection stub 0x49b8458
0033:Ret  gdiplus.GdipNewPrivateFontCollection() retval=00000006 ret=003ea902 
...
0033:Call KERNEL32.RaiseException(e0434f4d,00000001,00000000,00000000)
ret=7921020d 
...
--- snip ---

Later GdiplusNotificationHook proc is explicitly queried and called by .NET
CLR, most likely to propagate/pass initialization/shutdown events. 

--- snip ---
0033:Call KERNEL32.GetProcAddress(60c10000,7b59b351 "GdiplusNotificationHook")
ret=791e0ce5
0033:Ret  KERNEL32.GetProcAddress() retval=60c12b10 ret=791e0ce5
0033:Call ntdll.RtlTryEnterCriticalSection(001537a0) ret=791b3451
0033:Ret  ntdll.RtlTryEnterCriticalSection() retval=00000001 ret=791b3451
0033:Call KERNEL32.RaiseException(80000100,00000001,00000002,0032e574)
ret=60c37b61
0033:trace:seh:raise_exception code=80000100 flags=1 addr=0x7b8449b0
0033:trace:seh:raise_exception  info[0]=60c37be0
0033:trace:seh:raise_exception  info[1]=60c38ad8
wine: Call from 0x7b8449b0 to unimplemented function
gdiplus.dll.GdiplusNotificationHook, aborting 
--- snip ---

MSDN: http://msdn.microsoft.com/en-us/library/ms534046.aspx

Small stubs for the gdiplus NotificationHook/NotificationUnhook procs should be
sufficient.

--- snip ---
002f:Call KERNEL32.GetProcAddress(6a890000,7b59b351 "GdiplusNotificationHook")
ret=791e0ce5
002f:Ret  KERNEL32.GetProcAddress() retval=6a89d774 ret=791e0ce5
002f:Call ntdll.RtlTryEnterCriticalSection(0014b340) ret=791b3451
002f:Ret  ntdll.RtlTryEnterCriticalSection() retval=00000001 ret=791b3451
002f:Call gdiplus.GdiplusNotificationHook(7b590180) ret=003ea902
002f:trace:gdiplus:NotificationHook 0x7b590180
002f:Ret  gdiplus.GdiplusNotificationHook() retval=00000000 ret=003ea902
002f:Ret  window proc 0x17851e
(hwnd=0x3003e,msg="SystemEventsThreadCallbackMessage",wp=00000000,lp=00000000)
retval=00000000 
--- snip ---

Regarding the initial bug ... it seems all gdiplus functions dealing with font
collections are just stubs that need to be worked on.

Regards


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list