diff --git a/dlls/shdocvw/events.c b/dlls/shdocvw/events.c index e6541f9685a..8d357286fae 100644 --- a/dlls/shdocvw/events.c +++ b/dlls/shdocvw/events.c @@ -206,10 +206,10 @@ static HRESULT WINAPI ConnectionPoint_Advise(IConnectionPoint *iface, IUnknown * } if(i == This->sinks_size) - This->sinks = HeapReAlloc(GetProcessHeap(), 0, This->sinks, - (++This->sinks_size)*sizeof(*This->sinks)); + This->sinks = shdocvw_realloc(This->sinks, + (++This->sinks_size)*sizeof(*This->sinks)); }else { - This->sinks = HeapAlloc(GetProcessHeap(), 0, sizeof(*This->sinks)); + This->sinks = shdocvw_alloc(sizeof(*This->sinks)); This->sinks_size = 1; i = 0; } @@ -270,7 +270,7 @@ void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams) static void ConnectionPoint_Create(DocHost *doc_host, REFIID riid, ConnectionPoint **cp) { - ConnectionPoint *ret = HeapAlloc(GetProcessHeap(), 0, sizeof(ConnectionPoint)); + ConnectionPoint *ret = shdocvw_alloc(sizeof(ConnectionPoint)); ret->lpConnectionPointVtbl = &ConnectionPointVtbl; @@ -293,8 +293,8 @@ static void ConnectionPoint_Destroy(ConnectionPoint *This) IDispatch_Release(This->sinks[i]); } - HeapFree(GetProcessHeap(), 0, This->sinks); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This->sinks); + shdocvw_free(This); } void DocHost_Events_Init(DocHost *This) diff --git a/dlls/shdocvw/ie.c b/dlls/shdocvw/ie.c index 857241f3ee5..354ad3cc1f6 100644 --- a/dlls/shdocvw/ie.c +++ b/dlls/shdocvw/ie.c @@ -72,7 +72,7 @@ static ULONG WINAPI InternetExplorer_Release(IWebBrowser2 *iface) if(!ref) { DocHost_Release(&This->doc_host); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This); } return ref; diff --git a/dlls/shdocvw/iexplore.c b/dlls/shdocvw/iexplore.c index 91548fdc90c..a78255ef9bd 100644 --- a/dlls/shdocvw/iexplore.c +++ b/dlls/shdocvw/iexplore.c @@ -149,7 +149,7 @@ HRESULT InternetExplorer_Create(IUnknown *pOuter, REFIID riid, void **ppv) TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv); - ret = HeapAlloc(GetProcessHeap(), 0, sizeof(InternetExplorer)); + ret = shdocvw_alloc(sizeof(InternetExplorer)); ret->ref = 0; ret->doc_host.disp = (IDispatch*)WEBBROWSER2(ret); @@ -162,7 +162,7 @@ HRESULT InternetExplorer_Create(IUnknown *pOuter, REFIID riid, void **ppv) hres = IWebBrowser2_QueryInterface(WEBBROWSER2(ret), riid, ppv); if(FAILED(hres)) { - HeapFree(GetProcessHeap(), 0, ret); + shdocvw_free(ret); return hres; } @@ -195,12 +195,12 @@ DWORD WINAPI IEWinMain(LPSTR szCommandLine, int nShowWindow) DWORD len; len = MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, NULL, 0); - url = HeapAlloc(GetProcessHeap(),0,len*sizeof(WCHAR)); + url = shdocvw_alloc(len*sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, szCommandLine, -1, url, len); wb = create_ie_window(url); - HeapFree(GetProcessHeap(), 0, url); + shdocvw_free(url); } /* run the message loop for this thread */ diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c index 5798eada76f..99986244d76 100644 --- a/dlls/shdocvw/navigate.c +++ b/dlls/shdocvw/navigate.c @@ -137,8 +137,8 @@ static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface) if(!ref) { if(This->post_data) GlobalFree(This->post_data); - HeapFree(GetProcessHeap(), 0, This->headers); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This->headers); + shdocvw_free(This); } return ref; @@ -293,7 +293,7 @@ static const IHttpNegotiateVtbl HttpNegotiateVtbl = { static IBindStatusCallback *create_callback(DocHost *This, PBYTE post_data, ULONG post_data_len, LPWSTR headers, VARIANT_BOOL *cancel) { - BindStatusCallback *ret = HeapAlloc(GetProcessHeap(), 0, sizeof(BindStatusCallback)); + BindStatusCallback *ret = shdocvw_alloc(sizeof(BindStatusCallback)); ret->lpBindStatusCallbackVtbl = &BindStatusCallbackVtbl; ret->lpHttpNegotiateVtbl = &HttpNegotiateVtbl; @@ -310,7 +310,7 @@ static IBindStatusCallback *create_callback(DocHost *This, PBYTE post_data, if(headers) { int size = (strlenW(headers)+1)*sizeof(WCHAR); - ret->headers = HeapAlloc(GetProcessHeap(), 0, size); + ret->headers = shdocvw_alloc(size); memcpy(ret->headers, headers, size); } diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index 49fb9cb9ed7..0279aca999a 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -207,4 +207,21 @@ extern void unregister_iewindow_class(void); HRESULT register_class_object(BOOL); +/* memory allocation functions */ + +static inline void *shdocvw_alloc(size_t len) +{ + return HeapAlloc(GetProcessHeap(), 0, len); +} + +static inline void *shdocvw_realloc(void *mem, size_t len) +{ + return HeapReAlloc(GetProcessHeap(), 0, mem, len); +} + +static inline BOOL shdocvw_free(void *mem) +{ + return HeapFree(GetProcessHeap(), 0, mem); +} + #endif /* __WINE_SHDOCVW_H */ diff --git a/dlls/shdocvw/shdocvw_main.c b/dlls/shdocvw/shdocvw_main.c index 0093243a2d6..206f457b3a1 100644 --- a/dlls/shdocvw/shdocvw_main.c +++ b/dlls/shdocvw/shdocvw_main.c @@ -180,7 +180,7 @@ static ULONG WINAPI dlRelease( IBindStatusCallback* iface ) if( !ref ) { DestroyWindow( This->hDialog ); - HeapFree( GetProcessHeap(), 0, This ); + shdocvw_free(This); } SHDOCVW_UnlockModule(); @@ -285,7 +285,7 @@ static IBindStatusCallback* create_dl(HWND dlg, BOOL *pbCancelled) { IBindStatusCallbackImpl *This; - This = HeapAlloc( GetProcessHeap(), 0, sizeof *This ); + This = shdocvw_alloc(sizeof(*This)); This->vtbl = &dlVtbl; This->ref = 1; This->hDialog = dlg; diff --git a/dlls/shdocvw/shlinstobj.c b/dlls/shdocvw/shlinstobj.c index 19ba3b84fae..09f31ddb301 100644 --- a/dlls/shdocvw/shlinstobj.c +++ b/dlls/shdocvw/shlinstobj.c @@ -60,7 +60,7 @@ static void RegistryPropertyBag_Destroy(RegistryPropertyBag *This) { TRACE("This=%p)\n", This); RegCloseKey(This->m_hInitPropertyBagKey); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This); } static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_QueryInterface(IPropertyBag *iface, @@ -131,20 +131,20 @@ static HRESULT WINAPI RegistryPropertyBag_IPropertyBag_Read(IPropertyBag *iface, if (res != ERROR_SUCCESS) return E_INVALIDARG; - pwszValue = HeapAlloc(GetProcessHeap(), 0, cbData); + pwszValue = shdocvw_alloc(cbData); if (!pwszValue) return E_OUTOFMEMORY; res = RegQueryValueExW(This->m_hInitPropertyBagKey, pwszPropName, NULL, &dwType, (LPBYTE)pwszValue, &cbData); if (res != ERROR_SUCCESS) { - HeapFree(GetProcessHeap(), 0, pwszValue); + shdocvw_free(pwszValue); return E_INVALIDARG; } V_VT(pVar) = VT_BSTR; V_BSTR(pVar) = SysAllocString(pwszValue); - HeapFree(GetProcessHeap(), 0, pwszValue); + shdocvw_free(pwszValue); if (vtDst != VT_BSTR) { hr = VariantChangeTypeEx(pVar, pVar, LOCALE_SYSTEM_DEFAULT, 0, vtDst); @@ -177,7 +177,7 @@ HRESULT RegistryPropertyBag_Constructor(HKEY hInitPropertyBagKey, REFIID riid, L TRACE("(hInitPropertyBagKey=%p, riid=%s, ppvObject=%p)\n", hInitPropertyBagKey, debugstr_guid(riid), ppvObject); - pRegistryPropertyBag = HeapAlloc(GetProcessHeap(), 0, sizeof(RegistryPropertyBag)); + pRegistryPropertyBag = shdocvw_alloc(sizeof(RegistryPropertyBag)); if (pRegistryPropertyBag) { pRegistryPropertyBag->lpIPropertyBagVtbl = &RegistryPropertyBag_IPropertyBagVtbl; pRegistryPropertyBag->m_cRef = 0; @@ -207,7 +207,7 @@ typedef struct _InstanceObjectFactory { static void InstanceObjectFactory_Destroy(InstanceObjectFactory *This) { IPropertyBag_Release(This->m_pPropertyBag); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This); } static HRESULT WINAPI InstanceObjectFactory_IClassFactory_QueryInterface(IClassFactory *iface, @@ -323,7 +323,7 @@ HRESULT InstanceObjectFactory_Constructor(REFCLSID rclsid, IPropertyBag *pProper TRACE("(RegistryPropertyBag=%p, riid=%s, ppvObject=%p)\n", pPropertyBag, debugstr_guid(riid), ppvObject); - pInstanceObjectFactory = HeapAlloc(GetProcessHeap(), 0, sizeof(InstanceObjectFactory)); + pInstanceObjectFactory = shdocvw_alloc(sizeof(InstanceObjectFactory)); if (pInstanceObjectFactory) { pInstanceObjectFactory->lpIClassFactoryVtbl = &InstanceObjectFactory_IClassFactoryVtbl; pInstanceObjectFactory->m_cRef = 0; diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index d50bbf3249c..3b319de2f48 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -133,7 +133,7 @@ static ULONG WINAPI WebBrowser_Release(IWebBrowser2 *iface) WebBrowser_OleObject_Destroy(This); - HeapFree(GetProcessHeap(), 0, This); + shdocvw_free(This); SHDOCVW_UnlockModule(); } @@ -925,7 +925,7 @@ HRESULT WebBrowser_Create(IUnknown *pOuter, REFIID riid, void **ppv) TRACE("(%p %s %p)\n", pOuter, debugstr_guid(riid), ppv); - ret = HeapAlloc(GetProcessHeap(), 0, sizeof(WebBrowser)); + ret = shdocvw_alloc(sizeof(WebBrowser)); ret->lpWebBrowser2Vtbl = &WebBrowser2Vtbl; ret->ref = 0; @@ -949,7 +949,7 @@ HRESULT WebBrowser_Create(IUnknown *pOuter, REFIID riid, void **ppv) if(SUCCEEDED(hres)) { SHDOCVW_LockModule(); }else { - HeapFree(GetProcessHeap(), 0, ret); + shdocvw_free(ret); return hres; }