MIDL and COM

Patrik Stridvall ps at leissner.se
Tue Nov 20 04:03:13 CST 2001


> On 16 Nov 2001, Alexandre Julliard wrote:
> 
> > Ove Kaaven <ovehk at ping.uio.no> writes:
> > 
> > > But can the machine-generated sources that MIDL outputs 
> be put into the
> > > official Wine source?
> > 
> > I'd prefer not. If we want to use .idl files we'll have to come up
> > with our own compiler, and then we can put the .idl source 
> in the tree
> > and compile it at build time.
> 
> Hmm. Even when using flex and bison, it sounds like a fair amount of
> work... wonder who would volunteer?

There already are a multitude of open souce (GPL and otherwise)
CORBA .idl compilers. 

Of course Wine have probably slightly different requirements
but I should guess that we could save 90% of the work compared
to writing it from scratch.

Alexandre: 
Is a GPL:ed (or possible different licenced) .idl compiler acceptable?

> > > And how about source IDL files? Can we put into Wine IDL 
> extracted from
> > > real Windoze .tlb files with a tool like oleview.exe, or 
> IDL parsed from
> > > MIDL-generated Windows SDK .h files, like objidl.h, with a script?
> > 
> > No, anything generated from a Windows file is copyrighted by
> > Microsoft, so we cannot distribute it. We need to rewrite 
> these files
> > from scratch, just like we do for the normal headers.
> 
> Now where are all the usual non-lawyers on this list who 
> would argue that
> API definitions, like prototypes in header files (which of 
> course IDL, as
> a formalized API spec format, is all about), cannot be copyrighted?
> Oh well...

I'm here. :-)

Well, I wouldn't really go quite that far. The API definitions in themselves
can't be copyrighted, true. But a specific way of expressing them is,
so compiling any Microsoft file will generate create a derived work
copyrighted by Microsoft as the main rule.

However it is not quite that easy, since only the specific expression
is protected, the compilation result is only a derived work if it
still contains any protected expression.

In light of this you could argue that since, I presume, MIDL removes
whitespace and commments which is IIRC the only really expression,
since the rest the API defintions are just facts, that the MIDL
compiled files just contains facts not any part of the protected
expression.

However that is a little thin line to walk, since there is quite
of lack of real cases in the area, so I would recommend that we
do as Alexandre suggest. Beside having the real .idl files in the
Wine tree might be useful for other things as well.




More information about the wine-devel mailing list