WINEFILE: Eliminate use of windowsx.h

Mike McCormack mike at codeweavers.com
Sat Mar 18 19:57:09 CST 2006


Robert Shearman wrote:

>>Despite containing some useful macros, those macros are somewhat
>>broken as they are ignorant of UNICODE, so cannot be "fixed" by simple
>>conversion to inline functions.
> 
> Unicode isn't a problem as "void *" could simply be used, but there are
> other compatibility reasons why inline functions shouldn't be used.

Using the following example:

#define ComboBox_AddString(hwndCtl, lpsz) \
         ((int)SendMessage((hwndCtl), CB_ADDSTRING, 0L, 
(LPARAM)(LPCTSTR)(lpsz)))

In Wine source, UNICODE is not defined.  So should the above be using 
SendMessageW/LPCWSTR or SendMessageA/LPCSTR?

Furthermore, using an inline function requires that we've included 
winuser.h to get the definition of SendMessageA/W, whereas windowsx.h on 
its own doesn't require that.

The commctrl.h macros don't have this problem as they define A/W 
versions of the macros.  I am in the process of adding inline functions 
to commctrl.h, and will submit a patch for that soon.

Mike



More information about the wine-devel mailing list