mirror of
https://github.com/reactos/wine.git
synced 2025-02-17 19:39:00 +00:00
windowscodecs: Standardize the COM usage in icnsformat.c.
This commit is contained in:
parent
d11c0f3801
commit
31aec42560
@ -76,7 +76,7 @@ static void *load_libicns(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef struct IcnsEncoder {
|
typedef struct IcnsEncoder {
|
||||||
const IWICBitmapEncoderVtbl *lpVtbl;
|
IWICBitmapEncoder IWICBitmapEncoder_iface;
|
||||||
LONG ref;
|
LONG ref;
|
||||||
IStream *stream;
|
IStream *stream;
|
||||||
icns_family_t *icns_family;
|
icns_family_t *icns_family;
|
||||||
@ -86,8 +86,13 @@ typedef struct IcnsEncoder {
|
|||||||
CRITICAL_SECTION lock;
|
CRITICAL_SECTION lock;
|
||||||
} IcnsEncoder;
|
} IcnsEncoder;
|
||||||
|
|
||||||
|
static inline IcnsEncoder *impl_from_IWICBitmapEncoder(IWICBitmapEncoder *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, IcnsEncoder, IWICBitmapEncoder_iface);
|
||||||
|
}
|
||||||
|
|
||||||
typedef struct IcnsFrameEncode {
|
typedef struct IcnsFrameEncode {
|
||||||
const IWICBitmapFrameEncodeVtbl *lpVtbl;
|
IWICBitmapFrameEncode IWICBitmapFrameEncode_iface;
|
||||||
IcnsEncoder *encoder;
|
IcnsEncoder *encoder;
|
||||||
LONG ref;
|
LONG ref;
|
||||||
BOOL initialized;
|
BOOL initialized;
|
||||||
@ -99,10 +104,15 @@ typedef struct IcnsFrameEncode {
|
|||||||
BOOL committed;
|
BOOL committed;
|
||||||
} IcnsFrameEncode;
|
} IcnsFrameEncode;
|
||||||
|
|
||||||
|
static inline IcnsFrameEncode *impl_from_IWICBitmapFrameEncode(IWICBitmapFrameEncode *iface)
|
||||||
|
{
|
||||||
|
return CONTAINING_RECORD(iface, IcnsFrameEncode, IWICBitmapFrameEncode_iface);
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI IcnsFrameEncode_QueryInterface(IWICBitmapFrameEncode *iface, REFIID iid,
|
static HRESULT WINAPI IcnsFrameEncode_QueryInterface(IWICBitmapFrameEncode *iface, REFIID iid,
|
||||||
void **ppv)
|
void **ppv)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
|
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
|
||||||
|
|
||||||
if (!ppv) return E_INVALIDARG;
|
if (!ppv) return E_INVALIDARG;
|
||||||
@ -110,7 +120,7 @@ static HRESULT WINAPI IcnsFrameEncode_QueryInterface(IWICBitmapFrameEncode *ifac
|
|||||||
if (IsEqualIID(&IID_IUnknown, iid) ||
|
if (IsEqualIID(&IID_IUnknown, iid) ||
|
||||||
IsEqualIID(&IID_IWICBitmapFrameEncode, iid))
|
IsEqualIID(&IID_IWICBitmapFrameEncode, iid))
|
||||||
{
|
{
|
||||||
*ppv = &This->lpVtbl;
|
*ppv = &This->IWICBitmapFrameEncode_iface;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -124,7 +134,7 @@ static HRESULT WINAPI IcnsFrameEncode_QueryInterface(IWICBitmapFrameEncode *ifac
|
|||||||
|
|
||||||
static ULONG WINAPI IcnsFrameEncode_AddRef(IWICBitmapFrameEncode *iface)
|
static ULONG WINAPI IcnsFrameEncode_AddRef(IWICBitmapFrameEncode *iface)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
ULONG ref = InterlockedIncrement(&This->ref);
|
ULONG ref = InterlockedIncrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) refcount=%u\n", iface, ref);
|
TRACE("(%p) refcount=%u\n", iface, ref);
|
||||||
@ -134,7 +144,7 @@ static ULONG WINAPI IcnsFrameEncode_AddRef(IWICBitmapFrameEncode *iface)
|
|||||||
|
|
||||||
static ULONG WINAPI IcnsFrameEncode_Release(IWICBitmapFrameEncode *iface)
|
static ULONG WINAPI IcnsFrameEncode_Release(IWICBitmapFrameEncode *iface)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
ULONG ref = InterlockedDecrement(&This->ref);
|
ULONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) refcount=%u\n", iface, ref);
|
TRACE("(%p) refcount=%u\n", iface, ref);
|
||||||
@ -160,7 +170,7 @@ static ULONG WINAPI IcnsFrameEncode_Release(IWICBitmapFrameEncode *iface)
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_Initialize(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_Initialize(IWICBitmapFrameEncode *iface,
|
||||||
IPropertyBag2 *pIEncoderOptions)
|
IPropertyBag2 *pIEncoderOptions)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
TRACE("(%p,%p)\n", iface, pIEncoderOptions);
|
TRACE("(%p,%p)\n", iface, pIEncoderOptions);
|
||||||
@ -182,7 +192,7 @@ end:
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_SetSize(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_SetSize(IWICBitmapFrameEncode *iface,
|
||||||
UINT uiWidth, UINT uiHeight)
|
UINT uiWidth, UINT uiHeight)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
TRACE("(%p,%u,%u)\n", iface, uiWidth, uiHeight);
|
TRACE("(%p,%u,%u)\n", iface, uiWidth, uiHeight);
|
||||||
@ -206,7 +216,7 @@ end:
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_SetResolution(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_SetResolution(IWICBitmapFrameEncode *iface,
|
||||||
double dpiX, double dpiY)
|
double dpiX, double dpiY)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
TRACE("(%p,%0.2f,%0.2f)\n", iface, dpiX, dpiY);
|
TRACE("(%p,%0.2f,%0.2f)\n", iface, dpiX, dpiY);
|
||||||
@ -227,7 +237,7 @@ end:
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_SetPixelFormat(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_SetPixelFormat(IWICBitmapFrameEncode *iface,
|
||||||
WICPixelFormatGUID *pPixelFormat)
|
WICPixelFormatGUID *pPixelFormat)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
TRACE("(%p,%s)\n", iface, debugstr_guid(pPixelFormat));
|
TRACE("(%p,%s)\n", iface, debugstr_guid(pPixelFormat));
|
||||||
@ -271,7 +281,7 @@ static HRESULT WINAPI IcnsFrameEncode_SetThumbnail(IWICBitmapFrameEncode *iface,
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_WritePixels(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_WritePixels(IWICBitmapFrameEncode *iface,
|
||||||
UINT lineCount, UINT cbStride, UINT cbBufferSize, BYTE *pbPixels)
|
UINT lineCount, UINT cbStride, UINT cbBufferSize, BYTE *pbPixels)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
UINT i;
|
UINT i;
|
||||||
int ret;
|
int ret;
|
||||||
@ -341,7 +351,7 @@ end:
|
|||||||
static HRESULT WINAPI IcnsFrameEncode_WriteSource(IWICBitmapFrameEncode *iface,
|
static HRESULT WINAPI IcnsFrameEncode_WriteSource(IWICBitmapFrameEncode *iface,
|
||||||
IWICBitmapSource *pIBitmapSource, WICRect *prc)
|
IWICBitmapSource *pIBitmapSource, WICRect *prc)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
WICRect rc;
|
WICRect rc;
|
||||||
WICPixelFormatGUID guid;
|
WICPixelFormatGUID guid;
|
||||||
@ -408,7 +418,7 @@ end:
|
|||||||
|
|
||||||
static HRESULT WINAPI IcnsFrameEncode_Commit(IWICBitmapFrameEncode *iface)
|
static HRESULT WINAPI IcnsFrameEncode_Commit(IWICBitmapFrameEncode *iface)
|
||||||
{
|
{
|
||||||
IcnsFrameEncode *This = (IcnsFrameEncode*)iface;
|
IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface);
|
||||||
icns_element_t *icns_element = NULL;
|
icns_element_t *icns_element = NULL;
|
||||||
icns_image_t mask;
|
icns_image_t mask;
|
||||||
icns_element_t *mask_element = NULL;
|
icns_element_t *mask_element = NULL;
|
||||||
@ -519,7 +529,7 @@ static const IWICBitmapFrameEncodeVtbl IcnsEncoder_FrameVtbl = {
|
|||||||
static HRESULT WINAPI IcnsEncoder_QueryInterface(IWICBitmapEncoder *iface, REFIID iid,
|
static HRESULT WINAPI IcnsEncoder_QueryInterface(IWICBitmapEncoder *iface, REFIID iid,
|
||||||
void **ppv)
|
void **ppv)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
|
TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
|
||||||
|
|
||||||
if (!ppv) return E_INVALIDARG;
|
if (!ppv) return E_INVALIDARG;
|
||||||
@ -541,7 +551,7 @@ static HRESULT WINAPI IcnsEncoder_QueryInterface(IWICBitmapEncoder *iface, REFII
|
|||||||
|
|
||||||
static ULONG WINAPI IcnsEncoder_AddRef(IWICBitmapEncoder *iface)
|
static ULONG WINAPI IcnsEncoder_AddRef(IWICBitmapEncoder *iface)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
ULONG ref = InterlockedIncrement(&This->ref);
|
ULONG ref = InterlockedIncrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) refcount=%u\n", iface, ref);
|
TRACE("(%p) refcount=%u\n", iface, ref);
|
||||||
@ -551,7 +561,7 @@ static ULONG WINAPI IcnsEncoder_AddRef(IWICBitmapEncoder *iface)
|
|||||||
|
|
||||||
static ULONG WINAPI IcnsEncoder_Release(IWICBitmapEncoder *iface)
|
static ULONG WINAPI IcnsEncoder_Release(IWICBitmapEncoder *iface)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
ULONG ref = InterlockedDecrement(&This->ref);
|
ULONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
TRACE("(%p) refcount=%u\n", iface, ref);
|
TRACE("(%p) refcount=%u\n", iface, ref);
|
||||||
@ -573,7 +583,7 @@ static ULONG WINAPI IcnsEncoder_Release(IWICBitmapEncoder *iface)
|
|||||||
static HRESULT WINAPI IcnsEncoder_Initialize(IWICBitmapEncoder *iface,
|
static HRESULT WINAPI IcnsEncoder_Initialize(IWICBitmapEncoder *iface,
|
||||||
IStream *pIStream, WICBitmapEncoderCacheOption cacheOption)
|
IStream *pIStream, WICBitmapEncoderCacheOption cacheOption)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
int ret;
|
int ret;
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
@ -644,7 +654,7 @@ static HRESULT WINAPI IcnsEncoder_SetPreview(IWICBitmapEncoder *iface, IWICBitma
|
|||||||
static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
||||||
IWICBitmapFrameEncode **ppIFrameEncode, IPropertyBag2 **ppIEncoderOptions)
|
IWICBitmapFrameEncode **ppIFrameEncode, IPropertyBag2 **ppIEncoderOptions)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
IcnsFrameEncode *frameEncode = NULL;
|
IcnsFrameEncode *frameEncode = NULL;
|
||||||
|
|
||||||
@ -668,7 +678,7 @@ static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
|||||||
hr = E_OUTOFMEMORY;
|
hr = E_OUTOFMEMORY;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
frameEncode->lpVtbl = &IcnsEncoder_FrameVtbl;
|
frameEncode->IWICBitmapFrameEncode_iface.lpVtbl = &IcnsEncoder_FrameVtbl;
|
||||||
frameEncode->encoder = This;
|
frameEncode->encoder = This;
|
||||||
frameEncode->ref = 1;
|
frameEncode->ref = 1;
|
||||||
frameEncode->initialized = FALSE;
|
frameEncode->initialized = FALSE;
|
||||||
@ -677,7 +687,7 @@ static HRESULT WINAPI IcnsEncoder_CreateNewFrame(IWICBitmapEncoder *iface,
|
|||||||
memset(&frameEncode->icns_image, 0, sizeof(icns_image_t));
|
memset(&frameEncode->icns_image, 0, sizeof(icns_image_t));
|
||||||
frameEncode->lines_written = 0;
|
frameEncode->lines_written = 0;
|
||||||
frameEncode->committed = FALSE;
|
frameEncode->committed = FALSE;
|
||||||
*ppIFrameEncode = (IWICBitmapFrameEncode*)frameEncode;
|
*ppIFrameEncode = &frameEncode->IWICBitmapFrameEncode_iface;
|
||||||
This->outstanding_commits++;
|
This->outstanding_commits++;
|
||||||
IUnknown_AddRef((IUnknown*)This);
|
IUnknown_AddRef((IUnknown*)This);
|
||||||
|
|
||||||
@ -689,7 +699,7 @@ end:
|
|||||||
|
|
||||||
static HRESULT WINAPI IcnsEncoder_Commit(IWICBitmapEncoder *iface)
|
static HRESULT WINAPI IcnsEncoder_Commit(IWICBitmapEncoder *iface)
|
||||||
{
|
{
|
||||||
IcnsEncoder *This = (IcnsEncoder*)iface;
|
IcnsEncoder *This = impl_from_IWICBitmapEncoder(iface);
|
||||||
icns_byte_t *buffer = NULL;
|
icns_byte_t *buffer = NULL;
|
||||||
icns_size_t buffer_size;
|
icns_size_t buffer_size;
|
||||||
int ret;
|
int ret;
|
||||||
@ -772,7 +782,7 @@ HRESULT IcnsEncoder_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void** ppv)
|
|||||||
This = HeapAlloc(GetProcessHeap(), 0, sizeof(IcnsEncoder));
|
This = HeapAlloc(GetProcessHeap(), 0, sizeof(IcnsEncoder));
|
||||||
if (!This) return E_OUTOFMEMORY;
|
if (!This) return E_OUTOFMEMORY;
|
||||||
|
|
||||||
This->lpVtbl = &IcnsEncoder_Vtbl;
|
This->IWICBitmapEncoder_iface.lpVtbl = &IcnsEncoder_Vtbl;
|
||||||
This->ref = 1;
|
This->ref = 1;
|
||||||
This->stream = NULL;
|
This->stream = NULL;
|
||||||
This->icns_family = NULL;
|
This->icns_family = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user