Hans Leidekker : msado15: Implement _Stream_get_LineSeparator and _Stream_put_LineSeparator.

Alexandre Julliard julliard at winehq.org
Tue Dec 10 15:58:49 CST 2019


Module: wine
Branch: master
Commit: ada885fe510a3ad6e940fa011525040c797572f8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ada885fe510a3ad6e940fa011525040c797572f8

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Dec 10 11:11:20 2019 +0100

msado15: Implement _Stream_get_LineSeparator and _Stream_put_LineSeparator.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msado15/stream.c        | 32 ++++++++++++++++++++------------
 dlls/msado15/tests/msado15.c |  9 +++++++++
 2 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/dlls/msado15/stream.c b/dlls/msado15/stream.c
index 9fb6007b57..07027f3829 100644
--- a/dlls/msado15/stream.c
+++ b/dlls/msado15/stream.c
@@ -32,14 +32,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(msado15);
 
 struct stream
 {
-    _Stream          Stream_iface;
-    LONG             refs;
-    ObjectStateEnum  state;
-    StreamTypeEnum   type;
-    LONG             size;
-    LONG             allocated;
-    LONG             pos;
-    BYTE            *buf;
+    _Stream            Stream_iface;
+    LONG               refs;
+    ObjectStateEnum    state;
+    StreamTypeEnum     type;
+    LineSeparatorEnum  sep;
+    LONG               size;
+    LONG               allocated;
+    LONG               pos;
+    BYTE              *buf;
 };
 
 static inline struct stream *impl_from_Stream( _Stream *iface )
@@ -193,14 +194,20 @@ static HRESULT WINAPI stream_put_Type( _Stream *iface, StreamTypeEnum type )
 
 static HRESULT WINAPI stream_get_LineSeparator( _Stream *iface, LineSeparatorEnum *sep )
 {
-    FIXME( "%p, %p\n", iface, sep );
-    return E_NOTIMPL;
+    struct stream *stream = impl_from_Stream( iface );
+    TRACE( "%p, %p\n", stream, sep );
+
+    *sep = stream->sep;
+    return S_OK;
 }
 
 static HRESULT WINAPI stream_put_LineSeparator( _Stream *iface, LineSeparatorEnum sep )
 {
-    FIXME( "%p, %d\n", iface, sep );
-    return E_NOTIMPL;
+    struct stream *stream = impl_from_Stream( iface );
+    TRACE( "%p, %d\n", stream, sep );
+
+    stream->sep = sep;
+    return S_OK;
 }
 
 static HRESULT WINAPI stream_get_State( _Stream *iface, ObjectStateEnum *state )
@@ -431,6 +438,7 @@ HRESULT Stream_create( void **obj )
     stream->Stream_iface.lpVtbl = &stream_vtbl;
     stream->refs = 1;
     stream->type = adTypeText;
+    stream->sep  = adCRLF;
 
     *obj = &stream->Stream_iface;
     TRACE( "returning iface %p\n", *obj );
diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c
index 0b10579905..a4de15932d 100644
--- a/dlls/msado15/tests/msado15.c
+++ b/dlls/msado15/tests/msado15.c
@@ -51,6 +51,7 @@ static void test_Stream(void)
     _Stream *stream;
     VARIANT_BOOL eos;
     StreamTypeEnum type;
+    LineSeparatorEnum sep;
     LONG refs, size, pos;
     ObjectStateEnum state;
     VARIANT missing, val;
@@ -89,6 +90,14 @@ static void test_Stream(void)
     hr = _Stream_put_Type( stream, adTypeText );
     ok( hr == S_OK, "got %08x\n", hr );
 
+    sep = 0;
+    hr = _Stream_get_LineSeparator( stream, &sep );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( sep == adCRLF, "got %d\n", sep );
+
+    hr = _Stream_put_LineSeparator( stream, adLF );
+    ok( hr == S_OK, "got %08x\n", hr );
+
     state = 0xdeadbeef;
     hr = _Stream_get_State( stream, &state );
     ok( hr == S_OK, "got %08x\n", hr );




More information about the wine-cvs mailing list