9[UnsupportedOSPlatform(
"android")]
10[UnsupportedOSPlatform(
"browser")]
11[UnsupportedOSPlatform(
"ios")]
12[UnsupportedOSPlatform(
"tvos")]
74 comWrappers = comWrappersImpl;
83 if (comWrappers ==
null)
106 comWrappers = comWrappersImpl;
115 return comWrappers?.
CreateObject(externalComObject, flags);
146 object o = wrapperMaybe;
161 if (instance ==
null)
173 [SuppressGCTransition]
176 [SupportedOSPlatform(
"windows")]
179 if (instance ==
null)
191 [SuppressGCTransition]
209 return (
int)customQueryInterface.GetInterface(ref iid, out ppObject);
static void GetIUnknownImpl(out IntPtr fpQueryInterface, out IntPtr fpAddRef, out IntPtr fpRelease)
object GetOrCreateObjectForComInstance(IntPtr externalComObject, CreateObjectFlags flags)
IntPtr GetOrCreateComInterfaceForObject(object instance, CreateComInterfaceFlags flags)
static void SetGlobalInstanceRegisteredForTrackerSupport(long id)
static object CallCreateObject(ComWrappersScenario scenario, ComWrappers comWrappersImpl, IntPtr externalComObject, CreateObjectFlags flags)
object GetOrRegisterObjectForComInstance(IntPtr externalComObject, CreateObjectFlags flags, object wrapper, IntPtr inner)
static void CallReleaseObjects(ComWrappers comWrappersImpl, IEnumerable objects)
static long s_instanceCounter
static int CallICustomQueryInterface(object customQueryInterfaceMaybe, ref Guid iid, out IntPtr ppObject)
static unsafe void * CallComputeVtables(ComWrappersScenario scenario, ComWrappers comWrappersImpl, object obj, CreateComInterfaceFlags flags, out int count)
void ReleaseObjects(IEnumerable objects)
static bool TryGetOrCreateComInterfaceForObjectInternal(ObjectHandleOnStack comWrappersImpl, long wrapperId, ObjectHandleOnStack instance, CreateComInterfaceFlags flags, out IntPtr retValue)
object GetOrRegisterObjectForComInstance(IntPtr externalComObject, CreateObjectFlags flags, object wrapper)
static ComWrappers s_globalInstanceForMarshalling
object? CreateObject(IntPtr externalComObject, CreateObjectFlags flags)
static void RegisterForTrackerSupport(ComWrappers instance)
static void GetIUnknownImplInternal(out IntPtr fpQueryInterface, out IntPtr fpAddRef, out IntPtr fpRelease)
static ComWrappers s_globalInstanceForTrackerSupport
unsafe ComInterfaceEntry * ComputeVtables(object obj, CreateComInterfaceFlags flags, out int count)
static void RegisterForMarshalling(ComWrappers instance)
static bool TryGetOrCreateComInterfaceForObjectInternal(ComWrappers impl, object instance, CreateComInterfaceFlags flags, out IntPtr retValue)
static bool TryGetOrCreateObjectForComInstanceInternal(ObjectHandleOnStack comWrappersImpl, long wrapperId, IntPtr externalComObject, IntPtr innerMaybe, CreateObjectFlags flags, ObjectHandleOnStack wrapper, ObjectHandleOnStack retValue)
static void SetGlobalInstanceRegisteredForMarshalling(long id)
static bool TryGetOrCreateObjectForComInstanceInternal(ComWrappers impl, IntPtr externalComObject, IntPtr innerMaybe, CreateObjectFlags flags, object wrapperMaybe, out object retValue)
static string InvalidOperation_SuppliedInnerMustBeMarkedAggregation
static string InvalidOperation_ResetGlobalComWrappersInstance
static int CompareExchange(ref int location1, int value, int comparand)
static int Increment(ref int location)
static readonly IntPtr Zero
static unsafe T GetInstance< T >(ComInterfaceDispatch *dispatchPtr)
static unsafe object InternalGet(IntPtr handle)