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