2 implementations of IIUnknownStrategy
System.Private.Windows.Core (1)
Windows\Win32\System\Com\GlobalInterfaceTable.UnknownStrategy.cs (1)
14private unsafe class UnknownStrategy : IIUnknownStrategy
System.Runtime.InteropServices (1)
System\Runtime\InteropServices\Marshalling\FreeThreadedStrategy.cs (1)
9internal sealed unsafe class FreeThreadedStrategy : IIUnknownStrategy
17 references to IIUnknownStrategy
System.Private.Windows.Core (6)
Windows\Win32\System\Com\GlobalInterfaceTable.cs (2)
72/// Creates a new instance of an <see cref="IIUnknownStrategy"/> for <see cref="StrategyBasedComWrappers"/> 80public static IIUnknownStrategy CreateUnknownStrategy() => new UnknownStrategy();
Windows\Win32\System\Com\GlobalInterfaceTable.UnknownStrategy.cs (3)
18void* IIUnknownStrategy.CreateInstancePointer(void* unknown) 25int IIUnknownStrategy.QueryInterface(void* instancePtr, in Guid iid, out void* ppObj) 28int IIUnknownStrategy.Release(void* instancePtr)
Windows\Win32\System\Com\WinFormsComStrategy.cs (1)
29protected override IIUnknownStrategy GetOrCreateIUnknownStrategy() => GlobalInterfaceTable.CreateUnknownStrategy();
System.Runtime.InteropServices (11)
System\Runtime\InteropServices\Marshalling\ComObject.cs (2)
38internal ComObject(IIUnknownInterfaceDetailsStrategy interfaceDetailsStrategy, IIUnknownStrategy iunknownStrategy, IIUnknownCacheStrategy cacheStrategy, void* thisPointer) 68private 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;