Commit d24e87fd authored by Michael Stefaniuc's avatar Michael Stefaniuc Committed by Alexandre Julliard

msimtf: Use an iface instead of a vtbl pointer in ActiveIMMApp.

parent 5c2cf086
...@@ -42,10 +42,15 @@ ...@@ -42,10 +42,15 @@
WINE_DEFAULT_DEBUG_CHANNEL(msimtf); WINE_DEFAULT_DEBUG_CHANNEL(msimtf);
typedef struct tagActiveIMMApp { typedef struct tagActiveIMMApp {
const IActiveIMMAppVtbl *vtbl; IActiveIMMApp IActiveIMMApp_iface;
LONG refCount; LONG refCount;
} ActiveIMMApp; } ActiveIMMApp;
static inline ActiveIMMApp *impl_from_IActiveIMMApp(IActiveIMMApp *iface)
{
return CONTAINING_RECORD(iface, ActiveIMMApp, IActiveIMMApp_iface);
}
static void ActiveIMMApp_Destructor(ActiveIMMApp* This) static void ActiveIMMApp_Destructor(ActiveIMMApp* This)
{ {
TRACE("\n"); TRACE("\n");
...@@ -55,7 +60,7 @@ static void ActiveIMMApp_Destructor(ActiveIMMApp* This) ...@@ -55,7 +60,7 @@ static void ActiveIMMApp_Destructor(ActiveIMMApp* This)
static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface, static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface,
REFIID iid, LPVOID *ppvOut) REFIID iid, LPVOID *ppvOut)
{ {
ActiveIMMApp *This = (ActiveIMMApp*)iface; ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
*ppvOut = NULL; *ppvOut = NULL;
if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IActiveIMMApp)) if (IsEqualIID(iid, &IID_IUnknown) || IsEqualIID(iid, &IID_IActiveIMMApp))
...@@ -75,13 +80,13 @@ static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface, ...@@ -75,13 +80,13 @@ static HRESULT WINAPI ActiveIMMApp_QueryInterface (IActiveIMMApp* iface,
static ULONG WINAPI ActiveIMMApp_AddRef(IActiveIMMApp* iface) static ULONG WINAPI ActiveIMMApp_AddRef(IActiveIMMApp* iface)
{ {
ActiveIMMApp *This = (ActiveIMMApp*)iface; ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
return InterlockedIncrement(&This->refCount); return InterlockedIncrement(&This->refCount);
} }
static ULONG WINAPI ActiveIMMApp_Release(IActiveIMMApp* iface) static ULONG WINAPI ActiveIMMApp_Release(IActiveIMMApp* iface)
{ {
ActiveIMMApp *This = (ActiveIMMApp*)iface; ActiveIMMApp *This = impl_from_IActiveIMMApp(iface);
ULONG ret; ULONG ret;
ret = InterlockedDecrement(&This->refCount); ret = InterlockedDecrement(&This->refCount);
...@@ -818,7 +823,7 @@ HRESULT ActiveIMMApp_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut) ...@@ -818,7 +823,7 @@ HRESULT ActiveIMMApp_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
if (This == NULL) if (This == NULL)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
This->vtbl = &ActiveIMMAppVtbl; This->IActiveIMMApp_iface.lpVtbl = &ActiveIMMAppVtbl;
This->refCount = 1; This->refCount = 1;
TRACE("returning %p\n",This); TRACE("returning %p\n",This);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment