mshtml: Added IViewObject::SetSink tests.
This commit is contained in:
parent
a84741182f
commit
38933b1a31
|
@ -152,6 +152,7 @@ DEFINE_EXPECT(Frame_EnableModeless_FALSE);
|
|||
DEFINE_EXPECT(Frame_GetWindow);
|
||||
DEFINE_EXPECT(TranslateUrl);
|
||||
DEFINE_EXPECT(Advise_Close);
|
||||
DEFINE_EXPECT(OnViewChange);
|
||||
|
||||
static IUnknown *doc_unk;
|
||||
static IMoniker *doc_mon;
|
||||
|
@ -2678,50 +2679,60 @@ static const IServiceProviderVtbl ServiceProviderVtbl = {
|
|||
|
||||
static IServiceProvider ServiceProvider = { &ServiceProviderVtbl };
|
||||
|
||||
static HRESULT WINAPI AdviseSink_QueryInterface(IAdviseSink *iface,
|
||||
static HRESULT WINAPI AdviseSink_QueryInterface(IAdviseSinkEx *iface,
|
||||
REFIID riid, void **ppv)
|
||||
{
|
||||
return QueryInterface(riid, ppv);
|
||||
}
|
||||
|
||||
static ULONG WINAPI AdviseSink_AddRef(IAdviseSink *iface)
|
||||
static ULONG WINAPI AdviseSink_AddRef(IAdviseSinkEx *iface)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
|
||||
static ULONG WINAPI AdviseSink_Release(IAdviseSink *iface)
|
||||
static ULONG WINAPI AdviseSink_Release(IAdviseSinkEx *iface)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSink_OnDataChange(IAdviseSink *iface,
|
||||
static void WINAPI AdviseSink_OnDataChange(IAdviseSinkEx *iface,
|
||||
FORMATETC *pFormatetc, STGMEDIUM *pStgmed)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSink_OnViewChange(IAdviseSink *iface,
|
||||
static void WINAPI AdviseSink_OnViewChange(IAdviseSinkEx *iface,
|
||||
DWORD dwAspect, LONG lindex)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSink_OnRename(IAdviseSink *iface, IMoniker *pmk)
|
||||
static void WINAPI AdviseSink_OnRename(IAdviseSinkEx *iface, IMoniker *pmk)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSink_OnSave(IAdviseSink *iface)
|
||||
static void WINAPI AdviseSink_OnSave(IAdviseSinkEx *iface)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSink_OnClose(IAdviseSink *iface)
|
||||
static void WINAPI AdviseSink_OnClose(IAdviseSinkEx *iface)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI AdviseSinkEx_OnViewStatusChange(IAdviseSinkEx *iface, DWORD dwViewStatus)
|
||||
{
|
||||
ok(0, "unexpected call\n");
|
||||
}
|
||||
|
||||
static void WINAPI ObjectAdviseSink_OnClose(IAdviseSinkEx *iface)
|
||||
{
|
||||
CHECK_EXPECT(Advise_Close);
|
||||
}
|
||||
|
||||
static const IAdviseSinkVtbl AdviseSinkVtbl = {
|
||||
static const IAdviseSinkExVtbl AdviseSinkVtbl = {
|
||||
AdviseSink_QueryInterface,
|
||||
AdviseSink_AddRef,
|
||||
AdviseSink_Release,
|
||||
|
@ -2729,10 +2740,47 @@ static const IAdviseSinkVtbl AdviseSinkVtbl = {
|
|||
AdviseSink_OnViewChange,
|
||||
AdviseSink_OnRename,
|
||||
AdviseSink_OnSave,
|
||||
AdviseSink_OnClose
|
||||
ObjectAdviseSink_OnClose,
|
||||
AdviseSinkEx_OnViewStatusChange
|
||||
};
|
||||
|
||||
static IAdviseSink AdviseSink = { &AdviseSinkVtbl };
|
||||
static IAdviseSinkEx AdviseSink = { &AdviseSinkVtbl };
|
||||
|
||||
static HRESULT WINAPI ViewAdviseSink_QueryInterface(IAdviseSinkEx *iface,
|
||||
REFIID riid, void **ppv)
|
||||
{
|
||||
if(IsEqualGUID(&IID_IAdviseSinkEx, riid)) {
|
||||
*ppv = iface;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
ok(0, "unexpected riid %s\n", debugstr_guid(riid));
|
||||
*ppv = NULL;
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
static void WINAPI ViewAdviseSink_OnViewChange(IAdviseSinkEx *iface,
|
||||
DWORD dwAspect, LONG lindex)
|
||||
{
|
||||
CHECK_EXPECT2(OnViewChange);
|
||||
|
||||
ok(dwAspect == DVASPECT_CONTENT, "dwAspect = %d\n", dwAspect);
|
||||
ok(lindex == -1, "lindex = %d\n", lindex);
|
||||
}
|
||||
|
||||
static const IAdviseSinkExVtbl ViewAdviseSinkVtbl = {
|
||||
ViewAdviseSink_QueryInterface,
|
||||
AdviseSink_AddRef,
|
||||
AdviseSink_Release,
|
||||
AdviseSink_OnDataChange,
|
||||
ViewAdviseSink_OnViewChange,
|
||||
AdviseSink_OnRename,
|
||||
AdviseSink_OnSave,
|
||||
AdviseSink_OnClose,
|
||||
AdviseSinkEx_OnViewStatusChange
|
||||
};
|
||||
|
||||
static IAdviseSinkEx ViewAdviseSink = { &ViewAdviseSinkVtbl };
|
||||
|
||||
DEFINE_GUID(IID_unk1, 0xD48A6EC6,0x6A4A,0x11CF,0x94,0xA7,0x44,0x45,0x53,0x54,0x00,0x00); /* HTMLWindow2 ? */
|
||||
DEFINE_GUID(IID_IThumbnailView, 0x7BB0B520,0xB1A7,0x11D2,0xBB,0x23,0x00,0xC0,0x4F,0x79,0xAB,0xCD);
|
||||
|
@ -2919,6 +2967,20 @@ static void _test_readyState(unsigned line, IUnknown *unk)
|
|||
IHTMLDocument2_Release(htmldoc);
|
||||
}
|
||||
|
||||
static void test_ViewAdviseSink(IHTMLDocument2 *doc)
|
||||
{
|
||||
IViewObject *view;
|
||||
HRESULT hres;
|
||||
|
||||
hres = IHTMLDocument2_QueryInterface(doc, &IID_IViewObject, (void**)&view);
|
||||
ok(hres == S_OK, "QueryInterface(IID_IViewObject) failed: %08x\n", hres);
|
||||
|
||||
hres = IViewObject_SetAdvise(view, DVASPECT_CONTENT, ADVF_PRIMEFIRST, (IAdviseSink*)&ViewAdviseSink);
|
||||
ok(hres == S_OK, "SetAdvise failed: %08x\n", hres);
|
||||
|
||||
IViewObject_Release(view);
|
||||
}
|
||||
|
||||
static void test_ConnectionPoint(IConnectionPointContainer *container, REFIID riid)
|
||||
{
|
||||
IConnectionPointContainer *tmp_container = NULL;
|
||||
|
@ -3100,6 +3162,7 @@ static void test_download(DWORD flags)
|
|||
SET_EXPECT(SetStatusText);
|
||||
if(!(flags & DWL_EMPTY))
|
||||
SET_EXPECT(Exec_SETDOWNLOADSTATE_1);
|
||||
SET_EXPECT(OnViewChange);
|
||||
SET_EXPECT(GetDropTarget);
|
||||
if(flags & DWL_TRYCSS)
|
||||
SET_EXPECT(Exec_ShellDocView_84);
|
||||
|
@ -3148,6 +3211,7 @@ static void test_download(DWORD flags)
|
|||
CHECK_CALLED(SetStatusText);
|
||||
if(!(flags & DWL_EMPTY))
|
||||
CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
|
||||
CHECK_CALLED(OnViewChange);
|
||||
CHECK_CALLED(GetDropTarget);
|
||||
if(flags & DWL_TRYCSS)
|
||||
SET_CALLED(Exec_ShellDocView_84);
|
||||
|
@ -3845,14 +3909,14 @@ static void test_Advise(IHTMLDocument2 *doc)
|
|||
ok(hres == E_INVALIDARG || hres == S_OK, "Advise returned: %08x\n", hres);
|
||||
ok(conn == 0 || conn == 1, "conn = %d\n", conn);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, NULL);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, NULL);
|
||||
ok(hres == E_INVALIDARG, "Advise returned: %08x\n", hres);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, &conn);
|
||||
ok(hres == S_OK, "Advise returned: %08x\n", hres);
|
||||
ok(conn == 1, "conn = %d\n", conn);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, &conn);
|
||||
ok(hres == S_OK, "Advise returned: %08x\n", hres);
|
||||
ok(conn == 2, "conn = %d\n", conn);
|
||||
|
||||
|
@ -4281,6 +4345,7 @@ static void test_HTMLDocument(BOOL do_load)
|
|||
test_IsDirty(doc, S_FALSE);
|
||||
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
|
||||
test_external(doc, FALSE);
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
|
||||
test_Persist(doc, &Moniker);
|
||||
|
@ -4376,6 +4441,7 @@ static void test_HTMLDocument_hlink(void)
|
|||
return;
|
||||
doc_unk = (IUnknown*)doc;
|
||||
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
|
||||
test_Persist(doc, &Moniker);
|
||||
|
@ -4476,6 +4542,7 @@ static void test_HTMLDocument_http(void)
|
|||
hres = CreateURLMoniker(NULL, http_urlW, &http_mon);
|
||||
ok(hres == S_OK, "CreateURLMoniker failed: %08x\n", hres);
|
||||
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_GetCurMoniker((IUnknown*)doc, NULL, NULL);
|
||||
test_Persist(doc, http_mon);
|
||||
|
@ -4551,11 +4618,12 @@ static void test_HTMLDocument_StreamLoad(void)
|
|||
hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
|
||||
ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, &conn);
|
||||
ok(hres == S_OK, "Advise failed: %08x\n", hres);
|
||||
|
||||
test_readyState((IUnknown*)doc);
|
||||
test_IsDirty(doc, S_FALSE);
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_QueryService(doc, FALSE);
|
||||
test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
|
||||
|
@ -4608,11 +4676,12 @@ static void test_HTMLDocument_StreamInitNew(void)
|
|||
hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
|
||||
ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, &conn);
|
||||
ok(hres == S_OK, "Advise failed: %08x\n", hres);
|
||||
|
||||
test_readyState((IUnknown*)doc);
|
||||
test_IsDirty(doc, S_FALSE);
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
|
||||
test_DoVerb(oleobj);
|
||||
|
@ -4691,10 +4760,11 @@ static void test_editing_mode(BOOL do_load)
|
|||
hres = IUnknown_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
|
||||
ok(hres == S_OK, "Could not get IOleObject: %08x\n", hres);
|
||||
|
||||
hres = IOleObject_Advise(oleobj, &AdviseSink, &conn);
|
||||
hres = IOleObject_Advise(oleobj, (IAdviseSink*)&AdviseSink, &conn);
|
||||
ok(hres == S_OK, "Advise failed: %08x\n", hres);
|
||||
|
||||
test_readyState((IUnknown*)doc);
|
||||
test_ViewAdviseSink(doc);
|
||||
test_ConnectionPointContainer(doc);
|
||||
test_ClientSite(oleobj, CLIENTSITE_EXPECTPATH);
|
||||
test_DoVerb(oleobj);
|
||||
|
|
Loading…
Reference in New Issue