On 10/27/21 10:55 PM, Connor McAdams wrote:
+/*
- When passing the ReservedNotSupportedValue/ReservedMixedAttributeValue
- interface pointers across apartments within the same process, use the
- free threaded marshaler to preserve the pointer value. Wrap the IMarshal
- interface received by CoCreateFreeThreadedMarshaler so that we can maintain
- our own reference count and release the object when it hits 0.
- */
+static HRESULT uia_reserved_val_create_ftm(IUnknown *outer, IMarshal **marshaler)
I don't understand this part, if every QI for IMarshal returns new instance, why do need a wrapper? And which object do you mean to release, with our own reference count?