wbemprox: Use an iface instead of a vtbl pointer in wbem_locator.

This commit is contained in:
Michael Stefaniuc 2010-12-05 15:15:04 +01:00 committed by Alexandre Julliard
parent d2e90cddfd
commit e75635a738
1 changed files with 4 additions and 4 deletions

View File

@ -35,13 +35,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
typedef struct typedef struct
{ {
const IWbemLocatorVtbl *vtbl; IWbemLocator IWbemLocator_iface;
LONG refs; LONG refs;
} wbem_locator; } wbem_locator;
static inline wbem_locator *impl_from_IWbemLocator( IWbemLocator *iface ) static inline wbem_locator *impl_from_IWbemLocator( IWbemLocator *iface )
{ {
return (wbem_locator *)((char *)iface - FIELD_OFFSET( wbem_locator, vtbl )); return CONTAINING_RECORD(iface, wbem_locator, IWbemLocator_iface);
} }
static ULONG WINAPI wbem_locator_AddRef( static ULONG WINAPI wbem_locator_AddRef(
@ -120,10 +120,10 @@ HRESULT WbemLocator_create( IUnknown *pUnkOuter, LPVOID *ppObj )
wl = HeapAlloc( GetProcessHeap(), 0, sizeof(*wl) ); wl = HeapAlloc( GetProcessHeap(), 0, sizeof(*wl) );
if (!wl) return E_OUTOFMEMORY; if (!wl) return E_OUTOFMEMORY;
wl->vtbl = &wbem_locator_vtbl; wl->IWbemLocator_iface.lpVtbl = &wbem_locator_vtbl;
wl->refs = 1; wl->refs = 1;
*ppObj = &wl->vtbl; *ppObj = &wl->IWbemLocator_iface;
TRACE("returning iface %p\n", *ppObj); TRACE("returning iface %p\n", *ppObj);
return S_OK; return S_OK;