[ros-dev] Big Bug in CreateWindowEx

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Thu Aug 10 15:27:49 CEST 2006


Hi,
I guess Hervé has found something similar. We can not create a desktop window in
createwindowex. I've looked at it again and at it's current state it would be
imposable to do w/o some rewriting (already started). We need to fix this Atom
issue I'm pushing! With a common atom we can fix this message problem. Setup the
children so they can talk to each other.

So far, we have four desktops w/o a root. Non of them can talk to each other. I can't see it!
If this can be fixed, I bet things will magically start working.

Well, look at this, it's from wine, I think they got it.

#define DESKTOP_CLASS_ATOM MAKEINTATOMW(32769)

/* create the desktop window */
hwnd = CreateWindowExW( 0, DESKTOP_CLASS_ATOM, NULL,
                         WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
                         0, 0, width, height, 0, 0, 0, NULL );
if (hwnd == GetDesktopWindow())
{
    SetWindowLongPtrW( hwnd, GWLP_WNDPROC, (LONG_PTR)desktop_wnd_proc );
    SendMessageW( hwnd, WM_SETICON, ICON_BIG, (LPARAM)LoadIconW( 0, MAKEINTRESOURCEW(OIC_WINLOGO)));
    SetWindowTextW( hwnd, desktop_nameW );
    SystemParametersInfoA( SPI_SETDESKPATTERN, -1, NULL, FALSE );
    SetDeskWallPaper( (LPSTR)-1 );
<snip>

LiteStep and DarkStep, look about the same thing except for the atom.

We dont need much of this but the process looks sound.
B^|
James


More information about the Ros-dev mailing list