1 implementation of IIUnknownCacheStrategy
System.Runtime.InteropServices (1)
System\Runtime\InteropServices\Marshalling\DefaultCaching.cs (1)
10
internal sealed unsafe class DefaultCaching :
IIUnknownCacheStrategy
16 references to IIUnknownCacheStrategy
System.Runtime.InteropServices (16)
System\Runtime\InteropServices\Marshalling\ComObject.cs (5)
38
internal ComObject(IIUnknownInterfaceDetailsStrategy interfaceDetailsStrategy, IIUnknownStrategy iunknownStrategy,
IIUnknownCacheStrategy
cacheStrategy, void* thisPointer)
73
private
IIUnknownCacheStrategy
CacheStrategy { get; }
97
if (!LookUpVTableInfo(interfaceType, out
IIUnknownCacheStrategy
.TableInfo info, out int qiResult))
118
private bool LookUpVTableInfo(RuntimeTypeHandle handle, out
IIUnknownCacheStrategy
.TableInfo result, out int qiHResult)
155
if (!LookUpVTableInfo(type.TypeHandle, out
IIUnknownCacheStrategy
.TableInfo result, out int qiHResult))
System\Runtime\InteropServices\Marshalling\DefaultCaching.cs (9)
15
private readonly ConcurrentDictionary<RuntimeTypeHandle,
IIUnknownCacheStrategy
.TableInfo> _cache = new(concurrencyLevel: 1, capacity: 16);
17
IIUnknownCacheStrategy
.TableInfo
IIUnknownCacheStrategy
.ConstructTableInfo(RuntimeTypeHandle handle, IIUnknownDerivedDetails details, void* ptr)
20
return new
IIUnknownCacheStrategy
.TableInfo()
28
bool
IIUnknownCacheStrategy
.TryGetTableInfo(RuntimeTypeHandle handle, out
IIUnknownCacheStrategy
.TableInfo info)
33
bool
IIUnknownCacheStrategy
.TrySetTableInfo(RuntimeTypeHandle handle,
IIUnknownCacheStrategy
.TableInfo info)
38
void
IIUnknownCacheStrategy
.Clear(IIUnknownStrategy unknownStrategy)
System\Runtime\InteropServices\Marshalling\StrategyBasedComWrappers.cs (2)
40
protected static
IIUnknownCacheStrategy
CreateDefaultCacheStrategy() => new DefaultCaching();
74
protected virtual
IIUnknownCacheStrategy
CreateCacheStrategy() => CreateDefaultCacheStrategy();