I am trying to run an old MFC-based application (running on Windows XP) in wine.
It uses a XMLHTTP POST (with connection keep alive) to send data, and waits for the response.
After installing the MS VC runtime using winetricks, the application starts up successfully, but the request just fails (no specific error given), and wine logs:
Code: Select all
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
fixme:heap:RtlSetHeapInformation 0x110000 0 0x379e6c8 4 stub
fixme:msxml:ClassFactory_QueryInterface interface {00000003-0000-0000-c000-000000000046} not implemented
fixme:msxml:ClassFactory_QueryInterface interface {00000019-0000-0000-c000-000000000046} not implemented
err:ole:StdMarshalImpl_UnmarshalInterface Apartment not initialized
err:ole:CoUnmarshalInterface IMarshal::UnmarshalInterface failed, 0x800401f0
err:ole:create_server class {f6d90f16-9c73-11d3-b32e-00c04f990bb4} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {f6d90f16-9c73-11d3-b32e-00c04f990bb4} could be created for context 0x17
fixme:msxml:ClassFactory_QueryInterface interface {00000003-0000-0000-c000-000000000046} not implemented
err:ole:StdMarshalImpl_UnmarshalInterface Apartment not initialized
err:ole:CoUnmarshalInterface IMarshal::UnmarshalInterface failed, 0x800401f0
err:ole:create_server class {f6d90f16-9c73-11d3-b32e-00c04f990bb4} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {f6d90f16-9c73-11d3-b32e-00c04f990bb4} could be created for context 0x17
During debugging I found out that if I change the ThreadingModel HKEY_CLASSES_ROOT\CLSID\{f6d90f16-9c73-11d3-b32e-00c04f990bb4}\InProcServer32 from Apartment to both, wine's output changes to:
Code: Select all
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threaded
fixme:heap:RtlSetHeapInformation 0x110000 0 0x37ae6c8 4 stub
fixme:msxml:BindStatusCallback_QueryInterface Unsupported riid = {79eac9e1-baf9-11ce-8c82-00aa004ba90b}
fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
fixme:urlmon:InternetBindInfo_GetBindString not supported string type 12
In wireshark-trace I also see the HTTP-response arriving, but the application does not recognize that, it reports the request as timed out.
Can this be related to the three fixmes? (For me it sounds like the application is expecting a callback when the response arrives, but does not receive it).