static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock) { TRACE("(%p)->(%x)\n", iface, fLock); if(fLock) lock_module(); else unlock_module(); return S_OK; }
static ULONG Unknown_Release(InternetShortcut *This) { ULONG count; TRACE("(%p)\n", This); count = InterlockedDecrement(&This->refCount); if (count == 0) { CoTaskMemFree(This->url); CoTaskMemFree(This->currentFile); IPropertySetStorage_Release(This->property_set_storage); heap_free(This); unlock_module(); } return count; }
static ULONG WINAPI JScript_Release(IActiveScript *iface) { JScript *This = ACTSCRIPT_THIS(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", iface, ref); if(!ref) { if(This->ctx && This->ctx->state != SCRIPTSTATE_CLOSED) IActiveScript_Close(ACTSCRIPT(This)); if(This->ctx) script_release(This->ctx); heap_free(This); unlock_module(); } return ref; }
static ULONG WINAPI JScript_Release(IActiveScript *iface) { JScript *This = impl_from_IActiveScript(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", iface, ref); if(!ref) { if(This->ctx && This->ctx->state != SCRIPTSTATE_CLOSED) IActiveScript_Close(&This->IActiveScript_iface); if(This->ctx) { This->ctx->active_script = NULL; script_release(This->ctx); } heap_free(This); unlock_module(); } return ref; }
static ULONG WINAPI WebBrowser_Release(IWebBrowser2 *iface) { WebBrowser *This = impl_from_IWebBrowser2(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if(!ref) { if(This->doc_host.document) IUnknown_Release(This->doc_host.document); DocHost_Release(&This->doc_host); WebBrowser_OleObject_Destroy(This); heap_free(This); unlock_module(); } return ref; }
static ULONG WINAPI UrlHistoryStg_Release(IUrlHistoryStg2 *iface) { unlock_module(); return 1; }