Marcus Meissner wrote:
On Sun, Sep 04, 2005 at 02:17:06AM -0500, Robert Shearman wrote:
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?
No, but I have a test program.