msimtf: Use an iface instead of a vtbl pointer in ActiveIMMApp.
Michael Stefaniuc
mstefani at redhat.de
Wed Dec 8 15:59:32 CST 2010
---
dlls/msimtf/activeimmapp.c | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/msimtf/activeimmapp.c b/dlls/msimtf/activeimmapp.c
index 73ce075..4178992 100644
--- a/dlls/msimtf/activeimmapp.c
+++ b/dlls/msimtf/activeimmapp.c
@@ -42,10 +42,15 @@
WINE_DEFAULT_DEBUG_CHANNEL(msimtf);
typedef struct tagActiveIMMApp {
- const IActiveIMMAppVtbl *vtbl;
+ IActiveIMMApp IActiveIMMApp_iface;
LONG refCount;
} ActiveIMMApp;
+static inline ActiveIMMApp *impl_from_IActiveIMMApp(IActiveIMMApp *iface)
+{
+ return CONTAINING_RECORD(iface, ActiveIMMApp, IActiveIMMApp_iface);
+}
+
static void ActiveIMMApp_Destructor(ActiveIMMApp* This)
{
TRACE("\n");
@@ -55,7 +60,7 @@ static void ActiveIMMApp_Destructor(ActiveIMMApp* This)
static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface,
REFIID iid, LPVOID *ppvOut)
{
- ActiveIMMApp *This = (ActiveIMMApp*)iface;
+ ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
*ppvOut = NULL;
if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IActiveIMMApp))
@@ -75,13 +80,13 @@ static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface,
static ULONG WINAPI ActiveIMMApp_AddRef(IActiveIMMApp* iface)
{
- ActiveIMMApp *This = (ActiveIMMApp*)iface;
+ ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
return InterlockedIncrement(&This->refCount);
}
static ULONG WINAPI ActiveIMMApp_Release(IActiveIMMApp* iface)
{
- ActiveIMMApp *This = (ActiveIMMApp*)iface;
+ ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
ULONG ret;
ret = InterlockedDecrement(&This->refCount);
@@ -818,7 +823,7 @@ HRESULT ActiveIMMApp_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
if (This == NULL)
return E_OUTOFMEMORY;
- This->vtbl = &ActiveIMMAppVtbl;
+ This->IActiveIMMApp_iface.lpVtbl = &ActiveIMMAppVtbl;
This->refCount = 1;
TRACE("returning %p\n",This);
--
1.7.3.2
More information about the wine-patches
mailing list