32#include "ieautomation.h"
34#define DEFINE_EXPECT(func) \
35 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
37#define SET_EXPECT(func) \
38 expect_ ## func = TRUE
40#define CHECK_EXPECT2(func) \
42 ok(expect_ ##func, "unexpected call " #func "\n"); \
43 called_ ## func = TRUE; \
46#define CHECK_EXPECT(func) \
48 CHECK_EXPECT2(func); \
49 expect_ ## func = FALSE; \
52#define CHECK_CALLED(func) \
54 ok(called_ ## func, "expected " #func "\n"); \
55 expect_ ## func = called_ ## func = FALSE; \
76 hres = IDispatch_QueryInterface(webbrowser, &IID_IServiceProvider, (
void**)&
sp);
77 ok(
hres ==
S_OK,
"QueryInterface(IServiceProvider) failed: %08lx\n",
hres);
79 hres = IServiceProvider_QueryService(
sp, &SID_SHTMLWindow, &IID_IHTMLWindow2, (
void**)&
window);
80 ok(
hres ==
S_OK,
"Could not get SHTMLWindow service: %08lx\n",
hres);
82 IServiceProvider_Release(
sp);
84 hres = IHTMLWindow2_QueryInterface(
window, &IID_IHTMLPrivateWindow, (
void**)&priv_window);
87 hres = IHTMLWindow2_get_document(
window, &doc);
89 ok(doc !=
NULL,
"doc = NULL\n");
90 IHTMLWindow2_Release(
window);
92 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
95 IHTMLDocument2_Release(doc);
100 IHTMLWindow2_Release(
window);
110#define test_url(a) _test_url(__LINE__,a)
115 if(called_Invoke_NAVIGATEERROR) {
148 ok(0,
"unexpected call\n");
155 ok(0,
"unexpected call\n");
162 ok(0,
"unexpected call\n");
168 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
173 switch(dispIdMember) {
177 arg = pDispParams->rgvarg + 5;
186 arg = pDispParams->rgvarg;
191 arg = pDispParams->rgvarg + 1;
200 ok(!called_Invoke_NAVIGATECOMPLETE2,
"NAVIGATECOMPLETE2 called before NAVIGATEERROR\n");
202 arg = pDispParams->rgvarg;
206 arg = pDispParams->rgvarg + 3;
215 arg = pDispParams->rgvarg;
220 arg = pDispParams->rgvarg + 1;
253 ok(
hres ==
S_OK,
"QueryInterface(IID_IConnectionPointContainer) failed: %08lx\n",
hres);
257 hres = IConnectionPointContainer_FindConnectionPoint(
container, &DIID_DWebBrowserEvents2, &
point);
258 IConnectionPointContainer_Release(
container);
272 IConnectionPoint_Release(
point);
282 hres = IWebBrowser2_get_Visible(
wb, &
b);
284 ok(
b == VARIANT_FALSE,
"Visible = %x\n",
b);
286 hres = IWebBrowser2_put_Visible(
wb, VARIANT_TRUE);
290 hres = IWebBrowser2_get_Visible(
wb, &
b);
292 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
294 hres = IWebBrowser2_put_Visible(
wb, VARIANT_FALSE);
304 hres = IWebBrowser2_QueryInterface(
wb, &IID_IServiceProvider, (
void**)&
sp);
305 ok(
hres ==
S_OK,
"Could not get IServiceProvider iface: %08lx\n",
hres);
307 hres = IServiceProvider_QueryService(
sp, &SID_SHTMLWindow, &IID_IHTMLWindow2, (
void**)&html_window);
308 IServiceProvider_Release(
sp);
309 ok(
hres ==
S_OK,
"Could not get SHTMLWindow service: %08lx\n",
hres);
311 IHTMLWindow2_Release(html_window);
332 win_skip(
"Navigation timed out, skipping tests...\n");
333 called_Invoke_BEFORENAVIGATE2 =
TRUE;
334 called_Invoke_NAVIGATECOMPLETE2 =
TRUE;
335 called_Invoke_DOCUMENTCOMPLETE =
TRUE;
336 if(expect_Invoke_NAVIGATEERROR)
359 hres = IWebBrowser2_Navigate2(
wb, &urlv, &emptyv, &emptyv, &emptyv, &emptyv);
385 hres = IWebBrowser2_get_Busy(
wb, &
b);
387 ok(
b == VARIANT_FALSE,
"Busy = %x\n",
b);
399 ok(
hres ==
S_OK,
"Could not create InternetExplorer instance: %08lx\n",
hres);
404 hres = IUnknown_QueryInterface(unk, &IID_IWebBrowser2, (
void**)&
wb);
405 ok(
hres ==
S_OK,
"Could not get IWebBrowser2 interface: %08lx\n",
hres);
407 IUnknown_Release(unk);
425 IWebBrowser2_Release(
wb);
426 ref = IUnknown_Release(unk);
427 ok(!
ref,
"object not destroyed, ref=%lu\n",
ref);
437 &IID_IInternetExplorerManager, (
void**)&unk);
442 win_skip(
"InternetExplorerManager not available\n");
446 ref = IUnknown_Release(unk);
447 ok(!
ref,
"object not destroyed, ref=%lu\n",
ref);
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
#define DISPID_BEFORENAVIGATE2
#define DISPID_NAVIGATECOMPLETE2
#define DISPID_NAVIGATEERROR
#define DISPID_DOCUMENTCOMPLETE
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
#define location(file, line)
static void test_InternetExplorerManager(void)
static void test_navigate(IWebBrowser2 *wb, const WCHAR *url, DWORD timeout)
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static void CALLBACK navigate_timeout(HWND hwnd, UINT msg, UINT_PTR timer, DWORD time)
static ULONG WINAPI Dispatch_Release(IDispatch *iface)
static BOOL navigate_complete
static const WCHAR * navigate_url
#define CHECK_EXPECT(func)
#define DEFINE_EXPECT(func)
static void _test_url(unsigned line, const WCHAR *url)
static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static void advise_cp(IUnknown *unk, BOOL init)
static void test_window(IWebBrowser2 *wb)
static BOOL navigation_timed_out
static HRESULT WINAPI Dispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static void test_html_window(IWebBrowser2 *wb)
static ULONG WINAPI Dispatch_AddRef(IDispatch *iface)
#define CHECK_CALLED(func)
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static IDispatchVtbl DispatchVtbl
static BSTR get_window_url(IDispatch *webbrowser)
static void test_busy(IWebBrowser2 *wb)
static void test_InternetExplorer(void)
static void test_visible(IWebBrowser2 *wb)
static IHTMLWindow2 * window
static VARIANTARG static DISPID
interface IHTMLWindow2 IHTMLWindow2
unsigned __int3264 UINT_PTR
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IConnectionPointContainer
#define IsEqualGUID(rguid1, rguid2)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
int WINAPI GetClassNameA(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPSTR lpClassName, _In_ int nMaxCount)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
#define REGDB_E_CLASSNOTREG
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH * Dispatch