Michael Stefaniuc : msctf: Use an iface instead of a vtbl pointer in DisplayAttributeMgr.

Alexandre Julliard julliard at winehq.org
Thu Dec 9 12:26:28 CST 2010


Module: wine
Branch: master
Commit: 242bd9e4b26a69466c7fb2210e815f0f9c29969e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=242bd9e4b26a69466c7fb2210e815f0f9c29969e

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Wed Dec  8 22:59:38 2010 +0100

msctf: Use an iface instead of a vtbl pointer in DisplayAttributeMgr.

---

 dlls/msctf/displayattributemgr.c |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/dlls/msctf/displayattributemgr.c b/dlls/msctf/displayattributemgr.c
index 75248cd..44c61ab 100644
--- a/dlls/msctf/displayattributemgr.c
+++ b/dlls/msctf/displayattributemgr.c
@@ -31,12 +31,17 @@
 WINE_DEFAULT_DEBUG_CHANNEL(msctf);
 
 typedef struct tagDisplayAttributeMgr {
-    const ITfDisplayAttributeMgrVtbl *DisplayAttributeMgrVtbl;
+    ITfDisplayAttributeMgr ITfDisplayAttributeMgr_iface;
 
     LONG refCount;
 
 } DisplayAttributeMgr;
 
+static inline DisplayAttributeMgr *impl_from_ITfDisplayAttributeMgr(ITfDisplayAttributeMgr *iface)
+{
+    return CONTAINING_RECORD(iface, DisplayAttributeMgr, ITfDisplayAttributeMgr_iface);
+}
+
 static void DisplayAttributeMgr_Destructor(DisplayAttributeMgr *This)
 {
     TRACE("destroying %p\n", This);
@@ -46,7 +51,7 @@ static void DisplayAttributeMgr_Destructor(DisplayAttributeMgr *This)
 
 static HRESULT WINAPI DisplayAttributeMgr_QueryInterface(ITfDisplayAttributeMgr *iface, REFIID iid, LPVOID *ppvOut)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
     *ppvOut = NULL;
 
     if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_ITfDisplayAttributeMgr))
@@ -66,13 +71,13 @@ static HRESULT WINAPI DisplayAttributeMgr_QueryInterface(ITfDisplayAttributeMgr
 
 static ULONG WINAPI DisplayAttributeMgr_AddRef(ITfDisplayAttributeMgr *iface)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
     return InterlockedIncrement(&This->refCount);
 }
 
 static ULONG WINAPI DisplayAttributeMgr_Release(ITfDisplayAttributeMgr *iface)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
     ULONG ret;
 
     ret = InterlockedDecrement(&This->refCount);
@@ -87,7 +92,7 @@ static ULONG WINAPI DisplayAttributeMgr_Release(ITfDisplayAttributeMgr *iface)
 
 static HRESULT WINAPI DisplayAttributeMgr_OnUpdateInfo(ITfDisplayAttributeMgr *iface)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
 
     FIXME("STUB:(%p)\n",This);
     return E_NOTIMPL;
@@ -95,7 +100,7 @@ static HRESULT WINAPI DisplayAttributeMgr_OnUpdateInfo(ITfDisplayAttributeMgr *i
 
 static HRESULT WINAPI DisplayAttributeMgr_EnumDisplayAttributeInfo(ITfDisplayAttributeMgr *iface, IEnumTfDisplayAttributeInfo **ppEnum)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
 
     FIXME("STUB:(%p)\n",This);
     return E_NOTIMPL;
@@ -103,7 +108,7 @@ static HRESULT WINAPI DisplayAttributeMgr_EnumDisplayAttributeInfo(ITfDisplayAtt
 
 static HRESULT WINAPI DisplayAttributeMgr_GetDisplayAttributeInfo(ITfDisplayAttributeMgr *iface, REFGUID guid, ITfDisplayAttributeInfo **ppInfo, CLSID *pclsidOwner)
 {
-    DisplayAttributeMgr *This = (DisplayAttributeMgr *)iface;
+    DisplayAttributeMgr *This = impl_from_ITfDisplayAttributeMgr(iface);
 
     FIXME("STUB:(%p)\n",This);
     return E_NOTIMPL;
@@ -130,7 +135,7 @@ HRESULT DisplayAttributeMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
     if (This == NULL)
         return E_OUTOFMEMORY;
 
-    This->DisplayAttributeMgrVtbl= &DisplayAttributeMgr_DisplayAttributeMgrVtbl;
+    This->ITfDisplayAttributeMgr_iface.lpVtbl = &DisplayAttributeMgr_DisplayAttributeMgrVtbl;
     This->refCount = 1;
 
     TRACE("returning %p\n", This);




More information about the wine-cvs mailing list