On Sat, 9 Apr 2005, Benjamin Cutler wrote: [...]
Don't include other headers in your header unless the Windows Platform SDK does it (it doesn't in this case). We would like the header dependencies to be the same as the Platform SDK, so programs can compile the same way.
Hmm, ok. I'll have to make some changes to the .c file then. Thanks for pointing this out.
Let me explain this rule a bit more just for the benefit of the general public:
There's one important and slightly counterintuitive property that we want in Wine: we want programs to *fail to compile* in Wine the same way they fail to compile in Windows.
The rationale is that programs developped in Wine should have a reasonable chance to compile and link on Windows using the Platform SDK.
This is especially important for the conformance tests where typically one developer writes a conformance test using Wine's headers and then another developer compiles it on Windows using the Platform SDK. At some point most conformance tests would just fail to compile on Windows because the Wine headers were more permissive for the #include order, C COM interface declarations, etc. This meant more work for the second developer and conformance tests were not being run much on Windows thus defeating their purpose. But I'm happy to report that now things are much better.