void Dispose(bool disposing) { if (disposed) { return; } disposed = true; init = false; if (disposing) { previewHandler.Unload(); comSite.Dispose(); site = null; Marshal.ReleaseComObject(previewHandler); } else { // We're in the finalizer. // Field previewHandler might have been finalized at this point. // Get a new RCW. var phObject = Marshal.GetUniqueObjectForIUnknown(pPreviewHandler); var ph = phObject as IPreviewHandler; if (ph != null) { ph.Unload(); } Marshal.ReleaseComObject(phObject); } Marshal.Release(pPreviewHandler); }
public PreviewHandler(Guid clsid, IPreviewHandlerManagedFrame frame) { disposed = true; init = false; shown = false; comSite = new PreviewHandlerFrame(frame); site = frame; try { SetupHandler(clsid); disposed = false; } catch { if (previewHandler != null) { Marshal.ReleaseComObject(previewHandler); } previewHandler = null; if (pPreviewHandler != IntPtr.Zero) { Marshal.Release(pPreviewHandler); } pPreviewHandler = IntPtr.Zero; comSite.Dispose(); comSite = null; site = null; throw; } }
public PreviewHandlerFrame(IPreviewHandlerManagedFrame frame) { disposed = true; if (frame == null) { throw new ArgumentNullException("frame"); } disposed = false; site = frame; }
public void Dispose() { disposed = true; site = null; }