MIDL and COM
ovehk at ping.uio.no
Thu Nov 15 22:13:38 CST 2001
OK, since list traffic is low at the moment (which might be because /var
on WineHQ got full again, and as usual the secondary MX provided by Corel
seems to have the functionality of a black hole, so I've now moved the
apache logs off /var), I thought I'd try to liven it up a bit with a
couple of things I'm wondering about...
Problem 1: MIDL-generated code.
midl.exe is Microsoft's IDL compiler, it reads .idl files which describe
RPC and COM interface, from which it generates .c files, .h files, and
typelibs. (It is possible to find copies of midl.exe floating on the net,
as some people have put together "COM kits" for Borland C++ that contains
midl.exe and some standard .idl files and put them on the web)
But can the machine-generated sources that MIDL outputs be put into the
official Wine source?
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?
Problem 2: RPCSS
rpcss.exe is the place that keeps track of which process owns which RPC
endpoints, exported COM objects, and object activation tables.
The IRunningObjectTable interface, for example, is managed by rpcss.exe,
and keeps track of certain kinds of COM objects on the computer, so that
other processes can connect to running COM objects. We probably don't want
Wine to have to run a separate process for this? If not, can we put this
kind of COM stuff into the wineserver?
More information about the wine-devel