/// <summary> /// Wrapper classes will most likely implement new version of this method. /// </summary> /// <param name="instance"></param> /// <param name="ownsInstance"></param> /// <param name="addToCache"></param> internal virtual void SetupInstance(IntPtr instance, bool ownsInstance, bool addToCache = true) { OwnsNativeInstance = ownsInstance; NativeInstance = instance; if (addToCache) { InstanceCache.Add(this); } OnSetupInstance(); }
/// <summary> /// Wrapper classes will most likely implement new version of this method. /// </summary> /// <param name="instance"></param> /// <param name="flags"></param> internal virtual void SetupInstance(IntPtr instance, NativeObjectFlags flags = NativeObjectFlags.None) { Flags = flags; NativeInstance = instance; if (!flags.HasFlag(NativeObjectFlags.SkipInstanceCache)) { InstanceCache.Add(this); } OnSetupInstance(); }
// Derived types will put object initialization code here. At the time of writing such code sets up virtual // method callbacks and nothing more. internal virtual void PerformInstanceSetup(IntPtr instance, bool ownsInstance) { OwnsNativeInstance = ownsInstance; NativeInstance = instance; InstanceCache.Add(this); }