[Wine] Might have a COM+ issue

UmbraMalison wineforum-user at winehq.org
Wed Feb 25 08:42:15 CST 2009


I've been looking into wine to see if I can remove the need for a dedicated windows machine to run some in-house vb6 software including a COM+ layer. 

Currently I have my COM files in the System32 folder (as i read something that suggested that WINE would require the COM to be stored there). 
I don't mind where it goes, i registered it using regsvr32 provided by wine.

I have compared the registry against my windows machine, and the COM appears to have registered successfully.

When i try to run an incredibly small vb app (appA) which only uses a few COM files i get the following error:
"Run-time error '-2147467259 (80004005)': Automation Error"

"fixme:ole:CoCreateInstance no instance created for interface {00000000-0000-0000-c000-000000000046} of class {main COM CLSID for appA}, hres is 0x80004005"

I have created a basic VB6 hello world form program, that runs fine. (So i dont believe i am missing any VB runtime files)

In order to register the COM i needed to add windows files to Wines' system32 folder, i also added files that dependencyWalker suggested: 
* msvcr71
* msvcp71
* mfc71deu
* mfc71fra
* mfc71jpn
* mfc71chs
* mfc71cht
* mfc71esp
* mfc71ita
* mfc71enu
* mfc71kor
* mfc71u
* mfc71
* mfc42d
* mfcn42d
* mfco42d
* xpsp2res
* msctfime.ime
* asyncfilt
* clbcatq
* comres
* hnetcfg
* imm32
* mfc42
* mpr
* msctf
* msvbvm60
* msvcp60
* secur32
* uxtheme
* ws2help
* wshtcpip
* mswsock
* vbscript

to those with a keen eye, you may notice that some of the files i copied are built-in to Wine. I didn't realise at the time, but i found all of them in the 'configure wine, libraries' and set their Wine configuration to built-in only.
Also, some of the COM is still debug mode, hence needing the development versions of mfc etc

I ran dependencyWalker on appA on the windows machine and under wine. I compared the results, analysing the results is not easy however. 
I did find that under Wine i got many many lines that look like this:
"GetProcAddress(0x7e860000 [WINEX11.DRV], "AbortDoc" called from "GDI32.DLL" at address 0x7ecc8a0a and returned NULL. Error: Procedure not found (127)."

"GetProcAddress(0x7B820000 [KERNEL32.DLL], "IsTNT") called from "MSVBVM60.DLL" at address 0x73421BE1 and returned NULL. Error: Procedure not found (127)."
"GetProcAddress(0x7EB50000 [OLE32.DLL], "CLSIDFromProgIDEx") called from "MSVBVM60.DLL" at address 0x73424E49 and returned NULL. Error: Procedure not found (127)."
"LoadLibraryA("SXS.DLL") returned NULL. Error: Message 0x%1 not found in file %2 (317)."

none of which appear in the windows environment.

I hope this is clear, and provides enough information for someone to help or point me in the correct direction.

Perhaps, Wine just doesn't support this functionality?
Some closure would be greatly appreciated.



More information about the wine-users mailing list