Marcus Meissner wrote:
On Sat, Jul 31, 2004 at 12:51:01PM +0200, Jeroen Janssen wrote:
This change will make sure that if a proxy/stub dll was already registered, it is not overwritten by the TypeLib Marshaller if we're not registering an ole automation interface. I think we (always?) want to use a 'real' available proxy/stub implementation when available, instead of simply 'overruling' to the typelib marshaller.
Did you verify that this patch does not break InstallShield?
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.
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.
(from discussions I read) I thought InstallShield used only (automation) interfaces with the TypeLib Marshaller.
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? --- Jeroen