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