Some time ago there was talk of using an (msrpc/com) idl compiler and idl files to replace some of the complexity of the current COM implementation details (I imagine the main advantage would be that winelib programs might be able to use COM stuff without having to generate stubs etc using MIDL). Rather than starting from scratch people recommended finding an existing (corba) idl compiler and hacking that.
Has anyone taken up the challenge?
I had a look at the freedce idl compiler but I can't get it to compile.
Not that I want to invite another round of "my license is better than your license" but should this be distributed independently of wine so as to avoid license problems or what could one base it on if distributed with wine (if wine was rewritten to depend on its availability this would make things tricky... )
Also, while on the topic of MIDL it seems that the emitted code contains marshaling hints/info in special strings - does wine currently understand these? (undocumented of course but not that messy - people writing their own custom DCOM-over-other-transports stuff managed to work them out quite quickly - I'm sure working with people from Microsoft Research helped though :)
Would it need to be a drop-in replacement for MIDL? I suppose not but I'm not sure how much easier that would be (I know com-idl is a moving target with COM+ and new attributes etc but plain COM should be sufficient for most).
Anyway - this is the result of a few days research and may all be in vain - those with more experience with COM and its implementation in wine should (if required) shoot me down now before I continue wasting my time.
Phillip Trainee wine-devel lurker who marvels at the endurance of people using/implementing COM in C.
PS I don't know if it is worthwhile starting a separate effort to make a "free" MIDL replacement regardless - what do people writing windows code with mingw etc do if they want to use COM?