GDI separation patch

Dmitry Timoshkov dmitry at baikal.ru
Sun May 5 09:23:47 CDT 2002


"Andreas Mohr" <andi at rhlx01.fht-esslingen.de> wrote:

> + { /* free its selector array */
> + WORD sel = SELECTOROF(bmp->segptr_bits);
> + WORD count = (GetSelectorLimit16(sel) + 1) + 0xffff / 0x10000;
                                               ^^^^^^^^^^^^^^^^^^
Something wrong here.

> BTW, does anyone have an idea how to get rid of the remaining LOCAL_xxx()
> calls in gdiobj.c ?

GDI objects management should be moved eventually to wineserver.
I can confirm Alexandre's suspicion about that undocumented behaviour.
At least the following code works on windows2000:

HWND hWnd;
HBRUSH hBrush;
LOGBRUSH lb;
int nbytes;

hWnd = FindWindow(NULL, "Calculator");
assert(hWnd);
hBrush = (HBRUSH)GetClassLong(hWnd, GCL_HBRBACKGROUND);
assert(hBrush);

nbytes = GetObject(hBrush, sizeof(LOGBRUSH), &lb);
assert(nbytes == sizeof(LOGBRUSH));

-- 
Dmitry.






More information about the wine-devel mailing list