void NSContainer_Release(NSContainer *This) { TRACE("(%p)\n", This); ShowWindow(This->hwnd, SW_HIDE); SetParent(This->hwnd, NULL); nsIBaseWindow_SetVisibility(This->window, FALSE); nsIBaseWindow_Destroy(This->window); nsIWebBrowser_SetContainerWindow(This->webbrowser, NULL); nsIWebBrowser_Release(This->webbrowser); This->webbrowser = NULL; nsIWebNavigation_Release(This->navigation); This->navigation = NULL; nsIBaseWindow_Release(This->window); This->window = NULL; nsIWebBrowserFocus_Release(This->focus); This->focus = NULL; if(This->hwnd) { DestroyWindow(This->hwnd); This->hwnd = NULL; } nsIWebBrowserChrome_Release(NSWBCHROME(This)); }
static nsrefcnt NSAPI nsWebBrowserChrome_Release(nsIWebBrowserChrome *iface) { NSContainer *This = NSWBCHROME_THIS(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%ld\n", This, ref); if(!ref) { if(This->parent) nsIWebBrowserChrome_Release(NSWBCHROME(This->parent)); mshtml_free(This); } return ref; }
static nsrefcnt NSAPI nsEmbeddingSiteWindow_Release(nsIEmbeddingSiteWindow *iface) { NSContainer *This = NSEMBWNDS_THIS(iface); return nsIWebBrowserChrome_Release(NSWBCHROME(This)); }
static nsrefcnt NSAPI nsURIContentListener_Release(nsIURIContentListener *iface) { NSContainer *This = NSURICL_THIS(iface); return nsIWebBrowserChrome_Release(NSWBCHROME(This)); }
static nsrefcnt NSAPI nsSupportsWeakReference_Release(nsISupportsWeakReference *iface) { NSContainer *This = NSSUPWEAKREF_THIS(iface); return nsIWebBrowserChrome_Release(NSWBCHROME(This)); }
static nsrefcnt NSAPI nsInterfaceRequestor_Release(nsIInterfaceRequestor *iface) { NSContainer *This = NSIFACEREQ_THIS(iface); return nsIWebBrowserChrome_Release(NSWBCHROME(This)); }
static nsrefcnt NSAPI nsDOMEventListener_Release(nsIDOMEventListener *iface) { NSContainer *This = NSEVENTLIST_THIS(iface)->This; return nsIWebBrowserChrome_Release(NSWBCHROME(This)); }