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? > > > >http://bugs.winehq.org/show_bug.cgi?id=3108 > > > 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