[PATCH 1/5] strmbase: Fix implementation of IVideoWindow::get_Caption().

Zebediah Figura z.figura12 at gmail.com
Mon Oct 7 18:55:42 CDT 2019


Signed-off-by: Zebediah Figura <z.figura12 at 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)
-- 
2.23.0




More information about the wine-devel mailing list