On Fri, 7 Dec 2001, Peter Samuelson wrote:
So different, really?
Yes.
I thought both IDL compilers had basically the same purpose, to generate interface code to which you link client and server code for IPC or RPC.
For the most part, yes (though MIDL also generates typelibs).
As I understand it, the client and server stubs use basically the same API in both IDL compilers.
The IDL (input) file has the same syntax, but if you're talking about the generated (output) code, then no, they don't use the same API.
I haven't investigated, but FreeDCE may not support COM directly the way MIDL does. Even so, it seemed to me that retargeting the FreeDCE compiler so that its output links and runs with the winelib COM code would be easier than writing a whole new MIDL clone.
Not really. It seems to be far easier to write one from scratch (you have heard about stuff like flex and bison, right?) than to try to maintain two completely different marshalling implementations in the same IDL compiler.
Presumably this would require integrating the FreeDCE and Wine runtime environments. Looks like FreeDCE has a BSD-style license, so *legally* it can be done, but of course I don't know if it's *practical*....
Wine is about making existing Windows applications run, so code generated with MIDL must work. Therefore, we can't use FreeDCE's core, and without the core, integration doesn't make sense. I'm just stealing bits and pieces from it where appropriate, but believe me, if I could, I *would* stuff the whole thing into Wine, but that's not how MS reimplementations of stuff works, unfortunately.