Use this wrapper to pass a managed object into unmanaged code as type VT_UNKNOWN.
public sealed class UnknownWrapper { // Public Constructors public UnknownWrapper(object obj); // Public Instance Properties public object WrappedObject{get; } }