Fixing the RECT definition (how come it fell through the cracks, it's such a fundamental definition in Win32?) in one go doesn't seem like it's going to happen. A lot of places need fixing, so unless a Perl wizard (hint, hint) comes up with a magic script, it's going to be a while until this is fixed. Meanwhile, C++ apps are broken, because of the stronger C++ typing. There's no point in having a broken header for the Winelib apps, and we need a method of incrementally fixing the dang thing. The patch below allows that. If you feel like fixing a DLL, open the Makefile, add -DWINE_NOINTRECT to EXTRADEFS, recompile the DLL, watch the warnings, and fix them. Similar to the -DSTRICT work. Once we're done, we can remove the hack. If the patch is accepted, I'll add a task to the Janitorial page, and sister bug in bugzilla (with subitem/subbugs per DLL). Most of the case can be transformed to debugrect(), but that requires some infrastructure work, so it belongs in a separate patch. ChangeLog Fix the RECT definition for Winelib apps. Index: include/windef.h =================================================================== RCS file: /var/cvs/wine/include/windef.h,v retrieving revision 1.80 diff -u -r1.80 windef.h --- include/windef.h 10 Dec 2002 22:56:44 -0000 1.80 +++ include/windef.h 23 Dec 2002 20:23:22 -0000 @@ -322,10 +322,18 @@ /* The RECT structure */ typedef struct tagRECT { +/* ugly temporary hack to allow for DLL-at-a-time fix */ +#if defined(__WINE__) && !defined(WINE_NOINTRECT) INT left; INT top; INT right; INT bottom; +#else + LONG left; + LONG top; + LONG right; + LONG bottom; +#endif } RECT, *PRECT, *LPRECT; typedef const RECT *LPCRECT; -- Dimi.