<div dir="ltr">Thanks a million Andrew.  That did the trick.  Now there's some other problem which I'll have to dive into--of course ;)<div><br></div><div>I appreciate and am humbled by your request about fixing the problem properly.  I'm afraid I won't have the bandwidth or desire to dive that deep into Wine any time too soon, but it sounds like an interesting challenge.</div><div><br></div><div>Bob<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 19, 2015 at 1:29 PM, Andrew Eikum <span dir="ltr"><<a href="mailto:aeikum@codeweavers.com" target="_blank">aeikum@codeweavers.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Aug 19, 2015 at 01:21:32PM -0400, Robert D Kocisko wrote:<br>
> I am attempting to make some tweaks to Wine so it can run a (3rd party)<br>
> windows service that uses CreateWindowEx, and I'm not sure whether I'm on<br>
> the right track or not.   What is happening is that when the service calls<br>
> CreateWindowEx, I get this error:<br>
><br>
> Application tried to create a window, but no driver could be loaded.<br>
> The explorer process failed to start.<br>
><br>
> I traced it down to the following source code line in<br>
> wine/dlls/user32/driver.c:<br>
><br>
> UINT guid_atom = HandleToULong( GetPropW( hwnd, display_device_guid_propW<br>
> ));<br>
><br>
> What is happening is that guid_atom returns 0 which ultimately ends up<br>
> disallowing any connection to a graphics driver.<br>
><br>
> Now it seems to me that the explorer.exe process is supposed to be<br>
> providing a desktop window and setting that atom value.  But if I try to<br>
> run wine explorer.exe it  doesn't make any difference.  I am keeping Wine<br>
> alive by running wine notepad & and I am also running wine services to make<br>
> sure that the SCM is alive and available for the services.<br>
><br>
> OS: Elementary OS Freya 0.3<br>
><br>
><br>
> Is this something that Wine should support?  I have had success getting<br>
> other 3rd party services to work so it seems that it shouldn't be too<br>
> difficult to make this work.  Could anyone provide guidance on how I should<br>
> proceed to tweak the code to support this?  Or if this is going to be a<br>
> huge project to make this work I would appreciate knowing that too :).<br>
><br>
<br>
</span>I've run into the same issue with the MSOffice 2013 installer. Your<br>
diagnosis is correct. I'm not aware of a proper fix.<br>
<br>
There is an ugly hack that will work around the bug. At the beginning<br>
of <dlls/user32/user_main.c:winstation_init>, set "info.lpDesktop" to<br>
NULL just after the GetStartupInfo() call.  This will force Wine to<br>
create a new desktop for your service's winstation, which should then<br>
load the graphics driver.<br>
<br>
Again, this is just a crummy hack to work around the issue. If you'd<br>
like to dig into Wine's desktop and winstation implementations further<br>
and find a correct fix for this, it would be appreciated.<br>
<span class="HOEnZb"><font color="#888888"><br>
Andrew<br>
</font></span></blockquote></div><br></div>