"Dmitry Timoshkov" dmitry@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; }