msado15: Implement _Stream_get_EOS.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Hans Leidekker 2019-12-10 11:11:19 +01:00 committed by Alexandre Julliard
parent 4d5e1f07ef
commit 74410ebb26
2 changed files with 16 additions and 2 deletions

View File

@ -124,8 +124,13 @@ static HRESULT WINAPI stream_get_Size( _Stream *iface, LONG *size )
static HRESULT WINAPI stream_get_EOS( _Stream *iface, VARIANT_BOOL *eos )
{
FIXME( "%p, %p\n", iface, eos );
return E_NOTIMPL;
struct stream *stream = impl_from_Stream( iface );
TRACE( "%p, %p\n", stream, eos );
if (stream->state == adStateClosed) return MAKE_ADO_HRESULT( adErrObjectClosed );
*eos = (stream->pos >= stream->size) ? VARIANT_TRUE : VARIANT_FALSE;
return S_OK;
}
static HRESULT WINAPI stream_get_Position( _Stream *iface, LONG *pos )

View File

@ -49,6 +49,7 @@ static HRESULT str_to_byte_array( const char *data, VARIANT *ret )
static void test_Stream(void)
{
_Stream *stream;
VARIANT_BOOL eos;
StreamTypeEnum type;
LONG refs, size, pos;
ObjectStateEnum state;
@ -61,6 +62,9 @@ static void test_Stream(void)
hr = _Stream_get_Size( stream, &size );
ok( hr == MAKE_ADO_HRESULT( adErrObjectClosed ), "got %08x\n", hr );
hr = _Stream_get_EOS( stream, &eos );
ok( hr == MAKE_ADO_HRESULT( adErrObjectClosed ), "got %08x\n", hr );
hr = _Stream_get_Position( stream, &pos );
ok( hr == MAKE_ADO_HRESULT( adErrObjectClosed ), "got %08x\n", hr );
@ -111,6 +115,11 @@ static void test_Stream(void)
ok( hr == S_OK, "got %08x\n", hr );
ok( !size, "got %d\n", size );
eos = VARIANT_FALSE;
hr = _Stream_get_EOS( stream, &eos );
ok( hr == S_OK, "got %08x\n", hr );
ok( eos == VARIANT_TRUE, "got %04x\n", eos );
pos = -1;
hr = _Stream_get_Position( stream, &pos );
ok( hr == S_OK, "got %08x\n", hr );