Michael Stefaniuc : ole32: COM cleanup for the IEnumCATEGORYINFO iface.
Alexandre Julliard
julliard at winehq.org
Wed Jul 13 12:16:34 CDT 2011
Module: wine
Branch: master
Commit: 9d94b1d402598e70fd3bf7d65eab3a9e17733af2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d94b1d402598e70fd3bf7d65eab3a9e17733af2
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Wed Jul 13 14:22:05 2011 +0200
ole32: COM cleanup for the IEnumCATEGORYINFO iface.
---
dlls/ole32/comcat.c | 47 ++++++++++++++++++++++++++---------------------
1 files changed, 26 insertions(+), 21 deletions(-)
diff --git a/dlls/ole32/comcat.c b/dlls/ole32/comcat.c
index 20151ae..1874a8b 100644
--- a/dlls/ole32/comcat.c
+++ b/dlls/ole32/comcat.c
@@ -57,7 +57,7 @@ struct class_categories {
LPCWSTR req_strings;
};
-static LPENUMCATEGORYINFO COMCAT_IEnumCATEGORYINFO_Construct(LCID lcid);
+static IEnumCATEGORYINFO *COMCAT_IEnumCATEGORYINFO_Construct(LCID lcid);
static LPENUMGUID COMCAT_CLSID_IEnumGUID_Construct(struct class_categories *class_categories);
static LPENUMGUID COMCAT_CATID_IEnumGUID_Construct(REFCLSID rclsid, LPCWSTR impl_req);
@@ -490,7 +490,7 @@ static ULONG WINAPI COMCAT_ICatInformation_Release(LPCATINFORMATION iface)
static HRESULT WINAPI COMCAT_ICatInformation_EnumCategories(
LPCATINFORMATION iface,
LCID lcid,
- LPENUMCATEGORYINFO *ppenumCatInfo)
+ IEnumCATEGORYINFO **ppenumCatInfo)
{
TRACE("\n");
@@ -806,16 +806,21 @@ HRESULT ComCatCF_Create(REFIID riid, LPVOID *ppv)
*/
typedef struct
{
- const IEnumCATEGORYINFOVtbl *lpVtbl;
+ IEnumCATEGORYINFO IEnumCATEGORYINFO_iface;
LONG ref;
LCID lcid;
HKEY key;
DWORD next_index;
} IEnumCATEGORYINFOImpl;
-static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_AddRef(LPENUMCATEGORYINFO iface)
+static inline IEnumCATEGORYINFOImpl *impl_from_IEnumCATEGORYINFO(IEnumCATEGORYINFO *iface)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ return CONTAINING_RECORD(iface, IEnumCATEGORYINFOImpl, IEnumCATEGORYINFO_iface);
+}
+
+static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_AddRef(IEnumCATEGORYINFO *iface)
+{
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
TRACE("\n");
@@ -823,7 +828,7 @@ static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_AddRef(LPENUMCATEGORYINFO iface)
}
static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_QueryInterface(
- LPENUMCATEGORYINFO iface,
+ IEnumCATEGORYINFO *iface,
REFIID riid,
LPVOID *ppvObj)
{
@@ -842,9 +847,9 @@ static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_QueryInterface(
return E_NOINTERFACE;
}
-static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_Release(LPENUMCATEGORYINFO iface)
+static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_Release(IEnumCATEGORYINFO *iface)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
ULONG ref;
TRACE("\n");
@@ -859,12 +864,12 @@ static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_Release(LPENUMCATEGORYINFO iface)
}
static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Next(
- LPENUMCATEGORYINFO iface,
+ IEnumCATEGORYINFO *iface,
ULONG celt,
CATEGORYINFO *rgelt,
ULONG *pceltFetched)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
ULONG fetched = 0;
TRACE("\n");
@@ -904,10 +909,10 @@ static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Next(
}
static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Skip(
- LPENUMCATEGORYINFO iface,
+ IEnumCATEGORYINFO *iface,
ULONG celt)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
TRACE("\n");
@@ -916,9 +921,9 @@ static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Skip(
return S_OK;
}
-static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Reset(LPENUMCATEGORYINFO iface)
+static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Reset(IEnumCATEGORYINFO *iface)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
TRACE("\n");
@@ -927,10 +932,10 @@ static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Reset(LPENUMCATEGORYINFO iface)
}
static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Clone(
- LPENUMCATEGORYINFO iface,
+ IEnumCATEGORYINFO *iface,
IEnumCATEGORYINFO **ppenum)
{
- IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
+ IEnumCATEGORYINFOImpl *This = impl_from_IEnumCATEGORYINFO(iface);
static const WCHAR keyname[] = { 'C', 'o', 'm', 'p', 'o', 'n', 'e', 'n',
't', ' ', 'C', 'a', 't', 'e', 'g', 'o',
'r', 'i', 'e', 's', 0 };
@@ -943,14 +948,14 @@ static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Clone(
new_this = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IEnumCATEGORYINFOImpl));
if (new_this == NULL) return E_OUTOFMEMORY;
- new_this->lpVtbl = This->lpVtbl;
+ new_this->IEnumCATEGORYINFO_iface = This->IEnumCATEGORYINFO_iface;
new_this->ref = 1;
new_this->lcid = This->lcid;
/* FIXME: could we more efficiently use DuplicateHandle? */
RegOpenKeyExW(HKEY_CLASSES_ROOT, keyname, 0, KEY_READ, &new_this->key);
new_this->next_index = This->next_index;
- *ppenum = (LPENUMCATEGORYINFO)new_this;
+ *ppenum = &new_this->IEnumCATEGORYINFO_iface;
return S_OK;
}
@@ -965,7 +970,7 @@ static const IEnumCATEGORYINFOVtbl COMCAT_IEnumCATEGORYINFO_Vtbl =
COMCAT_IEnumCATEGORYINFO_Clone
};
-static LPENUMCATEGORYINFO COMCAT_IEnumCATEGORYINFO_Construct(LCID lcid)
+static IEnumCATEGORYINFO *COMCAT_IEnumCATEGORYINFO_Construct(LCID lcid)
{
IEnumCATEGORYINFOImpl *This;
@@ -975,11 +980,11 @@ static LPENUMCATEGORYINFO COMCAT_IEnumCATEGORYINFO_Construct(LCID lcid)
't', ' ', 'C', 'a', 't', 'e', 'g', 'o',
'r', 'i', 'e', 's', 0 };
- This->lpVtbl = &COMCAT_IEnumCATEGORYINFO_Vtbl;
+ This->IEnumCATEGORYINFO_iface.lpVtbl = &COMCAT_IEnumCATEGORYINFO_Vtbl;
This->lcid = lcid;
RegOpenKeyExW(HKEY_CLASSES_ROOT, keyname, 0, KEY_READ, &This->key);
}
- return (LPENUMCATEGORYINFO)This;
+ return &This->IEnumCATEGORYINFO_iface;
}
/**********************************************************************
More information about the wine-cvs
mailing list