Jacek Caban : wmp: Return success in IPersistStreamInit::InitNew.

Alexandre Julliard julliard at winehq.org
Mon Feb 24 15:42:30 CST 2014


Module: wine
Branch: master
Commit: b0f4ed187b6e741d5762cd46f858c647d5f286d6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b0f4ed187b6e741d5762cd46f858c647d5f286d6

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Feb 24 13:03:12 2014 +0100

wmp: Return success in IPersistStreamInit::InitNew.

---

 dlls/wmp/oleobj.c       |   11 +++++++++--
 dlls/wmp/tests/oleobj.c |    8 ++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/dlls/wmp/oleobj.c b/dlls/wmp/oleobj.c
index 1e50a45..29f39d7 100644
--- a/dlls/wmp/oleobj.c
+++ b/dlls/wmp/oleobj.c
@@ -744,8 +744,15 @@ static HRESULT WINAPI PersistStreamInit_GetSizeMax(IPersistStreamInit *iface,
 static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface)
 {
     WindowsMediaPlayer *This = impl_from_IPersistStreamInit(iface);
-    FIXME("(%p)\n", This);
-    return E_NOTIMPL;
+
+    TRACE("(%p)\n", This);
+
+    if(!This->client_site)
+        return E_FAIL;
+
+    /* Nothing to do, yet. */
+    get_container_hwnd(This);
+    return S_OK;
 }
 
 static const IPersistStreamInitVtbl PersistStreamInitVtbl = {
diff --git a/dlls/wmp/tests/oleobj.c b/dlls/wmp/tests/oleobj.c
index eababdb..52110c1 100644
--- a/dlls/wmp/tests/oleobj.c
+++ b/dlls/wmp/tests/oleobj.c
@@ -877,6 +877,9 @@ static void test_wmp(void)
     hres = IOleObject_QueryInterface(oleobj, &IID_IOleInPlaceObject, (void**)&ipobj);
     ok(hres == S_OK, "Could not get IOleInPlaceObject iface: %08x\n", hres);
 
+    hres = IPersistStreamInit_InitNew(psi);
+    ok(hres == E_FAIL || broken(hres == S_OK /* Old WMP */), "InitNew failed: %08x\n", hres);
+
     SET_EXPECT(GetContainer);
     SET_EXPECT(GetExtendedControl);
     SET_EXPECT(GetWindow);
@@ -893,6 +896,11 @@ static void test_wmp(void)
     ok(hres == S_OK, "GetClientSite failed: %08x\n", hres);
     ok(client_site == &ClientSite, "client_site != ClientSite\n");
 
+    SET_EXPECT(GetWindow);
+    hres = IPersistStreamInit_InitNew(psi);
+    ok(hres == S_OK, "InitNew failed: %08x\n", hres);
+    CHECK_CALLED(GetWindow);
+
     hwnd = (HWND)0xdeadbeef;
     hres = IOleInPlaceObject_GetWindow(ipobj, &hwnd);
     ok(hres == E_UNEXPECTED, "GetWindow failed: %08x\n", hres);




More information about the wine-cvs mailing list