wmp: Added GetClientSite implementation.

This commit is contained in:
Jacek Caban 2014-02-10 11:51:12 +01:00 committed by Alexandre Julliard
parent 9a1f13cf0d
commit 83c45eaa3c
2 changed files with 16 additions and 2 deletions

View File

@ -137,8 +137,11 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite) static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite)
{ {
WindowsMediaPlayer *This = impl_from_IOleObject(iface); WindowsMediaPlayer *This = impl_from_IOleObject(iface);
FIXME("(%p)->(%p)\n", This, ppClientSite);
return E_NOTIMPL; TRACE("(%p)->(%p)\n", This, ppClientSite);
*ppClientSite = This->client_site;
return This->client_site ? S_OK : E_FAIL;
} }
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj)

View File

@ -627,6 +627,7 @@ static void test_QI(IUnknown *unk)
static void test_wmp(void) static void test_wmp(void)
{ {
IProvideClassInfo2 *class_info; IProvideClassInfo2 *class_info;
IOleClientSite *client_site;
IPersistStreamInit *psi; IPersistStreamInit *psi;
IOleObject *oleobj; IOleObject *oleobj;
GUID guid; GUID guid;
@ -667,9 +668,19 @@ static void test_wmp(void)
todo_wine CHECK_CALLED(GetWindow); todo_wine CHECK_CALLED(GetWindow);
todo_wine CHECK_CALLED(Invoke_USERMODE); todo_wine CHECK_CALLED(Invoke_USERMODE);
client_site = NULL;
hres = IOleObject_GetClientSite(oleobj, &client_site);
ok(hres == S_OK, "GetClientSite failed: %08x\n", hres);
ok(client_site == &ClientSite, "client_site != ClientSite\n");
hres = IOleObject_SetClientSite(oleobj, NULL); hres = IOleObject_SetClientSite(oleobj, NULL);
ok(hres == S_OK, "SetClientSite failed: %08x\n", hres); ok(hres == S_OK, "SetClientSite failed: %08x\n", hres);
client_site = (void*)0xdeadbeef;
hres = IOleObject_GetClientSite(oleobj, &client_site);
ok(hres == E_FAIL, "GetClientSite failed: %08x\n", hres);
ok(!client_site, "client_site = %p\n", client_site);
ref = IOleObject_Release(oleobj); ref = IOleObject_Release(oleobj);
ok(!ref, "ref = %d\n", ref); ok(!ref, "ref = %d\n", ref);
} }