http://bugs.winehq.org/show_bug.cgi?id=33523
Bug #: 33523 Summary: .NET Framework 3.5 WPF 3.x apps need windowscodecsext.dll.DllGetClassObject Product: Wine Version: 1.5.29 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: windowscodecs AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net Classification: Unclassified
Hello folks,
some guys complained about .NET Framework 3.5 WPF 3.x apps not working ... so I looked into it.
Example app: "Adobe Digital Editions 2.0" which requires .NET 3.5 SP1
Prerequisite: clean 32-bit WINEPREFIX and 'winetricks -q dotnet35sp1'
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Adobe/Adobe Digital Editions 2.0 ... wine ./DigitalEditions.exe ... fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00001388,(nil),0x000b,0x00000104,0x3009b09c,0x5ec5d4): stub err:eventlog:ReportEventW L"clr20r3" err:eventlog:ReportEventW L"digitaleditions.exe" err:eventlog:ReportEventW L"2.0.0.0" err:eventlog:ReportEventW L"5058357c" err:eventlog:ReportEventW L"presentationcore" err:eventlog:ReportEventW L"3.0.0.0" err:eventlog:ReportEventW L"488f140b" err:eventlog:ReportEventW L"4975" err:eventlog:ReportEventW L"159" err:eventlog:ReportEventW L"system.invalidcastexception" err:eventlog:ReportEventW L"NIL" ... Unhandled Exception: System.InvalidCastException: Specified cast is not valid. at System.Windows.Media.Imaging.BitmapSource.get_DUCECompatibleMILPtr() at System.Windows.Media.Imaging.BitmapSource.UpdateBitmapSourceResource(Channel channel, Boolean skipOnChannelCheck) at System.Windows.Media.Imaging.BitmapSource.UpdateResource(Channel channel, Boolean skipOnChannelCheck) at System.Windows.Media.Imaging.BitmapSource.AddRefOnChannelCore(Channel channel) at System.Windows.Media.Imaging.BitmapSource.System.Windows.Media.Composition.DUCE.IResource.AddRefOnChannel(Channel channel) at System.Windows.Media.ImageBrush.AddRefOnChannelCore(Channel channel) at System.Windows.Media.Brush.System.Windows.Media.Composition.DUCE.IResource.AddRefOnChannel(Channel channel) at System.Windows.Media.RenderData.System.Windows.Media.Composition.DUCE.IResource.AddRefOnChannel(Channel channel) at System.Windows.UIElement.RenderContent(RenderContext ctx, Boolean isOnChannel) ... --- snip ---
Well, that's bug 33384 -> 'winetricks -q windowscodecs'
It goes further but still crashes, now with:
--- snip --- ... LIBRARY_LOADED has 1 records fixme:shell:URL_ParseUrl failed to parse L"System.Web" fixme:time:GetDynamicTimeZoneInformation (0x145b60) stub! err:ole:CoInitializeEx Attempt to change threading model of this apartment from apartment threaded to multi-threaded wine: Call from 0x7b83aa5b to unimplemented function windowscodecsext.dll.DllGetClassObject, aborting fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x000003ff,(nil),0x0001,0x00000000,0x32bd5c,(nil)): stub err:eventlog:ReportEventW L".NET Runtime version 2.0.50727.3053 - Unrecoverable system error." ... fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime 2.0 Error Reporting"): stub fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00001388,(nil),0x000b,0x000000d2,0x3009b09c,0x5ec5d4): stub err:eventlog:ReportEventW L"clr20r3" err:eventlog:ReportEventW L"digitaleditions.exe" err:eventlog:ReportEventW L"2.0.0.0" err:eventlog:ReportEventW L"5058357c" err:eventlog:ReportEventW L"windowsbase" err:eventlog:ReportEventW L"3.0.0.0" err:eventlog:ReportEventW L"488f1338" err:eventlog:ReportEventW L"da" err:eventlog:ReportEventW L"1b" err:eventlog:ReportEventW L"fatalerror" err:eventlog:ReportEventW L"NIL" ... --- snip ---
Setting 'windowscodecsext' to 'native' works around (just like 'windowscodecs' in winetricks recipe).
Source: http://source.winehq.org/git/wine.git/blob/e002d2eacfc5371bc4a964515448c9ad2...
--- snip --- 1 @ stub DllGetClassObject 2 @ stdcall IWICColorTransform_Initialize_Proxy(ptr ptr ptr ptr ptr) IWICColorTransform_Initialize_Proxy_W 3 @ stdcall WICCreateColorTransform_Proxy(ptr) --- snip ---
@austin/winetricks maintainers:
For the time being it might be useful to add this additional override to winetricks by default as part of 'winetricks windowscodecs' recipe.
With that modified recipe the app goes further ... only to crash again.
+relay gives a hint:
--- snip --- 002b:Call KERNEL32.OutputDebugStringW(7a09e7d8 L"CLR: Managed code called FailFast, saying "") ret=7a14be4c 002b:Ret KERNEL32.OutputDebugStringW() retval=0032c130 ret=7a14be4c 002b:Call KERNEL32.OutputDebugStringW(7a3c3f80 L"Unrecoverable system error.") ret=7a14be4c 002b:Ret KERNEL32.OutputDebugStringW() retval=0032c130 ret=7a14be4c 002b:Call KERNEL32.OutputDebugStringW(7a09e7cc L""\r\n") ret=7a14be4c 002b:Ret KERNEL32.OutputDebugStringW() retval=0032c130 ret=7a14be4c --- snip ---
FailFast? That looks like bug 32323 Indeed, 'winetricks corefonts' works around (actually only 'arial32.exe' installer is needed).
With the small recipes in place "Adobe Digital Editions 2.0" starts successfully and ebooks can be managed/read.
Regards