https://bugs.winehq.org/show_bug.cgi?id=38510
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |http://www.portablefreeware | |.com/download.php?dd=2045 CC| |focht@gmx.net Component|-unknown |oleaut32 Summary|STDU viewer crashes on |STDU (Scientific and |opening file |Technical Documentation | |Utility) Viewer v1.6.375 | |crashes when opening PDF | |file (typelib information | |for marshaller from | |registry-free COM server) Ever confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The app uses registry-free COM servers (app manifest).
--- snip --- $ WINEDEBUG=+tid,+seh,+relay,+actctx wine ./STDUViewerApp.exe >>log.txt 2>&1 ... 0026:trace:actctx:RtlCreateActivationContext 0xffbb3c8c 00000088 0026:trace:actctx:get_manifest_in_module looking for res #0001 in module 0x400000 L"Z:\home\focht\Downloads\STDUViewerApp.exe" 0026:trace:actctx:get_manifest_in_associated_manifest looking for manifest associated with (null) id 1 0026:trace:actctx:get_manifest_in_manifest_file loading manifest file L"\??\Z:\home\focht\Downloads\STDUViewerApp.exe.manifest" 0026:trace:actctx:parse_manifest parsing manifest loaded from L"\??\Z:\home\focht\Downloads\STDUViewerApp.exe.manifest" base dir (null) 0026:trace:actctx:parse_assembly_elem (0xffbb3a5c) 0026:trace:actctx:parse_assembly_identity_elem name=L"STDUViewerApp" version=1.0.0.0 arch=(null) 0026:warn:actctx:parse_assembly_identity_elem Unsupported yet language attribute (L"*") 0026:trace:actctx:parse_assembly_identity_elem name=L"Microsoft.Windows.Common-Controls" version=6.0.0.0 arch=L"x86" 0026:trace:actctx:parse_dependent_assembly_elem adding name=L"Microsoft.Windows.Common-Controls" version=6.0.0.0 arch=L"x86" 0026:trace:actctx:parse_file_elem name=L"STDUCore.dll" 0026:trace:actctx:parse_file_elem name=L"STDUComicFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUDjVuFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUFB2File.dll" 0026:trace:actctx:parse_file_elem name=L"STDUImageFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUJBIG2File.dll" 0026:trace:actctx:parse_file_elem name=L"STDUPCXFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUPDFFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUTextFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUTiffFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUXPSFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUPalmDocFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUMOBIFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUEPubFile.dll" 0026:trace:actctx:parse_file_elem name=L"STDUViewer.dll" ... 002a:Call ole32.CoCreateInstance(011572dc,00000000,00000017,01158780,012ce978) ret=010888c8 002a:Call ntdll.RtlInitUnicodeString(012ce6d0,012ce722 L"CLSID\{2BB2E135-4B81-4840-B7CD-A744DD236AB0}") ret=7e3ca3a1 002a:Ret ntdll.RtlInitUnicodeString() retval=012ce6d0 ret=7e3ca3a1 ... 002a:Call KERNEL32.FindActCtxSectionGuid(00000001,00000000,00000004,012ce878,012ce75c) ret=7e3cfdf3 002a:trace:actctx:RtlFindActivationContextSectionGuid 00000001 (null) 4 {2bb2e135-4b81-4840-b7cd-a744dd236ab0} 0x12ce75c 002a:Ret KERNEL32.FindActCtxSectionGuid() retval=00000001 ret=7e3cfdf3 ... 0026:Call KERNEL32.ActivateActCtx(00115648,0033c5c4) ret=7e3cca28 0026:trace:actctx:RtlActivateActivationContext 0x115648 cookie=e42588 0026:Ret KERNEL32.ActivateActCtx() retval=00000001 ret=7e3cca28 0026:Call KERNEL32.SearchPathW(00000000,00154fca L"STDUCore.dll",00000000,00000105,0033c622,00000000) ret=7e3cca5c 0026:trace:actctx:RtlFindActivationContextSectionString 00000001 (null) 2 L"STDUCore.dll" 0x33c228 0026:trace:actctx:RtlQueryInformationActivationContext 00000000 0x115648 0x33c24c 3 0xe53078 1024 0x33c21c ... 0026:Call KERNEL32.LoadLibraryExW(0033c622 L"Z:\home\focht\Downloads\STDUCore.dll",00000000,00000008) ret=7e3ca50b 0026:Call PE DLL (proc=0xd46cc8,module=0xd40000 L"STDUCore.dll",reason=PROCESS_ATTACH,res=(nil)) ... 0026:Ret PE DLL (proc=0xd46cc8,module=0xd40000 L"STDUCore.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0026:Ret KERNEL32.LoadLibraryExW() retval=00d40000 ret=7e3ca50b ... 0026:Call KERNEL32.FindActCtxSectionGuid(00000000,00000000,00000005,012ce47c,0033c1b8) ret=7e3cf036 0026:trace:actctx:RtlFindActivationContextSectionGuid 00000000 (null) 5 {00000001-0000-0000-c000-000000000046} 0x33c1b8 0026:Ret KERNEL32.FindActCtxSectionGuid() retval=00000000 ret=7e3cf036 ... 0026:Call KERNEL32.FindActCtxSectionGuid(00000001,00000000,00000004,0033c2fc,0033c1ec) ret=7e3cfdf3 0026:trace:actctx:RtlFindActivationContextSectionGuid 00000001 (null) 4 {00000320-0000-0000-c000-000000000046} 0x33c1ec 0026:Ret KERNEL32.FindActCtxSectionGuid() retval=00000000 ret=7e3cfdf3 ... 0026:Call ole32.DllGetClassObject(0033c2fc,7e4b65a8,0033c340) ret=7e3cc852 0026:Call rpcrt4.NdrDllGetClassObject(0033c2fc,7e4b65a8,0033c340,7e4effe4,7e4a1ac0,7e4f0080) ret=7e4312a4 0026:Ret rpcrt4.NdrDllGetClassObject() retval=00000000 ret=7e4312a4 0026:Ret ole32.DllGetClassObject() retval=00000000 ret=7e3cc852 ... 0026:Call rpcrt4.RpcServerRegisterIfEx(00e52c3c,00000000,00000000,00000003,000004d2,00000000) ret=7e40a352 ... 0026:Ret rpcrt4.RpcServerRegisterIfEx() retval=00000000 ret=7e40a352 ... 002a:Ret user32.SendMessageW() retval=00000000 ret=7e3cd288 ... 002a:Call rpcrt4.RpcStringBindingComposeW(00000000,7e4eff80 L"ncalrpc",00000000,012ce054 L"\pipe\OLE_0000002500000026",00000000,012ce04c) ret=7e40909c ... 0026:Ret oleaut32.DllGetClassObject() retval=00000000 ret=7e3cc852 0026:Call advapi32.RegCloseKey(000000f4) ret=7e3d006a 0026:Ret advapi32.RegCloseKey() retval=00000000 ret=7e3d006a 0026:Call advapi32.RegOpenKeyExA(80000000,0033be68 "Interface\{3905360d-3c87-498c-93d2-27e002b941b1}\Typelib",00000000,00020019,0033c18c) ret=7e1cf9b4 0026:Ret advapi32.RegOpenKeyExA() retval=00000002 ret=7e1cf9b4 ... 0026:err:ole:_get_typeinfo_for_iid No Interface{3905360d-3c87-498c-93d2-27e002b941b1}\Typelib key found. 0026:err:ole:PSFacBuf_CreateStub No typeinfo for {3905360d-3c87-498c-93d2-27e002b941b1}? 0026:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {3905360d-3c87-498c-93d2-27e002b941b1} with error 0x80004005 0026:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004005 0026:err:ole:CoMarshalInterface Failed to marshal the interface {3905360d-3c87-498c-93d2-27e002b941b1}, 80004005 ... 0026:Ret ole32.CoMarshalInterface() retval=80004005 ret=7e32b749 ... 0026:Call KERNEL32.RaiseException(80004005,00000000,00000000,00000000) ret=7e34d58a 0026:trace:seh:raise_exception code=80004005 flags=0 addr=0x7b8456d9 ip=7b8456d9 tid=0026 0026:trace:seh:raise_exception eax=7b832575 ebx=0033c610 ecx=0033c520 edx=00000000 esi=0033c570 edi=0033c530 0026:trace:seh:raise_exception ebp=0033c508 esp=0033c4a4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200246 ... 002a:Call KERNEL32.RaiseException(80004005,00000000,00000000,00000000) ret=7e34d58a 0026:Call user32.PeekMessageW(0033cdc4,00000000,00000000,00000000,00000000) ret=00406553 002a:trace:seh:raise_exception code=80004005 flags=0 addr=0x7b8456d9 ip=7b8456d9 tid=002a 002a:trace:seh:raise_exception eax=7b832575 ebx=012ce5a0 ecx=012ce4b0 edx=00000000 esi=012ce500 edi=012ce4c0 002a:trace:seh:raise_exception ebp=012ce498 esp=012ce434 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200246 002a:trace:seh:call_stack_handlers calling handler at 0x7e49d35a code=80004005 flags=0 ... 002d:fixme:ole:CoCreateInstance no instance created for interface {3905360d-3c87-498c-93d2-27e002b941b1} of class {2bb2e135-4b81-4840-b7cd-a744dd236ab0}, hres is 0x80004005 002d:Ret ole32.CoCreateInstance() retval=80004005 ret=010888c8 002d:trace:seh:raise_exception code=c0000005 flags=0 addr=0x10888ce ip=010888ce tid=002d 002d:trace:seh:raise_exception info[0]=00000000 002d:trace:seh:raise_exception info[1]=00000000 002d:trace:seh:raise_exception eax=00000000 ebx=007a0624 ecx=007adaa0 edx=012cef4c esi=0000062a edi=007eca78 002d:trace:seh:raise_exception ebp=00000000 esp=012ce968 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210202 002d:trace:seh:call_stack_handlers calling handler at 0x1151498 code=c0000005 flags=0 002d:trace:seh:call_stack_handlers handler at 0x1151498 returned 1 002d:trace:seh:call_stack_handlers calling handler at 0x100a0b00 code=c0000005 flags=0 002d:trace:seh:call_stack_handlers handler at 0x100a0b00 returned 1 002d:trace:seh:call_stack_handlers calling handler at 0x7bcab007 code=c0000005 flags=0 ... --- snip ---
Relevant part of 'STDUViewerApp.exe.manifest':
--- snip --- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="STDUViewerApp" type="win32" version="1.0.0.0"> </assemblyIdentity> <dependency> <dependentAssembly> <assemblyIdentity language="*" name="Microsoft.Windows.Common-Controls" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" type="win32" version="6.0.0.0"> </assemblyIdentity> </dependentAssembly> </dependency> <file name="STDUCore.dll"> ... <comClass clsid="{2BB2E135-4B81-4840-B7CD-A744DD236AB0}" threadingModel="apartment" tlbid="{A11D2AA5-3D39-448E-B9D0-177A73707C98}"> </comClass> ... <typelib helpdir="" tlbid="{A11D2AA5-3D39-448E-B9D0-177A73707C98}" version="1.0"> </typelib> </file> ... <comInterfaceExternalProxyStub baseInterface="{00000000-0000-0000-C000-000000000046}" iid="{3905360D-3C87-498C-93D2-27E002B941B1}" name="ISTDUImage" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" tlbid="{A11D2AA5-3D39-448E-B9D0-177A73707C98}"> </comInterfaceExternalProxyStub> ... --- snip ---
Bug 25340 added support for registry-free COM servers some time ago.
The proxy and stub code is included with the COM server executable 'STDUCore.dll' hence 'comInterfaceExternalProxyStub' element.
The 'typelib' element is required so the marshaller can find the type library which lives in the same COM server.
$ sha1sum stduviewer.zip ad56b235048a118b990e12142ca9c8a359e519eb stduviewer.zip
$ du -sh stduviewer.zip 3.5M stduviewer.zip
$ wine --version wine-1.7.46
Regards