Vincent Povirk : windowscodecs: Implement Initialize for BMP encoder.

Alexandre Julliard julliard at winehq.org
Wed Aug 12 11:09:26 CDT 2009


Module: wine
Branch: master
Commit: 941f2d3a3b31a16844885e182bd18c7c29e528b2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=941f2d3a3b31a16844885e182bd18c7c29e528b2

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Tue Aug 11 14:42:08 2009 -0500

windowscodecs: Implement Initialize for BMP encoder.

---

 dlls/windowscodecs/bmpencode.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

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 @@ WINE_DEFAULT_DEBUG_CHANNEL(wincodecs);
 typedef struct BmpEncoder {
     const IWICBitmapEncoderVtbl *lpVtbl;
     LONG ref;
+    IStream *stream;
 } BmpEncoder;
 
 static HRESULT WINAPI BmpEncoder_QueryInterface(IWICBitmapEncoder *iface, REFIID iid,
@@ -82,6 +83,7 @@ static ULONG WINAPI BmpEncoder_Release(IWICBitmapEncoder *iface)
 
     if (ref == 0)
     {
+        if (This->stream) IStream_Release(This->stream);
         HeapFree(GetProcessHeap(), 0, This);
     }
 
@@ -91,8 +93,14 @@ static ULONG WINAPI BmpEncoder_Release(IWICBitmapEncoder *iface)
 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 @@ HRESULT BmpEncoder_CreateInstance(IUnknown *pUnkOuter, REFIID iid, void** ppv)
 
     This->lpVtbl = &BmpEncoder_Vtbl;
     This->ref = 1;
+    This->stream = NULL;
 
     ret = IUnknown_QueryInterface((IUnknown*)This, iid, ppv);
     IUnknown_Release((IUnknown*)This);




More information about the wine-cvs mailing list