Installers freezing - ole, games

Marcus Meissner meissner at
Sun Sep 4 04:10:04 CDT 2005

On Sun, Sep 04, 2005 at 02:17:06AM -0500, Robert Shearman wrote:
> Ivan Gyurdiev wrote:
> >Hi,
> >
> >I've been trying to get GTA: San Andreas,
> >and Battlefield 2 running on Linux, so far
> >without success.
> >
> >I suspect they are running into the same bug,
> >because they produce very similar output (ole fixmes).
> >Both games will freeze at some point during the install.
> >
> >Strangely, I don't see any errors, but I have provided
> >an ole trace for each. Do you have any suggestions as to
> >what the problem might be, or how to track it down?
> >
> >
> Thanks for reporting this. In order for the logs of these types of 
> programs to make sense, you really need to give me one with 
> +ole,+olerelay,+seh,+tid options. I suspect it is the following bug though:
> In newer InstallShields, there is a marshaled object that contains a 
> function with a VT_PTR -> VT_USERDEFINED( TKIND_ENUM ). This should be 
> treated as "int *", but is actually treated as "int". This is due to 
> some broken logic in the typelib marshaler that is designed to fix the 
> problem with VT_PTR -> VT_USERDEFINED( TKIND_INTERFACE ) -> "IUnknown 
> *", but where we should dereference the pointer any more.
> We probably need to use the logic in ITypeInfo::Invoke to appropriately 
> transform the soup of pointers and userdefined types into something we 
> can use. I should also need to check what things are accepted in the 
> native version. i.e. is VT_PTR -> VT_PTR -> VT_USERDEFINED( TKIND_ENUM ) 
> supported? If so, that isn't representable by the VARIANT vt's, so we 
> would need to treat it differently than the ITypeInfo::Invoke case.

Do you have a freely downloadable installer that exposes this?

Ciao, Marcus

More information about the wine-devel mailing list