[PATCH 4/6] dmusic: IDirectMusicBufferImpl_GetUsedBytes.
Christian Costa
titan.costa at gmail.com
Thu Apr 26 01:08:43 CDT 2012
---
dlls/dmusic/buffer.c | 9 +++++++--
dlls/dmusic/tests/dmusic.c | 4 ++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/dmusic/buffer.c b/dlls/dmusic/buffer.c
index fd1d217..f4ea22c 100644
--- a/dlls/dmusic/buffer.c
+++ b/dlls/dmusic/buffer.c
@@ -177,11 +177,16 @@ static HRESULT WINAPI IDirectMusicBufferImpl_GetStartTime(LPDIRECTMUSICBUFFER if
return S_OK;
}
-static HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes(LPDIRECTMUSICBUFFER iface, LPDWORD pcb)
+static HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes(LPDIRECTMUSICBUFFER iface, LPDWORD used_bytes)
{
IDirectMusicBufferImpl *This = impl_from_IDirectMusicBuffer(iface);
- FIXME("(%p, %p): stub\n", This, pcb);
+ TRACE("(%p)->(%p)\n", iface, used_bytes);
+
+ if (!used_bytes)
+ return E_POINTER;
+
+ *used_bytes = This->write_pos;
return S_OK;
}
diff --git a/dlls/dmusic/tests/dmusic.c b/dlls/dmusic/tests/dmusic.c
index c6d4ad3..71e89fd 100644
--- a/dlls/dmusic/tests/dmusic.c
+++ b/dlls/dmusic/tests/dmusic.c
@@ -112,6 +112,7 @@ static void test_dmbuffer(void)
DMUS_BUFFERDESC desc;
GUID format;
DWORD size;
+ DWORD bytes;
hr = CoCreateInstance(&CLSID_DirectMusic, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusic, (LPVOID*)&dmusic);
if (hr != S_OK)
@@ -139,6 +140,9 @@ static void test_dmbuffer(void)
ok(hr == DMUS_E_INVALID_EVENT, "IDirectMusicBuffer_PackStructured returned %x\n", hr);
hr = IDirectMusicBuffer_PackStructured(dmbuffer, 10, 0, 0x000090); /* note on : chan 0, note 0 & vel 0 */
ok(hr == S_OK, "IDirectMusicBuffer_PackStructured returned %x\n", hr);
+ hr = IDirectMusicBuffer_GetUsedBytes(dmbuffer, &bytes);
+ ok(hr == S_OK, "IDirectMusicBuffer_GetUsedBytes returned %x\n", hr);
+ ok(bytes == 24, "Buffer size is %u instead of 0\n", bytes);
if (dmbuffer)
IDirectMusicBuffer_Release(dmbuffer);
More information about the wine-patches
mailing list