[Bug 30512] Tencent Messenger 2008/2009 crashes with initialization failure due to atl80.dll AtlCreateRegistrar being a stub (registration of COM servers failed at install time)
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Apr 25 14:20:54 CDT 2012
http://bugs.winehq.org/show_bug.cgi?id=30512
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |Installer
CC| |focht at gmx.net
Component|-unknown |atl
Summary|TM2009 crashes with |Tencent Messenger 2008/2009
|initialization failure |crashes with initialization
| |failure due to atl80.dll
| |AtlCreateRegistrar being a
| |stub (registration of COM
| |servers failed at install
| |time)
--- Comment #5 from Anastasius Focht <focht at gmx.net> 2012-04-25 14:20:54 CDT ---
Hello,
confirming.
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Tencent/TM2008/Bin
...
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+atl wine ./TM.exe
...
0024:CALL
Common.?CreateObjectFromDllFile at Com@Util@@YGJPB_WABU_GUID@@1PAPAXPAUIUnknown@@@Z(<unknown,
check return>) ret=00402d21
0024:Call KERNEL32.GetModuleHandleW(0040bc20 L"Common.dll") ret=30002bc7
0024:Ret KERNEL32.GetModuleHandleW() retval=30000000 ret=30002bc7
0024:Call KERNEL32.GetProcAddress(30000000,30187af0 "DllGetClassObject")
ret=30002c2d
0024:Ret KERNEL32.GetProcAddress() retval=00358415 ret=30002c2d
0024:CALL Common.DllGetClassObject(<unknown, check return>) ret=30002c47
0024:Call atl.AtlModuleGetClassObject(301fa000,0040bc6c,301bdfe0,0032fa98)
ret=3000962a
0024:trace:atl:AtlModuleGetClassObject 0x301fa000
{2289d8b7-c29a-47ae-9a7e-7b784e502b30} {00000001-0000-0000-c000-000000000046}
0x32fa98
0024:warn:atl:AtlModuleGetClassObject no class object found for
{2289d8b7-c29a-47ae-9a7e-7b784e502b30}
0024:Ret atl.AtlModuleGetClassObject() retval=80040111 ret=3000962a
0024:RET Common.DllGetClassObject(0040bc6c,301bdfe0,0032fa98) retval=80040111
ret=30002c47
--- snip ---
"{2289d8b7-c29a-47ae-9a7e-7b784e502b30}" lives in "common.dll" COM inproc
server.
If we manually try to register it:
--- snip ---
$ wine regsvr32 common.dll
fixme:atl80:AtlCreateRegistrar (0x32fd1c) stub
Failed to register DLL common.dll
--- snip ---
Same failure probably at installer time. Tracing installer indeed yields:
--- snip ---
...
0020:Call KERNEL32.CreateProcessW(00000000,019dd3b0
L"\"C:\\windows\\system32\\regsvr32.exe\" /s
Common.dll",00000000,00000000,00000000,00000000,00000000,019dd7c0 L"C:\\Program
Files\\Tencent\\TM2008\\Bin",019dcf40,019dcf2c) ret=0041c3cc
...
002a:Call KERNEL32.__wine_kernel_init() ret=7bc530d2
...
0020:Ret KERNEL32.CreateProcessW() retval=00000001 ret=0041c3cc
...
002a:Ret PE DLL (proc=0x3016fb00,module=0x30000000
L"Common.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
002a:Ret KERNEL32.LoadLibraryExA() retval=30000000 ret=7effd6c2
002a:Call KERNEL32.GetProcAddress(30000000,7effe10e "DllRegisterServer")
ret=7effd714
002a:Ret KERNEL32.GetProcAddress() retval=3000a140 ret=7effd714
002a:Call KERNEL32.GetThreadLocale() ret=30009f7e
002a:Ret KERNEL32.GetThreadLocale() retval=00000409 ret=30009f7e
002a:Call KERNEL32.SetThreadLocale(00000800) ret=30009f8b
002a:Ret KERNEL32.SetThreadLocale() retval=00000001 ret=30009f8b
002a:Call atl80.AtlCreateRegistrar(0033fd1c) ret=30009906
002a:fixme:atl80:AtlCreateRegistrar (0x33fd1c) stub
002a:Ret atl80.AtlCreateRegistrar() retval=80004001 ret=30009906
002a:Call KERNEL32.SetThreadLocale(00000409) ret=30009ff4
002a:Ret KERNEL32.SetThreadLocale() retval=00000001 ret=30009ff4
002a:Call KERNEL32.ExitProcess(ffffffff) ret=7effdedb
...
--- snip ---
Source:
http://source.winehq.org/git/wine.git/blob/7bffd907908a18a16b34d16245c817ec0d605d53:/dlls/atl80/atl80.c#l27
--- snip ---
27 HRESULT WINAPI AtlCreateRegistrar(IRegistrar** ppReg)
28 {
29 FIXME("(%p) stub\n", ppReg);
30 return E_NOTIMPL;
31 }
--- snip ---
Workaround: 'winetricks -q vcrun2005' and set 'atl80.dll' to '(native,builtin)'
before running the installer.
Additionally:
--- snip ---
err:module:import_dll Library MFC42.DLL (which is needed by L"C:\\Program
Files\\Tencent\\TM2008\\Bin\\TSEH.DAT") not found
--- snip ---
'winetricks -q mfc42'
$ du -sh TM2009Beta3.4_chs.exe
19M TM2009Beta3.4_chs.exe
$ sha1sum TM2009Beta3.4_chs.exe
7af2000ffdc6fa68450065101e089e61f80ddff8 TM2009Beta3.4_chs.exe
$ wine --version
wine-1.5.2-250-gdc830aa
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list