diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 838e2aec4a8..3a35abf6749 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -94,7 +94,7 @@ DEFINE_GUID(SID_SContainerDispatch,0xb722be00,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,
static IOleDocumentView *view = NULL;
-static HWND container_hwnd = NULL, hwnd = NULL, last_hwnd = NULL;
+static HWND container_hwnd = NULL, doc_hwnd = NULL, last_hwnd = NULL;
DEFINE_EXPECT(LockContainer);
DEFINE_EXPECT(SetActiveObject);
@@ -346,7 +346,7 @@ static void test_timer(DWORD flags)
if(flags & EXPECT_SETTITLE)
SET_EXPECT(Exec_SETTITLE);
- while(!*b && GetMessage(&msg, hwnd, 0, 0)) {
+ while(!*b && GetMessage(&msg, doc_hwnd, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
@@ -1295,6 +1295,45 @@ static HRESULT WINAPI Moniker_BindToObject(IMoniker *iface, IBindCtx *pcb, IMoni
return E_NOTIMPL;
}
+static void test_binding_ui(IUnknown *unk)
+{
+ IWindowForBindingUI *binding_ui;
+ IServiceProvider *serv_prov;
+ HWND binding_hwnd;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IServiceProvider, (void**)&serv_prov);
+ ok(hres == S_OK, "Could not get IServiceProvider: %08x\n", hres);
+
+ hres = IServiceProvider_QueryService(serv_prov, &IID_IWindowForBindingUI, &IID_IWindowForBindingUI,
+ (void**)&binding_ui);
+ ok(hres == S_OK, "Could not get IWindowForBindingUI: %08x\n", hres);
+
+ hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IHttpSecurity, &binding_hwnd);
+ ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+ if(doc_hwnd)
+ ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+ else
+ todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+ hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IAuthenticate, &binding_hwnd);
+ ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+ if(doc_hwnd)
+ ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+ else
+ todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+ hres = IWindowForBindingUI_GetWindow(binding_ui, &IID_IWindowForBindingUI, &binding_hwnd);
+ ok(hres == S_OK, "GetWindow(IID_IHttpSecurity) failed: %08x\n", hres);
+ if(doc_hwnd)
+ ok(binding_hwnd == doc_hwnd, "binding_hwnd != doc_hwnd\n");
+ else
+ todo_wine ok(binding_hwnd != NULL, "binding_hwnd == NULL\n");
+
+ IWindowForBindingUI_Release(binding_ui);
+ IServiceProvider_Release(serv_prov);
+}
+
static void continue_binding(IBindStatusCallback *callback)
{
FORMATETC formatetc = {0xc02d, NULL, 1, -1, TYMED_ISTREAM};
@@ -1303,6 +1342,8 @@ static void continue_binding(IBindStatusCallback *callback)
static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
+ test_binding_ui((IUnknown*)callback);
+
if(report_mime) {
hres = IBindStatusCallback_OnProgress(callback, 0, 0, BINDSTATUS_MIMETYPEAVAILABLE,
wszTextHtml);
@@ -2162,6 +2203,7 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
ok(hres == S_OK, "Could not get IOleInPlaceActiveObject: %08x\n", hres);
if(activeobj) {
+ HWND hwnd = (void*)0xdeadbeef;
hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
ok(hres == E_FAIL, "GetWindow returned %08x, expected E_FAIL\n", hres);
ok(hwnd == NULL, "hwnd=%p, expected NULL\n", hwnd);
@@ -2201,11 +2243,11 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
CHECK_CALLED(ShowUI);
if(activeobj) {
- hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
+ hres = IOleInPlaceActiveObject_GetWindow(activeobj, &doc_hwnd);
ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
- ok(hwnd != NULL, "hwnd == NULL\n");
+ ok(doc_hwnd != NULL, "hwnd == NULL\n");
if(last_hwnd)
- ok(hwnd == last_hwnd, "hwnd != last_hwnd\n");
+ ok(doc_hwnd == last_hwnd, "hwnd != last_hwnd\n");
}
hres = IOleDocumentView_UIActivate(view, TRUE);
@@ -2214,7 +2256,7 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
if(activeobj) {
hres = IOleInPlaceActiveObject_GetWindow(activeobj, &tmp_hwnd);
ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
- ok(tmp_hwnd == hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, hwnd);
+ ok(tmp_hwnd == doc_hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, doc_hwnd);
}
}
@@ -2253,11 +2295,11 @@ static HRESULT WINAPI DocumentSite_ActivateMe(IOleDocumentSite *iface, IOleDocum
CHECK_CALLED(Exec_SETPROGRESSPOS);
if(activeobj) {
- hres = IOleInPlaceActiveObject_GetWindow(activeobj, &hwnd);
+ hres = IOleInPlaceActiveObject_GetWindow(activeobj, &doc_hwnd);
ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
- ok(hwnd != NULL, "hwnd == NULL\n");
+ ok(doc_hwnd != NULL, "doc_hwnd == NULL\n");
if(last_hwnd)
- ok(hwnd == last_hwnd, "hwnd != last_hwnd\n");
+ ok(doc_hwnd == last_hwnd, "doc_hwnd != last_hwnd\n");
}
}
@@ -6154,7 +6196,7 @@ static void test_Activate(IHTMLDocument2 *doc, DWORD flags)
GUID guid;
HRESULT hres;
- last_hwnd = hwnd;
+ last_hwnd = doc_hwnd;
if(view)
IOleDocumentView_Release(view);
@@ -6219,10 +6261,10 @@ static void test_Window(IHTMLDocument2 *doc, BOOL expect_success)
if(expect_success) {
ok(hres == S_OK, "GetWindow failed: %08x\n", hres);
- ok(tmp_hwnd == hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, hwnd);
+ ok(tmp_hwnd == doc_hwnd, "tmp_hwnd=%p, expected %p\n", tmp_hwnd, doc_hwnd);
}else {
ok(hres == E_FAIL, "GetWindow returned %08x, expected E_FAIL\n", hres);
- ok(IsWindow(hwnd), "hwnd is destroyed\n");
+ ok(IsWindow(doc_hwnd), "hwnd is destroyed\n");
}
IOleInPlaceActiveObject_Release(activeobject);
@@ -6574,7 +6616,7 @@ static void test_QueryInterface(IHTMLDocument2 *doc)
static void init_test(enum load_state_t ls) {
doc_unk = NULL;
- hwnd = last_hwnd = NULL;
+ doc_hwnd = last_hwnd = NULL;
set_clientsite = FALSE;
load_from_stream = FALSE;
call_UIActivate = CallUIActivate_None;
@@ -6686,9 +6728,9 @@ static void test_HTMLDocument(BOOL do_load, BOOL mime)
IOleDocumentView_Release(view);
view = NULL;
- ok(IsWindow(hwnd), "hwnd is destroyed\n");
+ ok(IsWindow(doc_hwnd), "hwnd is destroyed\n");
release_document(doc);
- ok(!IsWindow(hwnd), "hwnd is not destroyed\n");
+ ok(!IsWindow(doc_hwnd), "hwnd is not destroyed\n");
}
static void test_HTMLDocument_hlink(DWORD status)
@@ -6820,6 +6862,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
test_GetCurMoniker((IUnknown*)doc, http_mon, NULL);
test_travellog(doc);
+ test_binding_ui((IUnknown*)doc);
nav_url = nav_serv_url = "http://www.winehq.org/"; /* for valid prev nav_url */
if(support_wbapp) {