Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/strmbase/window.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/dlls/strmbase/window.c b/dlls/strmbase/window.c index b7c0bae47b2..4ecc81c24e5 100644 --- a/dlls/strmbase/window.c +++ b/dlls/strmbase/window.c @@ -297,15 +297,24 @@ HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCa return S_OK; }
-HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption) +HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *caption) { - BaseControlWindow* This = impl_from_IVideoWindow(iface); + BaseControlWindow *window = impl_from_IVideoWindow(iface); + WCHAR *str; + int len;
- TRACE("(%p/%p)->(%p)\n", This, iface, strCaption); + TRACE("window %p, caption %p.\n", window, caption);
- GetWindowTextW(This->baseWindow.hWnd, (LPWSTR)strCaption, 100); + *caption = NULL;
- return S_OK; + len = GetWindowTextLengthW(window->baseWindow.hWnd) + 1; + if (!(str = heap_alloc(len * sizeof(WCHAR)))) + return E_OUTOFMEMORY; + + GetWindowTextW(window->baseWindow.hWnd, str, len); + *caption = SysAllocString(str); + heap_free(str); + return *caption ? S_OK : E_OUTOFMEMORY; }
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)