Module: wine Branch: master Commit: e86dff725f293868d60be26ef83cd9e47e7aea74 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e86dff725f293868d60be26ef8...
Author: Michael Stefaniuc mstefani@redhat.de Date: Wed Dec 8 22:59:34 2010 +0100
quartz: Use an iface instead of a vtbl pointer in IEnumRegFiltersImpl.
---
dlls/quartz/enumregfilters.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/quartz/enumregfilters.c b/dlls/quartz/enumregfilters.c index cadeba5..a116063 100644 --- a/dlls/quartz/enumregfilters.c +++ b/dlls/quartz/enumregfilters.c @@ -28,13 +28,18 @@ WINE_DEFAULT_DEBUG_CHANNEL(quartz);
typedef struct IEnumRegFiltersImpl { - const IEnumRegFiltersVtbl * lpVtbl; + IEnumRegFilters IEnumRegFilters_iface; LONG refCount; ULONG size; REGFILTER* RegFilters; ULONG uIndex; } IEnumRegFiltersImpl;
+static inline IEnumRegFiltersImpl *impl_from_IEnumRegFilters(IEnumRegFilters *iface) +{ + return CONTAINING_RECORD(iface, IEnumRegFiltersImpl, IEnumRegFilters_iface); +} + static const struct IEnumRegFiltersVtbl IEnumRegFiltersImpl_Vtbl;
HRESULT IEnumRegFiltersImpl_Construct(REGFILTER* pInRegFilters, const ULONG size, IEnumRegFilters ** ppEnum) @@ -79,13 +84,13 @@ HRESULT IEnumRegFiltersImpl_Construct(REGFILTER* pInRegFilters, const ULONG size CopyMemory(pRegFilters[i].Name, pInRegFilters[i].Name, (strlenW(pInRegFilters[i].Name)+1)*sizeof(WCHAR)); }
- pEnumRegFilters->lpVtbl = &IEnumRegFiltersImpl_Vtbl; + pEnumRegFilters->IEnumRegFilters_iface.lpVtbl = &IEnumRegFiltersImpl_Vtbl; pEnumRegFilters->refCount = 1; pEnumRegFilters->uIndex = 0; pEnumRegFilters->RegFilters = pRegFilters; pEnumRegFilters->size = size;
- *ppEnum = (IEnumRegFilters *)(&pEnumRegFilters->lpVtbl); + *ppEnum = &pEnumRegFilters->IEnumRegFilters_iface;
return S_OK; } @@ -114,7 +119,7 @@ static HRESULT WINAPI IEnumRegFiltersImpl_QueryInterface(IEnumRegFilters * iface
static ULONG WINAPI IEnumRegFiltersImpl_AddRef(IEnumRegFilters * iface) { - IEnumRegFiltersImpl *This = (IEnumRegFiltersImpl *)iface; + IEnumRegFiltersImpl *This = impl_from_IEnumRegFilters(iface); ULONG refCount = InterlockedIncrement(&This->refCount);
TRACE("(%p)\n", iface); @@ -124,7 +129,7 @@ static ULONG WINAPI IEnumRegFiltersImpl_AddRef(IEnumRegFilters * iface)
static ULONG WINAPI IEnumRegFiltersImpl_Release(IEnumRegFilters * iface) { - IEnumRegFiltersImpl *This = (IEnumRegFiltersImpl *)iface; + IEnumRegFiltersImpl *This = impl_from_IEnumRegFilters(iface); ULONG refCount = InterlockedDecrement(&This->refCount);
TRACE("(%p)\n", iface); @@ -147,7 +152,7 @@ static ULONG WINAPI IEnumRegFiltersImpl_Release(IEnumRegFilters * iface) static HRESULT WINAPI IEnumRegFiltersImpl_Next(IEnumRegFilters * iface, ULONG cFilters, REGFILTER ** ppRegFilter, ULONG * pcFetched) { ULONG cFetched; - IEnumRegFiltersImpl *This = (IEnumRegFiltersImpl *)iface; + IEnumRegFiltersImpl *This = impl_from_IEnumRegFilters(iface); unsigned int i;
cFetched = min(This->size, This->uIndex + cFilters) - This->uIndex; @@ -193,7 +198,7 @@ static HRESULT WINAPI IEnumRegFiltersImpl_Skip(IEnumRegFilters * iface, ULONG n)
static HRESULT WINAPI IEnumRegFiltersImpl_Reset(IEnumRegFilters * iface) { - IEnumRegFiltersImpl *This = (IEnumRegFiltersImpl *)iface; + IEnumRegFiltersImpl *This = impl_from_IEnumRegFilters(iface);
TRACE("(%p)\n", iface);