/// <summary> /// Cleans up the explorer browser events+object when the window is being taken down. /// </summary> /// <param name="e">An EventArgs that contains event data.</param> protected override void OnHandleDestroyed(EventArgs e) { if (explorerBrowserControl != null) { // unhook events viewEvents.DisconnectFromView(); explorerBrowserControl.Unadvise(eventsCookie); ExplorerBrowserNativeMethods.IUnknown_SetSite(explorerBrowserControl, null); // destroy the explorer browser control explorerBrowserControl.Destroy(); // release com reference to it Marshal.ReleaseComObject(explorerBrowserControl); explorerBrowserControl = null; } base.OnHandleDestroyed(e); }