Commit 93a7a903 authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

msado15: Implement _Stream_get_Size.

parent 06d055f0
......@@ -113,8 +113,13 @@ static HRESULT WINAPI stream_Invoke( _Stream *iface, DISPID member, REFIID riid,
static HRESULT WINAPI stream_get_Size( _Stream *iface, LONG *size )
{
FIXME( "%p, %p\n", iface, size );
return E_NOTIMPL;
struct stream *stream = impl_from_Stream( iface );
TRACE( "%p, %p\n", stream, size );
if (stream->state == adStateClosed) return MAKE_ADO_HRESULT( adErrObjectClosed );
*size = stream->size;
return S_OK;
}
static HRESULT WINAPI stream_get_EOS( _Stream *iface, VARIANT_BOOL *eos )
......
......@@ -50,7 +50,7 @@ static void test_Stream(void)
{
_Stream *stream;
StreamTypeEnum type;
LONG refs, pos;
LONG refs, size, pos;
ObjectStateEnum state;
VARIANT missing, val;
HRESULT hr;
......@@ -58,6 +58,9 @@ static void test_Stream(void)
hr = CoCreateInstance( &CLSID_Stream, NULL, CLSCTX_INPROC_SERVER, &IID__Stream, (void **)&stream );
ok( hr == S_OK, "got %08x\n", hr );
hr = _Stream_get_Size( stream, &size );
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 );
......@@ -103,11 +106,21 @@ static void test_Stream(void)
ok( hr == S_OK, "got %08x\n", hr );
ok( state == adStateOpen, "got %u\n", state );
size = -1;
hr = _Stream_get_Size( stream, &size );
ok( hr == S_OK, "got %08x\n", hr );
ok( !size, "got %d\n", size );
pos = -1;
hr = _Stream_get_Position( stream, &pos );
ok( hr == S_OK, "got %08x\n", hr );
ok( !pos, "got %d\n", pos );
size = -1;
hr = _Stream_get_Size( stream, &size );
ok( hr == S_OK, "got %08x\n", hr );
ok( !size, "got %d\n", size );
hr = _Stream_Read( stream, 2, &val );
ok( hr == MAKE_ADO_HRESULT( adErrIllegalOperation ), "got %08x\n", hr );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment