Commit 79d03435 authored by Michael Stefaniuc's avatar Michael Stefaniuc Committed by Alexandre Julliard

wuapi: Use an iface instead of a vtbl pointer in automatic_updates.

parent ecd7ea60
...@@ -35,13 +35,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(wuapi); ...@@ -35,13 +35,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(wuapi);
typedef struct _automatic_updates typedef struct _automatic_updates
{ {
const struct IAutomaticUpdatesVtbl *vtbl; IAutomaticUpdates IAutomaticUpdates_iface;
LONG refs; LONG refs;
} automatic_updates; } automatic_updates;
static inline automatic_updates *impl_from_IAutomaticUpdates( IAutomaticUpdates *iface ) static inline automatic_updates *impl_from_IAutomaticUpdates( IAutomaticUpdates *iface )
{ {
return (automatic_updates *)((char*)iface - FIELD_OFFSET( automatic_updates, vtbl )); return CONTAINING_RECORD(iface, automatic_updates, IAutomaticUpdates_iface);
} }
static ULONG WINAPI automatic_updates_AddRef( static ULONG WINAPI automatic_updates_AddRef(
...@@ -211,10 +211,10 @@ HRESULT AutomaticUpdates_create( IUnknown *pUnkOuter, LPVOID *ppObj ) ...@@ -211,10 +211,10 @@ HRESULT AutomaticUpdates_create( IUnknown *pUnkOuter, LPVOID *ppObj )
updates = HeapAlloc( GetProcessHeap(), 0, sizeof(*updates) ); updates = HeapAlloc( GetProcessHeap(), 0, sizeof(*updates) );
if (!updates) return E_OUTOFMEMORY; if (!updates) return E_OUTOFMEMORY;
updates->vtbl = &automatic_updates_vtbl; updates->IAutomaticUpdates_iface.lpVtbl = &automatic_updates_vtbl;
updates->refs = 1; updates->refs = 1;
*ppObj = &updates->vtbl; *ppObj = &updates->IAutomaticUpdates_iface;
TRACE("returning iface %p\n", *ppObj); TRACE("returning iface %p\n", *ppObj);
return S_OK; return S_OK;
......
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