[Bug 41713] Explorer.exe is wrong when started from the process creating the Wine prefix

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Nov 4 13:31:26 CDT 2017


https://bugs.winehq.org/show_bug.cgi?id=41713

Zebediah Figura <z.figura12 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |z.figura12 at gmail.com

--- Comment #1 from Zebediah Figura <z.figura12 at 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.

-- 
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