https://bugs.winehq.org/show_bug.cgi?id=41713
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #1 from Zebediah Figura z.figura12@gmail.com --- So the problem here is that the ShellWindows class belongs to explorer.exe, and must be registered as local server by explorer.exe.
wineboot does the following things in order:
* create a dialog window notifying the user that Wine is updating its prefix * update the prefix, with rundll32.exe * start the application
Both creating this dialog window, and using rundll32.exe (for reasons I am unsure of) start explorer.exe, which attempts to register the ShellWindows class. This fails, because in order to do this we need the marshalling classes, and those haven't been registered yet. This is what's responsible for the error messages that get printed on every startup:
err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa} err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 err:ole:get_local_server_stream Failed: 80004002 err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046} err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa} err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002 err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002 err:ole:get_local_server_stream Failed: 80004002
The most obvious solution, as it seems to me, is to start explorer.exe a third time in wineboot.exe, to ensure that those classes get registered.