One of the few Windows programs I use is Delorme's MapNGo (versions 4
and 6). Under older versions of Wine wherein I could use the native
Windows OLE/COM implementation it worked fairly well, but with the new
Wine it does not.
The symptoms are that the program cannot create the initial document
object - this ususally is an indication that the DLLS implementing the
COM classes for the MapNGo object are not registered correctly with the
system. However, I have taken a system running an older version of Wine
that could successfully run Mng6 and upgraded it to the latest CVS of
Wine, and it broke the app.
Not being a wiz at COM, I am not sure where to go from here, other than
to report the results of tracing the run:
WINDEBUG=+ole,+com wine ./Mng6
fixme:ole:CoRegisterMessageFilter stub
err:msg:DispatchMessageW BeginPaint not called on WM_PAINT for hwnd 0x1003a!
[wowbaggr@surfer AAAMNG6]$
[wowbaggr@surfer AAAMNG6]$ WINDEBUG=+ole,+com wine ./Mng6.mdb
wine: cannot determine executable type for L"D:\\AAAMNG6\\Mng6.mdb"
[wowbaggr@surfer AAAMNG6]$ WINDEBUG=+ole,+com wine ./mng
mng6.cnt mng6.exe mng6.hlp mngfeat.hlp
[wowbaggr@surfer AAAMNG6]$ WINDEBUG=+ole,+com wine ./mng6.exe
fixme:ole:CoRegisterMessageFilter stub
err:msg:DispatchMessageW BeginPaint not called on WM_PAINT for hwnd 0x1003a!
[wowbaggr@surfer AAAMNG6]$
[wowbaggr@surfer AAAMNG6]$ WINDEBUG=+all wine ./mng6.exe
fixme:ole:CoRegisterMessageFilter stub
err:msg:DispatchMessageW BeginPaint not called on WM_PAINT for hwnd 0x1003a!
[wowbaggr@surfer AAAMNG6]$
[wowbaggr@surfer AAAMNG6]$ WINEDEBUG=+ole,+com wine ./mng6.exe
trace:ole:DllMain 0x40c00000 0x1 0x1
trace:ole:DllMain (0x40e30000,1,0x1)
trace:ole:CoInitializeEx ((nil), 2)
trace:ole:CoInitializeEx () - Initializing the COM libraries
trace:ole:RunningObjectTableImpl_Initialize ()
trace:ole:OleInitialize ((nil))
trace:ole:CoInitializeEx ((nil), 2)
trace:ole:OleInitialize () - Initializing the OLE libraries
trace:ole:OLEClipbrd_Initialize ()
fixme:ole:CoRegisterMessageFilter stub
trace:ole:WINE_StringFromCLSID
0x49d964->{F4B4E540-7F32-11CE-AC56-0000C0496D91}
trace:ole:WINE_StringFromCLSID
0x487530->{D97A6266-C342-11D2-A562-A313798CEB30}
trace:ole:WINE_StringFromCLSID
0x4071f3bc->{D97A6266-C342-11D2-A562-A313798CEB30}
trace:ole:CoGetClassObject
CLSID: {d97a6266-c342-11d2-a562-a313798ceb30},
IID: {b196b28f-bab4-101a-b69c-00aa00341d07}
trace:ole:COMPOBJ_DLLList_Add
trace:ole:CoInitializeEx ((nil), 2)
trace:ole:WINE_StringFromCLSID
0x5f8a41b8->{00025E15-0000-0000-C000-000000000046}
trace:ole:CoGetClassObject
CLSID: {00025e15-0000-0000-c000-000000000046},
IID: {b196b28f-bab4-101a-b69c-00aa00341d07}
trace:ole:COMPOBJ_DLLList_Add
trace:ole:CreateErrorInfo (0x4071f38c): stub:
trace:ole:IErrorInfoImpl_QueryInterface (0x40252658)->(
IID: {22f03340-547d-101b-8e65-08002b2bd119},0x4071f38c)
trace:ole:ICreateErrorInfoImpl_AddRef (0x40252658)
trace:ole:IErrorInfoImpl_AddRef (0x40252658)->(count=1)
trace:ole:IErrorInfoImpl_QueryInterface -- Interface:
(0x4071f38c)->(0x4025265c)trace:ole:IErrorInfoImpl_Release
(0x40252658)->(count=2)
trace:ole:ICreateErrorInfoImpl_QueryInterface (0x40252658)
trace:ole:IErrorInfoImpl_QueryInterface (0x40252658)->(
IID: {1cf2b120-547d-101b-8e65-08002b2bd119},0x4071f390)
trace:ole:IErrorInfoImpl_AddRef (0x40252658)->(count=1)
trace:ole:IErrorInfoImpl_QueryInterface -- Interface:
(0x4071f390)->(0x40252658)trace:ole:ICreateErrorInfoImpl_SetGUID
(0x40252658)->({00000000-0000-0000-0000-000000000000})
trace:ole:ICreateErrorInfoImpl_SetSource (0x40252658)
trace:ole:ICreateErrorInfoImpl_SetDescription (0x40252658)
trace:ole:ICreateErrorInfoImpl_SetHelpContext (0x40252658)
trace:ole:SetErrorInfo (0, 0x40252658)
trace:ole:IErrorInfoImpl_AddRef (0x40252658)->(count=2)
trace:ole:IErrorInfoImpl_Release (0x40252658)->(count=3)
trace:ole:ICreateErrorInfoImpl_Release (0x40252658)
trace:ole:IErrorInfoImpl_Release (0x40252658)->(count=2)
err:msg:DispatchMessageW BeginPaint not called on WM_PAINT for hwnd 0x1003a!
(this last message usually happens when Mng tries to show an error
dialog at startup.)
When I've tried re-installing Mng6, I get messages from Wine about
"Registering a non-oleautomation interface" - I do not know if this is
significant or not.
So, any pointers on where to go from here?