Michael Stefaniuc : shell32: Standardize the COM usage in dataobject.c.
Alexandre Julliard
julliard at winehq.org
Tue Dec 7 10:59:32 CST 2010
Module: wine
Branch: master
Commit: b6f869c743b6806cabd3c016962ef7c3eae1fbd2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6f869c743b6806cabd3c016962ef7c3eae1fbd2
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Tue Dec 7 11:09:41 2010 +0100
shell32: Standardize the COM usage in dataobject.c.
---
dlls/shell32/dataobject.c | 60 ++++++++++++++++++++++++++------------------
1 files changed, 35 insertions(+), 25 deletions(-)
diff --git a/dlls/shell32/dataobject.c b/dlls/shell32/dataobject.c
index f949fe0..1ad010c 100644
--- a/dlls/shell32/dataobject.c
+++ b/dlls/shell32/dataobject.c
@@ -42,18 +42,23 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
typedef struct
{
/* IUnknown fields */
- const IEnumFORMATETCVtbl *lpVtbl;
- LONG ref;
+ IEnumFORMATETC IEnumFORMATETC_iface;
+ LONG ref;
/* IEnumFORMATETC fields */
UINT posFmt;
UINT countFmt;
LPFORMATETC pFmt;
} IEnumFORMATETCImpl;
+static inline IEnumFORMATETCImpl *impl_from_IEnumFORMATETC(IEnumFORMATETC *iface)
+{
+ return CONTAINING_RECORD(iface, IEnumFORMATETCImpl, IEnumFORMATETC_iface);
+}
+
static HRESULT WINAPI IEnumFORMATETC_fnQueryInterface(
LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
*ppvObj = NULL;
@@ -79,7 +84,7 @@ static HRESULT WINAPI IEnumFORMATETC_fnQueryInterface(
static ULONG WINAPI IEnumFORMATETC_fnAddRef(LPENUMFORMATETC iface)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
ULONG refCount = InterlockedIncrement(&This->ref);
TRACE("(%p)->(count=%u)\n", This, refCount - 1);
@@ -89,7 +94,7 @@ static ULONG WINAPI IEnumFORMATETC_fnAddRef(LPENUMFORMATETC iface)
static ULONG WINAPI IEnumFORMATETC_fnRelease(LPENUMFORMATETC iface)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE("(%p)->(%u)\n", This, refCount + 1);
@@ -106,7 +111,7 @@ static ULONG WINAPI IEnumFORMATETC_fnRelease(LPENUMFORMATETC iface)
static HRESULT WINAPI IEnumFORMATETC_fnNext(LPENUMFORMATETC iface, ULONG celt, FORMATETC *rgelt, ULONG *pceltFethed)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
UINT i;
TRACE("(%p)->(%u,%p)\n", This, celt, rgelt);
@@ -127,7 +132,7 @@ static HRESULT WINAPI IEnumFORMATETC_fnNext(LPENUMFORMATETC iface, ULONG celt, F
static HRESULT WINAPI IEnumFORMATETC_fnSkip(LPENUMFORMATETC iface, ULONG celt)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
TRACE("(%p)->(num=%u)\n", This, celt);
if((This->posFmt + celt) >= This->countFmt) return S_FALSE;
@@ -137,7 +142,7 @@ static HRESULT WINAPI IEnumFORMATETC_fnSkip(LPENUMFORMATETC iface, ULONG celt)
static HRESULT WINAPI IEnumFORMATETC_fnReset(LPENUMFORMATETC iface)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
TRACE("(%p)->()\n", This);
This->posFmt = 0;
@@ -146,7 +151,7 @@ static HRESULT WINAPI IEnumFORMATETC_fnReset(LPENUMFORMATETC iface)
static HRESULT WINAPI IEnumFORMATETC_fnClone(LPENUMFORMATETC iface, LPENUMFORMATETC* ppenum)
{
- IEnumFORMATETCImpl *This = (IEnumFORMATETCImpl *)iface;
+ IEnumFORMATETCImpl *This = impl_from_IEnumFORMATETC(iface);
TRACE("(%p)->(ppenum=%p)\n", This, ppenum);
if (!ppenum) return E_INVALIDARG;
@@ -177,7 +182,7 @@ LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[])
if(ef)
{
ef->ref=1;
- ef->lpVtbl=&efvt;
+ ef->IEnumFORMATETC_iface.lpVtbl = &efvt;
ef->countFmt = cfmt;
ef->pFmt = SHAlloc (size);
@@ -201,8 +206,8 @@ LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[])
typedef struct
{
/* IUnknown fields */
- const IDataObjectVtbl *lpVtbl;
- LONG ref;
+ IDataObject IDataObject_iface;
+ LONG ref;
/* IDataObject fields */
LPITEMIDLIST pidl;
@@ -216,12 +221,17 @@ typedef struct
} IDataObjectImpl;
+static inline IDataObjectImpl *impl_from_IDataObject(IDataObject *iface)
+{
+ return CONTAINING_RECORD(iface, IDataObjectImpl, IDataObject_iface);
+}
+
/***************************************************************************
* IDataObject_QueryInterface
*/
static HRESULT WINAPI IDataObject_fnQueryInterface(LPDATAOBJECT iface, REFIID riid, LPVOID * ppvObj)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
*ppvObj = NULL;
@@ -250,7 +260,7 @@ static HRESULT WINAPI IDataObject_fnQueryInterface(LPDATAOBJECT iface, REFIID ri
*/
static ULONG WINAPI IDataObject_fnAddRef(LPDATAOBJECT iface)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
ULONG refCount = InterlockedIncrement(&This->ref);
TRACE("(%p)->(count=%u)\n", This, refCount - 1);
@@ -263,7 +273,7 @@ static ULONG WINAPI IDataObject_fnAddRef(LPDATAOBJECT iface)
*/
static ULONG WINAPI IDataObject_fnRelease(LPDATAOBJECT iface)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
ULONG refCount = InterlockedDecrement(&This->ref);
TRACE("(%p)->(%u)\n", This, refCount + 1);
@@ -283,7 +293,7 @@ static ULONG WINAPI IDataObject_fnRelease(LPDATAOBJECT iface)
*/
static HRESULT WINAPI IDataObject_fnGetData(LPDATAOBJECT iface, LPFORMATETC pformatetcIn, STGMEDIUM *pmedium)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
char szTemp[256];
@@ -327,14 +337,14 @@ static HRESULT WINAPI IDataObject_fnGetData(LPDATAOBJECT iface, LPFORMATETC pfor
static HRESULT WINAPI IDataObject_fnGetDataHere(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDataObject_fnQueryGetData(LPDATAOBJECT iface, LPFORMATETC pformatetc)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
UINT i;
TRACE("(%p)->(fmt=0x%08x tym=0x%08x)\n", This, pformatetc->cfFormat, pformatetc->tymed);
@@ -357,21 +367,21 @@ static HRESULT WINAPI IDataObject_fnQueryGetData(LPDATAOBJECT iface, LPFORMATETC
static HRESULT WINAPI IDataObject_fnGetCanonicalFormatEtc(LPDATAOBJECT iface, LPFORMATETC pformatectIn, LPFORMATETC pformatetcOut)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDataObject_fnSetData(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium, BOOL fRelease)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDataObject_fnEnumFormatEtc(LPDATAOBJECT iface, DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
TRACE("(%p)->()\n", This);
*ppenumFormatEtc=NULL;
@@ -388,19 +398,19 @@ static HRESULT WINAPI IDataObject_fnEnumFormatEtc(LPDATAOBJECT iface, DWORD dwDi
static HRESULT WINAPI IDataObject_fnDAdvise(LPDATAOBJECT iface, FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDataObject_fnDUnadvise(LPDATAOBJECT iface, DWORD dwConnection)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI IDataObject_fnEnumDAdvise(LPDATAOBJECT iface, IEnumSTATDATA **ppenumAdvise)
{
- IDataObjectImpl *This = (IDataObjectImpl *)iface;
+ IDataObjectImpl *This = impl_from_IDataObject(iface);
FIXME("(%p)->()\n", This);
return E_NOTIMPL;
}
@@ -434,7 +444,7 @@ LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner,
if (dto)
{
dto->ref = 1;
- dto->lpVtbl = &dtovt;
+ dto->IDataObject_iface.lpVtbl = &dtovt;
dto->pidl = ILClone(pMyPidl);
dto->apidl = _ILCopyaPidl(apidl, cidl);
dto->cidl = cidl;
More information about the wine-cvs
mailing list