1 implementation of IIUnknownStrategy
System.Runtime.InteropServices (1)
System\Runtime\InteropServices\Marshalling\FreeThreadedStrategy.cs (1)
9internal sealed unsafe class FreeThreadedStrategy : IIUnknownStrategy
11 references to IIUnknownStrategy
System.Runtime.InteropServices (11)
System\Runtime\InteropServices\Marshalling\ComObject.cs (2)
36internal ComObject(IIUnknownInterfaceDetailsStrategy interfaceDetailsStrategy, IIUnknownStrategy iunknownStrategy, IIUnknownCacheStrategy cacheStrategy, void* thisPointer) 66private IIUnknownStrategy IUnknownStrategy { get; }
System\Runtime\InteropServices\Marshalling\DefaultCaching.cs (1)
38void IIUnknownCacheStrategy.Clear(IIUnknownStrategy unknownStrategy)
System\Runtime\InteropServices\Marshalling\FreeThreadedStrategy.cs (4)
11public static readonly IIUnknownStrategy Instance = new FreeThreadedStrategy(); 13void* IIUnknownStrategy.CreateInstancePointer(void* unknown) 19unsafe int IIUnknownStrategy.QueryInterface(void* thisPtr, in Guid handle, out void* ppObj) 33unsafe int IIUnknownStrategy.Release(void* thisPtr)
System\Runtime\InteropServices\Marshalling\IIUnknownCacheStrategy.cs (2)
62/// <param name="unknownStrategy">The <see cref="IIUnknownStrategy"/> to use for clearing</param> 63void Clear(IIUnknownStrategy unknownStrategy);
System\Runtime\InteropServices\Marshalling\StrategyBasedComWrappers.cs (2)
34public static IIUnknownStrategy DefaultIUnknownStrategy { get; } = FreeThreadedStrategy.Instance; 68protected virtual IIUnknownStrategy GetOrCreateIUnknownStrategy() => DefaultIUnknownStrategy;