40#include "shdeprecated.h"
45#include "docobjectservice.h"
47DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
48DEFINE_GUID(
outer_test_iid,0x06d4cd6c,0x18dd,0x11ea,0x8e,0x76,0xfc,0xaa,0x14,0x72,0x2d,0xac);
50DEFINE_GUID(
IID_IProxyManager,0x00000008,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
52#define DEFINE_EXPECT(func) \
53 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
55#define SET_EXPECT(func) \
56 do { called_ ## func = FALSE; expect_ ## func = TRUE; } while(0)
58#define CHECK_EXPECT2(func) \
60 ok(expect_ ##func, "unexpected call " #func "\n"); \
61 called_ ## func = TRUE; \
64#define CHECK_EXPECT(func) \
66 CHECK_EXPECT2(func); \
67 expect_ ## func = FALSE; \
70#define CHECK_CALLED(func) \
72 ok(called_ ## func, "expected " #func "\n"); \
73 expect_ ## func = called_ ## func = FALSE; \
76#define CHECK_NOT_CALLED(func) \
78 ok(!called_ ## func, "unexpected " #func "\n"); \
79 expect_ ## func = called_ ## func = FALSE; \
82#define CLEAR_CALLED(func) \
83 expect_ ## func = called_ ## func = FALSE
165static IWebBrowser2 *
wb;
187#define DWL_EXPECT_BEFORE_NAVIGATE 0x01
188#define DWL_FROM_PUT_HREF 0x02
189#define DWL_FROM_GOBACK 0x04
190#define DWL_FROM_GOFORWARD 0x08
192#define DWL_REFRESH 0x20
193#define DWL_BACK_ENABLE 0x40
214 if (pGetThreadUILanguage)
216 if (pGetUserDefaultUILanguage)
230 IUnknown_Release(
unk1);
231 IUnknown_QueryInterface(iface2, &
IID_IUnknown, (
void**)&unk2);
232 IUnknown_Release(unk2);
237#define create_webbrowser() _create_webbrowser(__LINE__)
246 &IID_IWebBrowser2, (
void**)&
ret);
251#define test_LocationURL(a,b) _test_LocationURL(__LINE__,a,b)
257 hres = IWebBrowser2_get_LocationURL(
wb, &
url);
266#define test_LocationName(a,b) _test_LocationName(__LINE__,a,b)
272 hres = IWebBrowser2_get_LocationName(
wb, &
name);
279#define test_ready_state(a,b) _test_ready_state(__LINE__,a,b)
288 ok_(__FILE__,
line)(
state == exstate,
"ReadyState = %d, expected %d\n",
state, exstate);
290 hres = IWebBrowser2_get_Busy(
wb, &busy);
293 ok_(__FILE__,
line)(busy == expect_busy,
"Busy = %x, expected %x for ready state %d\n",
294 busy, expect_busy,
state);
301#define get_document(u) _get_document(__LINE__,u)
309 hres = IWebBrowser2_get_Document(
wb, &disp);
311 ok_(__FILE__,
line)(disp !=
NULL,
"doc_disp == NULL\n");
313 hres = IDispatch_QueryInterface(disp, &IID_IHTMLDocument2, (
void**)&
html_doc);
316 IDispatch_Release(disp);
321#define get_dochost(u) _get_dochost(__LINE__,u)
331 IHTMLDocument2_Release(doc);
335 IOleObject_Release(oleobj);
346 ok(0,
"unexpected call\n");
361 ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
363 ok(!pguidCmdGroup,
"pguidCmdGroup != MULL\n");
364 ok(cCmds == 1,
"cCmds=%ld, expected 1\n", cCmds);
365 ok(!pCmdText,
"pCmdText != NULL\n");
367 switch(prgCmds[0].cmdID) {
370 prgCmds[0].cmdf = OLECMDF_SUPPORTED;
372 case OLECMDID_SETPROGRESSTEXT:
374 prgCmds[0].cmdf = OLECMDF_ENABLED;
386 ok(0,
"unexpected command %ld\n", prgCmds[0].cmdID);
397 case OLECMDID_SETPROGRESSMAX:
399 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER,
"nCmdexecopts=%08lx\n", nCmdexecopt);
400 ok(pvaIn !=
NULL,
"pvaIn == NULL\n");
402 ok(
V_VT(pvaIn) ==
VT_I4,
"V_VT(pvaIn)=%d, expected VT_I4\n",
V_VT(pvaIn));
403 ok(pvaOut ==
NULL,
"pvaOut=%p, expected NULL\n", pvaOut);
405 case OLECMDID_SETPROGRESSPOS:
407 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER,
"nCmdexecopts=%08lx\n", nCmdexecopt);
408 ok(pvaIn !=
NULL,
"pvaIn == NULL\n");
410 ok(
V_VT(pvaIn) ==
VT_I4,
"V_VT(pvaIn)=%d, expected VT_I4\n",
V_VT(pvaIn));
411 ok(pvaOut ==
NULL,
"pvaOut=%p, expected NULL\n", pvaOut);
413 case OLECMDID_SETDOWNLOADSTATE:
415 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER || !nCmdexecopt,
416 "nCmdexecopts=%08lx\n", nCmdexecopt);
418 ok(!nCmdexecopt,
"nCmdexecopts=%08lx\n", nCmdexecopt);
419 ok(pvaOut ==
NULL,
"pvaOut=%p\n", pvaOut);
420 ok(pvaIn !=
NULL,
"pvaIn == NULL\n");
422 switch(
V_I4(pvaIn)) {
430 ok(0,
"unexpected V_I4(pvaIn)=%ld\n",
V_I4(pvaIn));
433 case OLECMDID_UPDATECOMMANDS:
435 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER,
"nCmdexecopts=%08lx\n", nCmdexecopt);
436 ok(!pvaIn,
"pvaIn != NULL\n");
437 ok(!pvaOut,
"pvaOut=%p, expected NULL\n", pvaOut);
439 case OLECMDID_SETTITLE:
453 return OLECMDERR_E_NOTSUPPORTED;
454 case OLECMDID_UPDATETRAVELENTRY_DATARECOVERY:
455 case OLECMDID_PAGEAVAILABLE:
460 ok(0,
"unexpected nCmdID %ld\n", nCmdID);
462 }
else if(
IsEqualGUID(&CGID_Explorer, pguidCmdGroup)) {
478 ok(0,
"unexpected nCmdID %ld\n", nCmdID);
480 }
else if(
IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
500 ok(0,
"unexpected nCmdID %ld\n", nCmdID);
502 }
else if(
IsEqualGUID(&CGID_DocHostCmdPriv, pguidCmdGroup)) {
507 ok(0,
"unexpected nCmdID %ld of CGID_DocHostCmdPriv\n", nCmdID);
509 }
else if(
IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup)) {
517 ok(0,
"unexpected nCmdID %ld of CGID_DocHostCommandHandler\n", nCmdID);
551 ok(0,
"unexpected call\n");
566 LPOLESTR pszDisplayName,
ULONG *pchEaten,
IMoniker **ppmkOut)
568 ok(0,
"unexpected call\n");
575 ok(0,
"unexpected call\n");
581 ok(0,
"unexpected call\n");
613 ok(0,
"unexpected call\n");
620 ok(0,
"unexpected call\n");
627 ok(0,
"unexpected call\n");
633 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
636 ok(pDispParams !=
NULL,
"pDispParams == NULL\n");
637 ok(pExcepInfo ==
NULL,
"pExcepInfo=%p, expected NULL\n", pExcepInfo);
640 ok(pDispParams->rgvarg ==
NULL,
"pDispParams->rgvarg = %p\n", pDispParams->rgvarg);
641 ok(pDispParams->rgdispidNamedArgs ==
NULL,
642 "pDispParams->rgdispidNamedArgs = %p\n", pDispParams->rgdispidNamedArgs);
643 ok(pDispParams->cArgs == 0,
"pDispParams->cArgs = %d\n", pDispParams->cArgs);
644 ok(pDispParams->cNamedArgs == 0,
"pDispParams->cNamedArgs = %d\n", pDispParams->cNamedArgs);
646 switch(dispIdMember) {
652 ok(puArgErr !=
NULL,
"puArgErr=%p\n", puArgErr);
656 ok(puArgErr !=
NULL,
"puArgErr=%p\n", puArgErr);
660 ok(puArgErr !=
NULL,
"puArgErr=%p\n", puArgErr);
664 ok(puArgErr ==
NULL,
"puArgErr=%p\n", puArgErr);
666 V_BOOL(pVarResult) = VARIANT_FALSE;
670 ok(puArgErr ==
NULL,
"puArgErr=%p\n", puArgErr);
672 V_BOOL(pVarResult) = VARIANT_FALSE;
676 ok(0,
"unexpected dispIdMember %ld\n", dispIdMember);
705#define test_invoke_bool(p,s) _test_invoke_bool(__LINE__,p,s)
775 "V_VT(V_VARIANTREF(post_data))=%d, expected VT_VARIANT|VT_BYREF\n",
778 "V_VARIANTREF(V_VARIANTREF(post_data)) == NULL\n");
781 "V_VT(V_VARIANTREF(V_VARIANTREF(post_data))) = %d, expected VT_EMPTY\n",
787 ok(
sa->cDims == 1,
"sa->cDims = %d, expected 1\n",
sa->cDims);
788 ok(
sa->fFeatures == 0,
"sa->fFeatures = %d, expected 0\n",
sa->fFeatures);
800 ok(!
str || !
lstrcmpW(
str,
L"Referer: http://test.winehq.org/tests/hello.html\r\n"),
806 ok(
V_BOOLREF(cancel) !=
NULL,
"V_BOOLREF(pDispParams->rgvarg[0] == NULL)\n");
808 ok(*
V_BOOLREF(cancel) == VARIANT_FALSE,
"*V_BOOLREF(cancel) = %x, expected VARIANT_FALSE\n",
818 ok(dp->rgvarg !=
NULL,
"rgvarg == NULL\n");
819 ok(dp->cArgs == 2,
"cArgs=%d, expected 2\n", dp->cArgs);
842 ok(dp->rgvarg !=
NULL,
"rgvarg == NULL\n");
843 ok(dp->cArgs == 2,
"cArgs=%d, expected 2\n", dp->cArgs);
859 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
862 ok(pDispParams !=
NULL,
"pDispParams == NULL\n");
863 ok(pExcepInfo ==
NULL,
"pExcepInfo=%p, expected NULL\n", pExcepInfo);
864 ok(pVarResult ==
NULL,
"pVarResult=%p\n", pVarResult);
866 ok(pDispParams->rgdispidNamedArgs ==
NULL,
867 "pDispParams->rgdispidNamedArgs = %p\n", pDispParams->rgdispidNamedArgs);
868 ok(pDispParams->cNamedArgs == 0,
"pDispParams->cNamedArgs = %d\n", pDispParams->cNamedArgs);
870 switch(dispIdMember) {
874 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
875 ok(pDispParams->cArgs == 1,
"cArgs=%d, expected 1\n", pDispParams->cArgs);
876 ok(
V_VT(pDispParams->rgvarg) ==
VT_BSTR,
"V_VT(pDispParams->rgvarg)=%d, expected VT_BSTR\n",
877 V_VT(pDispParams->rgvarg));
878 ok(
V_BSTR(pDispParams->rgvarg) !=
NULL,
"V_BSTR(pDispParams->rgvarg) is NULL\n");
885 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
886 ok(pDispParams->cArgs == 1,
"cArgs=%d, expected 1\n", pDispParams->cArgs);
893 ok(pDispParams->rgvarg ==
NULL,
"rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
894 ok(pDispParams->cArgs == 0,
"cArgs=%d, expected 0\n", pDispParams->cArgs);
904 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
905 ok(pDispParams->cArgs == 7,
"cArgs=%d, expected 7\n", pDispParams->cArgs);
907 pDispParams->rgvarg+3, pDispParams->rgvarg+2, pDispParams->rgvarg+1,
908 pDispParams->rgvarg);
918 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
919 ok(pDispParams->cArgs == 1,
"cArgs=%d, expected 1\n", pDispParams->cArgs);
926 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
927 ok(pDispParams->cArgs == 2,
"cArgs=%d, expected 2\n", pDispParams->cArgs);
932 ok(pDispParams->rgvarg !=
NULL,
"rgvarg == NULL\n");
933 ok(pDispParams->cArgs == 2,
"cArgs=%d, expected 2\n", pDispParams->cArgs);
935 ok(
V_VT(pDispParams->rgvarg) ==
VT_BOOL,
"V_VT(pDispParams->rgvarg) = %d\n",
V_VT(pDispParams->rgvarg));
936 ok(
V_VT(pDispParams->rgvarg+1) ==
VT_I4,
"V_VT(pDispParams->rgvarg+1) = %d\n",
V_VT(pDispParams->rgvarg+1));
937 ok(
V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEFORWARD ||
938 V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEBACK ||
939 V_I4(pDispParams->rgvarg+1) == CSC_UPDATECOMMANDS,
940 "V_I4(pDispParams->rgvarg+1) = %lx\n",
V_I4(pDispParams->rgvarg+1));
942 if (
V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEFORWARD)
945 if(
V_BOOL(pDispParams->rgvarg))
946 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
948 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
951 else if (
V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEBACK)
954 if(
V_BOOL(pDispParams->rgvarg))
960 else if (
V_I4(pDispParams->rgvarg+1) == CSC_UPDATECOMMANDS)
970 ok(pDispParams->rgvarg ==
NULL,
"rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
971 ok(pDispParams->cArgs == 0,
"cArgs=%d, expected 0\n", pDispParams->cArgs);
1030 VARIANT *is_child = pDispParams->rgvarg+1, *cancel = pDispParams->rgvarg;
1034 ok(pDispParams->cArgs == 2,
"pdp->cArgs = %d\n", pDispParams->cArgs);
1036 ok(!
V_BOOL(is_child),
"V_BOOL(is_child) = %x\n",
V_BOOL(is_child));
1055 ok(0,
"unexpected dispIdMember %ld\n", dispIdMember);
1090 ok(0,
"unexpected call\n");
1097 ok(0,
"unexpected call\n");
1105 ok(ppContainer !=
NULL,
"ppContainer == NULL\n");
1120 ok(0,
"unexpected call\n");
1126 ok(0,
"unexpected call\n");
1163 ok(0,
"unexpected call\n");
1170 ok(0,
"unexpected call\n");
1177 ok(0,
"unexpected call\n");
1183 POINTF *pPtfContainer,
1186 ok(0,
"unexpected call\n");
1208 ok(0,
"unexpected call\n");
1230 ok(0,
"unexpected call\n");
1246 ok(0,
"unexpected call\n");
1253 ok(phwnd !=
NULL,
"phwnd == NULL\n");
1261 ok(0,
"unexpected call\n");
1267 ok(0,
"unexpected call\n");
1272 LPCBORDERWIDTHS pborderwidths)
1274 ok(0,
"unexpected call\n");
1279 LPCBORDERWIDTHS pborderwidths)
1281 ok(0,
"unexpected call\n");
1290 ok(pActiveObject !=
NULL,
"pActiveObject = NULL\n");
1291 ok(!
lstrcmpW(pszObjName,
L"item"),
"unexpected pszObjName\n");
1293 ok(!pActiveObject,
"pActiveObject != NULL\n");
1294 ok(!pszObjName,
"pszObjName != NULL\n");
1304 ok(pActiveObject !=
NULL,
"pActiveObject = NULL\n");
1305 ok(!
lstrcmpW(pszObjName,
L"item"),
"unexpected pszObjName\n");
1307 ok(!pActiveObject,
"pActiveObject != NULL\n");
1308 ok(!pszObjName,
"pszObjName != NULL\n");
1314 LPOLEMENUGROUPWIDTHS lpMenuWidths)
1316 ok(0,
"unexpected call\n");
1321 HOLEMENU holemenu,
HWND hwndActiveObject)
1324 ok(hmenuShared ==
NULL,
"hmenuShared=%p\n", hmenuShared);
1325 ok(holemenu ==
NULL,
"holemenu=%p\n", holemenu);
1333 ok(0,
"unexpected call\n");
1355 ok(0,
"unexpected call\n");
1411 ok(phwnd !=
NULL,
"phwnd == NULL\n");
1419 ok(0,
"unexpected call\n");
1443 LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
1445 static const RECT pos_rect = {2,1,1002,901};
1446 static const RECT clip_rect = {10,10,990,890};
1450 ok(ppFrame !=
NULL,
"ppFrame = NULL\n");
1454 ok(ppDoc !=
NULL,
"ppDoc = NULL\n");
1458 ok(lprcPosRect !=
NULL,
"lprcPosRect = NULL\n");
1460 memcpy(lprcPosRect, &pos_rect,
sizeof(
RECT));
1462 ok(lprcClipRect !=
NULL,
"lprcClipRect = NULL\n");
1464 memcpy(lprcClipRect, &clip_rect,
sizeof(
RECT));
1466 ok(lpFrameInfo !=
NULL,
"lpFrameInfo = NULL\n");
1468 ok(lpFrameInfo->cb ==
sizeof(*lpFrameInfo),
"lpFrameInfo->cb = %u, expected %u\n", lpFrameInfo->cb, (
unsigned)
sizeof(*lpFrameInfo));
1469 lpFrameInfo->fMDIApp =
FALSE;
1471 lpFrameInfo->haccel =
NULL;
1472 lpFrameInfo->cAccelEntries = 0;
1480 ok(0,
"unexpected call\n");
1487 ok(!fUndoable,
"fUndoable should be FALSE\n");
1499 ok(0,
"unexpected call\n");
1505 ok(0,
"unexpected call\n");
1511 ok(0,
"unexpected call\n");
1518 ok(0,
"unexpected call\n");
1525 ok(0,
"unexpected call\n");
1576 ok(0,
"unexpected call %ld %p %p %p\n", dwID, ppt, pcmdtReserved, pdicpReserved);
1583 ok(pInfo !=
NULL,
"pInfo=NULL\n");
1585 ok(pInfo->cbSize ==
sizeof(DOCHOSTUIINFO) ||
broken(!pInfo->cbSize),
"pInfo->cbSize=%lu\n", pInfo->cbSize);
1586 ok(!pInfo->dwFlags,
"pInfo->dwFlags=%08lx, expected 0\n", pInfo->dwFlags);
1587 ok(!pInfo->dwDoubleClick,
"pInfo->dwDoubleClick=%08lx, expected 0\n", pInfo->dwDoubleClick);
1588 ok(!pInfo->pchHostCss,
"pInfo->pchHostCss=%p, expected NULL\n", pInfo->pchHostCss);
1589 ok(!pInfo->pchHostNS,
"pInfo->pchhostNS=%p, expected NULL\n", pInfo->pchHostNS);
1626 ok(0,
"unexpected call\n");
1632 ok(0,
"unexpected call\n");
1639 ok(0,
"unexpected call\n");
1644 const GUID *pguidCmdGroup,
DWORD nCmdID)
1647 ok(pguidCmdGroup !=
NULL,
"Got NULL pguidCmdGroup.\n");
1649 ok(
IsEqualGUID(pguidCmdGroup, &CGID_MSHTML),
"Unexpected pguidCmdGroup\n");
1650 ok(lpMsg !=
NULL,
"Got NULL lpMsg.\n");
1658 ok(pchKey !=
NULL,
"pchKey==NULL\n");
1660 ok(*pchKey ==
NULL,
"*pchKey=%p\n", *pchKey);
1690 ok(0,
"unexpected call\n");
1698 ok(pchKey !=
NULL,
"pchKey==NULL\n");
1700 ok(*pchKey ==
NULL,
"*pchKey=%p\n", *pchKey);
1753 if (
IsEqualGUID(&SID_STopLevelBrowser, guidService))
1754 trace(
"Service SID_STopLevelBrowser\n");
1755 else if (
IsEqualGUID(&SID_SEditCommandTarget, guidService))
1756 trace(
"Service SID_SEditCommandTarget\n");
1757 else if (
IsEqualGUID(&IID_ITargetFrame2, guidService))
1758 trace(
"Service IID_ITargetFrame2\n");
1759 else if (
IsEqualGUID(&SID_SInternetSecurityManager, guidService))
1760 trace(
"Service SID_SInternetSecurityManager\n");
1761 else if (
IsEqualGUID(&SID_SOleUndoManager, guidService))
1762 trace(
"Service SID_SOleUndoManager\n");
1763 else if (
IsEqualGUID(&SID_IMimeInfo, guidService))
1764 trace(
"Service SID_IMimeInfo\n");
1765 else if (
IsEqualGUID(&SID_STopWindow, guidService))
1766 trace(
"Service SID_STopWindow\n");
1816 trace(
"interface IID_IDocHostShowUI\n");
1820 trace(
"interface IID_IOleCommandTarget\n");
1845 L"WebBrowserContainer",
1862 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
1906 IOleObject_Release(oleobj);
1916 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
1924 IOleObject_Release(oleobj);
1934 ok(
hres ==
S_OK,
"QueryInterface(IID_OleInPlaceObject) failed: %08lx\n",
hres);
1936 hres = IOleInPlaceObject_GetWindow(inplace, &
hwnd);
1939 IOleInPlaceObject_Release(inplace);
1948 for(
i=0;
i<10;
i++) {
1950 hres = IOleObject_GetMiscStatus(oleobj,
i, &st);
1954 "st=%08lx, expected OLEMISC_SETCLIENTSITEFIRST|OLEMISC_ACTIVATEWHENVISIBLE|"
1955 "OLEMISC_INSIDEOUT|OLEMISC_CANTLINKINSIDE|OLEMISC_RECOMPOSEONRESIZE)\n", st);
1963 hres = IOleObject_SetHostNames(oleobj,
L"test app", (
void*)0xdeadbeef);
1971 DWORD session_count;
1976 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
1984 ok(
hres ==
S_OK,
"QueryInterface(IID_OleInPlaceObject) failed: %08lx\n",
hres);
1986 IOleObject_Release(oleobj);
1990 hres = IOleInPlaceObject_GetWindow(inplace, &
hwnd);
1999 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2001 }
else if(stop_download) {
2007 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2008 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2012 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
2019 hres = IOleObject_SetClientSite(oleobj,
client);
2024 ok(
count >= session_count + 1,
"count = %lu expected %lu\n",
count, session_count + 1);
2030 }
else if(stop_download) {
2036 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2037 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2048 hres = IOleInPlaceObject_GetWindow(inplace, &
hwnd);
2056 IOleInPlaceObject_Release(inplace);
2057 IOleObject_Release(oleobj);
2071 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
2078 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2083 IOleObject_Release(oleobj);
2090 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IOleCommandTarget, (
void**)&olecmd);
2091 ok(
hres ==
S_OK,
"QueryInterface(IOleCommandTarget) failed: %08lx\n",
hres);
2092 IOleClientSite_Release(doc_clientsite);
2095 ok(
hres ==
S_OK,
"QueryInterface(OleInPlaceObject) failed: %08lx\n",
hres);
2096 hres = IOleInPlaceObject_GetWindow(inplace, &
hwnd);
2099 IOleInPlaceObject_Release(inplace);
2101 if(old_use_container_olecmd) {
2104 hres = IOleCommandTarget_Exec(olecmd,
NULL, OLECMDID_UPDATECOMMANDS,
2105 OLECMDEXECOPT_DONTPROMPTUSER,
NULL,
NULL);
2106 ok(
hres ==
S_OK,
"Exec(OLECMDID_UPDATECOMMAND) failed: %08lx\n",
hres);
2112 IOleCommandTarget_Release(olecmd);
2118 TYPEATTR *type_attr;
2124 ok(
hres ==
S_OK,
"QueryInterface(IID_IProvideClassInfo) failed: %08lx\n",
hres);
2128 hres = IProvideClassInfo2_GetGUID(
class_info, GUIDKIND_DEFAULT_SOURCE_DISP_IID, &
guid);
2140 hres = IProvideClassInfo2_GetGUID(
class_info, GUIDKIND_DEFAULT_SOURCE_DISP_IID,
NULL);
2157 ITypeInfo_ReleaseTypeAttr(
typeinfo, type_attr);
2163#define expect_oleverb(a,b) _expect_oleverb(__LINE__,a,b)
2166 ok_(__FILE__,
line)(verb->lVerb == exverb,
"verb->lVerb = %ld, expected %ld\n", verb->lVerb, exverb);
2167 ok_(__FILE__,
line)(!verb->lpszVerbName,
"verb->lpszVerbName = %s\n",
wine_dbgstr_w(verb->lpszVerbName));
2168 ok_(__FILE__,
line)(!verb->fuFlags,
"verb->fuFlags = %lx\n", verb->fuFlags);
2169 ok_(__FILE__,
line)(!verb->grfAttribs,
"verb->grfAttribs = %lx\n", verb->grfAttribs);
2172#define test_next_oleverb(a,b) _test_next_oleverb(__LINE__,a,b)
2175 ULONG fetched = 0xdeadbeef;
2179 fetched = 0xdeadbeef;
2180 memset(&verb, 0xa,
sizeof(verb));
2181 hres = IEnumOLEVERB_Next(enum_verbs, 1, &verb, &fetched);
2183 ok_(__FILE__,
line)(!fetched,
"fetched = %ld\n", fetched);
2196 ok(
hres ==
S_OK,
"QueryInterface(IID_IOleObject) failed: %08lx\n",
hres);
2198 hres = IOleObject_EnumVerbs(oleobj, &enum_verbs);
2199 IOleObject_Release(oleobj);
2201 ok(enum_verbs !=
NULL,
"enum_verbs == NULL\n");
2203 fetched = 0xdeadbeef;
2205 verbs[1].lVerb = 0xdeadbeef;
2208 ok(!fetched,
"fetched = %ld\n", fetched);
2212 ok(
verbs[1].lVerb == 0xdeadbeef,
"verbs[1].lVerb = %lx\n",
verbs[1].lVerb);
2220 fetched = 0xdeadbeef;
2222 verbs[0].lVerb = 0xdeadbeef;
2225 todo_wine ok(fetched == 1,
"fetched = %ld\n", fetched);
2230 ok(!fetched,
"fetched = %ld\n", fetched);
2232 hres = IEnumOLEVERB_Reset(enum_verbs);
2235 fetched = 0xdeadbeef;
2236 hres = IEnumOLEVERB_Next(enum_verbs, 1,
verbs, &fetched);
2238 ok(!fetched,
"fetched = %ld\n", fetched);
2243 hres = IEnumOLEVERB_Skip(enum_verbs, 20);
2246 fetched = 0xdeadbeef;
2247 hres = IEnumOLEVERB_Next(enum_verbs, 1,
verbs, &fetched);
2249 ok(!fetched,
"fetched = %ld\n", fetched);
2253 IEnumOLEVERB_Release(enum_verbs);
2263 ok(
hr ==
S_OK,
"QueryInterface(IID_IPersist) failed: %08lx\n",
hr);
2265 hr = IPersist_GetClassID(persist, &
guid);
2266 ok(
hr ==
S_OK,
"GetClassID failed: %08lx\n",
hr);
2272 IPersist_Release(persist);
2282 ok(
hr ==
S_OK,
"QueryInterface(IID_IOleObject) failed: %08lx\n",
hr);
2284 hr = IOleObject_GetUserClassID(oleobj, &
clsid);
2285 ok(
hr ==
S_OK,
"GetUserClassID failed: %08lx\n",
hr);
2291 IOleObject_Release(oleobj);
2312 hres = IWebBrowser2_get_MenuBar(
wb, &
b);
2314 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2317 hres = IWebBrowser2_put_MenuBar(
wb, (
exvb = VARIANT_FALSE));
2321 hres = IWebBrowser2_get_MenuBar(
wb, &
b);
2323 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2326 hres = IWebBrowser2_put_MenuBar(
wb, (
exvb = 100));
2330 hres = IWebBrowser2_get_MenuBar(
wb, &
b);
2332 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2336 hres = IWebBrowser2_get_AddressBar(
wb, &
b);
2338 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2341 hres = IWebBrowser2_put_AddressBar(
wb, (
exvb = VARIANT_FALSE));
2345 hres = IWebBrowser2_get_AddressBar(
wb, &
b);
2347 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2350 hres = IWebBrowser2_put_AddressBar(
wb, (
exvb = 100));
2354 hres = IWebBrowser2_get_AddressBar(
wb, &
b);
2356 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2359 hres = IWebBrowser2_put_AddressBar(
wb, (
exvb = VARIANT_TRUE));
2365 hres = IWebBrowser2_get_StatusBar(
wb, &
b);
2367 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2370 hres = IWebBrowser2_put_StatusBar(
wb, (
exvb = VARIANT_TRUE));
2374 hres = IWebBrowser2_get_StatusBar(
wb, &
b);
2376 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2379 hres = IWebBrowser2_put_StatusBar(
wb, (
exvb = VARIANT_FALSE));
2383 hres = IWebBrowser2_get_StatusBar(
wb, &
b);
2385 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2388 hres = IWebBrowser2_put_StatusBar(
wb, (
exvb = 100));
2392 hres = IWebBrowser2_get_StatusBar(
wb, &
b);
2394 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2398 hres = IWebBrowser2_get_ToolBar(
wb, &
i);
2403 hres = IWebBrowser2_put_ToolBar(
wb, (
exvb = VARIANT_FALSE));
2407 hres = IWebBrowser2_get_ToolBar(
wb, &
i);
2409 ok(
i == VARIANT_FALSE,
"b=%x\n",
i);
2412 hres = IWebBrowser2_put_ToolBar(
wb, (
exvb = 100));
2416 hres = IWebBrowser2_get_ToolBar(
wb, &
i);
2421 hres = IWebBrowser2_put_ToolBar(
wb, (
exvb = VARIANT_TRUE));
2427 hres = IWebBrowser2_get_FullScreen(
wb, &
b);
2429 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2432 hres = IWebBrowser2_put_FullScreen(
wb, (
exvb = VARIANT_TRUE));
2436 hres = IWebBrowser2_get_FullScreen(
wb, &
b);
2438 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2441 hres = IWebBrowser2_put_FullScreen(
wb, (
exvb = 100));
2445 hres = IWebBrowser2_get_FullScreen(
wb, &
b);
2447 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2450 hres = IWebBrowser2_put_FullScreen(
wb, (
exvb = VARIANT_FALSE));
2456 hres = IWebBrowser2_get_TheaterMode(
wb, &
b);
2458 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2461 hres = IWebBrowser2_put_TheaterMode(
wb, (
exvb = VARIANT_TRUE));
2465 hres = IWebBrowser2_get_TheaterMode(
wb, &
b);
2467 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2470 hres = IWebBrowser2_put_TheaterMode(
wb, (
exvb = 100));
2474 hres = IWebBrowser2_get_TheaterMode(
wb, &
b);
2476 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2479 hres = IWebBrowser2_put_TheaterMode(
wb, (
exvb = VARIANT_FALSE));
2486 hres = IWebBrowser2_get_Resizable(
wb, &
b);
2488 ok(
b == 0x100,
"b=%x\n",
b);
2491 hres = IWebBrowser2_put_Resizable(
wb, (
exvb = VARIANT_TRUE));
2496 hres = IWebBrowser2_put_Resizable(
wb, (
exvb = VARIANT_FALSE));
2500 hres = IWebBrowser2_get_Resizable(
wb, &
b);
2502 ok(
b == 0x100,
"b=%x\n",
b);
2507 hres = IWebBrowser2_get_Application(
wb, &disp);
2509 ok(disp == (
void*)
wb,
"disp=%p, expected %p\n", disp,
wb);
2511 IDispatch_Release(disp);
2513 hres = IWebBrowser2_get_Application(
wb,
NULL);
2517 hres = IWebBrowser2_get_Name(
wb, &sName);
2518 ok(
hres ==
S_OK,
"getName failed: %08lx, expected S_OK\n",
hres);
2520 ok(!
lstrcmpW(sName,
L"Microsoft Web Browser Control"),
"got '%s', expected 'Microsoft Web Browser Control'\n",
wine_dbgstr_w(sName));
2522 ok(sName!=
NULL,
"get_Name return a NULL string.\n");
2526 hres = IWebBrowser2_get_RegisterAsDropTarget(
wb,
NULL);
2531 hres = IWebBrowser2_Quit(
wb);
2541 hres = IWebBrowser2_get_Silent(
wb, &
b);
2543 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2545 hres = IWebBrowser2_put_Silent(
wb, VARIANT_TRUE);
2549 hres = IWebBrowser2_get_Silent(
wb, &
b);
2551 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2553 hres = IWebBrowser2_put_Silent(
wb, 100);
2557 hres = IWebBrowser2_get_Silent(
wb, &
b);
2559 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2561 hres = IWebBrowser2_put_Silent(
wb, VARIANT_FALSE);
2565 hres = IWebBrowser2_get_Silent(
wb, &
b);
2567 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2570 hres = IWebBrowser2_put_Silent(
wb, VARIANT_TRUE);
2577 ok(
hres ==
S_OK,
"OnAmbientPropertyChange failed %08lx\n",
hres);
2583 hres = IWebBrowser2_get_Silent(
wb, &
b);
2585 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2594 hres = IWebBrowser2_get_Offline(
wb, &
b);
2596 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2598 hres = IWebBrowser2_put_Offline(
wb, VARIANT_TRUE);
2602 hres = IWebBrowser2_get_Offline(
wb, &
b);
2604 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2606 hres = IWebBrowser2_put_Offline(
wb, 100);
2610 hres = IWebBrowser2_get_Offline(
wb, &
b);
2612 ok(
b == VARIANT_TRUE,
"b=%x\n",
b);
2614 hres = IWebBrowser2_put_Offline(
wb, VARIANT_FALSE);
2618 hres = IWebBrowser2_get_Offline(
wb, &
b);
2620 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2623 hres = IWebBrowser2_put_Offline(
wb, VARIANT_TRUE);
2626 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2630 ok(
hres ==
S_OK,
"OnAmbientPropertyChange failed %08lx\n",
hres);
2636 hres = IWebBrowser2_get_Offline(
wb, &
b);
2638 ok(
b == VARIANT_FALSE,
"b=%x\n",
b);
2645 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2652 hres = IOleControl_OnAmbientPropertyChange(
control, DISPID_UNKNOWN);
2653 ok(
hres ==
S_OK,
"OnAmbientPropertyChange failed %08lx\n",
hres);
2676 ok(
hres ==
S_OK,
"Could not get IOleControl interface: %08lx\n",
hres);
2718 if (dpi_x != 96 || dpi_y != 96)
2719 trace(
"dpi: %ld / %ld\n", dpi_y, dpi_y);
2727 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &
size);
2737 hres = IOleObject_SetExtent(oleobj, DVASPECT_CONTENT, &
size);
2741 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &
size);
2746 hres = IOleObject_GetExtent(oleobj, 0, &
size);
2752 hres = IOleObject_SetExtent(oleobj, 0, &
size);
2756 hres = IOleObject_GetExtent(oleobj, 0, &
size);
2761 hres = IOleObject_GetExtent(oleobj, 0xdeadbeef, &
size);
2767 hres = IOleObject_SetExtent(oleobj, 0xdeadbeef, &
size);
2771 hres = IOleObject_GetExtent(oleobj, 0xdeadbeef, &
size);
2776 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &
size);
2780 IOleObject_Release(oleobj);
2792 ok(
hres ==
S_OK,
"QueryInterface(IID_IConnectionPointContainer) failed: %08lx\n",
hres);
2796 hres = IConnectionPointContainer_FindConnectionPoint(
container, &DIID_DWebBrowserEvents2, &
point);
2797 IConnectionPointContainer_Release(
container);
2805 ok(
dw == 1,
"dw=%ld, expected 1\n",
dw);
2811 IConnectionPoint_Release(
point);
2816 const WCHAR *
title =
L"WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X";
2858 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2859 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2862 if (is_file)
SET_EXPECT(Invoke_PROGRESSCHANGE);
2893 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2894 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2909 OLECMDF success_flags;
2917 success_flags = OLECMDF_SUPPORTED;
2919 success_flags = OLECMDF_ENABLED;
2923 success_state =
S_OK;
2934 hres = IWebBrowser2_QueryStatusWB(webbrowser, OLECMDID_STOP, &
status);
2935 ok(
hres == success_state,
"QueryStatusWB failed: %08lx %08lx\n",
hres, success_state);
2937 ok((has_document &&
status == success_flags) || (!has_document &&
status == 0xdeadbeef),
2938 "OLECMDID_STOP not enabled/supported: %08x %08x\n",
status, success_flags);
2942 ok(
hres == success_state,
"QueryStatusWB failed: %08lx %08lx\n",
hres, success_state);
2943 ok((has_document &&
status == 0) || (!has_document &&
status == 0xdeadbeef),
2944 "IDM_STOP is enabled/supported: %08x %d\n",
status, has_document);
2954 olecmdid_state =
S_OK;
2955 idm_state = OLECMDERR_E_NOTSUPPORTED;
2970 }
else if(has_document) {
2974 hres = IWebBrowser2_ExecWB(webbrowser, OLECMDID_STOP, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0);
2976 todo_wine ok(
hres == olecmdid_state,
"ExecWB failed: %08lx %08lx\n",
hres, olecmdid_state);
2980 ok(
hres == olecmdid_state,
"ExecWB failed: %08lx %08lx\n",
hres, olecmdid_state);
2984 hres = IWebBrowser2_ExecWB(webbrowser,
IDM_STOP, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0);
2985 ok(
hres == idm_state,
"ExecWB failed: %08lx %08lx\n",
hres, idm_state);
2990 BOOL *
b = &called_Invoke_DOCUMENTCOMPLETE;
2996 b = &called_Invoke_DOWNLOADCOMPLETE;
3028 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3030 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3032 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3034 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3039 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3068 trace(
"Downloading...\n");
3102 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3104 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3107 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3109 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3111 CLEAR_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3158 trace(
"Refresh...\n");
3167 V_I4(&
v) = REFRESH_NORMAL;
3169 hres = IWebBrowser2_Refresh2(webbrowser, &
v);
3172 hres = IWebBrowser2_Refresh(webbrowser);
3188 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleCommandTarget, (
void**)&cmdtrg);
3189 ok(
hres ==
S_OK,
"Could not get IOleCommandTarget iface: %08lx\n",
hres);
3193 cmds[0].cmdID = OLECMDID_SPELL;
3194 cmds[0].cmdf = 0xdeadbeef;
3195 cmds[1].cmdID = OLECMDID_REFRESH;
3196 cmds[1].cmdf = 0xdeadbeef;
3201 ok(
cmds[1].
cmdf == (OLECMDF_ENABLED|OLECMDF_SUPPORTED),
3202 "OLECMDID_REFRESH cmdf = %lx\n",
cmds[1].
cmdf);
3204 ok(
hres == 0x80040104,
"QueryStatus failed: %08lx\n",
hres);
3209 IOleCommandTarget_Release(cmdtrg);
3218 hres = IWebBrowser2_QueryInterface(unk, &IID_IServiceProvider, (
void**)&servprov);
3219 ok(
hres ==
S_OK,
"QueryInterface returned %08lx, expected S_OK\n",
hres);
3223 hres = IServiceProvider_QueryService(servprov, &SID_STopLevelBrowser, &IID_IBrowserService2, (
LPVOID*)&iface);
3224 ok(
hres ==
E_FAIL,
"QueryService returned %08lx, expected E_FAIL\n",
hres);
3225 ok(!iface,
"QueryService returned %p, expected NULL\n", iface);
3227 IUnknown_Release(iface);
3229 hres = IServiceProvider_QueryService(servprov, &SID_SHTMLWindow, &IID_IHTMLWindow2, (
LPVOID*)&iface);
3230 ok(
hres ==
S_OK,
"QueryService returned %08lx, expected S_OK\n",
hres);
3231 ok(iface !=
NULL,
"QueryService returned NULL\n");
3233 IUnknown_Release(iface);
3235 IServiceProvider_Release(servprov);
3241 IHTMLDocument2 *doc;
3251 IHTMLDocument2_Release(doc);
3279static void test_go_back(IWebBrowser2 *
wb,
const WCHAR *back_url,
int back_enable,
int forward_enable,
int forward_todo)
3288 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3290 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3293 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3295 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3299 hres = IWebBrowser2_GoBack(
wb);
3306 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3308 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3313 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3315 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3331 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3333 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3336 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3338 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3340 hres = IWebBrowser2_GoForward(
wb);
3345 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3347 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3350 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3352 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3365 IMarshal *marshal = (
void*)0xdeadbeef;
3369 hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (
void**)&qa);
3371 ok(qa ==
NULL,
"qa=%p, expected NULL\n", qa);
3379 ok(propbrowse ==
NULL,
"propbrowse=%p, expected NULL\n", propbrowse);
3387 ok(inplace ==
NULL,
"inplace=%p, expected NULL\n", inplace);
3393 hres = IUnknown_QueryInterface(unk, &IID_IViewObjectEx, (
void**)&viewex);
3395 ok(viewex ==
NULL,
"viewex=%p, expected NULL\n", viewex);
3401 hres = IUnknown_QueryInterface(unk, &IID_IMarshal, (
void**)&marshal);
3403 ok(marshal ==
NULL,
"marshal=%p, expected NULL\n", marshal);
3410 IHTMLDocument2 *doc;
3415 hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleDocumentView, (
void**)&docview);
3425 hres = IOleDocumentView_UIActivate(docview, activate);
3438 IOleDocumentView_Release(docview);
3441 IHTMLDocument2_Release(doc);
3453 hres = IOleClientSite_QueryInterface(
client, &IID_IDocHostUIHandler2, (
void**)&dochost);
3454 ok(
hres ==
S_OK,
"Could not get IDocHostUIHandler2 iface: %08lx\n",
hres);
3455 IOleClientSite_Release(
client);
3459 disp = (
void*)0xdeadbeef;
3460 hres = IDocHostUIHandler2_GetExternal(dochost, &disp);
3464 ok(!disp,
"disp = %p\n", disp);
3466 IShellUIHelper *uihelper;
3469 ok(disp !=
NULL,
"disp == NULL\n");
3471 hres = IDispatch_QueryInterface(disp, &IID_IShellUIHelper, (
void**)&uihelper);
3472 ok(
hres ==
S_OK,
"Could not get IShellUIHelper iface: %08lx\n",
hres);
3473 IShellUIHelper_Release(uihelper);
3474 IDispatch_Release(disp);
3477 IDocHostUIHandler2_Release(dochost);
3483 IHTMLDocument2 *doc;
3488 hres = IHTMLDocument2_get_parentWindow(doc, &
window);
3490 IHTMLDocument2_Release(doc);
3499 IHTMLWindow2_Release(
window);
3522 msg_a.wParam =
VK_F1;
3523 hres = IOleInPlaceActiveObject_TranslateAccelerator(pao, &msg_a);
3524 ok(
hres ==
S_FALSE,
"Got 0x%08lx (%04x::%02Ix)\n",
hres, msg_a.message, msg_a.wParam);
3528 msg_a.wParam =
VK_F5;
3529 hres = IOleInPlaceActiveObject_TranslateAccelerator(pao, &msg_a);
3530 ok(
hres ==
S_FALSE,
"Got 0x%08lx (%04x::%02Ix)\n",
hres, msg_a.message, msg_a.wParam);
3532 IOleInPlaceActiveObject_Release(pao);
3543 msg_a.wParam =
VK_F1;
3546 hres = IOleInPlaceActiveObject_TranslateAccelerator(pao, &msg_a);
3547 ok(
hres ==
S_FALSE,
"Got 0x%08lx (%04x::%02Ix)\n",
hres, msg_a.message, msg_a.wParam);
3553 msg_a.wParam =
VK_F5;
3555 hres = IOleInPlaceActiveObject_TranslateAccelerator(pao, &msg_a);
3559 IOleInPlaceActiveObject_Release(pao);
3563 if(doc_clientsite) {
3572 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostShowUI, (
void**)&unk_test);
3576 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostUIHandler, (
void**)&unk_test);
3580 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostUIHandler2, (
void**)&dochost);
3585 for(keycode = 0; keycode <= 0x100; keycode++) {
3586 msg_a.wParam = keycode;
3588 hres = IDocHostUIHandler2_TranslateAccelerator(dochost, &msg_a, &CGID_MSHTML, 1234);
3589 ok(
hres == 0xdeadbeef,
"Got 0x%08lx\n",
hres);
3595 hres = IDocHostUIHandler2_TranslateAccelerator(dochost, &msg_a, &CGID_MSHTML, 1234);
3599 IDocHostUIHandler2_Release(dochost);
3607 for(keycode = 0; keycode < 0x100; keycode++) {
3608 msg_a.wParam = keycode;
3610 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3611 if(keycode == 0x9 || keycode == 0x75)
3620 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3626 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3627 ok(
hres ==
S_OK,
"Got 0x%08lx (keycode: %04lx)\n",
hres, keycode);
3632 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3636 IOleControlSite_Release(doc_controlsite);
3639 IOleClientSite_Release(doc_clientsite);
3653 hres = IOleClientSite_QueryInterface(
client_site, &IID_IServiceProvider, (
void**)&serv_prov);
3655 ok(
hres ==
S_OK,
"Could not get IServiceProvider iface: %08lx\n",
hres);
3657 hres = IServiceProvider_QueryService(serv_prov, &IID_IHlinkFrame, &IID_IHlinkFrame, (
void**)&service);
3660 IUnknown_Release(service);
3662 hres = IServiceProvider_QueryService(serv_prov, &IID_IWebBrowserApp, &IID_IHlinkFrame, (
void**)&service);
3665 IUnknown_Release(service);
3667 hres = IServiceProvider_QueryService(serv_prov, &IID_ITargetFrame, &IID_ITargetFrame, (
void**)&service);
3670 IUnknown_Release(service);
3672 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IShellBrowser, (
void**)&service);
3674 IUnknown_Release(service);
3676 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IBrowserService, (
void**)&service);
3678 IUnknown_Release(service);
3680 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IDocObjectService, (
void**)&service);
3682 IUnknown_Release(service);
3684 IServiceProvider_Release(serv_prov);
3707 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3708 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3712 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3720 hres = IOleObject_Close(oo, OLECLOSE_NOSAVE);
3729 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3730 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3743 hres = IOleObject_GetClientSite(oo, &ocs);
3745 ok(!ocs,
"ocs != NULL\n");
3749 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
3759 hres = IOleObject_GetClientSite(oo, &ocs);
3763 IOleClientSite_Release(ocs);
3766 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3767 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3769 hres = IOleObject_Close(oo, OLECLOSE_NOSAVE);
3777 IOleObject_Release(oo);
3788 ok(
hres ==
S_OK,
"QueryInterface(IID_IOleObject) failed: %08lx\n",
hres);
3790 hres = IOleObject_Unadvise(oleobj, 0);
3793 data = (
void *)0xdeadbeef;
3794 hres = IOleObject_EnumAdvise(oleobj, &
data);
3825 IOleObject_Release(oleobj);
3828#define TEST_DOWNLOAD 0x0001
3829#define TEST_NOOLECMD 0x0002
3830#define TEST_NODOCHOST 0x0004
3845 IWebBrowser2 *webbrowser;
3857 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
3883 IHTMLDocument2 *doc, *doc2;
3892 ok(doc == doc2,
"doc != doc2\n");
3893 IHTMLDocument2_Release(doc2);
3895 trace(
"Navigate2 repeated...\n");
3899 ok(doc == doc2,
"doc != doc2\n");
3900 IHTMLDocument2_Release(doc2);
3901 IHTMLDocument2_Release(doc);
3904 trace(
"Navigate2 http URL...\n");
3906 test_Navigate2(webbrowser,
L"http://test.winehq.org/tests/hello.html");
3914 trace(
"put_href http URL...\n");
3915 test_put_href(webbrowser,
L"http://test.winehq.org/tests/winehq_snapshot/");
3918 trace(
"GoBack...\n");
3920 test_go_back(webbrowser,
L"http://test.winehq.org/tests/hello.html", 0, 0, 1);
3924 trace(
"GoForward...\n");
3925 test_go_forward(webbrowser,
L"http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
3928 trace(
"GoBack...\n");
3930 test_go_back(webbrowser,
L"http://test.winehq.org/tests/hello.html", 0, -1, 0);
3934 trace(
"GoForward...\n");
3935 test_go_forward(webbrowser,
L"http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
3938 trace(
"Navigate2 repeated with the same URL...\n");
3969 IOleObject_Release(oleobj);
3971 ref = IWebBrowser2_Release(webbrowser);
3983 &IID_IWebBrowser2, (
void**)&
wb);
3984 ok(
hres ==
S_OK,
"Could not get WebBrowserV1 instance: %08lx\n",
hres);
3990 ok(
hres ==
S_OK,
"QueryInterface(IID_OleObject) failed: %08lx\n",
hres);
4008 IOleObject_Release(oleobj);
4010 ref = IWebBrowser2_Release(
wb);
4011 ok(
ref == 0,
"ref=%ld, expected 0\n",
ref);
4016 IWebBrowser2 *webbrowser;
4036 ref = IWebBrowser2_Release(webbrowser);
4037 ok(
ref == 0,
"ref=%ld, expected 0\n",
ref);
4042 IWebBrowser2 *webbrowser;
4082 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4084 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4113 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4115 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4135 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4137 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4166 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4168 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4187 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4189 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4218 hres = IWebBrowser2_get_Visible(webbrowser, &
b);
4220 ok(
b == VARIANT_TRUE,
"Visible = %x\n",
b);
4226 ref = IWebBrowser2_Release(webbrowser);
4227 ok(
ref == 0,
"ref=%ld, expected 0\n",
ref);
4249 return ie_harden != 0;
4254 IWebBrowser2 *webbrowser;
4273 ok(0,
"CreateFile failed\n");
4287 ref = IWebBrowser2_Release(webbrowser);
4288 ok(
ref == 0,
"ref=%lu, expected 0\n",
ref);
4320 trace(
"OnDataChange(%p, %p, %p)\n", iface,
format, medium);
4325 trace(
"OnViewChange(%p, %08lx, %ld)\n", iface, aspect,
index);
4335 trace(
"OnSave(%p)\n", iface);
4340 trace(
"OnClose(%p)\n", iface);
4361 IWebBrowser2 *browser;
4375 aspects =
flags = 0xdeadbeef;
4379 ok(!aspects,
"got %08lx\n", aspects);
4380 ok(!
flags,
"got %08lx\n", aspects);
4386 aspects =
flags = 0xdeadbeef;
4390 ok(aspects == DVASPECT_CONTENT,
"got %08lx\n", aspects);
4391 ok(!
flags,
"got %08lx\n", aspects);
4394 hr = IWebBrowser2_QueryInterface(browser, &
IID_IOleObject, (
void **)&oleobj);
4399 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
4413 hr = IOleObject_SetClientSite(oleobj,
NULL);
4416 aspects =
flags = 0xdeadbeef;
4422 hr = IViewObject2_SetAdvise(
view, 0, 0,
NULL);
4425 doc = (
void*)0xdeadbeef;
4426 hr = IWebBrowser2_get_Document(browser, &doc);
4428 ok(!doc,
"doc = %p\n", doc);
4430 IOleObject_Release(oleobj);
4431 IViewObject2_Release(
view);
4432 IWebBrowser2_Release(browser);
4437 LONG count, init_count, inc_count, dec_count;
4440 trace(
"init_count %ld\n", init_count);
4443 ok(inc_count > init_count,
"count = %ld\n", inc_count);
4449 ok(dec_count < inc_count,
"count = %ld\n", dec_count);
4488 IWebBrowser *web_browser =
NULL;
4492 ok(
hr ==
S_OK,
"CoGetClassObject failed: %08lx\n",
hr);
4495 ok(
hr ==
S_OK,
"CreateInstance returned hr = %08lx\n",
hr);
4496 ok(unk !=
NULL,
"result NULL, hr = %08lx\n",
hr);
4498 hr = IUnknown_QueryInterface(unk, &IID_IWebBrowser, (
void**)&web_browser);
4499 ok(
hr ==
S_OK,
"QI to IWebBrowser failed, hr=%08lx\n",
hr);
4502 hr = IWebBrowser_QueryInterface(web_browser, &
outer_test_iid, (
void**)&unk2);
4504 ok(
hr ==
S_OK,
"Could not get test iface: %08lx\n",
hr);
4505 ok(unk2 == (
IUnknown*)0xdeadbeef,
"unexpected unk2\n");
4507 IWebBrowser_Release(web_browser);
4508 IUnknown_Release(unk);
4516 pSetQueryNetSessionCount = (
void*)
GetProcAddress(ieframe,
"SetQueryNetSessionCount");
4524 trace(
"Testing WebBrowser (no download)...\n");
4529 trace(
"Testing WebBrowser...\n");
4531 trace(
"Testing WebBrowser(no olecmd)...\n");
4534 win_skip(
"Skipping http tests in hardened mode\n");
4537 trace(
"Testing WebBrowser DoVerb\n");
4539 trace(
"Testing WebBrowser (with close)...\n");
4541 trace(
"Testing WebBrowser w/o container-based olecmd...\n");
4543 trace(
"Testing WebBrowserV1...\n");
4545 trace(
"Testing file protocol...\n");
4547 trace(
"Testing SetAdvise...\n");
static struct sockaddr_in sa
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
const IID GCC8DECLSPEC_SELECTANY IID_IProxyManager
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD clscontext, COSERVERINFO *server_info, REFIID riid, void **obj)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
static const WCHAR version[]
static HRESULT STDMETHODCALLTYPE Frame_GetWindow(IOleInPlaceFrame *iface, HWND *lphwnd)
static HRESULT STDMETHODCALLTYPE Frame_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
static const IDocHostUIHandlerVtbl DocHostUIHandlerVtbl
static HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, MSG *pMsg, DWORD grfModifiers)
static const IServiceProviderVtbl ServiceProviderVtbl
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
DWORD WINAPI GetLongPathNameW(IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
LANGID WINAPI GetUserDefaultLangID(void)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
static void test_Advise(void)
#define DISPID_ONSTATUSBAR
#define DISPID_ONADDRESSBAR
#define DISPID_WINDOWSETRESIZABLE
#define DISPID_SETSECURELOCKICON
#define DISPID_PRIVACYIMPACTEDSTATECHANGE
#define DISPID_ONFULLSCREEN
#define DISPID_BEFORENAVIGATE2
#define DISPID_NAVIGATECOMPLETE2
#define DISPID_FILEDOWNLOAD
#define DISPID_TITLECHANGE
#define DISPID_COMMANDSTATECHANGE
#define DISPID_DOWNLOADCOMPLETE
#define DISPID_PROGRESSCHANGE
#define DISPID_WINDOWCLOSING
#define DISPID_DOWNLOADBEGIN
#define DISPID_BEFORESCRIPTEXECUTE
#define DISPID_STATUSTEXTCHANGE
#define DISPID_DOCUMENTCOMPLETE
#define DISPID_SETPHISHINGFILTERSTATUS
#define DISPID_ONTHEATERMODE
#define DISPID_PROPERTYCHANGE
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLsizei GLenum GLboolean sink
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
#define DISPID_AMBIENT_SILENT
REFIID LPVOID DWORD_PTR dw
#define location(file, line)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define todo_wine_if(is_todo)
#define memcpy(s1, s2, n)
const IID IID_IObjectWithSite
static HRESULT WINAPI IOleControlSite_fnOnControlInfoChanged(IOleControlSite *This)
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static HRESULT WINAPI InPlaceFrame_InsertMenus(IOleInPlaceFrame *iface, HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths)
static void test_download(DWORD flags)
static void test_EnumVerbs(IWebBrowser2 *wb)
static IHTMLDocument2 * _get_document(unsigned line, IWebBrowser2 *wb)
static const IOleInPlaceFrameVtbl InPlaceFrameVtbl
static HRESULT WINAPI DocHostUIHandler_EnableModeless(IDocHostUIHandler2 *iface, BOOL fEnable)
static void test_IServiceProvider(IWebBrowser2 *unk)
#define CLEAR_CALLED(func)
static HRESULT WINAPI InPlaceUIWindow_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
static HRESULT hr_dochost_TranslateAccelerator
static HRESULT WINAPI DocHostUIHandler_ShowUI(IDocHostUIHandler2 *iface, DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc)
static ULONG WINAPI OleCommandTarget_AddRef(IOleCommandTarget *iface)
static HRESULT WINAPI DocHostUIHandler_HideUI(IDocHostUIHandler2 *iface)
static void test_WebBrowserV1(void)
static HRESULT WINAPI ClientSite_RequestNewObjectLayout(IOleClientSite *iface)
static HRESULT WINAPI InPlaceFrame_EnableModeless(IOleInPlaceFrame *iface, BOOL fEnable)
static HRESULT WINAPI DocHostUIHandler_ShowContextMenu(IDocHostUIHandler2 *iface, DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdicpReserved)
static HRESULT WINAPI InPlaceSite_OnPosRectChange(IOleInPlaceSiteEx *iface, LPCRECT lprcPosRect)
static void test_put_href(IWebBrowser2 *unk, const WCHAR *url)
static void test_ie_funcs(IWebBrowser2 *wb)
static HRESULT WINAPI InPlaceSite_OnUIActivate(IOleInPlaceSiteEx *iface)
static void test_GetMiscStatus(IOleObject *oleobj)
static HRESULT WINAPI IOleControlSite_fnQueryInterface(IOleControlSite *iface, REFIID riid, void **ppv)
static void test_olecmd(IWebBrowser2 *unk, BOOL loaded)
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
static HRESULT WINAPI DocHostUIHandler_UpdateUI(IDocHostUIHandler2 *iface)
static HRESULT WINAPI InPlaceUIWindow_QueryInterface(IOleInPlaceFrame *iface, REFIID riid, void **ppv)
static HRESULT WINAPI DocHostUIHandler_FilterDataObject(IDocHostUIHandler2 *iface, IDataObject *pDO, IDataObject **ppPORet)
static void test_UIActivate(IWebBrowser2 *unk, BOOL activate)
#define test_LocationName(a, b)
static IWebBrowser2 * _create_webbrowser(unsigned line)
static ULONG WINAPI DocHostUIHandler_Release(IDocHostUIHandler2 *iface)
static HRESULT WINAPI OleCommandTarget_QueryStatus(IOleCommandTarget *iface, const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static void WINAPI sink_OnClose(IAdviseSink *iface)
static IDispatchVtbl WebBrowserEvents2Vtbl
static void test_SetAdvise(void)
static IOleControlSite ControlSite
static IOleInPlaceFrame InPlaceFrame
static ULONG WINAPI outer_AddRef(IUnknown *iface)
static IOleClientSite ClientSite
static IOleControlSiteVtbl ControlSiteVtbl
static HRESULT WINAPI InPlaceFrame_GetWindow(IOleInPlaceFrame *iface, HWND *phwnd)
static HRESULT WINAPI ClientSite_ShowObject(IOleClientSite *iface)
static const IOleContainerVtbl OleContainerVtbl
static BOOL iface_cmp(IUnknown *iface1, IUnknown *iface2)
static ULONG WINAPI ClientSite_AddRef(IOleClientSite *iface)
static void _expect_oleverb(unsigned line, const OLEVERB *verb, LONG exverb)
static void WINAPI sink_OnDataChange(IAdviseSink *iface, FORMATETC *format, STGMEDIUM *medium)
static void _test_invoke_bool(unsigned line, const DISPPARAMS *params, BOOL strict)
#define test_LocationURL(a, b)
static void test_SetQueryNetSessionCount(void)
static void test_go_back(IWebBrowser2 *wb, const WCHAR *back_url, int back_enable, int forward_enable, int forward_todo)
static void test_Offline(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
static HWND shell_embedding_hwnd
static HRESULT WINAPI InPlaceSite_DeactivateAndUndo(IOleInPlaceSiteEx *iface)
static HRESULT WINAPI InPlaceSite_GetWindow(IOleInPlaceSiteEx *iface, HWND *phwnd)
static ULONG WINAPI Dispatch_Release(IDispatch *iface)
static LRESULT WINAPI wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static HRESULT WINAPI InPlaceSite_OnUIDeactivate(IOleInPlaceSiteEx *iface, BOOL fUndoable)
static HRESULT WINAPI DocHostUIHandler_ResizeBorder(IDocHostUIHandler2 *iface, LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow)
static IOleInPlaceSiteEx InPlaceSite
static IDispatch Dispatch
static HRESULT WINAPI IOleControlSite_fnShowPropertyFrame(IOleControlSite *This)
static void test_Persist(IWebBrowser2 *wb, int version)
static void _test_LocationName(unsigned line, IWebBrowser2 *wb, const WCHAR *exname)
#define DWL_FROM_PUT_HREF
static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static void test_go_forward(IWebBrowser2 *wb, const WCHAR *forward_url, int back_enable, int forward_enable)
static IServiceProvider ServiceProvider
#define CHECK_EXPECT(func)
static const IAdviseSinkVtbl sink_vtbl
static void test_navigatecomplete2(DISPPARAMS *dp)
static ULONG WINAPI InPlaceUIWindow_Release(IOleInPlaceFrame *iface)
static HRESULT WINAPI InPlaceUIWindow_GetWindow(IOleInPlaceFrame *iface, HWND *phwnd)
#define test_invoke_bool(p, s)
static BOOL is_downloading
#define DEFINE_EXPECT(func)
static ULONG WINAPI ClientSite_Release(IOleClientSite *iface)
static void test_change_ClientSite(IWebBrowser2 *unk)
static BOOL is_lang_english(void)
static HRESULT WINAPI DocHostUIHandler_TranslateAccelerator(IDocHostUIHandler2 *iface, LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID)
static HRESULT WINAPI DocHostUIHandler_GetExternal(IDocHostUIHandler2 *iface, IDispatch **ppDispatch)
static ULONG WINAPI OleContainer_Release(IOleContainer *iface)
#define test_ready_state(a, b)
static void test_SetHostNames(IOleObject *oleobj)
static BOOL use_container_olecmd
static HRESULT WINAPI InPlaceSite_RequestUIActivate(IOleInPlaceSiteEx *iface)
#define test_next_oleverb(a, b)
static void test_ConnectionPoint(IWebBrowser2 *unk, BOOL init)
static ULONG WINAPI DocHostUIHandler_AddRef(IDocHostUIHandler2 *iface)
static IOleContainer OleContainer
static HRESULT WINAPI InPlaceFrame_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
static HRESULT WINAPI IOleControlSite_fnTransformCoords(IOleControlSite *This, POINTL *pPtlHimetric, POINTF *pPtfContainer, DWORD dwFlags)
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 test_WebBrowser_slim_container(void)
static void test_dochost_qs(IWebBrowser2 *webbrowser)
static HRESULT hr_site_TranslateAccelerator
static BOOL use_container_dochostui
static ULONG WINAPI sink_AddRef(IAdviseSink *iface)
static HRESULT WINAPI DocHostUIHandler_TranslateUrl(IDocHostUIHandler2 *iface, DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut)
static void test_QueryStatusWB(IWebBrowser2 *webbrowser, BOOL has_document)
static HRESULT WINAPI InPlaceSite_ContextSensitiveHelp(IOleInPlaceSiteEx *iface, BOOL fEnterMode)
static HRESULT WINAPI OleCommandTarget_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppv)
static void test_ambient_unknown(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
static HRESULT WINAPI InPlaceSite_QueryInterface(IOleInPlaceSiteEx *iface, REFIID riid, void **ppv)
static HRESULT WINAPI IOleControlSite_fnTranslateAccelerator(IOleControlSite *This, MSG *pMsg, DWORD grfModifiers)
static IUnknownVtbl outer_vtbl
static void test_Close(IWebBrowser2 *wb, BOOL do_download)
#define create_webbrowser()
static HRESULT WINAPI outer_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static IOleClientSite ClientSite2
static HRESULT WINAPI InPlaceFrame_SetStatusText(IOleInPlaceFrame *iface, LPCOLESTR pszStatusText)
static BOOL is_first_load
#define CHECK_EXPECT2(func)
static HRESULT WINAPI InPlaceFrame_SetMenu(IOleInPlaceFrame *iface, HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject)
static HRESULT WINAPI ClientSite_SaveObject(IOleClientSite *iface)
static IOleInPlaceUIWindow InPlaceUIWindow
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivateEx(IOleInPlaceSiteEx *iface, BOOL fNoRedraw)
static HRESULT WINAPI Dispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static void test_FileProtocol(void)
static void test_external(IWebBrowser2 *unk)
static HRESULT WINAPI InPlaceUIWindow_RequestBorderSpace(IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
static HRESULT WINAPI IOleControlSite_fnOnFocus(IOleControlSite *This, BOOL fGotFocus)
static void test_TranslateAccelerator(IWebBrowser2 *unk)
static ULONG WINAPI Dispatch_AddRef(IDispatch *iface)
static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop_download)
static HRESULT WINAPI InPlaceUIWindow_ContextSensitiveHelp(IOleInPlaceFrame *iface, BOOL fEnterMode)
static HRESULT WINAPI InPlaceSite_OnInPlaceActivateEx(IOleInPlaceSiteEx *iface, BOOL *pNoRedraw, DWORD dwFlags)
static ULONG WINAPI OleCommandTarget_Release(IOleCommandTarget *iface)
static const IOleInPlaceFrameVtbl InPlaceUIWindowVtbl
static HWND container_hwnd
static void call_DoVerb(IWebBrowser2 *unk, LONG verb)
static HRESULT WINAPI DocHostUIHandler_OnFrameWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
static HRESULT WINAPI OleContainer_EnumObjects(IOleContainer *iface, DWORD grfFlags, IEnumUnknown **ppenum)
static void test_wb_funcs(IWebBrowser2 *wb, BOOL is_clientsite)
#define DWL_EXPECT_BEFORE_NAVIGATE
static HRESULT WINAPI InPlaceSite_OnInPlaceActivate(IOleInPlaceSiteEx *iface)
static void _test_ready_state(unsigned line, READYSTATE exstate, VARIANT_BOOL expect_busy)
static HRESULT WINAPI OleContainer_ParseDisplayName(IOleContainer *iface, IBindCtx *pbc, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
#define expect_oleverb(a, b)
static int set_update_commands_enable
static void _test_LocationURL(unsigned line, IWebBrowser2 *wb, const WCHAR *exurl)
static HRESULT WINAPI DocHostUIHandler_GetOptionKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
static HRESULT WINAPI InPlaceSite_GetWindowContext(IOleInPlaceSiteEx *iface, IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
static HRESULT WINAPI OleContainer_LockContainer(IOleContainer *iface, BOOL fLock)
static HRESULT WINAPI IOleControlSite_fnLockInPlaceActive(IOleControlSite *This, BOOL fLock)
#define CHECK_CALLED(func)
static HRESULT WINAPI InPlaceUIWindow_GetBorder(IOleInPlaceFrame *iface, LPRECT lprectBorder)
static void test_Navigate2(IWebBrowser2 *webbrowser, const WCHAR *nav_url)
static IOleCommandTarget OleCommandTarget
static ULONG WINAPI IOleControlSite_fnAddRef(IOleControlSite *iface)
static void WINAPI sink_OnSave(IAdviseSink *iface)
static HRESULT WINAPI InPlaceFrame_RemoveMenus(IOleInPlaceFrame *iface, HMENU hmenuShared)
static HRESULT WINAPI InPlaceSite_DiscardUndoState(IOleInPlaceSiteEx *iface)
static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
static HRESULT WINAPI OleContainer_QueryInterface(IOleContainer *iface, REFIID riid, void **ppv)
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
static HRESULT WINAPI InPlaceSite_Scroll(IOleInPlaceSiteEx *iface, SIZE scrollExtant)
static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
static ULONG WINAPI OleContainer_AddRef(IOleContainer *iface)
static void test_OnBeforeNavigate(const VARIANT *disp, const VARIANT *url, const VARIANT *flags, const VARIANT *frame, const VARIANT *post_data, const VARIANT *headers, const VARIANT *cancel)
static HRESULT WINAPI DocHostUIHandler_OnDocWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
static void test_DoVerb(IWebBrowser2 *unk)
static HRESULT WINAPI DocHostUIHandler_QueryInterface(IDocHostUIHandler2 *iface, REFIID riid, void **ppv)
static BOOL nav_forward_todo
static HRESULT WINAPI InPlaceFrame_TranslateAccelerator(IOleInPlaceFrame *iface, LPMSG lpmsg, WORD wID)
static HRESULT WINAPI DocHostUIHandler_GetHostInfo(IDocHostUIHandler2 *iface, DOCHOSTUIINFO *pInfo)
static HRESULT WINAPI ClientSite_QueryInterface(IOleClientSite *iface, REFIID riid, void **ppv)
static void test_documentcomplete(DISPPARAMS *dp)
static HRESULT WINAPI ClientSite_GetMoniker(IOleClientSite *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmon)
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivate(IOleInPlaceSiteEx *iface)
static HRESULT WINAPI sink_QueryInterface(IAdviseSink *iface, REFIID riid, void **obj)
static void test_htmlwindow_close(IWebBrowser2 *wb)
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static void test_com_aggregation(void)
static HWND create_container_window(void)
static void test_Extent(IWebBrowser2 *unk)
static const IOleInPlaceSiteExVtbl InPlaceSiteExVtbl
static HRESULT WINAPI ClientSite_OnShowWindow(IOleClientSite *iface, BOOL fShow)
static IDispatchVtbl DispatchVtbl
static HRESULT WINAPI DocHostUIHandler_GetDropTarget(IDocHostUIHandler2 *iface, IDropTarget *pDropTarget, IDropTarget **ppDropTarget)
static const IOleClientSiteVtbl ClientSiteVtbl
static void test_ClassInfo(IWebBrowser2 *unk)
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
static IAdviseSink test_sink
#define CHECK_NOT_CALLED(func)
static ULONG WINAPI InPlaceSite_Release(IOleInPlaceSiteEx *iface)
static void test_OleObject(IWebBrowser2 *wb, int version)
static HRESULT WINAPI IOleControlSite_fnGetExtendedControl(IOleControlSite *This, IDispatch **ppDisp)
static void WINAPI sink_OnRename(IAdviseSink *iface, IMoniker *moniker)
static void WINAPI sink_OnViewChange(IAdviseSink *iface, DWORD aspect, LONG index)
static HRESULT WINAPI ClientSite_GetContainer(IOleClientSite *iface, IOleContainer **ppContainer)
static int expect_update_commands_enable
static IOleClientSite * _get_dochost(unsigned line, IWebBrowser2 *unk)
static void test_Silent(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
static HRESULT WINAPI InPlaceSite_CanInPlaceActivate(IOleInPlaceSiteEx *iface)
static IOleCommandTargetVtbl OleCommandTargetVtbl
static IDispatch WebBrowserEvents2
static ULONG WINAPI InPlaceSite_AddRef(IOleInPlaceSiteEx *iface)
static void test_WebBrowser_DoVerb(void)
static void test_WebBrowser(DWORD flags, BOOL do_close)
static ULONG WINAPI InPlaceUIWindow_AddRef(IOleInPlaceFrame *iface)
static HRESULT WINAPI WebBrowserEvents2_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
static IDocHostUIHandler2 DocHostUIHandler
static BOOL is_ie_hardened(void)
static ULONG WINAPI IOleControlSite_fnRelease(IOleControlSite *iface)
static void test_Refresh(IWebBrowser2 *webbrowser, BOOL use_refresh2)
#define DWL_FROM_GOFORWARD
static void _test_next_oleverb(unsigned line, IEnumOLEVERB *enum_verbs, LONG exverb)
static ULONG WINAPI sink_Release(IAdviseSink *iface)
static HRESULT WINAPI InPlaceUIWindow_SetBorderSpace(IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
static void test_GetControlInfo(IWebBrowser2 *unk)
static const WCHAR * current_url
static void test_ExecWB(IWebBrowser2 *webbrowser, BOOL has_document)
static ULONG WINAPI outer_Release(IUnknown *iface)
static BOOL nav_back_todo
static const IID outer_test_iid
static HINSTANCE hkernel32
static IOleClientSite * client_site
static IHTMLWindow2 * window
static const char * nav_url
static IActiveScriptSite * site
IHTMLDocument2 * html_doc
static IRunnableObject * runnable
static IBackgroundCopyFile * test_file
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static VARIANTARG static DISPID
static const CHAR post_data[]
static WCHAR file_url[INTERNET_MAX_URL_LENGTH]
#define DISPID_AMBIENT_DLCONTROL
#define DISPID_AMBIENT_USERAGENT
interface IHTMLWindow2 IHTMLWindow2
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define OLEIVERB_UIACTIVATE
#define OLEIVERB_INPLACEACTIVATE
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYGET
#define DISPID_AMBIENT_USERMODE
#define DISPID_AMBIENT_PALETTE
const GUID IID_IOleInPlaceActiveObject
const GUID IID_IOleInPlaceSite
const GUID IID_IConnectionPointContainer
const GUID IID_IOleInPlaceFrame
const GUID IID_IAdviseSink
const GUID IID_IOleWindow
const GUID IID_IViewObject2
const GUID IID_IOleControlSite
const GUID IID_IRunnableObject
const GUID IID_IProvideClassInfo2
const GUID IID_IOleClientSite
const GUID IID_IOleInPlaceObject
const GUID IID_IOleObject
const GUID IID_IOleControl
const GUID IID_IPerPropertyBrowsing
#define WS_OVERLAPPEDWINDOW
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define DEFINE_OLEGUID(name, l, w1, w2)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
HDC WINAPI GetDC(_In_opt_ HWND)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
struct _WNDCLASSEXW WNDCLASSEXW
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
static void do_close(SOCKET)
static __inline const char * wine_dbgstr_guid(const GUID *id)
@ OLEMISC_ACTIVATEWHENVISIBLE
@ OLEMISC_SETCLIENTSITEFIRST
@ OLEMISC_RECOMPOSEONRESIZE
vector< Header * > headers
static void init_test(void)
TCHAR file_path[MAX_PATH]
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
DWORD WINAPI GetLastError(void)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
#define OLE_E_NOCONNECTION
#define ERROR_FILE_EXISTS
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define HKEY_CURRENT_USER
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH * Dispatch