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?