HRESULT InternetShortcut_Create(IUnknown *pOuter, REFIID riid, void **ppv) { InternetShortcut *This; HRESULT hr; TRACE("(%p, %s, %p)\n", pOuter, debugstr_guid(riid), ppv); *ppv = NULL; if(pOuter) return CLASS_E_NOAGGREGATION; This = create_shortcut(); if (This) { hr = Unknown_QueryInterface(This, riid, ppv); if (SUCCEEDED(hr)) SHDOCVW_LockModule(); else heap_free(This); return hr; } else return E_OUTOFMEMORY; }
HRESULT InternetShortcut_Create(IUnknown *pOuter, REFIID riid, void **ppv) { InternetShortcut *This; HRESULT hr; TRACE("(%p, %s, %p)\n", pOuter, debugstr_guid(riid), ppv); *ppv = NULL; if(pOuter) return CLASS_E_NOAGGREGATION; This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(InternetShortcut)); if (This) { This->uniformResourceLocatorA.lpVtbl = &uniformResourceLocatorAVtbl; This->uniformResourceLocatorW.lpVtbl = &uniformResourceLocatorWVtbl; This->persistFile.lpVtbl = &persistFileVtbl; This->refCount = 0; hr = Unknown_QueryInterface(This, riid, ppv); if (SUCCEEDED(hr)) SHDOCVW_LockModule(); else heap_free(This); return hr; } else return E_OUTOFMEMORY; }
static HRESULT WebBrowser_Create(INT version, IUnknown *pOuter, REFIID riid, void **ppv) { WebBrowser *ret; HRESULT hres; TRACE("(%p %s %p) version=%d\n", pOuter, debugstr_guid(riid), ppv, version); ret = heap_alloc_zero(sizeof(WebBrowser)); ret->lpWebBrowser2Vtbl = &WebBrowser2Vtbl; ret->lpServiceProviderVtbl = &ServiceProviderVtbl; ret->ref = 1; ret->version = version; DocHost_Init(&ret->doc_host, (IDispatch*)WEBBROWSER2(ret)); ret->visible = VARIANT_TRUE; ret->menu_bar = VARIANT_TRUE; ret->address_bar = VARIANT_TRUE; ret->status_bar = VARIANT_TRUE; ret->tool_bar = VARIANT_TRUE; WebBrowser_OleObject_Init(ret); WebBrowser_ViewObject_Init(ret); WebBrowser_Persist_Init(ret); WebBrowser_ClassInfo_Init(ret); WebBrowser_HlinkFrame_Init(ret); SHDOCVW_LockModule(); hres = IWebBrowser_QueryInterface(WEBBROWSER(ret), riid, ppv); IWebBrowser2_Release(WEBBROWSER(ret)); return hres; }
/************************************************************************ * WBCF_LockServer (IClassFactory) */ static HRESULT WINAPI WBCF_LockServer(LPCLASSFACTORY iface, BOOL dolock) { TRACE("(%d)\n", dolock); if (dolock) SHDOCVW_LockModule(); else SHDOCVW_UnlockModule(); return S_OK; }
static HRESULT WINAPI InstanceObjectFactory_IClassFactory_LockServer(IClassFactory *iface, BOOL fLock) { TRACE("(iface=%p, fLock=%d) stub\n", iface, fLock); if (fLock) SHDOCVW_LockModule(); else SHDOCVW_UnlockModule(); return S_OK; }
static ULONG WINAPI RegistryPropertyBag_IPropertyBag_AddRef(IPropertyBag *iface) { RegistryPropertyBag *This = ADJUST_THIS(RegistryPropertyBag, IPropertyBag, iface); ULONG cRef; TRACE("(iface=%p)\n", iface); cRef = InterlockedIncrement(&This->m_cRef); if (cRef == 1) SHDOCVW_LockModule(); return cRef; }
/************************************************************************ * WBCF_AddRef (IUnknown) */ static ULONG WINAPI WBCF_AddRef(LPCLASSFACTORY iface) { SHDOCVW_LockModule(); return 2; /* non-heap based object */ }