[PATCH 04/12] windowscodecs: Support writing to memory streams in IWICStream

Tony Wasserka tony.wasserka at freenet.de
Tue Aug 18 08:18:32 CDT 2009


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

diff --git a/dlls/windowscodecs/stream.c b/dlls/windowscodecs/stream.c
index 26c72b8..fb48896 100644
--- a/dlls/windowscodecs/stream.c
+++ b/dlls/windowscodecs/stream.c
@@ -91,8 +91,19 @@ static HRESULT WINAPI StreamOnMemory_Read(IStream *iface,
 static HRESULT WINAPI StreamOnMemory_Write(IStream *iface,
     void const *pv, ULONG cb, ULONG *pcbWritten)
 {
-    FIXME("(%p): stub\n", iface);
-    return E_NOTIMPL;
+    StreamOnMemory *This = (StreamOnMemory*)iface;
+    TRACE("(%p)\n", This);
+
+    if (!pv) return E_INVALIDARG;
+
+    if (cb > This->dwMemsize - This->dwCurPos) return STG_E_MEDIUMFULL;
+    if (cb) {
+        memcpy(This->pbMemory + This->dwCurPos, pv, cb);
+        This->dwCurPos += cb;
+    }
+    if (pcbWritten) *pcbWritten = cb;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI StreamOnMemory_Seek(IStream *iface,
-- 
1.6.3.3


--------------050701010508060307010801--



More information about the wine-patches mailing list