But when i see the generated header file. I see that there is the expansion of interfaces defined in the foo.idl if we include it in foobar.idl eg: foobar.idl #include "foo.idl"
For further reference see the msxml.idl in the PSDK headers. it includes xmldom.idl and xmldso.idl, but in the msxml.h we see all the declarations in xmldso.h and xmldom.h
I dont know they(M$) generate msxml.h from msxml.idl
On 8/29/06, Dan Hipschman dsh@linux.ucla.edu wrote:
On Tue, Aug 29, 2006 at 05:53:20PM -0400, Vijay Kiran Kamuju wrote:
I am cleaning up msxml*.idl files. It seems that msxml.idl and msxml2.idl are incompatible. msxml.idl includes xmldso.idl and xmldom.idl (eg: include "xmldso.idl") where as msxml2.idl explicitly declares the interface defined by xmldso.idl and xmldom.idl. This is done so that we there would be no clashes beteen msxml2.0 and msxml3.0 implementation. As in msxml2.0 and msxml3.0 there were some GUID changes. Does MIDL put the expansion of the included idl file. ie, in a.idl we have a line include "b.idl" what i want ask is does a.h will contain all the contents of b.h(b.h is output when we run midl on b.idl) when we run midl on a.idl.
I want to generalize the msxml implementation.
Sure, it runs a C-style preprocessor on it, so #include should work. Just note that #include <foo.idl> will look for foo.idl in predefined locations, while #include "foo.idl" will look in those and the current directory. You can add to the list of locations that #include <foo.idl> will look with the usual "widl -I/dir1 -I/dir2 ..." syntax.