urlmon: COM cleanup for the IMoniker iface.
Michael Stefaniuc
mstefani at redhat.de
Tue Jan 11 03:10:04 CST 2011
---
dlls/urlmon/umon.c | 67 +++++++++++++++++++++++++++------------------------
1 files changed, 35 insertions(+), 32 deletions(-)
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index d33e0bf..b13c9c3 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -32,7 +32,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
typedef struct {
- const IMonikerVtbl *lpIMonikerVtbl;
+ IMoniker IMoniker_iface;
IUriContainer IUriContainer_iface;
LONG ref;
@@ -40,11 +40,14 @@ typedef struct {
LPOLESTR URLName; /* URL string identified by this URLmoniker */
} URLMoniker;
-#define MONIKER_THIS(iface) DEFINE_THIS(URLMoniker, IMoniker, iface)
+static inline URLMoniker *impl_from_IMoniker(IMoniker *iface)
+{
+ return CONTAINING_RECORD(iface, URLMoniker, IMoniker_iface);
+}
static HRESULT WINAPI URLMoniker_QueryInterface(IMoniker *iface, REFIID riid, void **ppv)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
if(!ppv)
return E_INVALIDARG;
@@ -79,7 +82,7 @@ static HRESULT WINAPI URLMoniker_QueryInterface(IMoniker *iface, REFIID riid, vo
static ULONG WINAPI URLMoniker_AddRef(IMoniker *iface)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
ULONG refCount = InterlockedIncrement(&This->ref);
TRACE("(%p) ref=%u\n",This, refCount);
@@ -89,7 +92,7 @@ static ULONG WINAPI URLMoniker_AddRef(IMoniker *iface)
static ULONG WINAPI URLMoniker_Release(IMoniker *iface)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE("(%p) ref=%u\n",This, refCount);
@@ -106,7 +109,7 @@ static ULONG WINAPI URLMoniker_Release(IMoniker *iface)
static HRESULT WINAPI URLMoniker_GetClassID(IMoniker *iface, CLSID *pClassID)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p,%p)\n", This, pClassID);
@@ -120,7 +123,7 @@ static HRESULT WINAPI URLMoniker_GetClassID(IMoniker *iface, CLSID *pClassID)
static HRESULT WINAPI URLMoniker_IsDirty(IMoniker *iface)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p)\n",This);
@@ -132,7 +135,7 @@ static HRESULT WINAPI URLMoniker_IsDirty(IMoniker *iface)
static HRESULT WINAPI URLMoniker_Load(IMoniker* iface,IStream* pStm)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
HRESULT res;
ULONG size;
ULONG got;
@@ -168,7 +171,7 @@ static HRESULT WINAPI URLMoniker_Load(IMoniker* iface,IStream* pStm)
static HRESULT WINAPI URLMoniker_Save(IMoniker *iface, IStream* pStm, BOOL fClearDirty)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
HRESULT res;
ULONG size;
@@ -188,7 +191,7 @@ static HRESULT WINAPI URLMoniker_Save(IMoniker *iface, IStream* pStm, BOOL fClea
static HRESULT WINAPI URLMoniker_GetSizeMax(IMoniker* iface, ULARGE_INTEGER *pcbSize)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p,%p)\n",This,pcbSize);
@@ -202,7 +205,7 @@ static HRESULT WINAPI URLMoniker_GetSizeMax(IMoniker* iface, ULARGE_INTEGER *pcb
static HRESULT WINAPI URLMoniker_BindToObject(IMoniker *iface, IBindCtx* pbc, IMoniker *pmkToLeft,
REFIID riid, void **ppv)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
IRunningObjectTable *obj_tbl;
IUri *uri;
HRESULT hres;
@@ -228,7 +231,7 @@ static HRESULT WINAPI URLMoniker_BindToObject(IMoniker *iface, IBindCtx* pbc, IM
static HRESULT WINAPI URLMoniker_BindToStorage(IMoniker* iface, IBindCtx* pbc,
IMoniker* pmkToLeft, REFIID riid, void **ppvObject)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
IUri *uri;
HRESULT hres;
@@ -250,8 +253,8 @@ static HRESULT WINAPI URLMoniker_BindToStorage(IMoniker* iface, IBindCtx* pbc,
static HRESULT WINAPI URLMoniker_Reduce(IMoniker *iface, IBindCtx *pbc,
DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced)
{
- URLMoniker *This = MONIKER_THIS(iface);
-
+ URLMoniker *This = impl_from_IMoniker(iface);
+
TRACE("(%p,%p,%d,%p,%p)\n", This, pbc, dwReduceHowFar, ppmkToLeft, ppmkReduced);
if(!ppmkReduced)
@@ -265,14 +268,14 @@ static HRESULT WINAPI URLMoniker_Reduce(IMoniker *iface, IBindCtx *pbc,
static HRESULT WINAPI URLMoniker_ComposeWith(IMoniker *iface, IMoniker *pmkRight,
BOOL fOnlyIfNotGeneric, IMoniker **ppmkComposite)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%d,%p): stub\n",This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
return E_NOTIMPL;
}
static HRESULT WINAPI URLMoniker_Enum(IMoniker *iface, BOOL fForward, IEnumMoniker **ppenumMoniker)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p,%d,%p)\n", This, fForward, ppenumMoniker);
@@ -286,7 +289,7 @@ static HRESULT WINAPI URLMoniker_Enum(IMoniker *iface, BOOL fForward, IEnumMonik
static HRESULT WINAPI URLMoniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoniker)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
CLSID clsid;
LPOLESTR urlPath;
IBindCtx* bind;
@@ -320,7 +323,7 @@ static HRESULT WINAPI URLMoniker_IsEqual(IMoniker *iface, IMoniker *pmkOtherMoni
static HRESULT WINAPI URLMoniker_Hash(IMoniker *iface, DWORD *pdwHash)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
int h = 0,i,skip,len;
int off = 0;
LPOLESTR val;
@@ -351,7 +354,7 @@ static HRESULT WINAPI URLMoniker_Hash(IMoniker *iface, DWORD *pdwHash)
static HRESULT WINAPI URLMoniker_IsRunning(IMoniker* iface, IBindCtx* pbc,
IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%p,%p): stub\n",This,pbc,pmkToLeft,pmkNewlyRunning);
return E_NOTIMPL;
}
@@ -359,28 +362,28 @@ static HRESULT WINAPI URLMoniker_IsRunning(IMoniker* iface, IBindCtx* pbc,
static HRESULT WINAPI URLMoniker_GetTimeOfLastChange(IMoniker *iface,
IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pFileTime)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%p,%p): stub\n", This, pbc, pmkToLeft, pFileTime);
return E_NOTIMPL;
}
static HRESULT WINAPI URLMoniker_Inverse(IMoniker *iface, IMoniker **ppmk)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p,%p)\n",This,ppmk);
return MK_E_NOINVERSE;
}
static HRESULT WINAPI URLMoniker_CommonPrefixWith(IMoniker *iface, IMoniker *pmkOther, IMoniker **ppmkPrefix)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%p): stub\n",This,pmkOther,ppmkPrefix);
return E_NOTIMPL;
}
static HRESULT WINAPI URLMoniker_RelativePathTo(IMoniker *iface, IMoniker *pmOther, IMoniker **ppmkRelPath)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%p): stub\n",This,pmOther,ppmkRelPath);
return E_NOTIMPL;
}
@@ -388,7 +391,7 @@ static HRESULT WINAPI URLMoniker_RelativePathTo(IMoniker *iface, IMoniker *pmOth
static HRESULT WINAPI URLMoniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft,
LPOLESTR *ppszDisplayName)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
int len;
TRACE("(%p,%p,%p,%p)\n", This, pbc, pmkToLeft, ppszDisplayName);
@@ -413,14 +416,14 @@ static HRESULT WINAPI URLMoniker_GetDisplayName(IMoniker *iface, IBindCtx *pbc,
static HRESULT WINAPI URLMoniker_ParseDisplayName(IMoniker *iface, IBindCtx *pbc, IMoniker *pmkToLeft,
LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
FIXME("(%p)->(%p,%p,%p,%p,%p): stub\n",This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
return E_NOTIMPL;
}
static HRESULT WINAPI URLMoniker_IsSystemMoniker(IMoniker *iface, DWORD *pwdMksys)
{
- URLMoniker *This = MONIKER_THIS(iface);
+ URLMoniker *This = impl_from_IMoniker(iface);
TRACE("(%p,%p)\n",This,pwdMksys);
@@ -466,19 +469,19 @@ static inline URLMoniker *impl_from_IUriContainer(IUriContainer *iface)
static HRESULT WINAPI UriContainer_QueryInterface(IUriContainer *iface, REFIID riid, void **ppv)
{
URLMoniker *This = impl_from_IUriContainer(iface);
- return IMoniker_QueryInterface((IMoniker*)&This->lpIMonikerVtbl, riid, ppv);
+ return IMoniker_QueryInterface(&This->IMoniker_iface, riid, ppv);
}
static ULONG WINAPI UriContainer_AddRef(IUriContainer *iface)
{
URLMoniker *This = impl_from_IUriContainer(iface);
- return IMoniker_AddRef((IMoniker*)&This->lpIMonikerVtbl);
+ return IMoniker_AddRef(&This->IMoniker_iface);
}
static ULONG WINAPI UriContainer_Release(IUriContainer *iface)
{
URLMoniker *This = impl_from_IUriContainer(iface);
- return IMoniker_Release((IMoniker*)&This->lpIMonikerVtbl);
+ return IMoniker_Release(&This->IMoniker_iface);
}
static HRESULT WINAPI UriContainer_GetIUri(IUriContainer *iface, IUri **ppIUri)
@@ -506,7 +509,7 @@ static URLMoniker *alloc_moniker(void)
if(!ret)
return NULL;
- ret->lpIMonikerVtbl = &URLMonikerVtbl;
+ ret->IMoniker_iface.lpVtbl = &URLMonikerVtbl;
ret->IUriContainer_iface.lpVtbl = &UriContainerVtbl;
ret->ref = 1;
ret->URLName = NULL;
@@ -602,8 +605,8 @@ HRESULT WINAPI CreateURLMonikerEx(IMoniker *pmkContext, LPCWSTR szURL, IMoniker
hres = URLMoniker_Init(obj, lefturl, szURL);
CoTaskMemFree(lefturl);
if(SUCCEEDED(hres))
- hres = URLMoniker_QueryInterface((IMoniker*)obj, &IID_IMoniker, (void**)ppmk);
- IMoniker_Release((IMoniker*)obj);
+ hres = URLMoniker_QueryInterface(&obj->IMoniker_iface, &IID_IMoniker, (void**)ppmk);
+ IMoniker_Release(&obj->IMoniker_iface);
return hres;
}
--
1.7.3.4
More information about the wine-patches
mailing list