private void FreeComObject(object comObject) { if (activate != null) { activate.ShutdownObject(); } Marshal.ReleaseComObject(comObject); }
public static void ShutdownObject(this IMFActivate obj, bool throwOnError = true) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } obj.ShutdownObject().ThrowOnError(throwOnError); }
//------------------------------------------------------------------- // CloseDevice // // Releases all resources held by this object. //------------------------------------------------------------------- public virtual int CloseDevice() { lock (LockSync) { SafeRelease(PReader); PReader = null; pActivate?.ShutdownObject(); pActivate = null; PwszSymbolicLink = null; Draw.DrawNullFrame(); } return(S_Ok); }