2 implementations of IIUnknownStrategy
System.Private.Windows.Core (1)
Windows\Win32\System\Com\GlobalInterfaceTable.UnknownStrategy.cs (1)
14
private unsafe class UnknownStrategy :
IIUnknownStrategy
System.Runtime.InteropServices (1)
System\Runtime\InteropServices\Marshalling\FreeThreadedStrategy.cs (1)
9
internal 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"/>
80
public static
IIUnknownStrategy
CreateUnknownStrategy() => new UnknownStrategy();
Windows\Win32\System\Com\GlobalInterfaceTable.UnknownStrategy.cs (3)
18
void*
IIUnknownStrategy
.CreateInstancePointer(void* unknown)
25
int
IIUnknownStrategy
.QueryInterface(void* instancePtr, in Guid iid, out void* ppObj)
28
int
IIUnknownStrategy
.Release(void* instancePtr)
Windows\Win32\System\Com\WinFormsComStrategy.cs (1)
29
protected override
IIUnknownStrategy
GetOrCreateIUnknownStrategy() => GlobalInterfaceTable.CreateUnknownStrategy();
System.Runtime.InteropServices (11)
System\Runtime\InteropServices\Marshalling\ComObject.cs (2)
38
internal ComObject(IIUnknownInterfaceDetailsStrategy interfaceDetailsStrategy,
IIUnknownStrategy
iunknownStrategy, IIUnknownCacheStrategy cacheStrategy, void* thisPointer)
68
private
IIUnknownStrategy
IUnknownStrategy { get; }
System\Runtime\InteropServices\Marshalling\DefaultCaching.cs (1)
38
void IIUnknownCacheStrategy.Clear(
IIUnknownStrategy
unknownStrategy)
System\Runtime\InteropServices\Marshalling\FreeThreadedStrategy.cs (4)
11
public static readonly
IIUnknownStrategy
Instance = new FreeThreadedStrategy();
13
void*
IIUnknownStrategy
.CreateInstancePointer(void* unknown)
19
unsafe int
IIUnknownStrategy
.QueryInterface(void* thisPtr, in Guid handle, out void* ppObj)
33
unsafe 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>
63
void Clear(
IIUnknownStrategy
unknownStrategy);
System\Runtime\InteropServices\Marshalling\StrategyBasedComWrappers.cs (2)
34
public static
IIUnknownStrategy
DefaultIUnknownStrategy { get; } = FreeThreadedStrategy.Instance;
68
protected virtual
IIUnknownStrategy
GetOrCreateIUnknownStrategy() => DefaultIUnknownStrategy;