static void test_QueryInterface(void) { IUnknown *xmlview, *unk; IHTMLDocument *htmldoc; HRESULT hres; hres = CoCreateInstance(&CLSID_XMLView, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, &IID_IUnknown, (void**)&xmlview); if(FAILED(hres)) { win_skip("Failed to create XMLView instance\n"); return; } ok(hres == S_OK, "CoCreateInstance returned %x, expected S_OK\n", hres); hres = IUnknown_QueryInterface(xmlview, &IID_IPersistMoniker, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IPersistMoniker) returned %x, expected S_OK\n", hres); IUnknown_Release(unk); hres = IUnknown_QueryInterface(xmlview, &IID_IPersistHistory, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IPersistHistory) returned %x, expected S_OK\n", hres); IUnknown_Release(unk); hres = IUnknown_QueryInterface(xmlview, &IID_IOleCommandTarget, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IOleCommandTarget) returned %x, expected S_OK\n", hres); IUnknown_Release(unk); hres = IUnknown_QueryInterface(xmlview, &IID_IOleObject, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IOleObject) returned %x, expected S_OK\n", hres); IUnknown_Release(unk); hres = IUnknown_QueryInterface(xmlview, &IID_IHTMLDocument, (void**)&htmldoc); ok(hres == S_OK, "QueryInterface(IID_IHTMLDocument) returned %x, expected S_OK\n", hres); hres = IHTMLDocument_QueryInterface(htmldoc, &IID_IUnknown, (void**)&unk); ok(hres == S_OK, "QueryInterface(IID_IUnknown) returned %x, expected S_OK\n", hres); ok(unk == xmlview, "Aggregation is not working as expected\n"); IUnknown_Release(unk); IHTMLDocument_Release(htmldoc); IUnknown_Release(xmlview); }
static ULONG WINAPI OleControl_Release(IOleControl *iface) { HTMLDocument *This = CONTROL_THIS(iface); return IHTMLDocument_Release(HTMLDOC(This)); }