http://bugs.winehq.org/show_bug.cgi?id=9422
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #20 from Anastasius Focht focht@gmx.net 2007-11-20 14:04:04 --- Hello,
--- quote --- Then it's strange that Visio worked in 0.9.35 and stopped working in 0.9.36. The patch that introduced the restrictive GdiplusStartup() first arrived in 0.9.39
http://source.winehq.org/git/wine.git/?a=commitdiff;h=a781bbf096d9a3264fe52f...
while completely stubbed gdiplus.dll first appeared in 0.9.38 --- quote ---
There are so many places/components where wine undergoes changes that sometimes symptoms just overlap.
I found the cause within a minute by looking at trace (no need to debug) and proved it immediately.
--- snip --- .. 0009:Call KERNEL32.LoadLibraryW(0034fa40 L"C:\Program Files\Microsoft Office\Visio11\GdiPlus.DLL") ret=30cc9f98 0009:Call PE DLL (proc=0x61709700,module=0x616f0000 L"gdiplus.dll",reason=PROCESS_ATTACH,res=(nil)) 0009:trace:gdiplus:DllMain (0x616f0000, 1, (nil)) 0009:Call KERNEL32.DisableThreadLibraryCalls(616f0000) ret=6170068b 0009:Ret KERNEL32.DisableThreadLibraryCalls() retval=00000001 ret=6170068b 0009:Ret PE DLL (proc=0x61709700,module=0x616f0000 L"gdiplus.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0009:Ret KERNEL32.LoadLibraryW() retval=616f0000 ret=30cc9f98 0009:Call KERNEL32.InterlockedExchange(3162c110,616f0000) ret=30cca49c 0009:Ret KERNEL32.InterlockedExchange() retval=00000000 ret=30cca49c 0009:Call KERNEL32.GetProcAddress(616f0000,315edd94 "GdiplusStartup") ret=30cca38c 0009:Ret KERNEL32.GetProcAddress() retval=616fdf48 ret=30cca38c 0009:Call gdiplus.GdiplusStartup(3162a1c0,0034fc38,3162a1c8) ret=30cca0d2 0009:trace:gdiplus:GdiplusStartup 0x3162a1c0 0x34fc38 0x3162a1c8 0009:trace:gdiplus:GdiplusStartup GdiplusStartupInput 2 (nil) 1 1 0009:Ret gdiplus.GdiplusStartup() retval=00000011 ret=30cca0d2 0009:Call KERNEL32.FormatMessageA(00001100,00000000,000000c5,00000000,0034fe0c,00000000,00000000) ret=009c593d 0009:Ret KERNEL32.FormatMessageA() retval=00000012 ret=009c593d 0009:Call KERNEL32.ActivateActCtx(00114f70,0034fdd0) ret=004dba67 0009:Ret KERNEL32.ActivateActCtx() retval=00000001 ret=004dba67 0009:Call KERNEL32.GetProcAddress(603d0000,00a7eae0 "MessageBoxA") ret=004af74f 0009:Ret KERNEL32.GetProcAddress() retval=603dfd94 ret=004af74f 0009:Call user32.MessageBoxA(00000000,00196170 "IOPL not enabled\r\n",00000000,00002000) ret=009c57f9 --- snip ---
AGAIN: Just make sure you force wine/VISIO to load native gdiplus.dll only (from C:\Program Files\Microsoft Office\OFFICE11\gdiplus.dll)
Winecfg: gdiplus.dll -> "Native (Windows)"
If you don't believe that gdiplus version restriction is the problem, apply my patch to see Visio 2003 successfully start up. Though it will crash later due to missing builtin gdiplus APIs (when opening a sheet).
Man, I think I'm just wasting my time here ...
Regards