WineHQ
Bug Tracking Database – Bug 25340

 Bugzilla

 

Last modified: 2013-11-08 12:32:41 CST  

Multiple apps need support for COM server information from PE manifest a.k.a registration/registry-free COM (Exact Audio Copy (EAC), AliWangWang ...)

Bug 25340 - Multiple apps need support for COM server information from PE manifest a.k.a registration/registry-free COM (Exact Audio Copy (EAC), AliWangWang ...)
Multiple apps need support for COM server information from PE manifest a.k.a ...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: ntdll
1.3.8
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
http://www.exactaudiocopy.de/en/
: download
: 25341 27196 33928 (view as bug list)
Depends on:
Blocks: 13487 26524 27251 30438
  Show dependency tree
 
Reported: 2010-11-28 19:46 CST by Kurt
Modified: 2013-11-08 12:32 CST (History)
14 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: 0af3bd8365c9b975261a9cd9ddb23b7f791bc095
Distribution: ---
Staged patchset:


Attachments
patch (17.29 KB, patch)
2013-09-27 00:19 CDT, Nikolay Sivov
Details | Diff
Log: +actctx,+module,+ole,+variant,+tid trace for AliWangwang, without manually registering any dll (663.76 KB, application/x-gzip)
2013-09-27 06:51 CDT, Qian Hong
Details
Log: +actctx,+module,+ole,+variant,+tid trace for AliWangwang, manually registering AliIMBrowserHostmod.dll (542.75 KB, application/x-gzip)
2013-09-27 06:52 CDT, Qian Hong
Details
patches (6.85 KB, application/x-gzip)
2013-09-27 14:33 CDT, Nikolay Sivov
Details
Log: +tid,+ole,+module log with patch v2 (572.35 KB, application/x-gzip)
2013-09-27 16:49 CDT, Qian Hong
Details
+ole,+actctx,+tid,+rpc for SmartFTP (33.25 KB, text/plain)
2013-10-29 02:54 CDT, Austin English
Details
patch (1.21 KB, patch)
2013-10-30 22:34 CDT, Nikolay Sivov
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kurt 2010-11-28 19:46:41 CST
The program will not run. Soon after attempting to run the software, a window titled "Unhandled exception" appears saying "at 01537EB0 -> ACCESS_VIOLATION" with no other option than to click an "OK" button.
Comment 1 Andrew Nguyen 2010-11-28 19:49:28 CST
Please attach debug output as per http://wiki.winehq.org/FAQ#get_log to the bug report.
Comment 2 Andrew Nguyen 2010-11-28 20:06:31 CST
*** Bug 25341 has been marked as a duplicate of this bug. ***
Comment 3 Andrew Nguyen 2010-11-28 22:30:31 CST
Launching Exact Audio Copy yields:

err:ole:CoGetClassObject class {a9d3060d-3526-4538-b13a-1913568daa0d} not registered
err:ole:CoGetClassObject no class object {a9d3060d-3526-4538-b13a-1913568daa0d} could be created for context 0x1
err:ole:CoGetClassObject class {f49c559d-e9e5-467c-8c18-3326aae4ebcc} not registered
err:ole:CoGetClassObject no class object {f49c559d-e9e5-467c-8c18-3326aae4ebcc} could be created for context 0x1

These interfaces seem to be related to Microsoft SQL Server Compact, and Exact Audio Copy seems to ship SQL Server-related DLLs in its application directory.
Comment 4 Louis Lenders 2010-11-29 15:56:03 CST
Registering them manually, and than starting the app works fine for me:

regsvr32 sql*
Successfully registered DLL sqlceca35.dll
Successfully registered DLL sqlceoledb35.dll

So the question is why they weren't registered (i guess that should have happened during the install?)
Comment 5 Kurt 2010-12-14 22:12:42 CST
(In reply to comment #4)
> Registering them manually, and than starting the app works fine for me:
> 
> regsvr32 sql*
> Successfully registered DLL sqlceca35.dll
> Successfully registered DLL sqlceoledb35.dll
> 
> So the question is why they weren't registered (i guess that should have
> happened during the install?)

When I try that I get:
//kurt@El-Caballero:~$ wine regsvr32 sql*
//Failed to load DLL sql*

I searched my wine installation and cannot find either of those libraries. I should also note that I have 1.3.9 installed now.
Comment 6 Andrew Nguyen 2010-12-14 22:16:05 CST
(In reply to comment #5)
> When I try that I get:
> //kurt@El-Caballero:~$ wine regsvr32 sql*
> //Failed to load DLL sql*
> 
> I searched my wine installation and cannot find either of those libraries. I
> should also note that I have 1.3.9 installed now.

You're in the wrong directory.
Comment 7 Dmitry Timoshkov 2010-12-15 03:46:54 CST
Adding a comment without changing Wine version is enough.
Comment 8 lemonsforlemonade 2010-12-15 22:42:53 CST
Confirming that running regsvr32 sql* while in the EAC directory does allow the program to run. 

Wine 1.3.9 and EAC beta 1.

My exact output looked like this: ~/.wine/dosdevices/c:/Program Files/Exact Audio Copy$ regsvr32 sql*
Successfully registered DLL sqlceca35.dll
DllRegisterServer not implemented in DLL sqlcecompact35.dll
Successfully registered DLL sqlceoledb35.dll
DllRegisterServer not implemented in DLL sqlceqp35.dll
DllRegisterServer not implemented in DLL sqlcese35.dll
Comment 9 Louis Lenders 2010-12-16 15:26:22 CST
(In reply to comment #8)
> Confirming that running regsvr32 sql* while in the EAC directory does allow the
> program to run. 

So the bug is that the installer somehow "forgets" to register the dlls. Did you check that on windows this works "out of the box?".
Comment 10 lemonsforlemonade 2010-12-16 18:16:17 CST
(In reply to comment #9)
> (In reply to comment #8)
> > Confirming that running regsvr32 sql* while in the EAC directory does allow the
> > program to run. 
> 
> So the bug is that the installer somehow "forgets" to register the dlls. Did
> you check that on windows this works "out of the box?".

I haven't checked anything on a Windows machine yet. I will soon.
Comment 11 a.barrow.a+bzspam 2010-12-29 10:20:28 CST
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #8)
> > > Confirming that running regsvr32 sql* while in the EAC directory does allow the
> > > program to run. 
> > 
> > So the bug is that the installer somehow "forgets" to register the dlls. Did
> > you check that on windows this works "out of the box?".
> 
> I haven't checked anything on a Windows machine yet. I will soon.

I can confirm that it runs out of the box on Windows XP Pro x86.
Comment 12 Anastasius Focht 2010-12-29 11:01:08 CST
Hello,

Wine has to support COM server information from PE manifest (side-by-side method).
The registration/registry-free COM method is supported since Windows XP SP2.

EAC.exe.manifest:

--- snip ---
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity type="win32" name="EAC" version="1.0.0.0" processorArchitecture="x86"/>
    <file name="sqlceca35.dll">
            <comClass description="SSCE.Engine.3.5" clsid="{A9D3060D-3526-4538-B13A-1913568DAA0D}" threadingModel="Both"/>
    </file>
    <file name="sqlceoledb35.dll">
            <comClass description="Microsoft.SQLSERVER.CE.OLEDB.3.5" clsid="{F49C559D-E9E5-467C-8C18-3326AAE4EBCC}" threadingModel="Both"/>
    </file>
    <file name="helperfunctions.dll">
            <comClass description="HelperFunctions" clsid="{2C00FD29-09C5-43CE-946D-27B626C7F414}" threadingModel="Both"/>
    </file>
....
--- snip ---

Regards
Comment 13 Anastasius Focht 2011-05-17 08:39:29 CDT
*** Bug 27196 has been marked as a duplicate of this bug. ***
Comment 14 Anastasius Focht 2011-05-17 08:41:50 CDT
Hello,

correcting summary, affects multiple apps.

Regards
Comment 15 Anastasius Focht 2012-05-17 15:25:15 CDT
*** Bug 13487 has been marked as a duplicate of this bug. ***
Comment 16 winehq.org 2012-06-09 17:30:20 CDT
(In reply to comment #8)
> Confirming that running regsvr32 sql* while in the EAC directory does allow the
> program to run. 
> 
> Wine 1.3.9 and EAC beta 1.
> 
> My exact output looked like this: ~/.wine/dosdevices/c:/Program Files/Exact
> Audio Copy$ regsvr32 sql*
> Successfully registered DLL sqlceca35.dll
> DllRegisterServer not implemented in DLL sqlcecompact35.dll
> Successfully registered DLL sqlceoledb35.dll
> DllRegisterServer not implemented in DLL sqlceqp35.dll
> DllRegisterServer not implemented in DLL sqlcese35.dll

lemonsforlemonade is right, this process works around the problem with EAC

cd ~/.wine/dosdevices/c\:/Program\ Files\ \(x86\)/Exact\ Audio\ Copy/
regsvr32 sql*
Comment 17 Bastian 2012-07-28 04:21:19 CDT
I can confirm this issue when starting Exact Audio Copy and I can confirm that registering the dlls manually as proposed by #4 works.
Comment 18 Nikolay Sivov 2013-09-26 15:07:09 CDT
I working on that, will have first draft patch soon.
Comment 19 Nikolay Sivov 2013-09-27 00:19:36 CDT
Created attachment 46105 [details]
patch

Please try this one, it looks like it fixes EAC for me. There's still some work to do on mscoree.dll side, but it doesn't look critical.
Comment 20 Qian Hong 2013-09-27 06:48:30 CDT
Hi Nikolay, 

Thanks for the great work!

I test with AliWangwang, it has been improved a lot, but there is still a few problem, I'm not sure if it is the same bug.

In Aliwangwang's program directory, there is a sub-directory called 7.21.04C/ , many dlls are in this sub-directory, including AliIMBrowserHostmod.dll.

Other dlls in 7.21.04C seems work with your patch, but AliIMBrowserHostmod.dll doesn't, until I cd to 7.21.04C and manually run `regsvr32 AliIMBrowserHostmod.dll`

Note: 7.21.04C/AliIMBrowserHostmod.dll depends on 7.21.04C/AliLog.dll, `regsvr32 AliIMBrowserHostmod.dll` won't work without cd to 7.21.04C first.

When I say "AliIMBrowserHostmod.dll doesn't work", I mean:
1. The "Daily News" feature of Aliwangwang doesn't work, I'm sure it depends on AliIMBrowserHostmod.dll and IE related components such like mshtml.
2. Console log show something like
0067:err:ole:marshal_object couldn't get IPSFactory buffer for interface        {deaa93fe-2862-4894-8371-90bf705d0e93}

After manually register AliIMBrowserHostmod.dll by regsvr32, both 1 and 2 has been fixed.

I'll upload two logs, one with manually registering AliIMBrowserHostmod.dll, one without manually registering.
Comment 21 Qian Hong 2013-09-27 06:51:39 CDT
Created attachment 46106 [details]
Log: +actctx,+module,+ole,+variant,+tid trace for AliWangwang, without manually registering any dll
Comment 22 Qian Hong 2013-09-27 06:52:34 CDT
Created attachment 46107 [details]
Log: +actctx,+module,+ole,+variant,+tid trace for AliWangwang, manually registering AliIMBrowserHostmod.dll
Comment 23 Qian Hong 2013-09-27 06:54:25 CDT
Additional note:

When testing AliWangWang, I have to run `winetricks -q ie7 vcrun2005 vcrun2008` first to workaround several bugs, the program is in Chinese, it may be a pain for non Chinese to install and test, let me know if there is anything else I can help.

Thanks for the work!
Comment 24 Felix Yan 2013-09-27 06:59:24 CDT
TradeManager (http://trademanager.alibaba.com/) is an international version of AliWangWang, if you get similar test results, it may provide a better test case as it has English UI.
Comment 25 Qian Hong 2013-09-27 07:12:33 CDT
(In reply to comment #24)
> TradeManager (http://trademanager.alibaba.com/) is an international version of
> AliWangWang, if you get similar test results, it may provide a better test case
> as it has English UI.

Thanks, unfortunately I can't reproduce the same bug with TradeManager, there is no AliIMBrowserHostmod.dll in the international version.
Comment 26 Nikolay Sivov 2013-09-27 09:18:52 CDT
(In reply to comment #20)
> When I say "AliIMBrowserHostmod.dll doesn't work", I mean:
> 1. The "Daily News" feature of Aliwangwang doesn't work, I'm sure it depends on
> AliIMBrowserHostmod.dll and IE related components such like mshtml.
> 2. Console log show something like
> 0067:err:ole:marshal_object couldn't get IPSFactory buffer for interface       
> {deaa93fe-2862-4894-8371-90bf705d0e93}
> 

I kind of expected this sooner or later, redirection for proxy/stubs is not implemented yet, and it's much easier to do later when I finish main patch I attached here. All needed ntdll bits for proxy/stubs data are implemented already.

Thanks for testing.
Comment 27 Qian Hong 2013-09-27 09:20:56 CDT
(In reply to comment #26)
> (In reply to comment #20)
> > When I say "AliIMBrowserHostmod.dll doesn't work", I mean:
> > 1. The "Daily News" feature of Aliwangwang doesn't work, I'm sure it depends on
> > AliIMBrowserHostmod.dll and IE related components such like mshtml.
> > 2. Console log show something like
> > 0067:err:ole:marshal_object couldn't get IPSFactory buffer for interface       
> > {deaa93fe-2862-4894-8371-90bf705d0e93}
> > 
> 
> I kind of expected this sooner or later, redirection for proxy/stubs is not
> implemented yet, and it's much easier to do later when I finish main patch I
> attached here. All needed ntdll bits for proxy/stubs data are implemented
> already.
> 
> Thanks for testing.

That's great, I'm glad it's expected, thanks for the great work!
Comment 28 Nikolay Sivov 2013-09-27 14:33:28 CDT
Created attachment 46114 [details]
patches

Hi, Qian.

Could you get another log +ole,+tid,+module with this patch set?
Comment 29 Qian Hong 2013-09-27 16:49:33 CDT
Created attachment 46116 [details]
Log: +tid,+ole,+module log with patch v2
Comment 30 Nikolay Sivov 2013-10-19 09:02:50 CDT
Hi, Anastasius.

Any idea what could still be broken with attached patches? Especially interesting is that Ali* software.
Comment 31 Nikolay Sivov 2013-10-28 17:52:41 CDT
Most important COM creation calls are now using activation context:

af93b530828bc9bca78a137c734837f72aa7bd96
e02b1687aadeff3e488f232049eb49c6516188dc
03dbbe21039e6b4387ee5e37c06051af530c5006
0af3bd8365c9b975261a9cd9ddb23b7f791bc095

It's possible something is missing of course.

Please retest so we can close this and continue with remaining issues in separate bug reports.
Comment 32 Austin English 2013-10-28 20:53:01 CDT
(In reply to comment #31)
> Most important COM creation calls are now using activation context:
> 
> af93b530828bc9bca78a137c734837f72aa7bd96
> e02b1687aadeff3e488f232049eb49c6516188dc
> 03dbbe21039e6b4387ee5e37c06051af530c5006
> 0af3bd8365c9b975261a9cd9ddb23b7f791bc095
> 
> It's possible something is missing of course.
> 
> Please retest so we can close this and continue with remaining issues in
> separate bug reports.

I tried SmartFTP (originally bug 13487, marked a dupe of this one) with wine-1.7.5-46-gddd6fd1 and the problem remains.
Comment 33 Nikolay Sivov 2013-10-29 01:28:34 CDT
EAC worked for me last time I tried. Could you attach +ole,+actctx,+tid,+rpc for SmartFTP? (it's better to start something else before it to reduce log size)
Comment 34 Austin English 2013-10-29 02:54:06 CDT
Created attachment 46424 [details]
+ole,+actctx,+tid,+rpc for SmartFTP
Comment 35 Austin English 2013-10-29 02:54:49 CDT
(In reply to comment #33)
> EAC worked for me last time I tried. Could you attach +ole,+actctx,+tid,+rpc
> for SmartFTP? (it's better to start something else before it to reduce log
> size)

Attached. If this bug is fixed, we should probably reopen 13487 for it and mark this one as fixed.
Comment 36 Nikolay Sivov 2013-10-30 22:34:09 CDT
Created attachment 46434 [details]
patch

Hi, Austin.

I tried SmartFTP myself, and it fails for a different reason - popup complaining that sfFTPLib.dll is not registered is a result of failed assembly lookup, not COM object creation. Could you confirm that attached hack helps?

It happens to use ISOLATIONAWARE_MANIFEST_RESOURCE_ID and we only try CREATEPROCESS_MANIFEST_RESOURCE_ID when looking for a resource.
Comment 37 Anastasius Focht 2013-10-31 03:35:01 CDT
Hello folks,

as Nikolay said: the important foundation is implemented.
Most of the apps listed here should work now.
Issues uncovered by newly added infrastructure should be tracked by separate bugs.

Thanks Nikolay for your work!

Using last commit of series for resolving: http://source.winehq.org/git/wine.git/commitdiff/0af3bd8365c9b975261a9cd9ddb23b7f791bc095

Regards
Comment 38 Anastasius Focht 2013-11-04 18:10:03 CST
*** Bug 33928 has been marked as a duplicate of this bug. ***
Comment 39 Alexandre Julliard 2013-11-08 12:32:41 CST
Closing bugs fixed in 1.7.6.


Hosted By CodeWeavers