From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55759 --- dlls/wintypes/buffer.c | 8 ++++++-- dlls/wintypes/tests/wintypes.c | 7 ------- 2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/dlls/wintypes/buffer.c b/dlls/wintypes/buffer.c index 4e3fdebb151..620cb39709e 100644 --- a/dlls/wintypes/buffer.c +++ b/dlls/wintypes/buffer.c @@ -271,8 +271,12 @@ static ULONG WINAPI buffer_byte_access_Release( IBufferByteAccess *iface )
static HRESULT WINAPI buffer_byte_access_Buffer( IBufferByteAccess *iface, byte **value ) { - FIXME( "iface %p, value %p stub!\n", iface, value ); - return E_NOTIMPL; + struct buffer *impl = impl_from_IBufferByteAccess( iface ); + + TRACE( "iface %p, value %p\n", iface, value ); + + *value = impl->data; + return S_OK; }
static const struct IBufferByteAccessVtbl buffer_byte_access_vtbl = diff --git a/dlls/wintypes/tests/wintypes.c b/dlls/wintypes/tests/wintypes.c index f4c179acc22..0c9ca1a9ccb 100644 --- a/dlls/wintypes/tests/wintypes.c +++ b/dlls/wintypes/tests/wintypes.c @@ -223,9 +223,7 @@ static void test_IBufferStatics(void)
data = NULL; hr = IBufferByteAccess_Buffer(buffer_byte_access, &data); - todo_wine ok(hr == S_OK, "IBufferByteAccess_Buffer failed, hr %#lx.\n", hr); - todo_wine ok(data != NULL, "IBufferByteAccess_Buffer returned NULL data.\n");
IBufferByteAccess_Release(buffer_byte_access); @@ -265,9 +263,7 @@ static void test_IBufferStatics(void) ok(hr == S_OK, "QueryInterface IID_IBufferByteAccess failed, hr %#lx.\n", hr);
hr = IBufferByteAccess_Buffer(buffer_byte_access, &data); - todo_wine ok(hr == S_OK, "IBufferByteAccess_Buffer failed, hr %#lx.\n", hr); - if (hr != S_OK) goto done2;
/* Windows does not zero out data when changing Length */
@@ -281,13 +277,10 @@ static void test_IBufferStatics(void) ok(length == 0, "IBuffer_get_Length returned length %u.\n", length); hr = IBuffer_put_Length(buffer, 1); ok(hr == S_OK, "IBuffer_put_Length failed, hr %#lx.\n", hr); - todo_wine ok(data[0] == 1, "Buffer returned %#x.\n", data[0]); - todo_wine ok(data[10] == 10, "Buffer returned %#x.\n", data[10]);
IBufferByteAccess_Release(buffer_byte_access); -done2: IBuffer_Release(buffer); IBufferFactory_Release(buffer_factory); IActivationFactory_Release(factory);