windowscodecs: Implement Initialize for BMP encoder.
diff --git a/dlls/windowscodecs/bmpencode.c b/dlls/windowscodecs/bmpencode.c
index f0075ee..9440460 100644
--- a/dlls/windowscodecs/bmpencode.c
+++ b/dlls/windowscodecs/bmpencode.c
@@ -38,6 +38,7 @@
typedef struct BmpEncoder {
const IWICBitmapEncoderVtbl *lpVtbl;
LONG ref;
+ IStream *stream;
} BmpEncoder;
static HRESULT WINAPI BmpEncoder_QueryInterface(IWICBitmapEncoder *iface, REFIID iid,
@@ -82,6 +83,7 @@
if (ref == 0)
{
+ if (This->stream) IStream_Release(This->stream);
HeapFree(GetProcessHeap(), 0, This);
}
@@ -91,8 +93,14 @@
static HRESULT WINAPI BmpEncoder_Initialize(IWICBitmapEncoder *iface,
IStream *pIStream, WICBitmapEncoderCacheOption cacheOption)
{
- FIXME("(%p,%p,%u): stub\n", iface, pIStream, cacheOption);
- return E_NOTIMPL;
+ BmpEncoder *This = (BmpEncoder*)iface;
+
+ TRACE("(%p,%p,%u)\n", iface, pIStream, cacheOption);
+
+ IStream_AddRef(pIStream);
+ This->stream = pIStream;
+
+ return S_OK;
}
static HRESULT WINAPI BmpEncoder_GetContainerFormat(IWICBitmapEncoder *iface,
@@ -186,6 +194,7 @@
This->lpVtbl = &BmpEncoder_Vtbl;
This->ref = 1;
+ This->stream = NULL;
ret = IUnknown_QueryInterface((IUnknown*)This, iid, ppv);
IUnknown_Release((IUnknown*)This);