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