Remove typelib ProxyStubClsid registration when no oleautomation interface is being registered

Mike Hearn mh at codeweavers.com
Sat Jul 31 09:07:00 CDT 2004


On Sat, 31 Jul 2004 14:13:22 +0200, Jeroen Janssen wrote:
> Uhmm, actually no. I'm currently trying to run an other program that has
> it's own proxy/stub code that should be used instead of the TypeLib
> Marshaller (since the TypeLib Marshaller doesn't seem to be able to
> handle this specific TypeLib).
> 
> As far as I see it I have two options (to run this outprocess
> client/server program):
> 1) use the available proxy/stub code (which is what I assume Windows
> does?) However since some of the rpcrt4 stub/proxy handling in wine is
> not finished yet, this probably won't work always (and it doesn't yet
> for me for this application). And indeed I don't really know if this
> also affects for example InstallShield behaviour.
> 
> 2) use the typelib marshaller if a typelib is registered (even though a
> proxy/stub is available). This is the current wine codepath, but it also
> does not work for me since I get some VT_USERDEFINED errors. But that
> started me wondering why the 'real' proxy/stub code is not used. Since
> some of the rpcrt4 code path seems to work with marshalling, I came up
> with this patch.

Well, you could use private hacks if you can find out what the user
defined types are.
 
> What do you (and Rob) think is the best path to follow for now (what has
> the best chance of being successfull at this moment)? It seems to me
> currently I have two (wine) codepaths that both have their problems in
> relation to the application I am trying to run, but I don't know which
> path is the easiest/hardest to fix/work on.

Fixing this problem is not trivial, it was only a matter of time before we
found such an app. Basically we need to do what TransGaming did and flip
our DCOM on top of RPC, however that will not be simple, our current code
uses a totally custom protocol based on named pipes. I'm not fully sure
what's involved: it may be easiest to simply remove the hack and fix what
breaks with as many programs as possible.

> (from discussions I read) I thought InstallShield used only (automation)
> interfaces with the TypeLib Marshaller.

No, we force all interfaces to go via it whether they want to or not.
 
> Can you maybe point me to a (frequently used) program that uses the
> InstallShield installer (that is know to work) so I can test it
> specificly? ---

iTunes :) But really, installshield is hugely popular, there are many such
apps: demos of Macromedia products tend to use them for instance.




More information about the wine-devel mailing list