Dan Hipschman wrote:
Hi all,
I'd like to submit a patch which makes widl output forward declarations to the header file for coclass definitions. Currently this is done only if the coclass has its own forward declaration. For example,
[ uuid(...) ] coclass Foo; [ uuid(...) ] coclass Bar { ... };
Foo will get declared (via typedef) in the header but Bar will not. The only problem is that when I fix widl it breaks the build in three places:
make[2]: Entering directory `/var/build/wine/dlls/mshtml' In file included from conpoint.c:33: mshtml_private.h:99: error: conflicting types for `HTMLDocument' ../../include/mshtml.h:26023: error: previous declaration of `HTMLDocument' was here
There's actually an easy fix if we just change the latter declaration to
struct Foo { ... };
but I'm not sure this is not a kludge. Do the names really represent the same types, or is a namespace collision?
This is just a namespace collision. A safer option might be to rename use FooImpl instead of Foo in the typedefs in mshtml_private.h and shdocvw.h, but your solution looks fine.