Ove Kaaven wrote:
On Thu, 19 Jul 2001, Daniel Walker wrote:
I was thinking of ways to get the CLSCTX_LOCAL_SERVER option working in
wine. The only program that uses it , that I know of, is installshield v6 .. I pretty sure some other people are working on this, but I don't know that status. (Anyone care to update me?)
I'm working on it. In my tree, CoGetClassObject successfully launches ikernel.exe and establishes an IPC connection to it, and queries it for the CLSID that installshield wants. That works fine, but that's just the easy part. Currently the service process (ikernel.exe) can't yet send a reply, since interface marshalling is not quite implemented yet... and I'm not entirely sure how typelibs work yet, and how to retrieve the typelib info for a CLSID.
I had to use a separate "ikernel.tlb" to get Wine to read the type information. It couldn't get it from the ikernel.exe because I think it's encoded somehow (unicode, MultiByte??). It doesn't have the magic MSFT as the first four bytes.. Wine seems to read all the type information correctly ..
So then in CoGetClassObject you would create and return a dummy object that would act like the actual interface the program is looking for. Then the dummy object would accept parameters, do the marshaling, and make the IPC request to the Local Server?
Daniel Walker