[PATCH 16/18] windowscodecs: Standardize the COM usage in info.c
Michael Stefaniuc
mstefani at redhat.de
Sun Nov 28 18:00:41 CST 2010
---
dlls/windowscodecs/info.c | 90 +++++++++++++++++++++++++++-----------------
1 files changed, 55 insertions(+), 35 deletions(-)
diff --git a/dlls/windowscodecs/info.c b/dlls/windowscodecs/info.c
index 569b1a8..a90e750 100644
--- a/dlls/windowscodecs/info.c
+++ b/dlls/windowscodecs/info.c
@@ -65,16 +65,21 @@ static HRESULT ComponentInfo_GetStringValue(HKEY classkey, LPCWSTR value,
}
typedef struct {
- const IWICBitmapDecoderInfoVtbl *lpIWICBitmapDecoderInfoVtbl;
+ IWICBitmapDecoderInfo IWICBitmapDecoderInfo_iface;
LONG ref;
HKEY classkey;
CLSID clsid;
} BitmapDecoderInfo;
+static inline BitmapDecoderInfo *impl_from_IWICBitmapDecoderInfo(IWICBitmapDecoderInfo *iface)
+{
+ return CONTAINING_RECORD(iface, BitmapDecoderInfo, IWICBitmapDecoderInfo_iface);
+}
+
static HRESULT WINAPI BitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo *iface, REFIID iid,
void **ppv)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
if (!ppv) return E_INVALIDARG;
@@ -98,7 +103,7 @@ static HRESULT WINAPI BitmapDecoderInfo_QueryInterface(IWICBitmapDecoderInfo *if
static ULONG WINAPI BitmapDecoderInfo_AddRef(IWICBitmapDecoderInfo *iface)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -108,7 +113,7 @@ static ULONG WINAPI BitmapDecoderInfo_AddRef(IWICBitmapDecoderInfo *iface)
static ULONG WINAPI BitmapDecoderInfo_Release(IWICBitmapDecoderInfo *iface)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -132,7 +137,7 @@ static HRESULT WINAPI BitmapDecoderInfo_GetComponentType(IWICBitmapDecoderInfo *
static HRESULT WINAPI BitmapDecoderInfo_GetCLSID(IWICBitmapDecoderInfo *iface, CLSID *pclsid)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
TRACE("(%p,%p)\n", iface, pclsid);
if (!pclsid)
@@ -221,7 +226,7 @@ static HRESULT WINAPI BitmapDecoderInfo_GetDeviceModels(IWICBitmapDecoderInfo *i
static HRESULT WINAPI BitmapDecoderInfo_GetMimeTypes(IWICBitmapDecoderInfo *iface,
UINT cchMimeTypes, WCHAR *wzMimeTypes, UINT *pcchActual)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
TRACE("(%p,%u,%p,%p)\n", iface, cchMimeTypes, wzMimeTypes, pcchActual);
@@ -274,7 +279,7 @@ static HRESULT WINAPI BitmapDecoderInfo_MatchesMimeType(IWICBitmapDecoderInfo *i
static HRESULT WINAPI BitmapDecoderInfo_GetPatterns(IWICBitmapDecoderInfo *iface,
UINT cbSizePatterns, WICBitmapPattern *pPatterns, UINT *pcPatterns, UINT *pcbPatternsActual)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
UINT pattern_count=0, patterns_size=0;
WCHAR subkeyname[11];
LONG res;
@@ -446,7 +451,7 @@ end:
static HRESULT WINAPI BitmapDecoderInfo_CreateInstance(IWICBitmapDecoderInfo *iface,
IWICBitmapDecoder **ppIBitmapDecoder)
{
- BitmapDecoderInfo *This = (BitmapDecoderInfo*)iface;
+ BitmapDecoderInfo *This = impl_from_IWICBitmapDecoderInfo(iface);
TRACE("(%p,%p)\n", iface, ppIBitmapDecoder);
@@ -494,7 +499,7 @@ static HRESULT BitmapDecoderInfo_Constructor(HKEY classkey, REFCLSID clsid, IWIC
return E_OUTOFMEMORY;
}
- This->lpIWICBitmapDecoderInfoVtbl = &BitmapDecoderInfo_Vtbl;
+ This->IWICBitmapDecoderInfo_iface.lpVtbl = &BitmapDecoderInfo_Vtbl;
This->ref = 1;
This->classkey = classkey;
memcpy(&This->clsid, clsid, sizeof(CLSID));
@@ -504,16 +509,21 @@ static HRESULT BitmapDecoderInfo_Constructor(HKEY classkey, REFCLSID clsid, IWIC
}
typedef struct {
- const IWICBitmapEncoderInfoVtbl *lpIWICBitmapEncoderInfoVtbl;
+ IWICBitmapEncoderInfo IWICBitmapEncoderInfo_iface;
LONG ref;
HKEY classkey;
CLSID clsid;
} BitmapEncoderInfo;
+static inline BitmapEncoderInfo *impl_from_IWICBitmapEncoderInfo(IWICBitmapEncoderInfo *iface)
+{
+ return CONTAINING_RECORD(iface, BitmapEncoderInfo, IWICBitmapEncoderInfo_iface);
+}
+
static HRESULT WINAPI BitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo *iface, REFIID iid,
void **ppv)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
if (!ppv) return E_INVALIDARG;
@@ -537,7 +547,7 @@ static HRESULT WINAPI BitmapEncoderInfo_QueryInterface(IWICBitmapEncoderInfo *if
static ULONG WINAPI BitmapEncoderInfo_AddRef(IWICBitmapEncoderInfo *iface)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -547,7 +557,7 @@ static ULONG WINAPI BitmapEncoderInfo_AddRef(IWICBitmapEncoderInfo *iface)
static ULONG WINAPI BitmapEncoderInfo_Release(IWICBitmapEncoderInfo *iface)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -571,7 +581,7 @@ static HRESULT WINAPI BitmapEncoderInfo_GetComponentType(IWICBitmapEncoderInfo *
static HRESULT WINAPI BitmapEncoderInfo_GetCLSID(IWICBitmapEncoderInfo *iface, CLSID *pclsid)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
TRACE("(%p,%p)\n", iface, pclsid);
if (!pclsid)
@@ -660,7 +670,7 @@ static HRESULT WINAPI BitmapEncoderInfo_GetDeviceModels(IWICBitmapEncoderInfo *i
static HRESULT WINAPI BitmapEncoderInfo_GetMimeTypes(IWICBitmapEncoderInfo *iface,
UINT cchMimeTypes, WCHAR *wzMimeTypes, UINT *pcchActual)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
TRACE("(%p,%u,%p,%p)\n", iface, cchMimeTypes, wzMimeTypes, pcchActual);
@@ -713,7 +723,7 @@ static HRESULT WINAPI BitmapEncoderInfo_MatchesMimeType(IWICBitmapEncoderInfo *i
static HRESULT WINAPI BitmapEncoderInfo_CreateInstance(IWICBitmapEncoderInfo *iface,
IWICBitmapEncoder **ppIBitmapEncoder)
{
- BitmapEncoderInfo *This = (BitmapEncoderInfo*)iface;
+ BitmapEncoderInfo *This = impl_from_IWICBitmapEncoderInfo(iface);
TRACE("(%p,%p)\n", iface, ppIBitmapEncoder);
@@ -759,7 +769,7 @@ static HRESULT BitmapEncoderInfo_Constructor(HKEY classkey, REFCLSID clsid, IWIC
return E_OUTOFMEMORY;
}
- This->lpIWICBitmapEncoderInfoVtbl = &BitmapEncoderInfo_Vtbl;
+ This->IWICBitmapEncoderInfo_iface.lpVtbl = &BitmapEncoderInfo_Vtbl;
This->ref = 1;
This->classkey = classkey;
memcpy(&This->clsid, clsid, sizeof(CLSID));
@@ -769,16 +779,21 @@ static HRESULT BitmapEncoderInfo_Constructor(HKEY classkey, REFCLSID clsid, IWIC
}
typedef struct {
- const IWICFormatConverterInfoVtbl *lpIWICFormatConverterInfoVtbl;
+ IWICFormatConverterInfo IWICFormatConverterInfo_iface;
LONG ref;
HKEY classkey;
CLSID clsid;
} FormatConverterInfo;
+static inline FormatConverterInfo *impl_from_IWICFormatConverterInfo(IWICFormatConverterInfo *iface)
+{
+ return CONTAINING_RECORD(iface, FormatConverterInfo, IWICFormatConverterInfo_iface);
+}
+
static HRESULT WINAPI FormatConverterInfo_QueryInterface(IWICFormatConverterInfo *iface, REFIID iid,
void **ppv)
{
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
if (!ppv) return E_INVALIDARG;
@@ -801,7 +816,7 @@ static HRESULT WINAPI FormatConverterInfo_QueryInterface(IWICFormatConverterInfo
static ULONG WINAPI FormatConverterInfo_AddRef(IWICFormatConverterInfo *iface)
{
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -811,7 +826,7 @@ static ULONG WINAPI FormatConverterInfo_AddRef(IWICFormatConverterInfo *iface)
static ULONG WINAPI FormatConverterInfo_Release(IWICFormatConverterInfo *iface)
{
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -835,7 +850,7 @@ static HRESULT WINAPI FormatConverterInfo_GetComponentType(IWICFormatConverterIn
static HRESULT WINAPI FormatConverterInfo_GetCLSID(IWICFormatConverterInfo *iface, CLSID *pclsid)
{
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
TRACE("(%p,%p)\n", iface, pclsid);
if (!pclsid)
@@ -896,7 +911,7 @@ static HRESULT WINAPI FormatConverterInfo_GetPixelFormats(IWICFormatConverterInf
static HRESULT WINAPI FormatConverterInfo_CreateInstance(IWICFormatConverterInfo *iface,
IWICFormatConverter **ppIFormatConverter)
{
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
TRACE("(%p,%p)\n", iface, ppIFormatConverter);
@@ -907,7 +922,7 @@ static HRESULT WINAPI FormatConverterInfo_CreateInstance(IWICFormatConverterInfo
static BOOL ConverterSupportsFormat(IWICFormatConverterInfo *iface, const WCHAR *formatguid)
{
LONG res;
- FormatConverterInfo *This = (FormatConverterInfo*)iface;
+ FormatConverterInfo *This = impl_from_IWICFormatConverterInfo(iface);
HKEY formats_key, guid_key;
/* Avoid testing using IWICFormatConverter_GetPixelFormats because that
@@ -951,7 +966,7 @@ static HRESULT FormatConverterInfo_Constructor(HKEY classkey, REFCLSID clsid, IW
return E_OUTOFMEMORY;
}
- This->lpIWICFormatConverterInfoVtbl = &FormatConverterInfo_Vtbl;
+ This->IWICFormatConverterInfo_iface.lpVtbl = &FormatConverterInfo_Vtbl;
This->ref = 1;
This->classkey = classkey;
memcpy(&This->clsid, clsid, sizeof(CLSID));
@@ -1032,13 +1047,18 @@ HRESULT CreateComponentInfo(REFCLSID clsid, IWICComponentInfo **ppIInfo)
}
typedef struct {
- const IEnumUnknownVtbl *IEnumUnknown_Vtbl;
+ IEnumUnknown IEnumUnknown_iface;
LONG ref;
struct list objects;
struct list *cursor;
CRITICAL_SECTION lock; /* Must be held when reading or writing cursor */
} ComponentEnum;
+static inline ComponentEnum *impl_from_IEnumUnknown(IEnumUnknown *iface)
+{
+ return CONTAINING_RECORD(iface, ComponentEnum, IEnumUnknown_iface);
+}
+
typedef struct {
struct list entry;
IUnknown *unk;
@@ -1049,7 +1069,7 @@ static const IEnumUnknownVtbl ComponentEnumVtbl;
static HRESULT WINAPI ComponentEnum_QueryInterface(IEnumUnknown *iface, REFIID iid,
void **ppv)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
if (!ppv) return E_INVALIDARG;
@@ -1070,7 +1090,7 @@ static HRESULT WINAPI ComponentEnum_QueryInterface(IEnumUnknown *iface, REFIID i
static ULONG WINAPI ComponentEnum_AddRef(IEnumUnknown *iface)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) refcount=%u\n", iface, ref);
@@ -1080,7 +1100,7 @@ static ULONG WINAPI ComponentEnum_AddRef(IEnumUnknown *iface)
static ULONG WINAPI ComponentEnum_Release(IEnumUnknown *iface)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
ULONG ref = InterlockedDecrement(&This->ref);
ComponentEnumItem *cursor, *cursor2;
@@ -1105,7 +1125,7 @@ static ULONG WINAPI ComponentEnum_Release(IEnumUnknown *iface)
static HRESULT WINAPI ComponentEnum_Next(IEnumUnknown *iface, ULONG celt,
IUnknown **rgelt, ULONG *pceltFetched)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
int num_fetched=0;
ComponentEnumItem *item;
HRESULT hr=S_OK;
@@ -1134,7 +1154,7 @@ static HRESULT WINAPI ComponentEnum_Next(IEnumUnknown *iface, ULONG celt,
static HRESULT WINAPI ComponentEnum_Skip(IEnumUnknown *iface, ULONG celt)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
int i;
HRESULT hr=S_OK;
@@ -1156,7 +1176,7 @@ static HRESULT WINAPI ComponentEnum_Skip(IEnumUnknown *iface, ULONG celt)
static HRESULT WINAPI ComponentEnum_Reset(IEnumUnknown *iface)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
TRACE("(%p)\n", iface);
@@ -1168,7 +1188,7 @@ static HRESULT WINAPI ComponentEnum_Reset(IEnumUnknown *iface)
static HRESULT WINAPI ComponentEnum_Clone(IEnumUnknown *iface, IEnumUnknown **ppenum)
{
- ComponentEnum *This = (ComponentEnum*)iface;
+ ComponentEnum *This = impl_from_IEnumUnknown(iface);
ComponentEnum *new_enum;
ComponentEnumItem *old_item, *new_item;
HRESULT ret=S_OK;
@@ -1181,7 +1201,7 @@ static HRESULT WINAPI ComponentEnum_Clone(IEnumUnknown *iface, IEnumUnknown **pp
return E_OUTOFMEMORY;
}
- new_enum->IEnumUnknown_Vtbl = &ComponentEnumVtbl;
+ new_enum->IEnumUnknown_iface.lpVtbl = &ComponentEnumVtbl;
new_enum->ref = 1;
new_enum->cursor = NULL;
list_init(&new_enum->objects);
@@ -1252,7 +1272,7 @@ HRESULT CreateComponentEnumerator(DWORD componentTypes, DWORD options, IEnumUnkn
return E_OUTOFMEMORY;
}
- This->IEnumUnknown_Vtbl = &ComponentEnumVtbl;
+ This->IEnumUnknown_iface.lpVtbl = &ComponentEnumVtbl;
This->ref = 1;
list_init(&This->objects);
InitializeCriticalSection(&This->lock);
--
1.7.3.2
More information about the wine-patches
mailing list