Better test for visible desktop, should be working on all platforms.

Dmitry Timoshkov dmitry at baikal.ru
Sat Mar 5 07:11:59 CST 2005


"Dmitry Timoshkov" <dmitry at baikal.ru> wrote:

> > It's not pretty, but I don't have an NT4 to test with, so I didn't want 
> > to change
> > anything. Later I can refactor it into exactly the failing part.
> 
> Did you consider implementing the approach Robert Shearman has pointed out?

Here is another way for testing for a visible desktop which just came
to my mind (based on the EMF test failure analysis and the description
from http://www.codeproject.com/gdi/cliprgnguide.asp):

static int running_on_visible_desktop ()
{
    BOOL visible;
    HWND desktop;
    HDC hdc;
    HRGN hrgn;
    RECT rc;

    desktop = GetDesktopWindow();
    hdc = GetDC(desktop);
    hrgn = CreateRectRgn(0, 0, 0, 0);
    GetRandomRgn(hdc, hrgn, SYSRGN);

    visible = GetRgnBox(hrgn, &rc) != NULLREGION;

    DeleteObject(hrgn);
    ReleaseDC(desktop, hdc);

    return visible;
}

-- 
Dmitry.




More information about the wine-devel mailing list