ol32: Make enumx implementation look more like a COM interface.
Dmitry Timoshkov
dmitry at baikal.ru
Fri Jun 21 01:53:10 CDT 2013
---
dlls/ole32/enumx.c | 10 +++++-----
dlls/ole32/enumx.h | 2 +-
dlls/ole32/stg_prop.c | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/ole32/enumx.c b/dlls/ole32/enumx.c
index 4279ca8..fedfbc7 100644
--- a/dlls/ole32/enumx.c
+++ b/dlls/ole32/enumx.c
@@ -35,7 +35,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
struct tagEnumSTATPROPSETSTG_impl
{
- const void *vtbl;
+ IUnknown IUnknown_iface;
LONG ref;
struct list elements;
struct list *current;
@@ -59,8 +59,8 @@ HRESULT WINAPI enumx_QueryInterface(
if (IsEqualGUID(&IID_IUnknown, riid) ||
IsEqualGUID(&This->riid, riid))
{
- IUnknown_AddRef(((IUnknown*)This));
- *ppvObject = This;
+ IUnknown_AddRef(&This->IUnknown_iface);
+ *ppvObject = &This->IUnknown_iface;
return S_OK;
}
@@ -169,14 +169,14 @@ HRESULT WINAPI enumx_Clone(
*
* Allocate a generic enumerator
*/
-enumx_impl *enumx_allocate(REFIID riid, const void *vtbl, ULONG elem_size)
+enumx_impl *enumx_allocate(REFIID riid, const IUnknownVtbl *vtbl, ULONG elem_size)
{
enumx_impl *enumx;
enumx = HeapAlloc(GetProcessHeap(), 0, sizeof *enumx);
if (enumx)
{
- enumx->vtbl = vtbl;
+ enumx->IUnknown_iface.lpVtbl = vtbl;
enumx->ref = 1;
enumx->current = NULL;
enumx->elem_size = elem_size;
diff --git a/dlls/ole32/enumx.h b/dlls/ole32/enumx.h
index da76e13..3043b58 100644
--- a/dlls/ole32/enumx.h
+++ b/dlls/ole32/enumx.h
@@ -28,7 +28,7 @@ extern HRESULT WINAPI enumx_Next(enumx_impl *, ULONG, void *, ULONG *) DECLSPEC_
extern HRESULT WINAPI enumx_Skip(enumx_impl *, ULONG) DECLSPEC_HIDDEN;
extern HRESULT WINAPI enumx_Reset(enumx_impl *) DECLSPEC_HIDDEN;
extern HRESULT WINAPI enumx_Clone(enumx_impl *, enumx_impl **) DECLSPEC_HIDDEN;
-extern enumx_impl *enumx_allocate(REFIID, const void *, ULONG) DECLSPEC_HIDDEN;
+extern enumx_impl *enumx_allocate(REFIID, const IUnknownVtbl *, ULONG) DECLSPEC_HIDDEN;
extern void *enumx_add_element(enumx_impl *, const void *) DECLSPEC_HIDDEN;
#endif
diff --git a/dlls/ole32/stg_prop.c b/dlls/ole32/stg_prop.c
index c2626cf..c6214f8 100644
--- a/dlls/ole32/stg_prop.c
+++ b/dlls/ole32/stg_prop.c
@@ -2380,7 +2380,7 @@ static HRESULT create_EnumSTATPROPSETSTG(
TRACE("%p %p\n", This, ppenum);
enumx = enumx_allocate(&IID_IEnumSTATPROPSETSTG,
- &IEnumSTATPROPSETSTG_Vtbl,
+ (const IUnknownVtbl *)&IEnumSTATPROPSETSTG_Vtbl,
sizeof (STATPROPSETSTG));
/* add all the property set elements into a list */
@@ -2499,7 +2499,7 @@ static HRESULT create_EnumSTATPROPSTG(
TRACE("%p %p\n", This, ppenum);
enumx = enumx_allocate(&IID_IEnumSTATPROPSTG,
- &IEnumSTATPROPSTG_Vtbl,
+ (const IUnknownVtbl *)&IEnumSTATPROPSTG_Vtbl,
sizeof (STATPROPSTG));
dictionary_enumerate(This->propid_to_prop, prop_enum_stat, enumx);
--
1.8.3.1
More information about the wine-patches
mailing list