Use <windows.h> and "wine/test.h" in test cases for better portabiliy.

Francois Gouget fgouget at
Thu Oct 26 10:05:16 CDT 2006

On Thu, 26 Oct 2006, Mike McCormack wrote:

> Francois Gouget wrote:
> > Including each header manually surely is not normal practice on Windows, but
> > the nice thing is that it lets us detect bugs in our header dependencies. If
> > we just include windows.h we will completely miss those and thus reduces the
> > value of the test.
> These tests don't compile in MSVC 6 without this fix.

Precisely. And this is very useful information!

The right fix is to:
 * fix the Wine headers so these tests fail to compile with Wine exactly 
the same way they fail to compile with the Windows headers. This is the 
only way to make sure this problem won't come back later.
 * then add the missing include directives or fix their order so the 
tests compile both with the Windows headers and the Wine ones.

I have started to look at why some of these tests were not compiling on 
Windows and this is how I stumbled on the COM_NO_WINDOWS_H issue which 
has side-tracked me a bit. I know of issues in, at least, advpub.h and 
objbase.h. I hope to get back to them soon, but there's certainly room 
for someone else to fix them in the meantime.

Also note that it's important to use the very latest SDK headers when 
compiling the Wine tests. A number of them won't compile with the stock 
VC6 headers.

Francois Gouget <fgouget at>    
            Before you criticize someone, walk a mile in his shoes.
       That way, if he gets angry, he'll be a mile away - and barefoot.

More information about the wine-devel mailing list