ReactOS 0.4.17-dev-1071-gb2116d0
webbrowser.c File Reference
#include <wine/test.h>
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "initguid.h"
#include "ole2.h"
#include "exdisp.h"
#include "htiframe.h"
#include "htiface.h"
#include "mshtmhst.h"
#include "mshtmcid.h"
#include "mshtml.h"
#include "idispids.h"
#include "olectl.h"
#include "mshtmdid.h"
#include "shobjidl.h"
#include "shdeprecated.h"
#include "shlguid.h"
#include "exdispid.h"
#include "mimeinfo.h"
#include "hlink.h"
#include "docobjectservice.h"
Include dependency graph for webbrowser.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 
#define CONST_VTABLE
 
#define DEFINE_EXPECT(func)    static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
 
#define SET_EXPECT(func)    do { called_ ## func = FALSE; expect_ ## func = TRUE; } while(0)
 
#define CHECK_EXPECT2(func)
 
#define CHECK_EXPECT(func)
 
#define CHECK_CALLED(func)
 
#define CHECK_NOT_CALLED(func)
 
#define CLEAR_CALLED(func)    expect_ ## func = called_ ## func = FALSE
 
#define BUSY_FAIL   2
 
#define DWL_EXPECT_BEFORE_NAVIGATE   0x01
 
#define DWL_FROM_PUT_HREF   0x02
 
#define DWL_FROM_GOBACK   0x04
 
#define DWL_FROM_GOFORWARD   0x08
 
#define DWL_HTTP   0x10
 
#define DWL_REFRESH   0x20
 
#define DWL_BACK_ENABLE   0x40
 
#define create_webbrowser()   _create_webbrowser(__LINE__)
 
#define test_LocationURL(a, b)   _test_LocationURL(__LINE__,a,b)
 
#define test_LocationName(a, b)   _test_LocationName(__LINE__,a,b)
 
#define test_ready_state(a, b)   _test_ready_state(__LINE__,a,b)
 
#define get_document(u)   _get_document(__LINE__,u)
 
#define get_dochost(u)   _get_dochost(__LINE__,u)
 
#define test_invoke_bool(p, s)   _test_invoke_bool(__LINE__,p,s)
 
#define expect_oleverb(a, b)   _expect_oleverb(__LINE__,a,b)
 
#define test_next_oleverb(a, b)   _test_next_oleverb(__LINE__,a,b)
 
#define TEST_DOWNLOAD   0x0001
 
#define TEST_NOOLECMD   0x0002
 
#define TEST_NODOCHOST   0x0004
 

Enumerations

enum  SessionOp {
  SESSION_QUERY , SESSION_INCREMENT , SESSION_DECREMENT , SESSION_QUERY ,
  SESSION_INCREMENT , SESSION_DECREMENT
}
 

Functions

 DEFINE_GUID (GUID_NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
 
 DEFINE_GUID (outer_test_iid, 0x06d4cd6c, 0x18dd, 0x11ea, 0x8e, 0x76, 0xfc, 0xaa, 0x14, 0x72, 0x2d, 0xac)
 
 DEFINE_OLEGUID (CGID_DocHostCmdPriv, 0x000214D4L, 0, 0)
 
 DEFINE_GUID (IID_IProxyManager, 0x00000008, 0x0000, 0x0000, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46)
 
 DEFINE_EXPECT (GetContainer)
 
 DEFINE_EXPECT (Site_GetWindow)
 
 DEFINE_EXPECT (ShowObject)
 
 DEFINE_EXPECT (CanInPlaceActivate)
 
 DEFINE_EXPECT (OnInPlaceActivate)
 
 DEFINE_EXPECT (OnUIActivate)
 
 DEFINE_EXPECT (GetWindowContext)
 
 DEFINE_EXPECT (Frame_GetWindow)
 
 DEFINE_EXPECT (Frame_SetActiveObject)
 
 DEFINE_EXPECT (UIWindow_SetActiveObject)
 
 DEFINE_EXPECT (SetMenu)
 
 DEFINE_EXPECT (Invoke_AMBIENT_USERMODE)
 
 DEFINE_EXPECT (Invoke_AMBIENT_DLCONTROL)
 
 DEFINE_EXPECT (Invoke_AMBIENT_USERAGENT)
 
 DEFINE_EXPECT (Invoke_AMBIENT_PALETTE)
 
 DEFINE_EXPECT (Invoke_AMBIENT_SILENT)
 
 DEFINE_EXPECT (Invoke_AMBIENT_OFFLINEIFNOTCONNECTED)
 
 DEFINE_EXPECT (Invoke_STATUSTEXTCHANGE)
 
 DEFINE_EXPECT (Invoke_PROPERTYCHANGE)
 
 DEFINE_EXPECT (Invoke_DOWNLOADBEGIN)
 
 DEFINE_EXPECT (Invoke_BEFORENAVIGATE2)
 
 DEFINE_EXPECT (Invoke_SETSECURELOCKICON)
 
 DEFINE_EXPECT (Invoke_FILEDOWNLOAD)
 
 DEFINE_EXPECT (Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE)
 
 DEFINE_EXPECT (Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE)
 
 DEFINE_EXPECT (Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE)
 
 DEFINE_EXPECT (Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE)
 
 DEFINE_EXPECT (Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS)
 
 DEFINE_EXPECT (Invoke_DOWNLOADCOMPLETE)
 
 DEFINE_EXPECT (Invoke_ONMENUBAR)
 
 DEFINE_EXPECT (Invoke_ONADDRESSBAR)
 
 DEFINE_EXPECT (Invoke_ONSTATUSBAR)
 
 DEFINE_EXPECT (Invoke_ONTOOLBAR)
 
 DEFINE_EXPECT (Invoke_ONFULLSCREEN)
 
 DEFINE_EXPECT (Invoke_ONTHEATERMODE)
 
 DEFINE_EXPECT (Invoke_WINDOWSETRESIZABLE)
 
 DEFINE_EXPECT (Invoke_TITLECHANGE)
 
 DEFINE_EXPECT (Invoke_NAVIGATECOMPLETE2)
 
 DEFINE_EXPECT (Invoke_PROGRESSCHANGE)
 
 DEFINE_EXPECT (Invoke_DOCUMENTCOMPLETE)
 
 DEFINE_EXPECT (Invoke_WINDOWCLOSING)
 
 DEFINE_EXPECT (Invoke_SETPHISHINGFILTERSTATUS)
 
 DEFINE_EXPECT (EnableModeless_TRUE)
 
 DEFINE_EXPECT (EnableModeless_FALSE)
 
 DEFINE_EXPECT (GetHostInfo)
 
 DEFINE_EXPECT (GetOptionKeyPath)
 
 DEFINE_EXPECT (GetOverridesKeyPath)
 
 DEFINE_EXPECT (SetStatusText)
 
 DEFINE_EXPECT (UpdateUI)
 
 DEFINE_EXPECT (Exec_SETDOWNLOADSTATE_0)
 
 DEFINE_EXPECT (Exec_SETDOWNLOADSTATE_1)
 
 DEFINE_EXPECT (Exec_SETPROGRESSMAX)
 
 DEFINE_EXPECT (Exec_SETPROGRESSPOS)
 
 DEFINE_EXPECT (Exec_UPDATECOMMANDS)
 
 DEFINE_EXPECT (Exec_SETTITLE)
 
 DEFINE_EXPECT (QueryStatus_SETPROGRESSTEXT)
 
 DEFINE_EXPECT (Exec_STOP)
 
 DEFINE_EXPECT (Exec_IDM_STOP)
 
 DEFINE_EXPECT (Exec_DocHostCommandHandler_2300)
 
 DEFINE_EXPECT (QueryStatus_STOP)
 
 DEFINE_EXPECT (QueryStatus_IDM_STOP)
 
 DEFINE_EXPECT (DocHost_EnableModeless_TRUE)
 
 DEFINE_EXPECT (DocHost_EnableModeless_FALSE)
 
 DEFINE_EXPECT (DocHost_TranslateAccelerator)
 
 DEFINE_EXPECT (GetDropTarget)
 
 DEFINE_EXPECT (TranslateUrl)
 
 DEFINE_EXPECT (ShowUI)
 
 DEFINE_EXPECT (HideUI)
 
 DEFINE_EXPECT (OnUIDeactivate)
 
 DEFINE_EXPECT (OnInPlaceDeactivate)
 
 DEFINE_EXPECT (RequestUIActivate)
 
 DEFINE_EXPECT (ControlSite_TranslateAccelerator)
 
 DEFINE_EXPECT (OnFocus_TRUE)
 
 DEFINE_EXPECT (OnFocus_FALSE)
 
 DEFINE_EXPECT (GetExternal)
 
 DEFINE_EXPECT (outer_QI_test)
 
 DEFINE_EXPECT (Advise_OnClose)
 
static LONG (WINAPI *pSetQueryNetSessionCount)(DWORD)
 
static BOOL is_lang_english (void)
 
static BOOL iface_cmp (IUnknown *iface1, IUnknown *iface2)
 
static IWebBrowser2 * _create_webbrowser (unsigned line)
 
static void _test_LocationURL (unsigned line, IWebBrowser2 *wb, const WCHAR *exurl)
 
static void _test_LocationName (unsigned line, IWebBrowser2 *wb, const WCHAR *exname)
 
static void _test_ready_state (unsigned line, READYSTATE exstate, VARIANT_BOOL expect_busy)
 
static IHTMLDocument2 * _get_document (unsigned line, IWebBrowser2 *wb)
 
static IOleClientSite * _get_dochost (unsigned line, IWebBrowser2 *unk)
 
static HRESULT QueryInterface (REFIID, void **)
 
static HRESULT WINAPI OleCommandTarget_QueryInterface (IOleCommandTarget *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI OleCommandTarget_AddRef (IOleCommandTarget *iface)
 
static ULONG WINAPI OleCommandTarget_Release (IOleCommandTarget *iface)
 
static HRESULT WINAPI OleCommandTarget_QueryStatus (IOleCommandTarget *iface, const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
 
static HRESULT WINAPI OleCommandTarget_Exec (IOleCommandTarget *iface, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
static HRESULT WINAPI OleContainer_QueryInterface (IOleContainer *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI OleContainer_AddRef (IOleContainer *iface)
 
static ULONG WINAPI OleContainer_Release (IOleContainer *iface)
 
static HRESULT WINAPI OleContainer_ParseDisplayName (IOleContainer *iface, IBindCtx *pbc, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
 
static HRESULT WINAPI OleContainer_EnumObjects (IOleContainer *iface, DWORD grfFlags, IEnumUnknown **ppenum)
 
static HRESULT WINAPI OleContainer_LockContainer (IOleContainer *iface, BOOL fLock)
 
static HRESULT WINAPI Dispatch_QueryInterface (IDispatch *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI Dispatch_AddRef (IDispatch *iface)
 
static ULONG WINAPI Dispatch_Release (IDispatch *iface)
 
static HRESULT WINAPI Dispatch_GetTypeInfoCount (IDispatch *iface, UINT *pctinfo)
 
static HRESULT WINAPI Dispatch_GetTypeInfo (IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
static HRESULT WINAPI Dispatch_GetIDsOfNames (IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
static HRESULT WINAPI Dispatch_Invoke (IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
static HRESULT WINAPI WebBrowserEvents2_QueryInterface (IDispatch *iface, REFIID riid, void **ppv)
 
static void _test_invoke_bool (unsigned line, const DISPPARAMS *params, BOOL strict)
 
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 void test_navigatecomplete2 (DISPPARAMS *dp)
 
static void test_documentcomplete (DISPPARAMS *dp)
 
static HRESULT WINAPI WebBrowserEvents2_Invoke (IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
static HRESULT WINAPI ClientSite_QueryInterface (IOleClientSite *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ClientSite_AddRef (IOleClientSite *iface)
 
static ULONG WINAPI ClientSite_Release (IOleClientSite *iface)
 
static HRESULT WINAPI ClientSite_SaveObject (IOleClientSite *iface)
 
static HRESULT WINAPI ClientSite_GetMoniker (IOleClientSite *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmon)
 
static HRESULT WINAPI ClientSite_GetContainer (IOleClientSite *iface, IOleContainer **ppContainer)
 
static HRESULT WINAPI ClientSite_ShowObject (IOleClientSite *iface)
 
static HRESULT WINAPI ClientSite_OnShowWindow (IOleClientSite *iface, BOOL fShow)
 
static HRESULT WINAPI ClientSite_RequestNewObjectLayout (IOleClientSite *iface)
 
static HRESULT WINAPI IOleControlSite_fnQueryInterface (IOleControlSite *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI IOleControlSite_fnAddRef (IOleControlSite *iface)
 
static ULONG WINAPI IOleControlSite_fnRelease (IOleControlSite *iface)
 
static HRESULT WINAPI IOleControlSite_fnOnControlInfoChanged (IOleControlSite *This)
 
static HRESULT WINAPI IOleControlSite_fnLockInPlaceActive (IOleControlSite *This, BOOL fLock)
 
static HRESULT WINAPI IOleControlSite_fnGetExtendedControl (IOleControlSite *This, IDispatch **ppDisp)
 
static HRESULT WINAPI IOleControlSite_fnTransformCoords (IOleControlSite *This, POINTL *pPtlHimetric, POINTF *pPtfContainer, DWORD dwFlags)
 
static HRESULT WINAPI IOleControlSite_fnTranslateAccelerator (IOleControlSite *This, MSG *pMsg, DWORD grfModifiers)
 
static HRESULT WINAPI IOleControlSite_fnOnFocus (IOleControlSite *This, BOOL fGotFocus)
 
static HRESULT WINAPI IOleControlSite_fnShowPropertyFrame (IOleControlSite *This)
 
static HRESULT WINAPI InPlaceUIWindow_QueryInterface (IOleInPlaceFrame *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI InPlaceUIWindow_AddRef (IOleInPlaceFrame *iface)
 
static ULONG WINAPI InPlaceUIWindow_Release (IOleInPlaceFrame *iface)
 
static HRESULT WINAPI InPlaceUIWindow_GetWindow (IOleInPlaceFrame *iface, HWND *phwnd)
 
static HRESULT WINAPI InPlaceFrame_GetWindow (IOleInPlaceFrame *iface, HWND *phwnd)
 
static HRESULT WINAPI InPlaceUIWindow_ContextSensitiveHelp (IOleInPlaceFrame *iface, BOOL fEnterMode)
 
static HRESULT WINAPI InPlaceUIWindow_GetBorder (IOleInPlaceFrame *iface, LPRECT lprectBorder)
 
static HRESULT WINAPI InPlaceUIWindow_RequestBorderSpace (IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
 
static HRESULT WINAPI InPlaceUIWindow_SetBorderSpace (IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
 
static HRESULT WINAPI InPlaceUIWindow_SetActiveObject (IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
 
static HRESULT WINAPI InPlaceFrame_SetActiveObject (IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
 
static HRESULT WINAPI InPlaceFrame_InsertMenus (IOleInPlaceFrame *iface, HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths)
 
static HRESULT WINAPI InPlaceFrame_SetMenu (IOleInPlaceFrame *iface, HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject)
 
static HRESULT WINAPI InPlaceFrame_RemoveMenus (IOleInPlaceFrame *iface, HMENU hmenuShared)
 
static HRESULT WINAPI InPlaceFrame_SetStatusText (IOleInPlaceFrame *iface, LPCOLESTR pszStatusText)
 
static HRESULT WINAPI InPlaceFrame_EnableModeless (IOleInPlaceFrame *iface, BOOL fEnable)
 
static HRESULT WINAPI InPlaceFrame_TranslateAccelerator (IOleInPlaceFrame *iface, LPMSG lpmsg, WORD wID)
 
static HRESULT WINAPI InPlaceSite_QueryInterface (IOleInPlaceSiteEx *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI InPlaceSite_AddRef (IOleInPlaceSiteEx *iface)
 
static ULONG WINAPI InPlaceSite_Release (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_GetWindow (IOleInPlaceSiteEx *iface, HWND *phwnd)
 
static HRESULT WINAPI InPlaceSite_ContextSensitiveHelp (IOleInPlaceSiteEx *iface, BOOL fEnterMode)
 
static HRESULT WINAPI InPlaceSite_CanInPlaceActivate (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_OnInPlaceActivate (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_OnUIActivate (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_GetWindowContext (IOleInPlaceSiteEx *iface, IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
 
static HRESULT WINAPI InPlaceSite_Scroll (IOleInPlaceSiteEx *iface, SIZE scrollExtant)
 
static HRESULT WINAPI InPlaceSite_OnUIDeactivate (IOleInPlaceSiteEx *iface, BOOL fUndoable)
 
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivate (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_DiscardUndoState (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_DeactivateAndUndo (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI InPlaceSite_OnPosRectChange (IOleInPlaceSiteEx *iface, LPCRECT lprcPosRect)
 
static HRESULT WINAPI InPlaceSite_OnInPlaceActivateEx (IOleInPlaceSiteEx *iface, BOOL *pNoRedraw, DWORD dwFlags)
 
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivateEx (IOleInPlaceSiteEx *iface, BOOL fNoRedraw)
 
static HRESULT WINAPI InPlaceSite_RequestUIActivate (IOleInPlaceSiteEx *iface)
 
static HRESULT WINAPI DocHostUIHandler_QueryInterface (IDocHostUIHandler2 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI DocHostUIHandler_AddRef (IDocHostUIHandler2 *iface)
 
static ULONG WINAPI DocHostUIHandler_Release (IDocHostUIHandler2 *iface)
 
static HRESULT WINAPI DocHostUIHandler_ShowContextMenu (IDocHostUIHandler2 *iface, DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdicpReserved)
 
static HRESULT WINAPI DocHostUIHandler_GetHostInfo (IDocHostUIHandler2 *iface, DOCHOSTUIINFO *pInfo)
 
static HRESULT WINAPI DocHostUIHandler_ShowUI (IDocHostUIHandler2 *iface, DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc)
 
static HRESULT WINAPI DocHostUIHandler_HideUI (IDocHostUIHandler2 *iface)
 
static HRESULT WINAPI DocHostUIHandler_UpdateUI (IDocHostUIHandler2 *iface)
 
static HRESULT WINAPI DocHostUIHandler_EnableModeless (IDocHostUIHandler2 *iface, BOOL fEnable)
 
static HRESULT WINAPI DocHostUIHandler_OnDocWindowActivate (IDocHostUIHandler2 *iface, BOOL fActivate)
 
static HRESULT WINAPI DocHostUIHandler_OnFrameWindowActivate (IDocHostUIHandler2 *iface, BOOL fActivate)
 
static HRESULT WINAPI DocHostUIHandler_ResizeBorder (IDocHostUIHandler2 *iface, LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow)
 
static HRESULT WINAPI DocHostUIHandler_TranslateAccelerator (IDocHostUIHandler2 *iface, LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID)
 
static HRESULT WINAPI DocHostUIHandler_GetOptionKeyPath (IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
 
static HRESULT WINAPI DocHostUIHandler_GetDropTarget (IDocHostUIHandler2 *iface, IDropTarget *pDropTarget, IDropTarget **ppDropTarget)
 
static HRESULT WINAPI DocHostUIHandler_GetExternal (IDocHostUIHandler2 *iface, IDispatch **ppDispatch)
 
static HRESULT WINAPI DocHostUIHandler_TranslateUrl (IDocHostUIHandler2 *iface, DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut)
 
static HRESULT WINAPI DocHostUIHandler_FilterDataObject (IDocHostUIHandler2 *iface, IDataObject *pDO, IDataObject **ppPORet)
 
static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath (IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
 
static HRESULT WINAPI ServiceProvider_QueryInterface (IServiceProvider *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI ServiceProvider_AddRef (IServiceProvider *iface)
 
static ULONG WINAPI ServiceProvider_Release (IServiceProvider *iface)
 
static HRESULT WINAPI ServiceProvider_QueryService (IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
 
static LRESULT WINAPI wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
static HWND create_container_window (void)
 
static void test_DoVerb (IWebBrowser2 *unk)
 
static void call_DoVerb (IWebBrowser2 *unk, LONG verb)
 
static HWND get_hwnd (IWebBrowser2 *unk)
 
static void test_GetMiscStatus (IOleObject *oleobj)
 
static void test_SetHostNames (IOleObject *oleobj)
 
static void test_ClientSite (IWebBrowser2 *unk, IOleClientSite *client, BOOL stop_download)
 
static void test_change_ClientSite (IWebBrowser2 *unk)
 
static void test_ClassInfo (IWebBrowser2 *unk)
 
static void _expect_oleverb (unsigned line, const OLEVERB *verb, LONG exverb)
 
static void _test_next_oleverb (unsigned line, IEnumOLEVERB *enum_verbs, LONG exverb)
 
static void test_EnumVerbs (IWebBrowser2 *wb)
 
static void test_Persist (IWebBrowser2 *wb, int version)
 
static void test_OleObject (IWebBrowser2 *wb, int version)
 
static void test_ie_funcs (IWebBrowser2 *wb)
 
static void test_Silent (IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
 
static void test_Offline (IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
 
static void test_ambient_unknown (IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
 
static void test_wb_funcs (IWebBrowser2 *wb, BOOL is_clientsite)
 
static void test_GetControlInfo (IWebBrowser2 *unk)
 
static void test_Extent (IWebBrowser2 *unk)
 
static void test_ConnectionPoint (IWebBrowser2 *unk, BOOL init)
 
static void test_Navigate2 (IWebBrowser2 *webbrowser, const WCHAR *nav_url)
 
static void test_QueryStatusWB (IWebBrowser2 *webbrowser, BOOL has_document)
 
static void test_ExecWB (IWebBrowser2 *webbrowser, BOOL has_document)
 
static void test_download (DWORD flags)
 
static void test_Refresh (IWebBrowser2 *webbrowser, BOOL use_refresh2)
 
static void test_olecmd (IWebBrowser2 *unk, BOOL loaded)
 
static void test_IServiceProvider (IWebBrowser2 *unk)
 
static void test_put_href (IWebBrowser2 *unk, const WCHAR *url)
 
static void test_go_back (IWebBrowser2 *wb, const WCHAR *back_url, int back_enable, int forward_enable, int forward_todo)
 
static void test_go_forward (IWebBrowser2 *wb, const WCHAR *forward_url, int back_enable, int forward_enable)
 
static void test_QueryInterface (IWebBrowser2 *wb)
 
static void test_UIActivate (IWebBrowser2 *unk, BOOL activate)
 
static void test_external (IWebBrowser2 *unk)
 
static void test_htmlwindow_close (IWebBrowser2 *wb)
 
static void test_TranslateAccelerator (IWebBrowser2 *unk)
 
static void test_dochost_qs (IWebBrowser2 *webbrowser)
 
static void test_Close (IWebBrowser2 *wb, BOOL do_download)
 
static void test_Advise (IWebBrowser2 *wb)
 
static void init_test (IWebBrowser2 *webbrowser, DWORD flags)
 
static void test_WebBrowser (DWORD flags, BOOL do_close)
 
static void test_WebBrowserV1 (void)
 
static void test_WebBrowser_slim_container (void)
 
static void test_WebBrowser_DoVerb (void)
 
static BOOL is_ie_hardened (void)
 
static void test_FileProtocol (void)
 
static HRESULT WINAPI sink_QueryInterface (IAdviseSink *iface, REFIID riid, void **obj)
 
static ULONG WINAPI sink_AddRef (IAdviseSink *iface)
 
static ULONG WINAPI sink_Release (IAdviseSink *iface)
 
static void WINAPI sink_OnDataChange (IAdviseSink *iface, FORMATETC *format, STGMEDIUM *medium)
 
static void WINAPI sink_OnViewChange (IAdviseSink *iface, DWORD aspect, LONG index)
 
static void WINAPI sink_OnRename (IAdviseSink *iface, IMoniker *moniker)
 
static void WINAPI sink_OnSave (IAdviseSink *iface)
 
static void WINAPI sink_OnClose (IAdviseSink *iface)
 
static void test_SetAdvise (void)
 
static void test_SetQueryNetSessionCount (void)
 
static HRESULT WINAPI outer_QueryInterface (IUnknown *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI outer_AddRef (IUnknown *iface)
 
static ULONG WINAPI outer_Release (IUnknown *iface)
 
static void test_com_aggregation (void)
 
 START_TEST (webbrowser)
 

Variables

static VARIANT_BOOL exvb
 
static IWebBrowser2 * wb
 
static HWND container_hwnd
 
static HWND shell_embedding_hwnd
 
static BOOL is_downloading
 
static BOOL do_download
 
static BOOL is_first_load
 
static BOOL use_container_olecmd
 
static BOOL test_close
 
static BOOL test_hide
 
static BOOL is_http
 
static BOOL use_container_dochostui
 
static HRESULT hr_dochost_TranslateAccelerator = E_NOTIMPL
 
static HRESULT hr_site_TranslateAccelerator = E_NOTIMPL
 
static const WCHAR * current_url
 
static int wb_version
 
static int expect_update_commands_enable
 
static int set_update_commands_enable
 
static BOOL nav_back_todo
 
static BOOL nav_forward_todo
 
static DWORD dwl_flags
 
static IAdviseSink test_sink = { &sink_vtbl }
 
static IOleCommandTargetVtbl OleCommandTargetVtbl
 
static IOleCommandTarget OleCommandTarget = { &OleCommandTargetVtbl }
 
static const IOleContainerVtbl OleContainerVtbl
 
static IOleContainer OleContainer = { &OleContainerVtbl }
 
static IDispatchVtbl DispatchVtbl
 
static IDispatch Dispatch = { &DispatchVtbl }
 
static IDispatchVtbl WebBrowserEvents2Vtbl
 
static IDispatch WebBrowserEvents2 = { &WebBrowserEvents2Vtbl }
 
static const IOleClientSiteVtbl ClientSiteVtbl
 
static IOleClientSite ClientSite = { &ClientSiteVtbl }
 
static IOleClientSite ClientSite2 = { &ClientSiteVtbl }
 
static IOleControlSiteVtbl ControlSiteVtbl
 
static IOleControlSite ControlSite = { &ControlSiteVtbl }
 
static const IOleInPlaceFrameVtbl InPlaceUIWindowVtbl
 
static IOleInPlaceUIWindow InPlaceUIWindow = { (IOleInPlaceUIWindowVtbl*)&InPlaceUIWindowVtbl }
 
static const IOleInPlaceFrameVtbl InPlaceFrameVtbl
 
static IOleInPlaceFrame InPlaceFrame = { &InPlaceFrameVtbl }
 
static const IOleInPlaceSiteExVtbl InPlaceSiteExVtbl
 
static IOleInPlaceSiteEx InPlaceSite = { &InPlaceSiteExVtbl }
 
static const IDocHostUIHandler2Vtbl DocHostUIHandlerVtbl
 
static IDocHostUIHandler2 DocHostUIHandler = { &DocHostUIHandlerVtbl }
 
static const IServiceProviderVtbl ServiceProviderVtbl
 
static IServiceProvider ServiceProvider = { &ServiceProviderVtbl }
 
static const IAdviseSinkVtbl sink_vtbl
 
static IUnknownVtbl outer_vtbl
 

Macro Definition Documentation

◆ BUSY_FAIL

#define BUSY_FAIL   2

Definition at line 185 of file webbrowser.c.

◆ CHECK_CALLED

#define CHECK_CALLED (   func)
Value:
do { \
ok(called_ ## func, "expected " #func "\n"); \
expect_ ## func = called_ ## func = FALSE; \
}while(0)
#define FALSE
Definition: types.h:117
GLenum func
Definition: glext.h:6028
#define expect_(expected, got, precision)
Definition: font.c:34

Definition at line 70 of file webbrowser.c.

◆ CHECK_EXPECT

#define CHECK_EXPECT (   func)
Value:
do { \
CHECK_EXPECT2(func); \
expect_ ## func = FALSE; \
}while(0)

Definition at line 64 of file webbrowser.c.

◆ CHECK_EXPECT2

#define CHECK_EXPECT2 (   func)
Value:
do { \
ok(expect_ ##func, "unexpected call " #func "\n"); \
called_ ## func = TRUE; \
}while(0)
#define TRUE
Definition: types.h:120

Definition at line 58 of file webbrowser.c.

◆ CHECK_NOT_CALLED

#define CHECK_NOT_CALLED (   func)
Value:
do { \
ok(!called_ ## func, "unexpected " #func "\n"); \
expect_ ## func = called_ ## func = FALSE; \
}while(0)

Definition at line 76 of file webbrowser.c.

◆ CLEAR_CALLED

#define CLEAR_CALLED (   func)     expect_ ## func = called_ ## func = FALSE

Definition at line 82 of file webbrowser.c.

◆ COBJMACROS

#define COBJMACROS

Definition at line 19 of file webbrowser.c.

◆ CONST_VTABLE

#define CONST_VTABLE

Definition at line 20 of file webbrowser.c.

◆ create_webbrowser

#define create_webbrowser ( )    _create_webbrowser(__LINE__)

Definition at line 237 of file webbrowser.c.

◆ DEFINE_EXPECT

#define DEFINE_EXPECT (   func)     static BOOL expect_ ## func = FALSE, called_ ## func = FALSE

Definition at line 52 of file webbrowser.c.

◆ DWL_BACK_ENABLE

#define DWL_BACK_ENABLE   0x40

Definition at line 193 of file webbrowser.c.

◆ DWL_EXPECT_BEFORE_NAVIGATE

#define DWL_EXPECT_BEFORE_NAVIGATE   0x01

Definition at line 187 of file webbrowser.c.

◆ DWL_FROM_GOBACK

#define DWL_FROM_GOBACK   0x04

Definition at line 189 of file webbrowser.c.

◆ DWL_FROM_GOFORWARD

#define DWL_FROM_GOFORWARD   0x08

Definition at line 190 of file webbrowser.c.

◆ DWL_FROM_PUT_HREF

#define DWL_FROM_PUT_HREF   0x02

Definition at line 188 of file webbrowser.c.

◆ DWL_HTTP

#define DWL_HTTP   0x10

Definition at line 191 of file webbrowser.c.

◆ DWL_REFRESH

#define DWL_REFRESH   0x20

Definition at line 192 of file webbrowser.c.

◆ expect_oleverb

#define expect_oleverb (   a,
  b 
)    _expect_oleverb(__LINE__,a,b)

Definition at line 2163 of file webbrowser.c.

◆ get_dochost

#define get_dochost (   u)    _get_dochost(__LINE__,u)

Definition at line 321 of file webbrowser.c.

◆ get_document

#define get_document (   u)    _get_document(__LINE__,u)

Definition at line 301 of file webbrowser.c.

◆ SET_EXPECT

#define SET_EXPECT (   func)     do { called_ ## func = FALSE; expect_ ## func = TRUE; } while(0)

Definition at line 55 of file webbrowser.c.

◆ TEST_DOWNLOAD

#define TEST_DOWNLOAD   0x0001

Definition at line 3828 of file webbrowser.c.

◆ test_invoke_bool

#define test_invoke_bool (   p,
  s 
)    _test_invoke_bool(__LINE__,p,s)

Definition at line 705 of file webbrowser.c.

◆ test_LocationName

#define test_LocationName (   a,
  b 
)    _test_LocationName(__LINE__,a,b)

Definition at line 266 of file webbrowser.c.

◆ test_LocationURL

#define test_LocationURL (   a,
  b 
)    _test_LocationURL(__LINE__,a,b)

Definition at line 251 of file webbrowser.c.

◆ test_next_oleverb

#define test_next_oleverb (   a,
  b 
)    _test_next_oleverb(__LINE__,a,b)

Definition at line 2172 of file webbrowser.c.

◆ TEST_NODOCHOST

#define TEST_NODOCHOST   0x0004

Definition at line 3830 of file webbrowser.c.

◆ TEST_NOOLECMD

#define TEST_NOOLECMD   0x0002

Definition at line 3829 of file webbrowser.c.

◆ test_ready_state

#define test_ready_state (   a,
  b 
)    _test_ready_state(__LINE__,a,b)

Definition at line 279 of file webbrowser.c.

Enumeration Type Documentation

◆ SessionOp

Enumerator
SESSION_QUERY 
SESSION_INCREMENT 
SESSION_DECREMENT 
SESSION_QUERY 
SESSION_INCREMENT 
SESSION_DECREMENT 

Definition at line 176 of file webbrowser.c.

177{
181};
@ SESSION_DECREMENT
Definition: webbrowser.c:180
@ SESSION_INCREMENT
Definition: webbrowser.c:179
@ SESSION_QUERY
Definition: webbrowser.c:178

Function Documentation

◆ _create_webbrowser()

static IWebBrowser2 * _create_webbrowser ( unsigned  line)
static

Definition at line 238 of file webbrowser.c.

239{
240 IWebBrowser2 *ret;
242
243 wb_version = 2;
244
245 hres = CoCreateInstance(&CLSID_WebBrowser, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
246 &IID_IWebBrowser2, (void**)&ret);
247 ok_(__FILE__,line)(hres == S_OK, "Creating WebBrowser object failed: %08lx\n", hres);
248 return ret;
249}
#define ok_(x1, x2)
Definition: atltest.h:61
#define NULL
Definition: types.h:112
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
return ret
Definition: mutex.c:147
#define S_OK
Definition: intsafe.h:52
static int wb_version
Definition: webbrowser.c:173
HRESULT hres
Definition: protocol.c:432
Definition: parser.c:49

◆ _expect_oleverb()

static void _expect_oleverb ( unsigned  line,
const OLEVERB *  verb,
LONG  exverb 
)
static

Definition at line 2164 of file webbrowser.c.

2165{
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);
2170}
#define wine_dbgstr_w
Definition: kernel32.h:34

Referenced by _test_next_oleverb().

◆ _get_dochost()

static IOleClientSite * _get_dochost ( unsigned  line,
IWebBrowser2 *  unk 
)
static

Definition at line 322 of file webbrowser.c.

323{
325 IHTMLDocument2 *doc;
326 IOleObject *oleobj;
328
329 doc = _get_document(line, unk);
330 hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleObject, (void**)&oleobj);
331 IHTMLDocument2_Release(doc);
332 ok_(__FILE__,line)(hres == S_OK, "Got 0x%08lx\n", hres);
333
334 hres = IOleObject_GetClientSite(oleobj, &client_site);
335 IOleObject_Release(oleobj);
336 ok_(__FILE__,line)(hres == S_OK, "Got 0x%08lx\n", hres);
337
338 return client_site;
339}
static IHTMLDocument2 * _get_document(unsigned line, IWebBrowser2 *wb)
Definition: webbrowser.c:302
static IOleClientSite * client_site
Definition: activex.c:198
const GUID IID_IOleObject

◆ _get_document()

static IHTMLDocument2 * _get_document ( unsigned  line,
IWebBrowser2 *  wb 
)
static

Definition at line 302 of file webbrowser.c.

303{
304 IHTMLDocument2 *html_doc;
305 IDispatch *disp;
307
308 disp = NULL;
309 hres = IWebBrowser2_get_Document(wb, &disp);
310 ok_(__FILE__,line)(hres == S_OK, "get_Document failed: %08lx\n", hres);
311 ok_(__FILE__,line)(disp != NULL, "doc_disp == NULL\n");
312
313 hres = IDispatch_QueryInterface(disp, &IID_IHTMLDocument2, (void**)&html_doc);
314 ok_(__FILE__,line)(hres == S_OK, "Could not get IHTMLDocument iface: %08lx\n", hres);
315 ok(disp == (IDispatch*)html_doc, "disp != html_doc\n");
316 IDispatch_Release(disp);
317
318 return html_doc;
319}
#define ok(value,...)
Definition: atltest.h:57
static IWebBrowser2 * wb
Definition: webbrowser.c:165
IHTMLDocument2 * html_doc
Definition: xmlview.c:53

Referenced by _get_dochost().

◆ _test_invoke_bool()

static void _test_invoke_bool ( unsigned  line,
const DISPPARAMS *  params,
BOOL  strict 
)
static

Definition at line 706 of file webbrowser.c.

707{
708 ok_(__FILE__,line) (params->rgvarg != NULL, "rgvarg == NULL\n");
709 ok_(__FILE__,line) (params->cArgs == 1, "cArgs=%d, expected 1\n", params->cArgs);
710 ok_(__FILE__,line) (V_VT(params->rgvarg) == VT_BOOL, "V_VT(arg)=%d\n", V_VT(params->rgvarg));
711 if(strict)
712 ok_(__FILE__,line) (V_BOOL(params->rgvarg) == exvb, "V_VT(arg)=%x, expected %x\n",
713 V_BOOL(params->rgvarg), exvb);
714 else
715 ok_(__FILE__,line) (!V_BOOL(params->rgvarg) == !exvb, "V_VT(arg)=%x, expected %x\n",
716 V_BOOL(params->rgvarg), exvb);
717}
@ VT_BOOL
Definition: compat.h:2306
GLenum const GLfloat * params
Definition: glext.h:5645
static VARIANT_BOOL exvb
Definition: webbrowser.c:163
static int strict
Definition: error.c:55
#define V_BOOL(A)
Definition: oleauto.h:224
#define V_VT(A)
Definition: oleauto.h:211

◆ _test_LocationName()

static void _test_LocationName ( unsigned  line,
IWebBrowser2 *  wb,
const WCHAR *  exname 
)
static

Definition at line 267 of file webbrowser.c.

268{
269 BSTR name = (void*)0xdeadbeef;
271
272 hres = IWebBrowser2_get_LocationName(wb, &name);
273 ok_(__FILE__,line) (hres == (*exname ? S_OK : S_FALSE), "get_LocationName failed: %08lx\n", hres);
274 ok_(__FILE__,line) (!lstrcmpW(name, exname) || broken(is_http && !lstrcmpW(name, current_url)) /* Win10 2004 */,
275 "expected %s, got %s\n", wine_dbgstr_w(exname), wine_dbgstr_w(name));
277}
#define broken(x)
Definition: atltest.h:178
OLECHAR * BSTR
Definition: compat.h:2293
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4152
static BOOL is_http
Definition: webbrowser.c:169
static const WCHAR * current_url
Definition: webbrowser.c:172
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:273
Definition: name.c:39
#define S_FALSE
Definition: winerror.h:3451

◆ _test_LocationURL()

static void _test_LocationURL ( unsigned  line,
IWebBrowser2 *  wb,
const WCHAR *  exurl 
)
static

Definition at line 252 of file webbrowser.c.

253{
254 BSTR url = (void*)0xdeadbeef;
256
257 hres = IWebBrowser2_get_LocationURL(wb, &url);
258 ok_(__FILE__,line) (hres == (*exurl ? S_OK : S_FALSE), "get_LocationURL failed: %08lx\n", hres);
259 if (SUCCEEDED(hres))
260 {
261 ok_(__FILE__,line) (!lstrcmpW(url, exurl), "unexpected URL: %s\n", wine_dbgstr_w(url));
263 }
264}
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static const WCHAR url[]
Definition: encode.c:1384

◆ _test_next_oleverb()

static void _test_next_oleverb ( unsigned  line,
IEnumOLEVERB *  enum_verbs,
LONG  exverb 
)
static

Definition at line 2173 of file webbrowser.c.

2174{
2175 ULONG fetched = 0xdeadbeef;
2176 OLEVERB verb;
2177 HRESULT hres;
2178
2179 fetched = 0xdeadbeef;
2180 memset(&verb, 0xa, sizeof(verb));
2181 hres = IEnumOLEVERB_Next(enum_verbs, 1, &verb, &fetched);
2182 ok_(__FILE__,line)(hres == S_OK, "Next failed: %08lx\n", hres);
2183 ok_(__FILE__,line)(!fetched, "fetched = %ld\n", fetched);
2184 _expect_oleverb(line, &verb, exverb);
2185}
static void _expect_oleverb(unsigned line, const OLEVERB *verb, LONG exverb)
Definition: webbrowser.c:2164
#define memset(x, y, z)
Definition: compat.h:39
uint32_t ULONG
Definition: typedefs.h:59

◆ _test_ready_state()

static void _test_ready_state ( unsigned  line,
READYSTATE  exstate,
VARIANT_BOOL  expect_busy 
)
static

Definition at line 280 of file webbrowser.c.

281{
282 READYSTATE state;
283 VARIANT_BOOL busy;
285
286 hres = IWebBrowser2_get_ReadyState(wb, &state);
287 ok_(__FILE__,line)(hres == S_OK, "get_ReadyState failed: %08lx\n", hres);
288 ok_(__FILE__,line)(state == exstate, "ReadyState = %d, expected %d\n", state, exstate);
289
290 hres = IWebBrowser2_get_Busy(wb, &busy);
291 if(expect_busy != BUSY_FAIL) {
292 ok_(__FILE__,line)(hres == S_OK, "get_ReadyState failed: %08lx\n", hres);
293 ok_(__FILE__,line)(busy == expect_busy, "Busy = %x, expected %x for ready state %d\n",
294 busy, expect_busy, state);
295 }else {
297 ok_(__FILE__,line)(hres == E_FAIL, "get_ReadyState returned: %08lx\n", hres);
298 }
299}
static int state
Definition: maze.c:121
#define E_FAIL
Definition: ddrawi.h:102
short VARIANT_BOOL
Definition: compat.h:2290
#define todo_wine
Definition: minitest.h:80
#define BUSY_FAIL
Definition: webbrowser.c:185

◆ call_DoVerb()

static void call_DoVerb ( IWebBrowser2 *  unk,
LONG  verb 
)
static

Definition at line 1909 of file webbrowser.c.

1910{
1911 IOleObject *oleobj;
1912 RECT rect = {60,60,600,600};
1913 HRESULT hres;
1914
1915 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
1916 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
1917 if(FAILED(hres))
1918 return;
1919
1920 hres = IOleObject_DoVerb(oleobj, verb, NULL, &ClientSite,
1921 -1, container_hwnd, &rect);
1922 ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
1923
1924 IOleObject_Release(oleobj);
1925}
RECT rect
Definition: combotst.c:67
#define FAILED(hr)
Definition: intsafe.h:51
static IOleClientSite ClientSite
Definition: webbrowser.c:1142
static HWND container_hwnd
Definition: webbrowser.c:167
Definition: dcommon.idl:28

Referenced by test_WebBrowser_DoVerb().

◆ ClientSite_AddRef()

static ULONG WINAPI ClientSite_AddRef ( IOleClientSite *  iface)
static

Definition at line 1078 of file webbrowser.c.

1079{
1080 return 2;
1081}

◆ ClientSite_GetContainer()

static HRESULT WINAPI ClientSite_GetContainer ( IOleClientSite *  iface,
IOleContainer **  ppContainer 
)
static

Definition at line 1101 of file webbrowser.c.

1102{
1103 CHECK_EXPECT(GetContainer);
1104
1105 ok(ppContainer != NULL, "ppContainer == NULL\n");
1106 if(ppContainer)
1107 *ppContainer = &OleContainer;
1108
1109 return S_OK;
1110}
#define CHECK_EXPECT(func)
Definition: webbrowser.c:64
static IOleContainer OleContainer
Definition: webbrowser.c:594

◆ ClientSite_GetMoniker()

static HRESULT WINAPI ClientSite_GetMoniker ( IOleClientSite *  iface,
DWORD  dwAssign,
DWORD  dwWhichMoniker,
IMoniker **  ppmon 
)
static

Definition at line 1094 of file webbrowser.c.

1096{
1097 ok(0, "unexpected call\n");
1098 return E_NOTIMPL;
1099}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ ClientSite_OnShowWindow()

static HRESULT WINAPI ClientSite_OnShowWindow ( IOleClientSite *  iface,
BOOL  fShow 
)
static

Definition at line 1118 of file webbrowser.c.

1119{
1120 ok(0, "unexpected call\n");
1121 return E_NOTIMPL;
1122}

◆ ClientSite_QueryInterface()

static HRESULT WINAPI ClientSite_QueryInterface ( IOleClientSite *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1073 of file webbrowser.c.

1074{
1075 return QueryInterface(riid, ppv);
1076}
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ ClientSite_Release()

static ULONG WINAPI ClientSite_Release ( IOleClientSite *  iface)
static

Definition at line 1083 of file webbrowser.c.

1084{
1085 return 1;
1086}

◆ ClientSite_RequestNewObjectLayout()

static HRESULT WINAPI ClientSite_RequestNewObjectLayout ( IOleClientSite *  iface)
static

Definition at line 1124 of file webbrowser.c.

1125{
1126 ok(0, "unexpected call\n");
1127 return E_NOTIMPL;
1128}

◆ ClientSite_SaveObject()

static HRESULT WINAPI ClientSite_SaveObject ( IOleClientSite *  iface)
static

Definition at line 1088 of file webbrowser.c.

1089{
1090 ok(0, "unexpected call\n");
1091 return E_NOTIMPL;
1092}

◆ ClientSite_ShowObject()

static HRESULT WINAPI ClientSite_ShowObject ( IOleClientSite *  iface)
static

Definition at line 1112 of file webbrowser.c.

1113{
1114 CHECK_EXPECT(ShowObject);
1115 return S_OK;
1116}

◆ create_container_window()

static HWND create_container_window ( void  )
static

Definition at line 1838 of file webbrowser.c.

1839{
1840 static WNDCLASSEXW wndclass = {
1841 sizeof(WNDCLASSEXW),
1842 0,
1843 wnd_proc,
1844 0, 0, NULL, NULL, NULL, NULL, NULL,
1845 L"WebBrowserContainer",
1846 NULL
1847 };
1848
1849 RegisterClassExW(&wndclass);
1850 return CreateWindowW(L"WebBrowserContainer", L"WebBrowserContainer",
1851 WS_OVERLAPPEDWINDOW, 10, 10, 600, 600, NULL, NULL, NULL, NULL);
1852}
#define L(x)
Definition: resources.c:13
static LRESULT WINAPI wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: webbrowser.c:1833
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4470
struct _WNDCLASSEXW WNDCLASSEXW

Referenced by START_TEST().

◆ DEFINE_EXPECT() [1/77]

DEFINE_EXPECT ( Advise_OnClose  )

◆ DEFINE_EXPECT() [2/77]

DEFINE_EXPECT ( CanInPlaceActivate  )

◆ DEFINE_EXPECT() [3/77]

DEFINE_EXPECT ( ControlSite_TranslateAccelerator  )

◆ DEFINE_EXPECT() [4/77]

DEFINE_EXPECT ( DocHost_EnableModeless_FALSE  )

◆ DEFINE_EXPECT() [5/77]

DEFINE_EXPECT ( DocHost_EnableModeless_TRUE  )

◆ DEFINE_EXPECT() [6/77]

DEFINE_EXPECT ( DocHost_TranslateAccelerator  )

◆ DEFINE_EXPECT() [7/77]

DEFINE_EXPECT ( EnableModeless_FALSE  )

◆ DEFINE_EXPECT() [8/77]

DEFINE_EXPECT ( EnableModeless_TRUE  )

◆ DEFINE_EXPECT() [9/77]

DEFINE_EXPECT ( Exec_DocHostCommandHandler_2300  )

◆ DEFINE_EXPECT() [10/77]

DEFINE_EXPECT ( Exec_IDM_STOP  )

◆ DEFINE_EXPECT() [11/77]

DEFINE_EXPECT ( Exec_SETDOWNLOADSTATE_0  )

◆ DEFINE_EXPECT() [12/77]

DEFINE_EXPECT ( Exec_SETDOWNLOADSTATE_1  )

◆ DEFINE_EXPECT() [13/77]

DEFINE_EXPECT ( Exec_SETPROGRESSMAX  )

◆ DEFINE_EXPECT() [14/77]

DEFINE_EXPECT ( Exec_SETPROGRESSPOS  )

◆ DEFINE_EXPECT() [15/77]

DEFINE_EXPECT ( Exec_SETTITLE  )

◆ DEFINE_EXPECT() [16/77]

DEFINE_EXPECT ( Exec_STOP  )

◆ DEFINE_EXPECT() [17/77]

DEFINE_EXPECT ( Exec_UPDATECOMMANDS  )

◆ DEFINE_EXPECT() [18/77]

DEFINE_EXPECT ( Frame_GetWindow  )

◆ DEFINE_EXPECT() [19/77]

DEFINE_EXPECT ( Frame_SetActiveObject  )

◆ DEFINE_EXPECT() [20/77]

DEFINE_EXPECT ( GetContainer  )

◆ DEFINE_EXPECT() [21/77]

DEFINE_EXPECT ( GetDropTarget  )

◆ DEFINE_EXPECT() [22/77]

DEFINE_EXPECT ( GetExternal  )

◆ DEFINE_EXPECT() [23/77]

DEFINE_EXPECT ( GetHostInfo  )

◆ DEFINE_EXPECT() [24/77]

DEFINE_EXPECT ( GetOptionKeyPath  )

◆ DEFINE_EXPECT() [25/77]

DEFINE_EXPECT ( GetOverridesKeyPath  )

◆ DEFINE_EXPECT() [26/77]

DEFINE_EXPECT ( GetWindowContext  )

◆ DEFINE_EXPECT() [27/77]

DEFINE_EXPECT ( HideUI  )

◆ DEFINE_EXPECT() [28/77]

DEFINE_EXPECT ( Invoke_AMBIENT_DLCONTROL  )

◆ DEFINE_EXPECT() [29/77]

DEFINE_EXPECT ( Invoke_AMBIENT_OFFLINEIFNOTCONNECTED  )

◆ DEFINE_EXPECT() [30/77]

DEFINE_EXPECT ( Invoke_AMBIENT_PALETTE  )

◆ DEFINE_EXPECT() [31/77]

DEFINE_EXPECT ( Invoke_AMBIENT_SILENT  )

◆ DEFINE_EXPECT() [32/77]

DEFINE_EXPECT ( Invoke_AMBIENT_USERAGENT  )

◆ DEFINE_EXPECT() [33/77]

DEFINE_EXPECT ( Invoke_AMBIENT_USERMODE  )

◆ DEFINE_EXPECT() [34/77]

DEFINE_EXPECT ( Invoke_BEFORENAVIGATE2  )

◆ DEFINE_EXPECT() [35/77]

DEFINE_EXPECT ( Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE  )

◆ DEFINE_EXPECT() [36/77]

DEFINE_EXPECT ( Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE  )

◆ DEFINE_EXPECT() [37/77]

DEFINE_EXPECT ( Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE  )

◆ DEFINE_EXPECT() [38/77]

DEFINE_EXPECT ( Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE  )

◆ DEFINE_EXPECT() [39/77]

DEFINE_EXPECT ( Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS  )

◆ DEFINE_EXPECT() [40/77]

DEFINE_EXPECT ( Invoke_DOCUMENTCOMPLETE  )

◆ DEFINE_EXPECT() [41/77]

DEFINE_EXPECT ( Invoke_DOWNLOADBEGIN  )

◆ DEFINE_EXPECT() [42/77]

DEFINE_EXPECT ( Invoke_DOWNLOADCOMPLETE  )

◆ DEFINE_EXPECT() [43/77]

DEFINE_EXPECT ( Invoke_FILEDOWNLOAD  )

◆ DEFINE_EXPECT() [44/77]

DEFINE_EXPECT ( Invoke_NAVIGATECOMPLETE2  )

◆ DEFINE_EXPECT() [45/77]

DEFINE_EXPECT ( Invoke_ONADDRESSBAR  )

◆ DEFINE_EXPECT() [46/77]

DEFINE_EXPECT ( Invoke_ONFULLSCREEN  )

◆ DEFINE_EXPECT() [47/77]

DEFINE_EXPECT ( Invoke_ONMENUBAR  )

◆ DEFINE_EXPECT() [48/77]

DEFINE_EXPECT ( Invoke_ONSTATUSBAR  )

◆ DEFINE_EXPECT() [49/77]

DEFINE_EXPECT ( Invoke_ONTHEATERMODE  )

◆ DEFINE_EXPECT() [50/77]

DEFINE_EXPECT ( Invoke_ONTOOLBAR  )

◆ DEFINE_EXPECT() [51/77]

DEFINE_EXPECT ( Invoke_PROGRESSCHANGE  )

◆ DEFINE_EXPECT() [52/77]

DEFINE_EXPECT ( Invoke_PROPERTYCHANGE  )

◆ DEFINE_EXPECT() [53/77]

DEFINE_EXPECT ( Invoke_SETPHISHINGFILTERSTATUS  )

◆ DEFINE_EXPECT() [54/77]

DEFINE_EXPECT ( Invoke_SETSECURELOCKICON  )

◆ DEFINE_EXPECT() [55/77]

DEFINE_EXPECT ( Invoke_STATUSTEXTCHANGE  )

◆ DEFINE_EXPECT() [56/77]

DEFINE_EXPECT ( Invoke_TITLECHANGE  )

◆ DEFINE_EXPECT() [57/77]

DEFINE_EXPECT ( Invoke_WINDOWCLOSING  )

◆ DEFINE_EXPECT() [58/77]

DEFINE_EXPECT ( Invoke_WINDOWSETRESIZABLE  )

◆ DEFINE_EXPECT() [59/77]

DEFINE_EXPECT ( OnFocus_FALSE  )

◆ DEFINE_EXPECT() [60/77]

DEFINE_EXPECT ( OnFocus_TRUE  )

◆ DEFINE_EXPECT() [61/77]

DEFINE_EXPECT ( OnInPlaceActivate  )

◆ DEFINE_EXPECT() [62/77]

DEFINE_EXPECT ( OnInPlaceDeactivate  )

◆ DEFINE_EXPECT() [63/77]

DEFINE_EXPECT ( OnUIActivate  )

◆ DEFINE_EXPECT() [64/77]

DEFINE_EXPECT ( OnUIDeactivate  )

◆ DEFINE_EXPECT() [65/77]

DEFINE_EXPECT ( outer_QI_test  )

◆ DEFINE_EXPECT() [66/77]

DEFINE_EXPECT ( QueryStatus_IDM_STOP  )

◆ DEFINE_EXPECT() [67/77]

DEFINE_EXPECT ( QueryStatus_SETPROGRESSTEXT  )

◆ DEFINE_EXPECT() [68/77]

DEFINE_EXPECT ( QueryStatus_STOP  )

◆ DEFINE_EXPECT() [69/77]

DEFINE_EXPECT ( RequestUIActivate  )

◆ DEFINE_EXPECT() [70/77]

DEFINE_EXPECT ( SetMenu  )

◆ DEFINE_EXPECT() [71/77]

DEFINE_EXPECT ( SetStatusText  )

◆ DEFINE_EXPECT() [72/77]

DEFINE_EXPECT ( ShowObject  )

◆ DEFINE_EXPECT() [73/77]

DEFINE_EXPECT ( ShowUI  )

◆ DEFINE_EXPECT() [74/77]

DEFINE_EXPECT ( Site_GetWindow  )

◆ DEFINE_EXPECT() [75/77]

DEFINE_EXPECT ( TranslateUrl  )

◆ DEFINE_EXPECT() [76/77]

DEFINE_EXPECT ( UIWindow_SetActiveObject  )

◆ DEFINE_EXPECT() [77/77]

DEFINE_EXPECT ( UpdateUI  )

◆ DEFINE_GUID() [1/3]

DEFINE_GUID ( GUID_NULL  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0  ,
0   
)

◆ DEFINE_GUID() [2/3]

DEFINE_GUID ( IID_IProxyManager  ,
0x00000008  ,
0x0000  ,
0x0000  ,
0xc0  ,
0x00  ,
0x00  ,
0x00  ,
0x00  ,
0x00  ,
0x00  ,
0x46   
)

◆ DEFINE_GUID() [3/3]

DEFINE_GUID ( outer_test_iid  ,
0x06d4cd6c  ,
0x18dd  ,
0x11ea  ,
0x8e  ,
0x76  ,
0xfc  ,
0xaa  ,
0x14  ,
0x72  ,
0x2d  ,
0xac   
)

◆ DEFINE_OLEGUID()

DEFINE_OLEGUID ( CGID_DocHostCmdPriv  ,
0x000214D4L  ,
0  ,
0   
)

◆ Dispatch_AddRef()

static ULONG WINAPI Dispatch_AddRef ( IDispatch *  iface)
static

Definition at line 601 of file webbrowser.c.

602{
603 return 2;
604}

◆ Dispatch_GetIDsOfNames()

static HRESULT WINAPI Dispatch_GetIDsOfNames ( IDispatch *  iface,
REFIID  riid,
LPOLESTR *  rgszNames,
UINT  cNames,
LCID  lcid,
DISPID *  rgDispId 
)
static

Definition at line 624 of file webbrowser.c.

626{
627 ok(0, "unexpected call\n");
628 return E_NOTIMPL;
629}

◆ Dispatch_GetTypeInfo()

static HRESULT WINAPI Dispatch_GetTypeInfo ( IDispatch *  iface,
UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
static

Definition at line 617 of file webbrowser.c.

619{
620 ok(0, "unexpected call\n");
621 return E_NOTIMPL;
622}

◆ Dispatch_GetTypeInfoCount()

static HRESULT WINAPI Dispatch_GetTypeInfoCount ( IDispatch *  iface,
UINT *  pctinfo 
)
static

Definition at line 611 of file webbrowser.c.

612{
613 ok(0, "unexpected call\n");
614 return E_NOTIMPL;
615}

◆ Dispatch_Invoke()

static HRESULT WINAPI Dispatch_Invoke ( IDispatch *  iface,
DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT *  pVarResult,
EXCEPINFO *  pExcepInfo,
UINT *  puArgErr 
)
static

Definition at line 631 of file webbrowser.c.

634{
635 ok(IsEqualGUID(&IID_NULL, riid), "riid != IID_NULL\n");
636 ok(pDispParams != NULL, "pDispParams == NULL\n");
637 ok(pExcepInfo == NULL, "pExcepInfo=%p, expected NULL\n", pExcepInfo);
638 ok(V_VT(pVarResult) == VT_EMPTY, "V_VT(pVarResult)=%d\n", V_VT(pVarResult));
639 ok(wFlags == DISPATCH_PROPERTYGET, "wFlags=%08x, expected DISPATCH_PROPERTYGET\n", wFlags);
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);
645
646 switch(dispIdMember) {
648 CHECK_EXPECT2(Invoke_AMBIENT_USERMODE);
649 return E_FAIL;
651 CHECK_EXPECT(Invoke_AMBIENT_DLCONTROL);
652 ok(puArgErr != NULL, "puArgErr=%p\n", puArgErr);
653 return E_FAIL;
655 CHECK_EXPECT(Invoke_AMBIENT_USERAGENT);
656 ok(puArgErr != NULL, "puArgErr=%p\n", puArgErr);
657 return E_FAIL;
659 CHECK_EXPECT(Invoke_AMBIENT_PALETTE);
660 ok(puArgErr != NULL, "puArgErr=%p\n", puArgErr);
661 return E_FAIL;
663 CHECK_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
664 ok(puArgErr == NULL, "puArgErr=%p\n", puArgErr);
665 V_VT(pVarResult) = VT_BOOL;
666 V_BOOL(pVarResult) = VARIANT_FALSE;
667 return S_OK;
669 CHECK_EXPECT(Invoke_AMBIENT_SILENT);
670 ok(puArgErr == NULL, "puArgErr=%p\n", puArgErr);
671 V_VT(pVarResult) = VT_BOOL;
672 V_BOOL(pVarResult) = VARIANT_FALSE;
673 return S_OK;
674 }
675
676 ok(0, "unexpected dispIdMember %ld\n", dispIdMember);
677 return E_NOTIMPL;
678}
@ VT_EMPTY
Definition: compat.h:2295
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED
Definition: idispids.h:25
#define DISPID_AMBIENT_SILENT
Definition: idispids.h:26
#define CHECK_EXPECT2(func)
Definition: webbrowser.c:58
#define DISPID_AMBIENT_DLCONTROL
Definition: mshtmdid.h:539
#define DISPID_AMBIENT_USERAGENT
Definition: mshtmdid.h:540
#define DISPATCH_PROPERTYGET
Definition: oleauto.h:1007
#define DISPID_AMBIENT_USERMODE
Definition: olectl.h:405
#define DISPID_AMBIENT_PALETTE
Definition: olectl.h:415
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define IID_NULL
Definition: guiddef.h:98
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon_undoc.h:337

◆ Dispatch_QueryInterface()

static HRESULT WINAPI Dispatch_QueryInterface ( IDispatch *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 596 of file webbrowser.c.

597{
598 return QueryInterface(riid, ppv);
599}

◆ Dispatch_Release()

static ULONG WINAPI Dispatch_Release ( IDispatch *  iface)
static

Definition at line 606 of file webbrowser.c.

607{
608 return 1;
609}

◆ DocHostUIHandler_AddRef()

static ULONG WINAPI DocHostUIHandler_AddRef ( IDocHostUIHandler2 *  iface)
static

Definition at line 1563 of file webbrowser.c.

1564{
1565 return 2;
1566}

◆ DocHostUIHandler_EnableModeless()

static HRESULT WINAPI DocHostUIHandler_EnableModeless ( IDocHostUIHandler2 *  iface,
BOOL  fEnable 
)
static

Definition at line 1614 of file webbrowser.c.

1615{
1616 if(fEnable)
1617 CHECK_EXPECT(DocHost_EnableModeless_TRUE);
1618 else
1619 CHECK_EXPECT(DocHost_EnableModeless_FALSE);
1620
1621 return S_OK;
1622}

◆ DocHostUIHandler_FilterDataObject()

static HRESULT WINAPI DocHostUIHandler_FilterDataObject ( IDocHostUIHandler2 *  iface,
IDataObject *  pDO,
IDataObject **  ppPORet 
)
static

Definition at line 1687 of file webbrowser.c.

1689{
1690 ok(0, "unexpected call\n");
1691 return E_NOTIMPL;
1692}

◆ DocHostUIHandler_GetDropTarget()

static HRESULT WINAPI DocHostUIHandler_GetDropTarget ( IDocHostUIHandler2 *  iface,
IDropTarget *  pDropTarget,
IDropTarget **  ppDropTarget 
)
static

Definition at line 1665 of file webbrowser.c.

1667{
1668 CHECK_EXPECT(GetDropTarget);
1669 return E_NOTIMPL;
1670}

◆ DocHostUIHandler_GetExternal()

static HRESULT WINAPI DocHostUIHandler_GetExternal ( IDocHostUIHandler2 *  iface,
IDispatch **  ppDispatch 
)
static

Definition at line 1672 of file webbrowser.c.

1673{
1674 CHECK_EXPECT(GetExternal);
1675 *ppDispatch = NULL;
1676 return S_FALSE;
1677}

◆ DocHostUIHandler_GetHostInfo()

static HRESULT WINAPI DocHostUIHandler_GetHostInfo ( IDocHostUIHandler2 *  iface,
DOCHOSTUIINFO *  pInfo 
)
static

Definition at line 1580 of file webbrowser.c.

1581{
1582 CHECK_EXPECT2(GetHostInfo);
1583 ok(pInfo != NULL, "pInfo=NULL\n");
1584 if(pInfo) {
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);
1590 }
1591 return E_FAIL;
1592}

◆ DocHostUIHandler_GetOptionKeyPath()

static HRESULT WINAPI DocHostUIHandler_GetOptionKeyPath ( IDocHostUIHandler2 *  iface,
LPOLESTR *  pchKey,
DWORD  dw 
)
static

Definition at line 1654 of file webbrowser.c.

1656{
1657 CHECK_EXPECT(GetOptionKeyPath);
1658 ok(pchKey != NULL, "pchKey==NULL\n");
1659 if(pchKey)
1660 ok(*pchKey == NULL, "*pchKey=%p\n", *pchKey);
1661 ok(!dw, "dw=%lx\n", dw);
1662 return E_NOTIMPL;
1663}
REFIID LPVOID DWORD_PTR dw
Definition: atlbase.h:40

◆ DocHostUIHandler_GetOverrideKeyPath()

static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath ( IDocHostUIHandler2 *  iface,
LPOLESTR *  pchKey,
DWORD  dw 
)
static

Definition at line 1694 of file webbrowser.c.

1696{
1697 CHECK_EXPECT(GetOverridesKeyPath);
1698 ok(pchKey != NULL, "pchKey==NULL\n");
1699 if(pchKey)
1700 ok(*pchKey == NULL, "*pchKey=%p\n", *pchKey);
1701 ok(!dw, "dw=%lx\n", dw);
1702 return E_NOTIMPL;
1703}

◆ DocHostUIHandler_HideUI()

static HRESULT WINAPI DocHostUIHandler_HideUI ( IDocHostUIHandler2 *  iface)
static

Definition at line 1602 of file webbrowser.c.

1603{
1604 CHECK_EXPECT(HideUI);
1605 return E_NOTIMPL;
1606}

◆ DocHostUIHandler_OnDocWindowActivate()

static HRESULT WINAPI DocHostUIHandler_OnDocWindowActivate ( IDocHostUIHandler2 *  iface,
BOOL  fActivate 
)
static

Definition at line 1624 of file webbrowser.c.

1625{
1626 ok(0, "unexpected call\n");
1627 return E_NOTIMPL;
1628}

◆ DocHostUIHandler_OnFrameWindowActivate()

static HRESULT WINAPI DocHostUIHandler_OnFrameWindowActivate ( IDocHostUIHandler2 *  iface,
BOOL  fActivate 
)
static

Definition at line 1630 of file webbrowser.c.

1631{
1632 ok(0, "unexpected call\n");
1633 return E_NOTIMPL;
1634}

◆ DocHostUIHandler_QueryInterface()

static HRESULT WINAPI DocHostUIHandler_QueryInterface ( IDocHostUIHandler2 *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1558 of file webbrowser.c.

1559{
1560 return QueryInterface(riid, ppv);
1561}

◆ DocHostUIHandler_Release()

static ULONG WINAPI DocHostUIHandler_Release ( IDocHostUIHandler2 *  iface)
static

Definition at line 1568 of file webbrowser.c.

1569{
1570 return 1;
1571}

◆ DocHostUIHandler_ResizeBorder()

static HRESULT WINAPI DocHostUIHandler_ResizeBorder ( IDocHostUIHandler2 *  iface,
LPCRECT  prcBorder,
IOleInPlaceUIWindow *  pUIWindow,
BOOL  fRameWindow 
)
static

Definition at line 1636 of file webbrowser.c.

1638{
1639 ok(0, "unexpected call\n");
1640 return E_NOTIMPL;
1641}

◆ DocHostUIHandler_ShowContextMenu()

static HRESULT WINAPI DocHostUIHandler_ShowContextMenu ( IDocHostUIHandler2 *  iface,
DWORD  dwID,
POINT *  ppt,
IUnknown *  pcmdtReserved,
IDispatch *  pdicpReserved 
)
static

Definition at line 1573 of file webbrowser.c.

1575{
1576 ok(0, "unexpected call %ld %p %p %p\n", dwID, ppt, pcmdtReserved, pdicpReserved);
1577 return S_FALSE;
1578}

◆ DocHostUIHandler_ShowUI()

static HRESULT WINAPI DocHostUIHandler_ShowUI ( IDocHostUIHandler2 *  iface,
DWORD  dwID,
IOleInPlaceActiveObject *  pActiveObject,
IOleCommandTarget *  pCommandTarget,
IOleInPlaceFrame *  pFrame,
IOleInPlaceUIWindow *  pDoc 
)
static

Definition at line 1594 of file webbrowser.c.

1597{
1598 CHECK_EXPECT(ShowUI);
1599 return E_NOTIMPL;
1600}

◆ DocHostUIHandler_TranslateAccelerator()

static HRESULT WINAPI DocHostUIHandler_TranslateAccelerator ( IDocHostUIHandler2 *  iface,
LPMSG  lpMsg,
const GUID *  pguidCmdGroup,
DWORD  nCmdID 
)
static

Definition at line 1643 of file webbrowser.c.

1645{
1646 CHECK_EXPECT(DocHost_TranslateAccelerator);
1647 ok(pguidCmdGroup != NULL, "Got NULL pguidCmdGroup.\n");
1648 if(pguidCmdGroup)
1649 ok(IsEqualGUID(pguidCmdGroup, &CGID_MSHTML), "Unexpected pguidCmdGroup\n");
1650 ok(lpMsg != NULL, "Got NULL lpMsg.\n");
1652}
static HRESULT hr_dochost_TranslateAccelerator
Definition: webbrowser.c:170

◆ DocHostUIHandler_TranslateUrl()

static HRESULT WINAPI DocHostUIHandler_TranslateUrl ( IDocHostUIHandler2 *  iface,
DWORD  dwTranslate,
OLECHAR *  pchURLIn,
OLECHAR **  ppchURLOut 
)
static

Definition at line 1679 of file webbrowser.c.

1681{
1683 CHECK_EXPECT(TranslateUrl);
1684 return E_NOTIMPL;
1685}
#define todo_wine_if(is_todo)
Definition: minitest.h:81
static BOOL is_downloading
Definition: webbrowser.c:168
static DWORD dwl_flags
Definition: webbrowser.c:195
#define DWL_EXPECT_BEFORE_NAVIGATE
Definition: webbrowser.c:187

◆ DocHostUIHandler_UpdateUI()

static HRESULT WINAPI DocHostUIHandler_UpdateUI ( IDocHostUIHandler2 *  iface)
static

Definition at line 1608 of file webbrowser.c.

1609{
1610 CHECK_EXPECT2(UpdateUI);
1611 return E_NOTIMPL;
1612}

◆ get_hwnd()

static HWND get_hwnd ( IWebBrowser2 *  unk)
static

Definition at line 1927 of file webbrowser.c.

1928{
1929 IOleInPlaceObject *inplace;
1930 HWND hwnd;
1931 HRESULT hres;
1932
1933 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleInPlaceObject, (void**)&inplace);
1934 ok(hres == S_OK, "QueryInterface(IID_OleInPlaceObject) failed: %08lx\n", hres);
1935
1936 hres = IOleInPlaceObject_GetWindow(inplace, &hwnd);
1937 ok(hres == S_OK, "GetWindow failed: %08lx\n", hres);
1938
1939 IOleInPlaceObject_Release(inplace);
1940 return hwnd;
1941}
const GUID IID_IOleInPlaceObject
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ iface_cmp()

static BOOL iface_cmp ( IUnknown *  iface1,
IUnknown *  iface2 
)
static

Definition at line 222 of file webbrowser.c.

223{
224 IUnknown *unk1, *unk2;
225
226 if(iface1 == iface2)
227 return TRUE;
228
229 IUnknown_QueryInterface(iface1, &IID_IUnknown, (void**)&unk1);
230 IUnknown_Release(unk1);
231 IUnknown_QueryInterface(iface2, &IID_IUnknown, (void**)&unk2);
232 IUnknown_Release(unk2);
233
234 return unk1 == unk2;
235}
const GUID IID_IUnknown
static DWORD unk1
Definition: cursoricon.c:1804

Referenced by _test_form_elements(), test_attr(), test_create_stylesheet(), test_doc_elem(), test_docfrag(), test_dochost_qs(), test_elems(), test_elems2(), test_form_item(), test_frame_doc(), test_history(), test_iframe_elem(), test_mime_types_col(), test_option_form(), test_plugins_col(), test_screen(), test_select_elem(), and test_select_form().

◆ init_test()

static void init_test ( IWebBrowser2 *  webbrowser,
DWORD  flags 
)
static

Definition at line 3832 of file webbrowser.c.

3833{
3834 wb = webbrowser;
3835
3838 dwl_flags = 0;
3841}
GLbitfield flags
Definition: glext.h:7161
static BOOL do_download
Definition: webbrowser.c:168
static BOOL use_container_olecmd
Definition: webbrowser.c:168
static BOOL use_container_dochostui
Definition: webbrowser.c:169
static BOOL is_first_load
Definition: webbrowser.c:168
#define TEST_NOOLECMD
Definition: webbrowser.c:3829
#define TEST_NODOCHOST
Definition: webbrowser.c:3830
#define TEST_DOWNLOAD
Definition: webbrowser.c:3828

◆ InPlaceFrame_EnableModeless()

static HRESULT WINAPI InPlaceFrame_EnableModeless ( IOleInPlaceFrame *  iface,
BOOL  fEnable 
)
static

Definition at line 1344 of file webbrowser.c.

1345{
1346 if(fEnable)
1347 CHECK_EXPECT2(EnableModeless_TRUE);
1348 else
1349 CHECK_EXPECT2(EnableModeless_FALSE);
1350 return S_OK;
1351}

◆ InPlaceFrame_GetWindow()

static HRESULT WINAPI InPlaceFrame_GetWindow ( IOleInPlaceFrame *  iface,
HWND *  phwnd 
)
static

Definition at line 1250 of file webbrowser.c.

1251{
1253 ok(phwnd != NULL, "phwnd == NULL\n");
1254 if(phwnd)
1255 *phwnd = container_hwnd;
1256 return S_OK;
1257}
static HRESULT STDMETHODCALLTYPE Frame_GetWindow(IOleInPlaceFrame *iface, HWND *lphwnd)
Definition: webbrowser.c:474

◆ InPlaceFrame_InsertMenus()

static HRESULT WINAPI InPlaceFrame_InsertMenus ( IOleInPlaceFrame *  iface,
HMENU  hmenuShared,
LPOLEMENUGROUPWIDTHS  lpMenuWidths 
)
static

Definition at line 1313 of file webbrowser.c.

1315{
1316 ok(0, "unexpected call\n");
1317 return E_NOTIMPL;
1318}

◆ InPlaceFrame_RemoveMenus()

static HRESULT WINAPI InPlaceFrame_RemoveMenus ( IOleInPlaceFrame *  iface,
HMENU  hmenuShared 
)
static

Definition at line 1331 of file webbrowser.c.

1332{
1333 ok(0, "unexpected call\n");
1334 return E_NOTIMPL;
1335}

◆ InPlaceFrame_SetActiveObject()

static HRESULT WINAPI InPlaceFrame_SetActiveObject ( IOleInPlaceFrame *  iface,
IOleInPlaceActiveObject *  pActiveObject,
LPCOLESTR  pszObjName 
)
static

Definition at line 1299 of file webbrowser.c.

1301{
1303 if(!test_close && !test_hide) {
1304 ok(pActiveObject != NULL, "pActiveObject = NULL\n");
1305 ok(!lstrcmpW(pszObjName, L"item"), "unexpected pszObjName\n");
1306 } else {
1307 ok(!pActiveObject, "pActiveObject != NULL\n");
1308 ok(!pszObjName, "pszObjName != NULL\n");
1309 }
1310 return S_OK;
1311}
static HRESULT STDMETHODCALLTYPE Frame_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
Definition: webbrowser.c:502
static BOOL test_close
Definition: webbrowser.c:169
static BOOL test_hide
Definition: webbrowser.c:169

◆ InPlaceFrame_SetMenu()

static HRESULT WINAPI InPlaceFrame_SetMenu ( IOleInPlaceFrame *  iface,
HMENU  hmenuShared,
HOLEMENU  holemenu,
HWND  hwndActiveObject 
)
static

Definition at line 1320 of file webbrowser.c.

1322{
1324 ok(hmenuShared == NULL, "hmenuShared=%p\n", hmenuShared);
1325 ok(holemenu == NULL, "holemenu=%p\n", holemenu);
1326 ok(hwndActiveObject == shell_embedding_hwnd, "hwndActiveObject=%p, expected %p\n",
1327 hwndActiveObject, shell_embedding_hwnd);
1328 return S_OK;
1329}
static HWND shell_embedding_hwnd
Definition: webbrowser.c:167
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)

◆ InPlaceFrame_SetStatusText()

static HRESULT WINAPI InPlaceFrame_SetStatusText ( IOleInPlaceFrame *  iface,
LPCOLESTR  pszStatusText 
)
static

Definition at line 1337 of file webbrowser.c.

1338{
1339 CHECK_EXPECT2(SetStatusText);
1340 /* FIXME: Check pszStatusText */
1341 return S_OK;
1342}

◆ InPlaceFrame_TranslateAccelerator()

static HRESULT WINAPI InPlaceFrame_TranslateAccelerator ( IOleInPlaceFrame *  iface,
LPMSG  lpmsg,
WORD  wID 
)
static

Definition at line 1353 of file webbrowser.c.

1354{
1355 ok(0, "unexpected call\n");
1356 return E_NOTIMPL;
1357}

◆ InPlaceSite_AddRef()

static ULONG WINAPI InPlaceSite_AddRef ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1398 of file webbrowser.c.

1399{
1400 return 2;
1401}

◆ InPlaceSite_CanInPlaceActivate()

static HRESULT WINAPI InPlaceSite_CanInPlaceActivate ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1423 of file webbrowser.c.

1424{
1425 CHECK_EXPECT(CanInPlaceActivate);
1426 return S_OK;
1427}

◆ InPlaceSite_ContextSensitiveHelp()

static HRESULT WINAPI InPlaceSite_ContextSensitiveHelp ( IOleInPlaceSiteEx *  iface,
BOOL  fEnterMode 
)
static

Definition at line 1417 of file webbrowser.c.

1418{
1419 ok(0, "unexpected call\n");
1420 return E_NOTIMPL;
1421}

◆ InPlaceSite_DeactivateAndUndo()

static HRESULT WINAPI InPlaceSite_DeactivateAndUndo ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1503 of file webbrowser.c.

1504{
1505 ok(0, "unexpected call\n");
1506 return E_NOTIMPL;
1507}

◆ InPlaceSite_DiscardUndoState()

static HRESULT WINAPI InPlaceSite_DiscardUndoState ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1497 of file webbrowser.c.

1498{
1499 ok(0, "unexpected call\n");
1500 return E_NOTIMPL;
1501}

◆ InPlaceSite_GetWindow()

static HRESULT WINAPI InPlaceSite_GetWindow ( IOleInPlaceSiteEx *  iface,
HWND *  phwnd 
)
static

Definition at line 1408 of file webbrowser.c.

1409{
1410 CHECK_EXPECT(Site_GetWindow);
1411 ok(phwnd != NULL, "phwnd == NULL\n");
1412 if(phwnd)
1413 *phwnd = container_hwnd;
1414 return S_OK;
1415}

◆ InPlaceSite_GetWindowContext()

static HRESULT WINAPI InPlaceSite_GetWindowContext ( IOleInPlaceSiteEx *  iface,
IOleInPlaceFrame **  ppFrame,
IOleInPlaceUIWindow **  ppDoc,
LPRECT  lprcPosRect,
LPRECT  lprcClipRect,
LPOLEINPLACEFRAMEINFO  lpFrameInfo 
)
static

Definition at line 1441 of file webbrowser.c.

1444{
1445 static const RECT pos_rect = {2,1,1002,901};
1446 static const RECT clip_rect = {10,10,990,890};
1447
1448 CHECK_EXPECT(GetWindowContext);
1449
1450 ok(ppFrame != NULL, "ppFrame = NULL\n");
1451 if(ppFrame)
1452 *ppFrame = &InPlaceFrame;
1453
1454 ok(ppDoc != NULL, "ppDoc = NULL\n");
1455 if(ppDoc)
1456 *ppDoc = &InPlaceUIWindow;
1457
1458 ok(lprcPosRect != NULL, "lprcPosRect = NULL\n");
1459 if(lprcPosRect)
1460 memcpy(lprcPosRect, &pos_rect, sizeof(RECT));
1461
1462 ok(lprcClipRect != NULL, "lprcClipRect = NULL\n");
1463 if(lprcClipRect)
1464 memcpy(lprcClipRect, &clip_rect, sizeof(RECT));
1465
1466 ok(lpFrameInfo != NULL, "lpFrameInfo = NULL\n");
1467 if(lpFrameInfo) {
1468 ok(lpFrameInfo->cb == sizeof(*lpFrameInfo), "lpFrameInfo->cb = %u, expected %u\n", lpFrameInfo->cb, (unsigned)sizeof(*lpFrameInfo));
1469 lpFrameInfo->fMDIApp = FALSE;
1470 lpFrameInfo->hwndFrame = container_hwnd;
1471 lpFrameInfo->haccel = NULL;
1472 lpFrameInfo->cAccelEntries = 0;
1473 }
1474
1475 return S_OK;
1476}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static IOleInPlaceFrame InPlaceFrame
Definition: webbrowser.c:1391
static IOleInPlaceUIWindow InPlaceUIWindow
Definition: webbrowser.c:1371

◆ InPlaceSite_OnInPlaceActivate()

static HRESULT WINAPI InPlaceSite_OnInPlaceActivate ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1429 of file webbrowser.c.

1430{
1431 CHECK_EXPECT(OnInPlaceActivate);
1432 return S_OK;
1433}

◆ InPlaceSite_OnInPlaceActivateEx()

static HRESULT WINAPI InPlaceSite_OnInPlaceActivateEx ( IOleInPlaceSiteEx *  iface,
BOOL *  pNoRedraw,
DWORD  dwFlags 
)
static

Definition at line 1515 of file webbrowser.c.

1517{
1518 ok(0, "unexpected call\n");
1519 return E_NOTIMPL;
1520}

◆ InPlaceSite_OnInPlaceDeactivate()

static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivate ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1491 of file webbrowser.c.

1492{
1493 CHECK_EXPECT(OnInPlaceDeactivate);
1494 return S_OK;
1495}

◆ InPlaceSite_OnInPlaceDeactivateEx()

static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivateEx ( IOleInPlaceSiteEx *  iface,
BOOL  fNoRedraw 
)
static

Definition at line 1522 of file webbrowser.c.

1524{
1525 ok(0, "unexpected call\n");
1526 return E_NOTIMPL;
1527}

◆ InPlaceSite_OnPosRectChange()

static HRESULT WINAPI InPlaceSite_OnPosRectChange ( IOleInPlaceSiteEx *  iface,
LPCRECT  lprcPosRect 
)
static

Definition at line 1509 of file webbrowser.c.

1510{
1511 ok(0, "unexpected call\n");
1512 return E_NOTIMPL;
1513}

◆ InPlaceSite_OnUIActivate()

static HRESULT WINAPI InPlaceSite_OnUIActivate ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1435 of file webbrowser.c.

1436{
1437 CHECK_EXPECT(OnUIActivate);
1438 return S_OK;
1439}

◆ InPlaceSite_OnUIDeactivate()

static HRESULT WINAPI InPlaceSite_OnUIDeactivate ( IOleInPlaceSiteEx *  iface,
BOOL  fUndoable 
)
static

Definition at line 1484 of file webbrowser.c.

1485{
1486 CHECK_EXPECT(OnUIDeactivate);
1487 ok(!fUndoable, "fUndoable should be FALSE\n");
1488 return S_OK;
1489}

◆ InPlaceSite_QueryInterface()

static HRESULT WINAPI InPlaceSite_QueryInterface ( IOleInPlaceSiteEx *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1393 of file webbrowser.c.

1394{
1395 return QueryInterface(riid, ppv);
1396}

◆ InPlaceSite_Release()

static ULONG WINAPI InPlaceSite_Release ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1403 of file webbrowser.c.

1404{
1405 return 1;
1406}

◆ InPlaceSite_RequestUIActivate()

static HRESULT WINAPI InPlaceSite_RequestUIActivate ( IOleInPlaceSiteEx *  iface)
static

Definition at line 1529 of file webbrowser.c.

1530{
1531 CHECK_EXPECT2(RequestUIActivate);
1532 return S_OK;
1533}

◆ InPlaceSite_Scroll()

static HRESULT WINAPI InPlaceSite_Scroll ( IOleInPlaceSiteEx *  iface,
SIZE  scrollExtant 
)
static

Definition at line 1478 of file webbrowser.c.

1479{
1480 ok(0, "unexpected call\n");
1481 return E_NOTIMPL;
1482}

◆ InPlaceUIWindow_AddRef()

static ULONG WINAPI InPlaceUIWindow_AddRef ( IOleInPlaceFrame *  iface)
static

Definition at line 1234 of file webbrowser.c.

1235{
1236 return 2;
1237}

◆ InPlaceUIWindow_ContextSensitiveHelp()

static HRESULT WINAPI InPlaceUIWindow_ContextSensitiveHelp ( IOleInPlaceFrame *  iface,
BOOL  fEnterMode 
)
static

Definition at line 1259 of file webbrowser.c.

1260{
1261 ok(0, "unexpected call\n");
1262 return E_NOTIMPL;
1263}

◆ InPlaceUIWindow_GetBorder()

static HRESULT WINAPI InPlaceUIWindow_GetBorder ( IOleInPlaceFrame *  iface,
LPRECT  lprectBorder 
)
static

Definition at line 1265 of file webbrowser.c.

1266{
1267 ok(0, "unexpected call\n");
1268 return E_NOTIMPL;
1269}

◆ InPlaceUIWindow_GetWindow()

static HRESULT WINAPI InPlaceUIWindow_GetWindow ( IOleInPlaceFrame *  iface,
HWND *  phwnd 
)
static

Definition at line 1244 of file webbrowser.c.

1245{
1246 ok(0, "unexpected call\n");
1247 return E_NOTIMPL;
1248}

◆ InPlaceUIWindow_QueryInterface()

static HRESULT WINAPI InPlaceUIWindow_QueryInterface ( IOleInPlaceFrame *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1227 of file webbrowser.c.

1229{
1230 ok(0, "unexpected call\n");
1231 return E_NOINTERFACE;
1232}
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ InPlaceUIWindow_Release()

static ULONG WINAPI InPlaceUIWindow_Release ( IOleInPlaceFrame *  iface)
static

Definition at line 1239 of file webbrowser.c.

1240{
1241 return 1;
1242}

◆ InPlaceUIWindow_RequestBorderSpace()

static HRESULT WINAPI InPlaceUIWindow_RequestBorderSpace ( IOleInPlaceFrame *  iface,
LPCBORDERWIDTHS  pborderwidths 
)
static

Definition at line 1271 of file webbrowser.c.

1273{
1274 ok(0, "unexpected call\n");
1275 return E_NOTIMPL;
1276}

◆ InPlaceUIWindow_SetActiveObject()

static HRESULT WINAPI InPlaceUIWindow_SetActiveObject ( IOleInPlaceFrame *  iface,
IOleInPlaceActiveObject *  pActiveObject,
LPCOLESTR  pszObjName 
)
static

Definition at line 1285 of file webbrowser.c.

1287{
1288 CHECK_EXPECT(UIWindow_SetActiveObject);
1289 if(!test_close && !test_hide) {
1290 ok(pActiveObject != NULL, "pActiveObject = NULL\n");
1291 ok(!lstrcmpW(pszObjName, L"item"), "unexpected pszObjName\n");
1292 } else {
1293 ok(!pActiveObject, "pActiveObject != NULL\n");
1294 ok(!pszObjName, "pszObjName != NULL\n");
1295 }
1296 return S_OK;
1297}

◆ InPlaceUIWindow_SetBorderSpace()

static HRESULT WINAPI InPlaceUIWindow_SetBorderSpace ( IOleInPlaceFrame *  iface,
LPCBORDERWIDTHS  pborderwidths 
)
static

Definition at line 1278 of file webbrowser.c.

1280{
1281 ok(0, "unexpected call\n");
1282 return E_NOTIMPL;
1283}

◆ IOleControlSite_fnAddRef()

static ULONG WINAPI IOleControlSite_fnAddRef ( IOleControlSite *  iface)
static

Definition at line 1151 of file webbrowser.c.

1152{
1153 return 2;
1154}

◆ IOleControlSite_fnGetExtendedControl()

static HRESULT WINAPI IOleControlSite_fnGetExtendedControl ( IOleControlSite *  This,
IDispatch **  ppDisp 
)
static

Definition at line 1174 of file webbrowser.c.

1176{
1177 ok(0, "unexpected call\n");
1178 return E_NOTIMPL;
1179}

◆ IOleControlSite_fnLockInPlaceActive()

static HRESULT WINAPI IOleControlSite_fnLockInPlaceActive ( IOleControlSite *  This,
BOOL  fLock 
)
static

Definition at line 1167 of file webbrowser.c.

1169{
1170 ok(0, "unexpected call\n");
1171 return E_NOTIMPL;
1172}

◆ IOleControlSite_fnOnControlInfoChanged()

static HRESULT WINAPI IOleControlSite_fnOnControlInfoChanged ( IOleControlSite *  This)
static

Definition at line 1161 of file webbrowser.c.

1162{
1163 ok(0, "unexpected call\n");
1164 return E_NOTIMPL;
1165}

◆ IOleControlSite_fnOnFocus()

static HRESULT WINAPI IOleControlSite_fnOnFocus ( IOleControlSite *  This,
BOOL  fGotFocus 
)
static

Definition at line 1197 of file webbrowser.c.

1198{
1199 if(fGotFocus)
1200 CHECK_EXPECT2(OnFocus_TRUE);
1201 else
1202 CHECK_EXPECT2(OnFocus_FALSE);
1203 return E_NOTIMPL;
1204}

◆ IOleControlSite_fnQueryInterface()

static HRESULT WINAPI IOleControlSite_fnQueryInterface ( IOleControlSite *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1145 of file webbrowser.c.

1146{
1147 *ppv = NULL;
1148 return E_NOINTERFACE;
1149}

◆ IOleControlSite_fnRelease()

static ULONG WINAPI IOleControlSite_fnRelease ( IOleControlSite *  iface)
static

Definition at line 1156 of file webbrowser.c.

1157{
1158 return 1;
1159}

◆ IOleControlSite_fnShowPropertyFrame()

static HRESULT WINAPI IOleControlSite_fnShowPropertyFrame ( IOleControlSite *  This)
static

Definition at line 1206 of file webbrowser.c.

1207{
1208 ok(0, "unexpected call\n");
1209 return E_NOTIMPL;
1210}

◆ IOleControlSite_fnTransformCoords()

static HRESULT WINAPI IOleControlSite_fnTransformCoords ( IOleControlSite *  This,
POINTL *  pPtlHimetric,
POINTF *  pPtfContainer,
DWORD  dwFlags 
)
static

Definition at line 1181 of file webbrowser.c.

1185{
1186 ok(0, "unexpected call\n");
1187 return E_NOTIMPL;
1188}

◆ IOleControlSite_fnTranslateAccelerator()

static HRESULT WINAPI IOleControlSite_fnTranslateAccelerator ( IOleControlSite *  This,
MSG *  pMsg,
DWORD  grfModifiers 
)
static

Definition at line 1190 of file webbrowser.c.

1192{
1195}
static HRESULT WINAPI ControlSite_TranslateAccelerator(IOleControlSite *iface, MSG *pMsg, DWORD grfModifiers)
Definition: client.c:465
static HRESULT hr_site_TranslateAccelerator
Definition: webbrowser.c:171

◆ is_ie_hardened()

static BOOL is_ie_hardened ( void  )
static

Definition at line 4233 of file webbrowser.c.

4234{
4235 HKEY zone_map;
4236 DWORD ie_harden, type, size;
4237
4238 ie_harden = 0;
4239 if(RegOpenKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap",
4240 0, KEY_QUERY_VALUE, &zone_map) == ERROR_SUCCESS) {
4241 size = sizeof(DWORD);
4242 if (RegQueryValueExA(zone_map, "IEHarden", NULL, &type, (LPBYTE) &ie_harden, &size) != ERROR_SUCCESS ||
4243 type != REG_DWORD) {
4244 ie_harden = 0;
4245 }
4246 RegCloseKey(zone_map);
4247 }
4248
4249 return ie_harden != 0;
4250}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
#define KEY_QUERY_VALUE
Definition: nt_native.h:1019
#define DWORD
Definition: nt_native.h:44
#define REG_DWORD
Definition: sdbapi.c:615
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by START_TEST(), test_HTMLDocument_http(), and test_submit().

◆ is_lang_english()

static BOOL is_lang_english ( void  )
static

Definition at line 202 of file webbrowser.c.

203{
204 static HMODULE hkernel32 = NULL;
205 static LANGID (WINAPI *pGetThreadUILanguage)(void) = NULL;
206 static LANGID (WINAPI *pGetUserDefaultUILanguage)(void) = NULL;
207
208 if (!hkernel32)
209 {
210 hkernel32 = GetModuleHandleA("kernel32.dll");
211 pGetThreadUILanguage = (void*)GetProcAddress(hkernel32, "GetThreadUILanguage");
212 pGetUserDefaultUILanguage = (void*)GetProcAddress(hkernel32, "GetUserDefaultUILanguage");
213 }
214 if (pGetThreadUILanguage)
215 return PRIMARYLANGID(pGetThreadUILanguage()) == LANG_ENGLISH;
216 if (pGetUserDefaultUILanguage)
217 return PRIMARYLANGID(pGetUserDefaultUILanguage()) == LANG_ENGLISH;
218
220}
#define GetProcAddress(x, y)
Definition: compat.h:753
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
LANGID WINAPI GetUserDefaultLangID(void)
Definition: locale.c:1182
USHORT LANGID
Definition: mui.h:9
static HINSTANCE hkernel32
Definition: process.c:68
#define LANG_ENGLISH
Definition: nls.h:52
#define PRIMARYLANGID(l)
Definition: nls.h:16
#define WINAPI
Definition: msvc.h:6

Referenced by test_ie_funcs().

◆ LONG()

static LONG ( WINAPI *  pSetQueryNetSessionCount)
static

◆ OleCommandTarget_AddRef()

static ULONG WINAPI OleCommandTarget_AddRef ( IOleCommandTarget *  iface)
static

Definition at line 350 of file webbrowser.c.

351{
352 return 2;
353}

◆ OleCommandTarget_Exec()

static HRESULT WINAPI OleCommandTarget_Exec ( IOleCommandTarget *  iface,
const GUID *  pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT *  pvaIn,
VARIANT *  pvaOut 
)
static

Definition at line 392 of file webbrowser.c.

394{
395 if(!pguidCmdGroup) {
396 switch(nCmdID) {
397 case OLECMDID_SETPROGRESSMAX:
398 CHECK_EXPECT2(Exec_SETPROGRESSMAX);
399 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
400 ok(pvaIn != NULL, "pvaIn == NULL\n");
401 if(pvaIn)
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);
404 return S_OK;
405 case OLECMDID_SETPROGRESSPOS:
406 CHECK_EXPECT2(Exec_SETPROGRESSPOS);
407 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER, "nCmdexecopts=%08lx\n", nCmdexecopt);
408 ok(pvaIn != NULL, "pvaIn == NULL\n");
409 if(pvaIn)
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);
412 return S_OK;
413 case OLECMDID_SETDOWNLOADSTATE:
415 ok(nCmdexecopt == OLECMDEXECOPT_DONTPROMPTUSER || !nCmdexecopt,
416 "nCmdexecopts=%08lx\n", nCmdexecopt);
417 else
418 ok(!nCmdexecopt, "nCmdexecopts=%08lx\n", nCmdexecopt);
419 ok(pvaOut == NULL, "pvaOut=%p\n", pvaOut);
420 ok(pvaIn != NULL, "pvaIn == NULL\n");
421 ok(V_VT(pvaIn) == VT_I4, "V_VT(pvaIn)=%d\n", V_VT(pvaIn));
422 switch(V_I4(pvaIn)) {
423 case 0:
424 CHECK_EXPECT2(Exec_SETDOWNLOADSTATE_0);
425 break;
426 case 1:
427 CHECK_EXPECT2(Exec_SETDOWNLOADSTATE_1);
428 break;
429 default:
430 ok(0, "unexpected V_I4(pvaIn)=%ld\n", V_I4(pvaIn));
431 }
432 return S_OK;
433 case OLECMDID_UPDATECOMMANDS:
434 CHECK_EXPECT2(Exec_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);
438 return S_OK;
439 case OLECMDID_SETTITLE:
440 CHECK_EXPECT(Exec_SETTITLE);
441 /* TODO: test args */
442 return S_OK;
443 case OLECMDID_STOP:
444 CHECK_EXPECT(Exec_STOP);
445 return S_OK;
446 case IDM_STOP:
447 /* Note:
448 * IDM_STOP is a command specific to CGID_MSHTML (not an OLECMDID command).
449 * This command appears here for the ExecWB and QueryStatusWB tests in order
450 * to help demonstrate that these routines use a NULL pguidCmdGroup.
451 */
452 CHECK_EXPECT(Exec_IDM_STOP);
453 return OLECMDERR_E_NOTSUPPORTED;
454 case OLECMDID_UPDATETRAVELENTRY_DATARECOVERY:
455 case OLECMDID_PAGEAVAILABLE: /* TODO (IE11) */
456 return E_NOTIMPL;
457 case 6058: /* TODO */
458 return E_NOTIMPL;
459 default:
460 ok(0, "unexpected nCmdID %ld\n", nCmdID);
461 }
462 }else if(IsEqualGUID(&CGID_Explorer, pguidCmdGroup)) {
463 switch(nCmdID) {
464 case 20: /* TODO */
465 case 24: /* TODO */
466 case 25: /* IE5 */
467 case 37: /* TODO */
468 case 39: /* TODO */
469 case 66: /* TODO */
470 case 67: /* TODO */
471 case 69: /* TODO */
472 case 101: /* TODO (IE8) */
473 case 109: /* TODO (IE9) */
474 case 113: /* TODO (IE10) */
475 case 119: /* IE11 */
476 return E_FAIL;
477 default:
478 ok(0, "unexpected nCmdID %ld\n", nCmdID);
479 }
480 }else if(IsEqualGUID(&CGID_ShellDocView, pguidCmdGroup)) {
481 switch(nCmdID) {
482 case 63: /* win10 */
483 case 105: /* TODO */
484 case 132: /* win10 */
485 case 133: /* IE11 */
486 case 134: /* TODO (IE10) */
487 case 135: /* IE11 */
488 case 136: /* TODO (IE10) */
489 case 137: /* win10 */
490 case 138: /* TODO */
491 case 140: /* TODO (Win7) */
492 case 144: /* TODO */
493 case 178: /* IE11 */
494 case 179: /* IE11 */
495 case 180: /* IE11 */
496 case 181: /* IE11 */
497 case 182: /* win10 */
498 return E_FAIL;
499 default:
500 ok(0, "unexpected nCmdID %ld\n", nCmdID);
501 }
502 }else if(IsEqualGUID(&CGID_DocHostCmdPriv, pguidCmdGroup)) {
503 switch(nCmdID) {
504 case 11: /* TODO */
505 break;
506 default:
507 ok(0, "unexpected nCmdID %ld of CGID_DocHostCmdPriv\n", nCmdID);
508 }
509 }else if(IsEqualGUID(&CGID_DocHostCommandHandler, pguidCmdGroup)) {
510 switch(nCmdID) {
511 case 6041: /* TODO */
512 break;
513 case 2300:
514 CHECK_EXPECT(Exec_DocHostCommandHandler_2300);
515 return E_NOTIMPL;
516 default:
517 ok(0, "unexpected nCmdID %ld of CGID_DocHostCommandHandler\n", nCmdID);
518 }
519 }else {
520 ok(0, "unexpected pguidCmdGroup %s\n", wine_dbgstr_guid(pguidCmdGroup));
521 }
522
523 return E_FAIL;
524}
#define IDM_STOP
Definition: resource.h:22
@ VT_I4
Definition: compat.h:2298
#define V_I4(A)
Definition: oleauto.h:247
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:181

◆ OleCommandTarget_QueryInterface()

static HRESULT WINAPI OleCommandTarget_QueryInterface ( IOleCommandTarget *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 343 of file webbrowser.c.

345{
346 ok(0, "unexpected call\n");
347 return E_NOINTERFACE;
348}

◆ OleCommandTarget_QueryStatus()

static HRESULT WINAPI OleCommandTarget_QueryStatus ( IOleCommandTarget *  iface,
const GUID *  pguidCmdGroup,
ULONG  cCmds,
OLECMD  prgCmds[],
OLECMDTEXT *  pCmdText 
)
static

Definition at line 360 of file webbrowser.c.

362{
363 ok(!pguidCmdGroup, "pguidCmdGroup != MULL\n");
364 ok(cCmds == 1, "cCmds=%ld, expected 1\n", cCmds);
365 ok(!pCmdText, "pCmdText != NULL\n");
366
367 switch(prgCmds[0].cmdID) {
368 case OLECMDID_STOP:
369 CHECK_EXPECT2(QueryStatus_STOP);
370 prgCmds[0].cmdf = OLECMDF_SUPPORTED;
371 return S_OK;
372 case OLECMDID_SETPROGRESSTEXT:
373 CHECK_EXPECT(QueryStatus_SETPROGRESSTEXT);
374 prgCmds[0].cmdf = OLECMDF_ENABLED;
375 return S_OK;
376 case IDM_STOP:
377 /* Note:
378 * IDM_STOP is a command specific to CGID_MSHTML (not an OLECMDID command).
379 * This command appears here for the ExecWB and QueryStatusWB tests in order
380 * to help demonstrate that these routines use a NULL pguidCmdGroup.
381 */
382 CHECK_EXPECT(QueryStatus_IDM_STOP);
383 prgCmds[0].cmdf = 0;
384 return S_OK;
385 default:
386 ok(0, "unexpected command %ld\n", prgCmds[0].cmdID);
387 }
388
389 return E_FAIL;
390}

◆ OleCommandTarget_Release()

static ULONG WINAPI OleCommandTarget_Release ( IOleCommandTarget *  iface)
static

Definition at line 355 of file webbrowser.c.

356{
357 return 1;
358}

◆ OleContainer_AddRef()

static ULONG WINAPI OleContainer_AddRef ( IOleContainer *  iface)
static

Definition at line 555 of file webbrowser.c.

556{
557 return 2;
558}

◆ OleContainer_EnumObjects()

static HRESULT WINAPI OleContainer_EnumObjects ( IOleContainer *  iface,
DWORD  grfFlags,
IEnumUnknown **  ppenum 
)
static

Definition at line 572 of file webbrowser.c.

574{
575 ok(0, "unexpected call\n");
576 return E_NOTIMPL;
577}

◆ OleContainer_LockContainer()

static HRESULT WINAPI OleContainer_LockContainer ( IOleContainer *  iface,
BOOL  fLock 
)
static

Definition at line 579 of file webbrowser.c.

580{
581 ok(0, "unexpected call\n");
582 return E_NOTIMPL;
583}

◆ OleContainer_ParseDisplayName()

static HRESULT WINAPI OleContainer_ParseDisplayName ( IOleContainer *  iface,
IBindCtx *  pbc,
LPOLESTR  pszDisplayName,
ULONG *  pchEaten,
IMoniker **  ppmkOut 
)
static

Definition at line 565 of file webbrowser.c.

567{
568 ok(0, "unexpected call\n");
569 return E_NOTIMPL;
570}

◆ OleContainer_QueryInterface()

static HRESULT WINAPI OleContainer_QueryInterface ( IOleContainer *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 536 of file webbrowser.c.

537{
538 if(IsEqualGUID(&IID_ITargetContainer, riid))
539 return E_NOINTERFACE; /* TODO */
540
541 if(IsEqualGUID(&IID_IOleCommandTarget, riid)) {
543 {
545 return S_OK;
546 }
547 else
548 return E_NOINTERFACE;
549 }
550
551 ok(0, "unexpected call\n");
552 return E_NOINTERFACE;
553}
static IOleCommandTarget OleCommandTarget
Definition: webbrowser.c:534

◆ OleContainer_Release()

static ULONG WINAPI OleContainer_Release ( IOleContainer *  iface)
static

Definition at line 560 of file webbrowser.c.

561{
562 return 1;
563}

◆ outer_AddRef()

static ULONG WINAPI outer_AddRef ( IUnknown *  iface)
static

Definition at line 4466 of file webbrowser.c.

4467{
4468 return 2;
4469}

◆ outer_QueryInterface()

static HRESULT WINAPI outer_QueryInterface ( IUnknown *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 4455 of file webbrowser.c.

4456{
4458 CHECK_EXPECT(outer_QI_test);
4459 *ppv = (IUnknown*)0xdeadbeef;
4460 return S_OK;
4461 }
4462 ok(0, "unexpected call %s\n", wine_dbgstr_guid(riid));
4463 return E_NOINTERFACE;
4464}
static const IID outer_test_iid
Definition: protocol.c:628

◆ outer_Release()

static ULONG WINAPI outer_Release ( IUnknown *  iface)
static

Definition at line 4471 of file webbrowser.c.

4472{
4473 return 1;
4474}

◆ QueryInterface()

static HRESULT QueryInterface ( REFIID  riid,
void **  ppv 
)
static

Definition at line 1797 of file webbrowser.c.

1798{
1799 *ppv = NULL;
1800
1803 *ppv = &ClientSite;
1806 || IsEqualGUID(&IID_IOleInPlaceSiteEx, riid))
1807 *ppv = &InPlaceSite;
1808 else if(IsEqualGUID(&IID_IDocHostUIHandler, riid)
1809 || IsEqualGUID(&IID_IDocHostUIHandler2, riid))
1811 else if(IsEqualGUID(&IID_IDispatch, riid))
1812 *ppv = &Dispatch;
1813 else if(IsEqualGUID(&IID_IServiceProvider, riid))
1814 *ppv = &ServiceProvider;
1815 else if(IsEqualGUID(&IID_IDocHostShowUI, riid))
1816 trace("interface IID_IDocHostShowUI\n");
1818 *ppv = &ControlSite;
1819 else if(IsEqualGUID(&IID_IOleCommandTarget, riid))
1820 trace("interface IID_IOleCommandTarget\n");
1821
1822 /* B6EA2050-048A-11D1-82B9-00C04FB9942E IAxWinHostWindow */
1823
1824 else
1825 {
1826 /* are there more interfaces, that a host can support? */
1827 trace("%s: interface not supported\n", wine_dbgstr_guid(riid));
1828 }
1829
1830 return (*ppv) ? S_OK : E_NOINTERFACE;
1831}
#define trace
Definition: atltest.h:70
static IOleControlSite ControlSite
Definition: webbrowser.c:1225
static IOleInPlaceSiteEx InPlaceSite
Definition: webbrowser.c:1556
static IDispatch Dispatch
Definition: webbrowser.c:690
static IServiceProvider ServiceProvider
Definition: webbrowser.c:1794
static IDocHostUIHandler2 DocHostUIHandler
Definition: webbrowser.c:1727
const GUID IID_IOleInPlaceSite
const GUID IID_IOleWindow
const GUID IID_IOleControlSite
const GUID IID_IOleClientSite
const GUID IID_IDispatch

◆ ServiceProvider_AddRef()

static ULONG WINAPI ServiceProvider_AddRef ( IServiceProvider *  iface)
static

Definition at line 1735 of file webbrowser.c.

1736{
1737 return 2;
1738}

◆ ServiceProvider_QueryInterface()

static HRESULT WINAPI ServiceProvider_QueryInterface ( IServiceProvider *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1730 of file webbrowser.c.

1731{
1732 return QueryInterface(riid, ppv);
1733}

◆ ServiceProvider_QueryService()

static HRESULT WINAPI ServiceProvider_QueryService ( IServiceProvider *  iface,
REFGUID  guidService,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1745 of file webbrowser.c.

1747{
1748 *ppv = NULL;
1749
1751 return E_NOINTERFACE;
1752
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");
1767
1768 /* 30D02401-6A81-11D0-8274-00C04FD5AE38 Explorer Bar: Search */
1769 /* D1E7AFEC-6A2E-11D0-8C78-00C04FD918B4 no info */
1770 /* A9227C3C-7F8E-11D0-8CB0-00A0C92DBFE8 no info */
1771 /* 371EA634-DC5C-11D1-BA57-00C04FC2040E one reference to IVersionHost */
1772 /* 3050F429-98B5-11CF-BB82-00AA00BDCE0B IID_IElementBehaviorFactory */
1773 /* 6D12FE80-7911-11CF-9534-0000C05BAE0B SID_DefView */
1774 /* AD7F6C62-F6BD-11D2-959B-006097C553C8 no info */
1775 /* 53A2D5B1-D2FC-11D0-84E0-006097C9987D no info */
1776 /* 3050F312-98B5-11CF-BB82-00AA00BDCE0B HTMLFrameBaseClass */
1777 /* 639447BD-B2D3-44B9-9FB0-510F23CB45E4 no info */
1778 /* 20C46561-8491-11CF-960C-0080C7F4EE85 no info */
1779
1780 else
1781 trace("Service %s not supported\n", wine_dbgstr_guid(guidService));
1782
1783 return E_NOINTERFACE;
1784}
int winetest_interactive

◆ ServiceProvider_Release()

static ULONG WINAPI ServiceProvider_Release ( IServiceProvider *  iface)
static

Definition at line 1740 of file webbrowser.c.

1741{
1742 return 1;
1743}

◆ sink_AddRef()

static ULONG WINAPI sink_AddRef ( IAdviseSink *  iface)
static

Definition at line 4308 of file webbrowser.c.

4309{
4310 return 2;
4311}

◆ sink_OnClose()

static void WINAPI sink_OnClose ( IAdviseSink *  iface)
static

Definition at line 4338 of file webbrowser.c.

4339{
4340 trace("OnClose(%p)\n", iface);
4341 CHECK_EXPECT(Advise_OnClose);
4342}

◆ sink_OnDataChange()

static void WINAPI sink_OnDataChange ( IAdviseSink *  iface,
FORMATETC *  format,
STGMEDIUM *  medium 
)
static

Definition at line 4318 of file webbrowser.c.

4319{
4320 trace("OnDataChange(%p, %p, %p)\n", iface, format, medium);
4321}

◆ sink_OnRename()

static void WINAPI sink_OnRename ( IAdviseSink *  iface,
IMoniker *  moniker 
)
static

Definition at line 4328 of file webbrowser.c.

4329{
4330 trace("OnRename(%p, %p) \n", iface, moniker);
4331}

◆ sink_OnSave()

static void WINAPI sink_OnSave ( IAdviseSink *  iface)
static

Definition at line 4333 of file webbrowser.c.

4334{
4335 trace("OnSave(%p)\n", iface);
4336}

◆ sink_OnViewChange()

static void WINAPI sink_OnViewChange ( IAdviseSink *  iface,
DWORD  aspect,
LONG  index 
)
static

Definition at line 4323 of file webbrowser.c.

4324{
4325 trace("OnViewChange(%p, %08lx, %ld)\n", iface, aspect, index);
4326}
GLuint index
Definition: glext.h:6031

◆ sink_QueryInterface()

static HRESULT WINAPI sink_QueryInterface ( IAdviseSink *  iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 4294 of file webbrowser.c.

4295{
4297 *obj = iface;
4298 return S_OK;
4299 }
4300
4302 return E_NOINTERFACE;
4303
4304 ok(0, "unexpected call QI(%s)\n", wine_dbgstr_guid(riid));
4305 return E_NOINTERFACE;
4306}
const IID GCC8DECLSPEC_SELECTANY IID_IProxyManager
const GUID IID_IAdviseSink

◆ sink_Release()

static ULONG WINAPI sink_Release ( IAdviseSink *  iface)
static

Definition at line 4313 of file webbrowser.c.

4314{
4315 return 1;
4316}

◆ START_TEST()

START_TEST ( webbrowser  )

Definition at line 4512 of file webbrowser.c.

4513{
4514 HMODULE ieframe = LoadLibraryW(L"ieframe.dll");
4515
4516 pSetQueryNetSessionCount = (void*)GetProcAddress(ieframe, "SetQueryNetSessionCount");
4517
4519
4521
4523
4524 trace("Testing WebBrowser (no download)...\n");
4527
4528 if(!is_ie_hardened()) {
4529 trace("Testing WebBrowser...\n");
4531 trace("Testing WebBrowser(no olecmd)...\n");
4533 }else {
4534 win_skip("Skipping http tests in hardened mode\n");
4535 }
4536
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");
4550
4552}
#define LoadLibraryW(x)
Definition: compat.h:747
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
Definition: ole2.c:162
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
Definition: ole2.c:218
#define win_skip
Definition: minitest.h:67
static void test_WebBrowserV1(void)
Definition: webbrowser.c:3975
static void test_SetAdvise(void)
Definition: webbrowser.c:4358
static void test_SetQueryNetSessionCount(void)
Definition: webbrowser.c:4435
static void test_WebBrowser_slim_container(void)
Definition: webbrowser.c:4014
static void test_FileProtocol(void)
Definition: webbrowser.c:4252
static void test_com_aggregation(void)
Definition: webbrowser.c:4482
static HWND create_container_window(void)
Definition: webbrowser.c:1838
static void test_WebBrowser_DoVerb(void)
Definition: webbrowser.c:4040
static void test_WebBrowser(DWORD flags, BOOL do_close)
Definition: webbrowser.c:3843
static BOOL is_ie_hardened(void)
Definition: webbrowser.c:4233

◆ test_Advise()

static void test_Advise ( IWebBrowser2 *  wb)
static

Definition at line 3780 of file webbrowser.c.

3781{
3782 IOleObject *oleobj;
3784 DWORD connection[2];
3785 HRESULT hres;
3786
3787 hres = IWebBrowser2_QueryInterface(wb, &IID_IOleObject, (void **)&oleobj);
3788 ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08lx\n", hres);
3789
3790 hres = IOleObject_Unadvise(oleobj, 0);
3791 ok(hres == OLE_E_NOCONNECTION, "Unadvise returned: %08lx\n", hres);
3792
3793 data = (void *)0xdeadbeef;
3794 hres = IOleObject_EnumAdvise(oleobj, &data);
3795 ok(hres == E_NOTIMPL, "EnumAdvise returned: %08lx\n", hres);
3796 ok(data == NULL, "got data %p\n", data);
3797
3798 connection[0] = 0xdeadbeef;
3799 hres = IOleObject_Advise(oleobj, NULL, &connection[0]);
3800 ok(hres == E_INVALIDARG, "Advise returned: %08lx\n", hres);
3801 ok(connection[0] == 0, "got connection %lu\n", connection[0]);
3802
3803 hres = IOleObject_Advise(oleobj, &test_sink, NULL);
3804 ok(hres == E_INVALIDARG, "Advise returned: %08lx\n", hres);
3805
3806 connection[0] = 0xdeadbeef;
3807 hres = IOleObject_Advise(oleobj, &test_sink, &connection[0]);
3808 ok(hres == S_OK, "Advise returned: %08lx\n", hres);
3809 ok(connection[0] != 0xdeadbeef, "got connection %lu\n", connection[0]);
3810
3811 connection[1] = 0xdeadbeef;
3812 hres = IOleObject_Advise(oleobj, &test_sink, &connection[1]);
3813 ok(hres == S_OK, "Advise returned: %08lx\n", hres);
3814 ok(connection[1] == connection[0] + 1, "got connection %lu\n", connection[1]);
3815
3816 hres = IOleObject_Unadvise(oleobj, connection[1]);
3817 ok(hres == S_OK, "Unadvise returned: %08lx\n", hres);
3818
3819 hres = IOleObject_Unadvise(oleobj, connection[1]);
3820 ok(hres == OLE_E_NOCONNECTION, "Unadvise returned: %08lx\n", hres);
3821
3822 hres = IOleObject_Unadvise(oleobj, connection[0]);
3823 ok(hres == S_OK, "Unadvise returned: %08lx\n", hres);
3824
3825 IOleObject_Release(oleobj);
3826}
#define E_INVALIDARG
Definition: ddrawi.h:101
HINTERNET connection
Definition: port.c:65
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
static IAdviseSink test_sink
Definition: webbrowser.c:197
#define OLE_E_NOCONNECTION
Definition: winerror.h:3729

◆ test_ambient_unknown()

static void test_ambient_unknown ( IWebBrowser2 *  wb,
IOleControl *  control,
BOOL  is_clientsite 
)
static

Definition at line 2641 of file webbrowser.c.

2642{
2643 HRESULT hres;
2644
2645 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2646 SET_EXPECT(Invoke_AMBIENT_SILENT);
2647 SET_EXPECT(Invoke_AMBIENT_USERMODE);
2648 SET_EXPECT(Invoke_AMBIENT_DLCONTROL);
2649 SET_EXPECT(Invoke_AMBIENT_USERAGENT);
2650 SET_EXPECT(Invoke_AMBIENT_PALETTE);
2651
2652 hres = IOleControl_OnAmbientPropertyChange(control, DISPID_UNKNOWN);
2653 ok(hres == S_OK, "OnAmbientPropertyChange failed %08lx\n", hres);
2654
2655 CHECK_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2656 CHECK_EXPECT(Invoke_AMBIENT_SILENT);
2657 CHECK_EXPECT(Invoke_AMBIENT_USERMODE);
2658 CHECK_EXPECT(Invoke_AMBIENT_DLCONTROL);
2659 CHECK_EXPECT(Invoke_AMBIENT_USERAGENT);
2660 CHECK_EXPECT(Invoke_AMBIENT_PALETTE);
2661
2662 CLEAR_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2663 CLEAR_CALLED(Invoke_AMBIENT_SILENT);
2664 CLEAR_CALLED(Invoke_AMBIENT_USERMODE);
2665 CLEAR_CALLED(Invoke_AMBIENT_DLCONTROL);
2666 CLEAR_CALLED(Invoke_AMBIENT_USERAGENT);
2667 CLEAR_CALLED(Invoke_AMBIENT_PALETTE);
2668}
#define SET_EXPECT(func)
Definition: webbrowser.c:55
#define CLEAR_CALLED(func)
Definition: webbrowser.c:82
Definition: dialog.c:52

Referenced by test_wb_funcs().

◆ test_change_ClientSite()

static void test_change_ClientSite ( IWebBrowser2 *  unk)
static

Definition at line 2060 of file webbrowser.c.

2061{
2062 BOOL old_use_container_olecmd = use_container_olecmd;
2063 IOleClientSite *doc_clientsite;
2064 IOleInPlaceObject *inplace;
2065 IOleCommandTarget *olecmd;
2066 IOleObject *oleobj;
2067 HRESULT hres;
2068 HWND hwnd;
2069
2070 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
2071 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
2072 if(FAILED(hres))
2073 return;
2074
2076
2077 SET_EXPECT(Site_GetWindow);
2078 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2079 SET_EXPECT(Invoke_AMBIENT_SILENT);
2080
2081 hres = IOleObject_SetClientSite(oleobj, &ClientSite2);
2082 ok(hres == S_OK, "SetClientSite failed: %08lx\n", hres);
2083 IOleObject_Release(oleobj);
2084
2085 CHECK_CALLED(Site_GetWindow);
2086 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2087 CHECK_CALLED(Invoke_AMBIENT_SILENT);
2088
2089 doc_clientsite = get_dochost(unk);
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);
2093
2094 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleInPlaceObject, (void**)&inplace);
2095 ok(hres == S_OK, "QueryInterface(OleInPlaceObject) failed: %08lx\n", hres);
2096 hres = IOleInPlaceObject_GetWindow(inplace, &hwnd);
2097 ok(hres == S_OK, "GetWindow failed: %08lx\n", hres);
2098 ok(hwnd == shell_embedding_hwnd, "unexpected hwnd %p\n", hwnd);
2099 IOleInPlaceObject_Release(inplace);
2100
2101 if(old_use_container_olecmd) {
2102 SET_EXPECT(Exec_UPDATECOMMANDS);
2103
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);
2107
2108 CHECK_CALLED(Exec_UPDATECOMMANDS);
2110 }
2111
2112 IOleCommandTarget_Release(olecmd);
2113}
unsigned int BOOL
Definition: ntddk_ex.h:94
#define get_dochost(u)
Definition: webbrowser.c:321
static IOleClientSite ClientSite2
Definition: webbrowser.c:1143
#define CHECK_CALLED(func)
Definition: webbrowser.c:70

Referenced by test_WebBrowser().

◆ test_ClassInfo()

static void test_ClassInfo ( IWebBrowser2 *  unk)
static

Definition at line 2115 of file webbrowser.c.

2116{
2118 TYPEATTR *type_attr;
2120 GUID guid;
2121 HRESULT hres;
2122
2123 hres = IWebBrowser2_QueryInterface(unk, &IID_IProvideClassInfo2, (void**)&class_info);
2124 ok(hres == S_OK, "QueryInterface(IID_IProvideClassInfo) failed: %08lx\n", hres);
2125 if(FAILED(hres))
2126 return;
2127
2128 hres = IProvideClassInfo2_GetGUID(class_info, GUIDKIND_DEFAULT_SOURCE_DISP_IID, &guid);
2129 ok(hres == S_OK, "GetGUID failed: %08lx\n", hres);
2130 ok(IsEqualGUID(wb_version > 1 ? &DIID_DWebBrowserEvents2 : &DIID_DWebBrowserEvents, &guid), "wrong guid\n");
2131
2132 hres = IProvideClassInfo2_GetGUID(class_info, 0, &guid);
2133 ok(hres == E_FAIL, "GetGUID failed: %08lx, expected E_FAIL\n", hres);
2134 ok(IsEqualGUID(&IID_NULL, &guid), "wrong guid\n");
2135
2136 hres = IProvideClassInfo2_GetGUID(class_info, 2, &guid);
2137 ok(hres == E_FAIL, "GetGUID failed: %08lx, expected E_FAIL\n", hres);
2138 ok(IsEqualGUID(&IID_NULL, &guid), "wrong guid\n");
2139
2140 hres = IProvideClassInfo2_GetGUID(class_info, GUIDKIND_DEFAULT_SOURCE_DISP_IID, NULL);
2141 ok(hres == E_POINTER, "GetGUID failed: %08lx, expected E_POINTER\n", hres);
2142
2143 hres = IProvideClassInfo2_GetGUID(class_info, 0, NULL);
2144 ok(hres == E_POINTER, "GetGUID failed: %08lx, expected E_POINTER\n", hres);
2145
2146 typeinfo = NULL;
2147 hres = IProvideClassInfo2_GetClassInfo(class_info, &typeinfo);
2148 ok(hres == S_OK, "GetClassInfo failed: %08lx\n", hres);
2149 ok(typeinfo != NULL, "typeinfo == NULL\n");
2150
2151 hres = ITypeInfo_GetTypeAttr(typeinfo, &type_attr);
2152 ok(hres == S_OK, "GetTypeAtr failed: %08lx\n", hres);
2153
2154 ok(IsEqualGUID(&type_attr->guid, wb_version > 1 ? &CLSID_WebBrowser : &CLSID_WebBrowser_V1),
2155 "guid = %s\n", wine_dbgstr_guid(&type_attr->guid));
2156
2157 ITypeInfo_ReleaseTypeAttr(typeinfo, type_attr);
2158 ITypeInfo_Release(typeinfo);
2159
2160 IProvideClassInfo2_Release(class_info);
2161}
GUID guid
Definition: version.c:147
const GUID IID_IProvideClassInfo2
#define E_POINTER
Definition: winerror.h:3480

Referenced by test_WebBrowser(), and test_WebBrowserV1().

◆ test_ClientSite()

static void test_ClientSite ( IWebBrowser2 *  unk,
IOleClientSite *  client,
BOOL  stop_download 
)
static

Definition at line 1967 of file webbrowser.c.

1968{
1969 IOleObject *oleobj;
1970 IOleInPlaceObject *inplace;
1971 DWORD session_count;
1972 HWND hwnd;
1973 HRESULT hres;
1974
1975 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
1976 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
1977 if(FAILED(hres))
1978 return;
1979
1980 test_GetMiscStatus(oleobj);
1981 test_SetHostNames(oleobj);
1982
1983 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleInPlaceObject, (void**)&inplace);
1984 ok(hres == S_OK, "QueryInterface(IID_OleInPlaceObject) failed: %08lx\n", hres);
1985 if(FAILED(hres)) {
1986 IOleObject_Release(oleobj);
1987 return;
1988 }
1989
1990 hres = IOleInPlaceObject_GetWindow(inplace, &hwnd);
1991 ok(hres == S_OK, "GetWindow failed: %08lx\n", hres);
1992 ok((hwnd == NULL) ^ (client == NULL), "unexpected hwnd %p\n", hwnd);
1993
1994 if(client) {
1995 session_count = pSetQueryNetSessionCount(SESSION_QUERY);
1996
1997 SET_EXPECT(GetContainer);
1998 SET_EXPECT(Site_GetWindow);
1999 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2000 SET_EXPECT(Invoke_AMBIENT_SILENT);
2001 }else if(stop_download) {
2003 SET_EXPECT(Exec_SETDOWNLOADSTATE_0);
2004 SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
2005 }
2006
2007 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2008 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2009
2012 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
2013 }else {
2014 SET_EXPECT(Invoke_STATUSTEXTCHANGE);
2015 SET_EXPECT(Invoke_PROGRESSCHANGE);
2017 }
2018
2019 hres = IOleObject_SetClientSite(oleobj, client);
2020 ok(hres == S_OK, "SetClientSite failed: %08lx\n", hres);
2021
2022 if(client) {
2023 DWORD count = pSetQueryNetSessionCount(SESSION_QUERY);
2024 ok(count >= session_count + 1, "count = %lu expected %lu\n", count, session_count + 1);
2025
2026 CHECK_CALLED(GetContainer);
2027 CHECK_CALLED(Site_GetWindow);
2028 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2029 CHECK_CALLED(Invoke_AMBIENT_SILENT);
2030 }else if(stop_download) {
2032 todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
2033 todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
2034 }
2035
2036 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2037 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2038
2039 todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
2041 "got %d\n", set_update_commands_enable);
2042 }else {
2043 CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */
2044 CLEAR_CALLED(Invoke_PROGRESSCHANGE);
2046 }
2047
2048 hres = IOleInPlaceObject_GetWindow(inplace, &hwnd);
2049 ok(hres == S_OK, "GetWindow failed: %08lx\n", hres);
2050 ok((hwnd == NULL) == (client == NULL), "unexpected hwnd %p\n", hwnd);
2051
2053
2054 test_SetHostNames(oleobj);
2055
2056 IOleInPlaceObject_Release(inplace);
2057 IOleObject_Release(oleobj);
2058}
GLuint GLuint GLsizei count
Definition: gl.h:1545
static void test_GetMiscStatus(IOleObject *oleobj)
Definition: webbrowser.c:1943
static void test_SetHostNames(IOleObject *oleobj)
Definition: webbrowser.c:1959
static int set_update_commands_enable
Definition: webbrowser.c:173
static BOOL nav_forward_todo
Definition: webbrowser.c:174
static int expect_update_commands_enable
Definition: webbrowser.c:173
static BOOL nav_back_todo
Definition: webbrowser.c:174
static FILE * client
Definition: client.c:37

Referenced by test_FileProtocol(), test_WebBrowser(), test_WebBrowser_DoVerb(), and test_WebBrowser_slim_container().

◆ test_Close()

static void test_Close ( IWebBrowser2 *  wb,
BOOL  do_download 
)
static

Definition at line 3687 of file webbrowser.c.

3688{
3689 IOleObject *oo;
3690 IOleClientSite *ocs;
3691 HRESULT hres;
3692
3693 hres = IWebBrowser2_QueryInterface(wb, &IID_IOleObject, (void**)&oo);
3694 ok(hres == S_OK, "QueryInterface failed: %08lx\n", hres);
3695 if(hres != S_OK)
3696 return;
3697
3698 test_close = TRUE;
3699
3701 SET_EXPECT(UIWindow_SetActiveObject);
3702 SET_EXPECT(OnUIDeactivate);
3703 SET_EXPECT(OnFocus_FALSE);
3704 SET_EXPECT(OnInPlaceDeactivate);
3705 SET_EXPECT(Invoke_STATUSTEXTCHANGE);
3706 if(!do_download) {
3707 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3708 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3709
3712 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3713
3715 SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
3716 }else {
3718 }
3719 SET_EXPECT(Advise_OnClose);
3720 hres = IOleObject_Close(oo, OLECLOSE_NOSAVE);
3721 ok(hres == S_OK, "OleObject_Close failed: %lx\n", hres);
3723 CHECK_CALLED(UIWindow_SetActiveObject);
3724 CHECK_CALLED(OnUIDeactivate);
3725 CHECK_CALLED(OnFocus_FALSE);
3726 CHECK_CALLED(OnInPlaceDeactivate);
3727 CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */
3728 if(!do_download) {
3729 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3730 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3731
3732 todo_wine CHECK_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3734 "got %d\n", set_update_commands_enable);
3735
3737 todo_wine CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
3738 }else {
3740 }
3741 CHECK_CALLED(Advise_OnClose);
3742
3743 hres = IOleObject_GetClientSite(oo, &ocs);
3744 ok(hres == S_OK, "hres = %lx\n", hres);
3745 ok(!ocs, "ocs != NULL\n");
3746
3747 SET_EXPECT(GetContainer);
3748 SET_EXPECT(Site_GetWindow);
3749 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
3750 SET_EXPECT(Invoke_AMBIENT_SILENT);
3751 hres = IOleObject_DoVerb(oo, OLEIVERB_HIDE, NULL, (IOleClientSite*)0xdeadbeef,
3752 0, (HWND)0xdeadbeef, NULL);
3753 ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
3754 CHECK_CALLED(GetContainer);
3755 CHECK_CALLED(Site_GetWindow);
3756 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
3757 CHECK_CALLED(Invoke_AMBIENT_SILENT);
3758
3759 hres = IOleObject_GetClientSite(oo, &ocs);
3760 ok(hres == S_OK, "hres = %lx\n", hres);
3761 ok(ocs == &ClientSite, "ocs != &ClientSite\n");
3762 if(ocs)
3763 IOleClientSite_Release(ocs);
3764
3765 SET_EXPECT(OnFocus_FALSE);
3766 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3767 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3768 SET_EXPECT(Advise_OnClose);
3769 hres = IOleObject_Close(oo, OLECLOSE_NOSAVE);
3770 ok(hres == S_OK, "OleObject_Close failed: %lx\n", hres);
3771 CHECK_NOT_CALLED(OnFocus_FALSE);
3772 todo_wine CHECK_NOT_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3773 todo_wine CHECK_NOT_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3774 CHECK_CALLED(Advise_OnClose);
3775
3776 test_close = FALSE;
3777 IOleObject_Release(oo);
3778}
#define CHECK_NOT_CALLED(func)
Definition: webbrowser.c:76
#define OLEIVERB_HIDE
Definition: ole2.h:41

Referenced by test_WebBrowser().

◆ test_com_aggregation()

static void test_com_aggregation ( void  )
static

Definition at line 4482 of file webbrowser.c.

4483{
4484 HRESULT hr;
4486 IUnknown outer = { &outer_vtbl };
4487 IUnknown *unk = NULL;
4488 IWebBrowser *web_browser = NULL;
4489 IUnknown *unk2 = NULL;
4490
4491 hr = CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER, NULL, &IID_IClassFactory, (void**)&class_factory);
4492 ok(hr == S_OK, "CoGetClassObject failed: %08lx\n", hr);
4493
4494 hr = IClassFactory_CreateInstance(class_factory, &outer, &IID_IUnknown, (void**)&unk);
4495 ok(hr == S_OK, "CreateInstance returned hr = %08lx\n", hr);
4496 ok(unk != NULL, "result NULL, hr = %08lx\n", hr);
4497
4498 hr = IUnknown_QueryInterface(unk, &IID_IWebBrowser, (void**)&web_browser);
4499 ok(hr == S_OK, "QI to IWebBrowser failed, hr=%08lx\n", hr);
4500
4501 SET_EXPECT(outer_QI_test);
4502 hr = IWebBrowser_QueryInterface(web_browser, &outer_test_iid, (void**)&unk2);
4503 CHECK_CALLED(outer_QI_test);
4504 ok(hr == S_OK, "Could not get test iface: %08lx\n", hr);
4505 ok(unk2 == (IUnknown*)0xdeadbeef, "unexpected unk2\n");
4506
4507 IWebBrowser_Release(web_browser);
4508 IUnknown_Release(unk);
4509 IClassFactory_Release(class_factory);
4510}
const GUID IID_IClassFactory
HRESULT hr
Definition: delayimp.cpp:582
HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(REFCLSID rclsid, DWORD clscontext, COSERVERINFO *server_info, REFIID riid, void **obj)
Definition: combase.c:1925
static IUnknownVtbl outer_vtbl
Definition: webbrowser.c:4476
static IUnknown * outer
Definition: compobj.c:82

Referenced by START_TEST().

◆ test_ConnectionPoint()

static void test_ConnectionPoint ( IWebBrowser2 *  unk,
BOOL  init 
)
static

Definition at line 2783 of file webbrowser.c.

2784{
2787 HRESULT hres;
2788
2789 static DWORD dw = 100;
2790
2791 hres = IWebBrowser2_QueryInterface(unk, &IID_IConnectionPointContainer, (void**)&container);
2792 ok(hres == S_OK, "QueryInterface(IID_IConnectionPointContainer) failed: %08lx\n", hres);
2793 if(FAILED(hres))
2794 return;
2795
2796 hres = IConnectionPointContainer_FindConnectionPoint(container, &DIID_DWebBrowserEvents2, &point);
2797 IConnectionPointContainer_Release(container);
2798 ok(hres == S_OK, "FindConnectionPoint failed: %08lx\n", hres);
2799 if(FAILED(hres))
2800 return;
2801
2802 if(init) {
2803 hres = IConnectionPoint_Advise(point, (IUnknown*)&WebBrowserEvents2, &dw);
2804 ok(hres == S_OK, "Advise failed: %08lx\n", hres);
2805 ok(dw == 1, "dw=%ld, expected 1\n", dw);
2806 }else {
2807 hres = IConnectionPoint_Unadvise(point, dw);
2808 ok(hres == S_OK, "Unadvise failed: %08lx\n", hres);
2809 }
2810
2811 IConnectionPoint_Release(point);
2812}
POINTL point
Definition: edittest.c:50
static IDispatch WebBrowserEvents2
Definition: webbrowser.c:1071
const GUID IID_IConnectionPointContainer
static int init
Definition: wintirpc.c:33

Referenced by test_FileProtocol(), test_WebBrowser(), and test_WebBrowser_slim_container().

◆ test_dochost_qs()

static void test_dochost_qs ( IWebBrowser2 *  webbrowser)
static

Definition at line 3645 of file webbrowser.c.

3646{
3648 IServiceProvider *serv_prov;
3649 IUnknown *service;
3650 HRESULT hres;
3651
3652 client_site = get_dochost(webbrowser);
3653 hres = IOleClientSite_QueryInterface(client_site, &IID_IServiceProvider, (void**)&serv_prov);
3654 IOleClientSite_Release(client_site);
3655 ok(hres == S_OK, "Could not get IServiceProvider iface: %08lx\n", hres);
3656
3657 hres = IServiceProvider_QueryService(serv_prov, &IID_IHlinkFrame, &IID_IHlinkFrame, (void**)&service);
3658 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3659 ok(iface_cmp(service, (IUnknown*)webbrowser), "service != unk\n");
3660 IUnknown_Release(service);
3661
3662 hres = IServiceProvider_QueryService(serv_prov, &IID_IWebBrowserApp, &IID_IHlinkFrame, (void**)&service);
3663 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3664 ok(iface_cmp(service, (IUnknown*)webbrowser), "service != unk\n");
3665 IUnknown_Release(service);
3666
3667 hres = IServiceProvider_QueryService(serv_prov, &IID_ITargetFrame, &IID_ITargetFrame, (void**)&service);
3668 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3669 ok(iface_cmp(service, (IUnknown*)webbrowser), "service != unk\n");
3670 IUnknown_Release(service);
3671
3672 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IShellBrowser, (void**)&service);
3673 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3674 IUnknown_Release(service);
3675
3676 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IBrowserService, (void**)&service);
3677 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3678 IUnknown_Release(service);
3679
3680 hres = IServiceProvider_QueryService(serv_prov, &IID_IShellBrowser, &IID_IDocObjectService, (void**)&service);
3681 ok(hres == S_OK, "QueryService failed: %08lx\n", hres);
3682 IUnknown_Release(service);
3683
3684 IServiceProvider_Release(serv_prov);
3685}
static BOOL iface_cmp(IUnknown *iface1, IUnknown *iface2)
Definition: webbrowser.c:222

Referenced by test_WebBrowser().

◆ test_documentcomplete()

static void test_documentcomplete ( DISPPARAMS *  dp)
static

Definition at line 836 of file webbrowser.c.

837{
838 VARIANT *v;
839
840 CHECK_EXPECT(Invoke_DOCUMENTCOMPLETE);
841
842 ok(dp->rgvarg != NULL, "rgvarg == NULL\n");
843 ok(dp->cArgs == 2, "cArgs=%d, expected 2\n", dp->cArgs);
844
845 ok(V_VT(dp->rgvarg) == (VT_BYREF|VT_VARIANT), "V_VT(dp->rgvarg) = %d\n", V_VT(dp->rgvarg));
846 v = V_VARIANTREF(dp->rgvarg);
847 ok(V_VT(v) == VT_BSTR, "V_VT(url) = %d\n", V_VT(v));
848 ok(!lstrcmpW(V_BSTR(v), current_url), "url=%s, expected %s\n", wine_dbgstr_w(V_BSTR(v)),
850
851 ok(V_VT(dp->rgvarg+1) == VT_DISPATCH, "V_VT(dp->rgvarg+1) = %d\n", V_VT(dp->rgvarg+1));
852 ok(V_DISPATCH(dp->rgvarg+1) == (IDispatch*)wb, "V_DISPATCH=%p, wb=%p\n", V_DISPATCH(dp->rgvarg+1), wb);
853
854 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
855}
@ VT_BSTR
Definition: compat.h:2303
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
@ VT_DISPATCH
Definition: compat.h:2304
const GLdouble * v
Definition: gl.h:2040
#define test_ready_state(a, b)
Definition: webbrowser.c:279
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_DISPATCH(A)
Definition: oleauto.h:239

Referenced by WebBrowserEvents2_Invoke().

◆ test_DoVerb()

static void test_DoVerb ( IWebBrowser2 *  unk)
static

Definition at line 1854 of file webbrowser.c.

1855{
1856 IOleObject *oleobj;
1857 RECT rect = {0,0,1000,1000};
1858 HRESULT hres;
1860
1861 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
1862 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
1863 if(FAILED(hres))
1864 return;
1865
1866 hres = IOleObject_Advise(oleobj, &test_sink, &connection);
1867 ok(hres == S_OK, "Advise failed: %08lx\n", hres);
1868
1869 SET_EXPECT(CanInPlaceActivate);
1870 SET_EXPECT(Site_GetWindow);
1871 SET_EXPECT(OnInPlaceActivate);
1872 SET_EXPECT(GetWindowContext);
1873 SET_EXPECT(ShowObject);
1874 SET_EXPECT(GetContainer);
1876 SET_EXPECT(OnUIActivate);
1878 SET_EXPECT(UIWindow_SetActiveObject);
1880 SET_EXPECT(OnFocus_TRUE);
1881
1882 hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite,
1883 0, (HWND)0xdeadbeef, &rect);
1884 ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
1885
1886 CHECK_CALLED(CanInPlaceActivate);
1887 CHECK_CALLED(Site_GetWindow);
1888 CHECK_CALLED(OnInPlaceActivate);
1889 CHECK_CALLED(GetWindowContext);
1890 CHECK_CALLED(ShowObject);
1891 CHECK_CALLED(GetContainer);
1893 CHECK_CALLED(OnUIActivate);
1895 CHECK_CALLED(UIWindow_SetActiveObject);
1897 CHECK_CALLED(OnFocus_TRUE);
1898
1899 hres = IOleObject_DoVerb(oleobj, OLEIVERB_SHOW, NULL, &ClientSite,
1900 0, (HWND)0xdeadbeef, &rect);
1901 ok(hres == S_OK, "DoVerb failed: %08lx\n", hres);
1902
1903 hres = IOleObject_Unadvise(oleobj, connection);
1904 ok(hres == S_OK, "Unadvise failed: %08lx\n", hres);
1905
1906 IOleObject_Release(oleobj);
1907}
#define OLEIVERB_SHOW
Definition: ole2.h:39

Referenced by test_FileProtocol(), test_WebBrowser(), and test_WebBrowser_slim_container().

◆ test_download()

static void test_download ( DWORD  flags)
static

Definition at line 2988 of file webbrowser.c.

2989{
2990 BOOL *b = &called_Invoke_DOCUMENTCOMPLETE;
2991 MSG msg;
2992
2993 if(flags & DWL_REFRESH)
2994 b = use_container_olecmd ? &called_Exec_SETDOWNLOADSTATE_0 : &called_Invoke_DOWNLOADCOMPLETE;
2995 else if((flags & DWL_FROM_PUT_HREF) && !use_container_olecmd && 0)
2996 b = &called_Invoke_DOWNLOADCOMPLETE;
2997
2999 dwl_flags = flags;
3000
3002 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
3003 else
3004 test_ready_state(READYSTATE_LOADING, VARIANT_FALSE);
3005
3007 SET_EXPECT(Invoke_PROPERTYCHANGE);
3008
3010 SET_EXPECT(Invoke_BEFORENAVIGATE2);
3011 SET_EXPECT(TranslateUrl);
3012 }
3014 SET_EXPECT(Exec_SETPROGRESSMAX);
3015 SET_EXPECT(Exec_SETPROGRESSPOS);
3016 SET_EXPECT(Exec_SETDOWNLOADSTATE_1);
3017 }else {
3018 SET_EXPECT(Invoke_DOWNLOADBEGIN);
3019 }
3020 SET_EXPECT(DocHost_EnableModeless_FALSE);
3021 SET_EXPECT(DocHost_EnableModeless_TRUE);
3022 SET_EXPECT(Invoke_SETSECURELOCKICON);
3023 SET_EXPECT(Invoke_SETPHISHINGFILTERSTATUS);
3024 SET_EXPECT(EnableModeless_FALSE);
3025
3026 if(!(flags & DWL_REFRESH)) {
3028 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3029 else
3030 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3032 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3033 else
3034 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3035 }
3036
3039 SET_EXPECT(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3040
3041 SET_EXPECT(Invoke_STATUSTEXTCHANGE);
3042 SET_EXPECT(Invoke_PROPERTYCHANGE);
3043 SET_EXPECT(SetStatusText);
3044 SET_EXPECT(EnableModeless_TRUE);
3045 if(!is_first_load)
3046 SET_EXPECT(GetHostInfo);
3048 SET_EXPECT(Exec_SETDOWNLOADSTATE_0);
3049 else
3050 SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
3051 SET_EXPECT(Invoke_TITLECHANGE);
3052 if(!(flags & DWL_REFRESH))
3053 SET_EXPECT(Invoke_NAVIGATECOMPLETE2);
3054 if(is_first_load)
3055 SET_EXPECT(GetDropTarget);
3056 SET_EXPECT(Invoke_PROGRESSCHANGE);
3057 if(!(flags & DWL_REFRESH))
3058 SET_EXPECT(Invoke_DOCUMENTCOMPLETE);
3059
3060 if(flags & DWL_HTTP)
3061 SET_EXPECT(Exec_SETTITLE);
3062 SET_EXPECT(UpdateUI);
3064 SET_EXPECT(Exec_UPDATECOMMANDS);
3065 SET_EXPECT(QueryStatus_STOP);
3066 SET_EXPECT(GetOverridesKeyPath); /* Called randomly on some VMs. */
3067
3068 trace("Downloading...\n");
3069 while(!*b && GetMessageW(&msg, NULL, 0, 0)) {
3072 }
3073
3075 todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE);
3077 CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */
3078
3080 CHECK_CALLED(Invoke_BEFORENAVIGATE2);
3081 CHECK_CALLED(TranslateUrl);
3082 }
3084 todo_wine CHECK_CALLED(Exec_SETPROGRESSMAX);
3085 todo_wine CHECK_CALLED(Exec_SETPROGRESSPOS);
3086 CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
3087 }else {
3088 SET_EXPECT(Invoke_DOWNLOADBEGIN);
3089 }
3090 CLEAR_CALLED(DocHost_EnableModeless_FALSE); /* IE 7 */
3091 CLEAR_CALLED(DocHost_EnableModeless_TRUE); /* IE 7 */
3092 todo_wine CHECK_CALLED(Invoke_SETSECURELOCKICON);
3093 CLEAR_CALLED(Invoke_SETPHISHINGFILTERSTATUS); /* IE 7 */
3094 if(is_first_load)
3095 todo_wine CHECK_CALLED(EnableModeless_FALSE);
3096 else
3097 CLEAR_CALLED(EnableModeless_FALSE); /* IE 8 */
3098
3099 if(!(flags & DWL_REFRESH)) {
3102 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3103 else
3104 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3105 }
3107 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3108 else
3109 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3110 }
3111 CLEAR_CALLED(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
3112 todo_wine CHECK_CALLED(Invoke_STATUSTEXTCHANGE);
3113 todo_wine CHECK_CALLED(SetStatusText);
3114 if(is_first_load)
3115 todo_wine CHECK_CALLED(EnableModeless_TRUE);
3116 else
3117 CLEAR_CALLED(EnableModeless_FALSE); /* IE 8 */
3118 if(!is_first_load)
3119 todo_wine CHECK_CALLED(GetHostInfo);
3121 CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
3122 else
3123 CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
3124 todo_wine CHECK_CALLED(Invoke_TITLECHANGE);
3125 if(!(flags & DWL_REFRESH))
3126 CHECK_CALLED(Invoke_NAVIGATECOMPLETE2);
3127 if(is_first_load)
3128 todo_wine CHECK_CALLED(GetDropTarget);
3129 if(!(flags & DWL_REFRESH))
3130 CHECK_CALLED(Invoke_DOCUMENTCOMPLETE);
3131
3133
3134 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
3135
3136 while(use_container_olecmd && !called_Exec_UPDATECOMMANDS && GetMessageA(&msg, NULL, 0, 0)) {
3139 }
3140
3141 todo_wine CHECK_CALLED(Invoke_PROGRESSCHANGE);
3142 if(flags & DWL_HTTP)
3143 CLEAR_CALLED(Exec_SETTITLE); /* FIXME: make it more strict */
3145 CHECK_CALLED(UpdateUI);
3146 else
3147 CLEAR_CALLED(UpdateUI);
3149 CHECK_CALLED(Exec_UPDATECOMMANDS);
3150 CLEAR_CALLED(QueryStatus_STOP);
3151 CLEAR_CALLED(GetOverridesKeyPath);
3152}
#define msg(x)
Definition: auth_time.c:54
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define DWL_FROM_PUT_HREF
Definition: webbrowser.c:188
#define DWL_HTTP
Definition: webbrowser.c:191
#define DWL_FROM_GOBACK
Definition: webbrowser.c:189
#define DWL_BACK_ENABLE
Definition: webbrowser.c:193
#define DWL_REFRESH
Definition: webbrowser.c:192
#define DWL_FROM_GOFORWARD
Definition: webbrowser.c:190
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829

Referenced by test_Refresh(), and test_WebBrowser().

◆ test_EnumVerbs()

static void test_EnumVerbs ( IWebBrowser2 *  wb)
static

Definition at line 2187 of file webbrowser.c.

2188{
2189 IEnumOLEVERB *enum_verbs;
2190 IOleObject *oleobj;
2191 OLEVERB verbs[20];
2192 ULONG fetched;
2193 HRESULT hres;
2194
2195 hres = IWebBrowser2_QueryInterface(wb, &IID_IOleObject, (void**)&oleobj);
2196 ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %08lx\n", hres);
2197
2198 hres = IOleObject_EnumVerbs(oleobj, &enum_verbs);
2199 IOleObject_Release(oleobj);
2200 ok(hres == S_OK, "EnumVerbs failed: %08lx\n", hres);
2201 ok(enum_verbs != NULL, "enum_verbs == NULL\n");
2202
2203 fetched = 0xdeadbeef;
2204 memset(verbs, 0xa, sizeof(verbs));
2205 verbs[1].lVerb = 0xdeadbeef;
2206 hres = IEnumOLEVERB_Next(enum_verbs, ARRAY_SIZE(verbs), verbs, &fetched);
2207 ok(hres == S_OK, "Next failed: %08lx\n", hres);
2208 ok(!fetched, "fetched = %ld\n", fetched);
2209 /* Although fetched==0, an element is returned. */
2211 /* The first argument is ignored and always one element is returned. */
2212 ok(verbs[1].lVerb == 0xdeadbeef, "verbs[1].lVerb = %lx\n", verbs[1].lVerb);
2213
2216 test_next_oleverb(enum_verbs, OLEIVERB_SHOW);
2217 test_next_oleverb(enum_verbs, OLEIVERB_HIDE);
2218
2219 /* There is anouther verb, returned correctly. */
2220 fetched = 0xdeadbeef;
2221 memset(verbs, 0xa, sizeof(verbs));
2222 verbs[0].lVerb = 0xdeadbeef;
2223 hres = IEnumOLEVERB_Next(enum_verbs, ARRAY_SIZE(verbs), verbs, &fetched);
2224 todo_wine ok(hres == S_OK, "Next failed: %08lx\n", hres);
2225 todo_wine ok(fetched == 1, "fetched = %ld\n", fetched);
2226 todo_wine ok(verbs[0].lVerb != 0xdeadbeef, "verbs[0].lVerb = %lx\n", verbs[0].lVerb);
2227
2228 hres = IEnumOLEVERB_Next(enum_verbs, ARRAY_SIZE(verbs), verbs, &fetched);
2229 ok(hres == S_FALSE, "Next failed: %08lx\n", hres);
2230 ok(!fetched, "fetched = %ld\n", fetched);
2231
2232 hres = IEnumOLEVERB_Reset(enum_verbs);
2233 ok(hres == S_OK, "Reset failed: %08lx\n", hres);
2234
2235 fetched = 0xdeadbeef;
2236 hres = IEnumOLEVERB_Next(enum_verbs, 1, verbs, &fetched);
2237 ok(hres == S_OK, "Next failed: %08lx\n", hres);
2238 ok(!fetched, "fetched = %ld\n", fetched);
2239
2240 hres = IEnumOLEVERB_Next(enum_verbs, 1, verbs, NULL);
2241 ok(hres == S_OK, "Next failed: %08lx\n", hres);
2242
2243 hres = IEnumOLEVERB_Skip(enum_verbs, 20);
2244 ok(hres == S_OK, "Reset failed: %08lx\n", hres);
2245
2246 fetched = 0xdeadbeef;
2247 hres = IEnumOLEVERB_Next(enum_verbs, 1, verbs, &fetched);
2248 ok(hres == S_OK, "Next failed: %08lx\n", hres);
2249 ok(!fetched, "fetched = %ld\n", fetched);
2250
2251 test_next_oleverb(enum_verbs, OLEIVERB_SHOW);
2252
2253 IEnumOLEVERB_Release(enum_verbs);
2254}
#define ARRAY_SIZE(A)
Definition: main.h:20
Verb verbs[]
Definition: certutil.cpp:21
#define test_next_oleverb(a, b)
Definition: webbrowser.c:2172
#define expect_oleverb(a, b)
Definition: webbrowser.c:2163
#define OLEIVERB_UIACTIVATE
Definition: ole2.h:42
#define OLEIVERB_INPLACEACTIVATE
Definition: ole2.h:43
#define OLEIVERB_PRIMARY
Definition: ole2.h:38

Referenced by test_WebBrowser(), and test_WebBrowserV1().

◆ test_ExecWB()

static void test_ExecWB ( IWebBrowser2 *  webbrowser,
BOOL  has_document 
)
static

Definition at line 2947 of file webbrowser.c.

2948{
2949 HRESULT hres, olecmdid_state, idm_state;
2950
2951 /* When no target is available (no document or custom target) an error is returned */
2952 if (has_document)
2953 {
2954 olecmdid_state = S_OK;
2955 idm_state = OLECMDERR_E_NOTSUPPORTED;
2956 }
2957 else
2958 {
2959 olecmdid_state = E_UNEXPECTED;
2960 idm_state = E_UNEXPECTED;
2961 }
2962
2963 /*
2964 * Test a safe operation that exists as both a high-numbered MSHTML id and an OLECMDID.
2965 * These tests show that QueryStatusWB uses a NULL pguidCmdGroup, since OLECMDID_STOP
2966 * succeeds (S_OK) and IDM_STOP does not (OLECMDERR_E_NOTSUPPORTED).
2967 */
2969 SET_EXPECT(Exec_STOP);
2970 }else if(has_document) {
2971 SET_EXPECT(Invoke_STATUSTEXTCHANGE);
2972 SET_EXPECT(SetStatusText);
2973 }
2974 hres = IWebBrowser2_ExecWB(webbrowser, OLECMDID_STOP, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0);
2975 if(!use_container_olecmd && has_document) {
2976 todo_wine ok(hres == olecmdid_state, "ExecWB failed: %08lx %08lx\n", hres, olecmdid_state);
2977 CLEAR_CALLED(Invoke_STATUSTEXTCHANGE); /* Called by IE9 */
2978 CLEAR_CALLED(SetStatusText); /* Called by IE9 */
2979 }else {
2980 ok(hres == olecmdid_state, "ExecWB failed: %08lx %08lx\n", hres, olecmdid_state);
2981 }
2983 SET_EXPECT(Exec_IDM_STOP);
2984 hres = IWebBrowser2_ExecWB(webbrowser, IDM_STOP, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0);
2985 ok(hres == idm_state, "ExecWB failed: %08lx %08lx\n", hres, idm_state);
2986}
#define E_UNEXPECTED
Definition: winerror.h:3528

Referenced by test_WebBrowser(), test_WebBrowser_slim_container(), and test_WebBrowserV1().

◆ test_Extent()

static void test_Extent ( IWebBrowser2 *  unk)
static

Definition at line 2704 of file webbrowser.c.

2705{
2706 IOleObject *oleobj;
2708 HRESULT hres;
2709 DWORD dpi_x;
2710 DWORD dpi_y;
2711 HDC hdc;
2712
2713 /* default aspect ratio is 96dpi / 96dpi */
2714 hdc = GetDC(0);
2715 dpi_x = GetDeviceCaps(hdc, LOGPIXELSX);
2716 dpi_y = GetDeviceCaps(hdc, LOGPIXELSY);
2717 ReleaseDC(0, hdc);
2718 if (dpi_x != 96 || dpi_y != 96)
2719 trace("dpi: %ld / %ld\n", dpi_y, dpi_y);
2720
2721 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
2722 ok(hres == S_OK, "Could not get IOleObject: %08lx\n", hres);
2723 if(FAILED(hres))
2724 return;
2725
2726 size.cx = size.cy = 0xdeadbeef;
2727 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &size);
2728 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2729 /* Default size is 50x20 pixels, in himetric units */
2730 expected.cx = MulDiv( 50, 2540, dpi_x );
2731 expected.cy = MulDiv( 20, 2540, dpi_y );
2732 ok(size.cx == expected.cx && size.cy == expected.cy, "size = {%ld %ld} (expected %ld %ld)\n",
2733 size.cx, size.cy, expected.cx, expected.cy );
2734
2735 size.cx = 800;
2736 size.cy = 700;
2737 hres = IOleObject_SetExtent(oleobj, DVASPECT_CONTENT, &size);
2738 ok(hres == S_OK, "SetExtent failed: %08lx\n", hres);
2739
2740 size.cx = size.cy = 0xdeadbeef;
2741 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &size);
2742 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2743 ok(size.cx == 800 && size.cy == 700, "size = {%ld %ld}\n", size.cx, size.cy);
2744
2745 size.cx = size.cy = 0xdeadbeef;
2746 hres = IOleObject_GetExtent(oleobj, 0, &size);
2747 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2748 ok(size.cx == 800 && size.cy == 700, "size = {%ld %ld}\n", size.cx, size.cy);
2749
2750 size.cx = 900;
2751 size.cy = 800;
2752 hres = IOleObject_SetExtent(oleobj, 0, &size);
2753 ok(hres == S_OK, "SetExtent failed: %08lx\n", hres);
2754
2755 size.cx = size.cy = 0xdeadbeef;
2756 hres = IOleObject_GetExtent(oleobj, 0, &size);
2757 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2758 ok(size.cx == 900 && size.cy == 800, "size = {%ld %ld}\n", size.cx, size.cy);
2759
2760 size.cx = size.cy = 0xdeadbeef;
2761 hres = IOleObject_GetExtent(oleobj, 0xdeadbeef, &size);
2762 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2763 ok(size.cx == 900 && size.cy == 800, "size = {%ld %ld}\n", size.cx, size.cy);
2764
2765 size.cx = 1000;
2766 size.cy = 900;
2767 hres = IOleObject_SetExtent(oleobj, 0xdeadbeef, &size);
2768 ok(hres == S_OK, "SetExtent failed: %08lx\n", hres);
2769
2770 size.cx = size.cy = 0xdeadbeef;
2771 hres = IOleObject_GetExtent(oleobj, 0xdeadbeef, &size);
2772 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2773 ok(size.cx == 1000 && size.cy == 900, "size = {%ld %ld}\n", size.cx, size.cy);
2774
2775 size.cx = size.cy = 0xdeadbeef;
2776 hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &size);
2777 ok(hres == S_OK, "GetExtent failed: %08lx\n", hres);
2778 ok(size.cx == 1000 && size.cy == 900, "size = {%ld %ld}\n", size.cx, size.cy);
2779
2780 IOleObject_Release(oleobj);
2781}
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:88
BOOL expected
Definition: store.c:2000
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
Definition: muldiv.c:25
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define LOGPIXELSY
Definition: wingdi.h:719
#define LOGPIXELSX
Definition: wingdi.h:718

Referenced by test_WebBrowser().

◆ test_external()

static void test_external ( IWebBrowser2 *  unk)
static

Definition at line 3444 of file webbrowser.c.

3445{
3446 IDocHostUIHandler2 *dochost;
3448 IDispatch *disp;
3449 HRESULT hres;
3450
3451 client = get_dochost(unk);
3452
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);
3456
3458 SET_EXPECT(GetExternal);
3459 disp = (void*)0xdeadbeef;
3460 hres = IDocHostUIHandler2_GetExternal(dochost, &disp);
3462 CHECK_CALLED(GetExternal);
3463 ok(hres == S_FALSE, "GetExternal failed: %08lx\n", hres);
3464 ok(!disp, "disp = %p\n", disp);
3465 }else {
3466 IShellUIHelper *uihelper;
3467
3468 ok(hres == S_OK, "GetExternal failed: %08lx\n", hres);
3469 ok(disp != NULL, "disp == NULL\n");
3470
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);
3475 }
3476
3477 IDocHostUIHandler2_Release(dochost);
3478}

Referenced by test_WebBrowser(), and test_WebBrowser_slim_container().

◆ test_FileProtocol()

static void test_FileProtocol ( void  )
static

Definition at line 4252 of file webbrowser.c.

4253{
4254 IWebBrowser2 *webbrowser;
4255 HANDLE file;
4256 ULONG ref;
4258 WCHAR file_url[MAX_PATH] = L"File://";
4259
4260 static const WCHAR test_file[] = L"wine_test.html";
4261
4264
4265 webbrowser = create_webbrowser();
4266 if(!webbrowser)
4267 return;
4268
4269 init_test(webbrowser, 0);
4270
4273 ok(0, "CreateFile failed\n");
4274 return;
4275 }
4277
4280
4281 test_ConnectionPoint(webbrowser, TRUE);
4282 test_ClientSite(webbrowser, &ClientSite, TRUE);
4283 test_DoVerb(webbrowser);
4284 test_Navigate2(webbrowser, file_url);
4285 test_ClientSite(webbrowser, NULL, TRUE);
4286
4287 ref = IWebBrowser2_Release(webbrowser);
4288 ok(ref == 0, "ref=%lu, expected 0\n", ref);
4289
4292}
#define CloseHandle
Definition: compat.h:739
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define MAX_PATH
Definition: compat.h:34
#define CreateFileW
Definition: compat.h:741
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
Definition: path.c:2098
DWORD WINAPI GetLongPathNameW(IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer)
Definition: path.c:1555
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define CREATE_NEW
Definition: disk.h:69
static void test_ConnectionPoint(IWebBrowser2 *unk, BOOL init)
Definition: webbrowser.c:2783
#define create_webbrowser()
Definition: webbrowser.c:237
static void test_ClientSite(IWebBrowser2 *unk, IOleClientSite *client, BOOL stop_download)
Definition: webbrowser.c:1967
static void test_Navigate2(IWebBrowser2 *webbrowser, const WCHAR *nav_url)
Definition: webbrowser.c:2814
static void test_DoVerb(IWebBrowser2 *unk)
Definition: webbrowser.c:1854
static IBackgroundCopyFile * test_file
Definition: file.c:36
static WCHAR file_url[INTERNET_MAX_URL_LENGTH]
Definition: url.c:194
#define GENERIC_WRITE
Definition: nt_native.h:90
short WCHAR
Definition: pedump.c:58
static void init_test(void)
Definition: shlexec.c:2649
TCHAR file_path[MAX_PATH]
Definition: sndrec32.cpp:57
Definition: fci.c:123
Definition: send.c:48
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define ERROR_FILE_EXISTS
Definition: winerror.h:287

Referenced by START_TEST().

◆ test_GetControlInfo()

static void test_GetControlInfo ( IWebBrowser2 *  unk)
static

Definition at line 2685 of file webbrowser.c.

2686{
2688 CONTROLINFO info;
2689 HRESULT hres;
2690
2691 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleControl, (void**)&control);
2692 ok(hres == S_OK, "Could not get IOleControl: %08lx\n", hres);
2693 if(FAILED(hres))
2694 return;
2695
2696 hres = IOleControl_GetControlInfo(control, &info);
2697 ok(hres == E_NOTIMPL, "GetControlInfo failed: %08lx, expected E_NOTIMPL\n", hres);
2698 hres = IOleControl_GetControlInfo(control, NULL);
2699 ok(hres == E_NOTIMPL, "GetControlInfo failed: %08lx, expected E_NOTIMPL\n", hres);
2700
2701 IOleControl_Release(control);
2702}
const GUID IID_IOleControl

Referenced by test_WebBrowser().

◆ test_GetMiscStatus()

static void test_GetMiscStatus ( IOleObject *  oleobj)
static

Definition at line 1943 of file webbrowser.c.

1944{
1945 DWORD st, i;
1946 HRESULT hres;
1947
1948 for(i=0; i<10; i++) {
1949 st = 0xdeadbeef;
1950 hres = IOleObject_GetMiscStatus(oleobj, i, &st);
1951 ok(hres == S_OK, "GetMiscStatus failed: %08lx\n", hres);
1954 "st=%08lx, expected OLEMISC_SETCLIENTSITEFIRST|OLEMISC_ACTIVATEWHENVISIBLE|"
1955 "OLEMISC_INSIDEOUT|OLEMISC_CANTLINKINSIDE|OLEMISC_RECOMPOSEONRESIZE)\n", st);
1956 }
1957}
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
Definition: glfuncs.h:248
@ OLEMISC_INSIDEOUT
Definition: actctx.c:89
@ OLEMISC_ACTIVATEWHENVISIBLE
Definition: actctx.c:90
@ OLEMISC_SETCLIENTSITEFIRST
Definition: actctx.c:99
@ OLEMISC_RECOMPOSEONRESIZE
Definition: actctx.c:82
@ OLEMISC_CANTLINKINSIDE
Definition: actctx.c:86

Referenced by test_ClientSite().

◆ test_go_back()

static void test_go_back ( IWebBrowser2 *  wb,
const WCHAR *  back_url,
int  back_enable,
int  forward_enable,
int  forward_todo 
)
static

Definition at line 3279 of file webbrowser.c.

3280{
3281 HRESULT hres;
3282
3283 current_url = back_url;
3284
3285 SET_EXPECT(Invoke_BEFORENAVIGATE2);
3286
3287 if(back_enable)
3288 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3289 else
3290 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3291
3292 if(forward_enable)
3293 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3294 else
3295 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3296
3297 nav_forward_todo = forward_todo;
3298 SET_EXPECT(Invoke_PROPERTYCHANGE);
3299 hres = IWebBrowser2_GoBack(wb);
3300 ok(hres == S_OK, "GoBack failed: %08lx\n", hres);
3301 CHECK_CALLED(Invoke_BEFORENAVIGATE2);
3303
3305 if(back_enable)
3306 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3307 else
3308 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3309 }
3310
3311 todo_wine_if(forward_todo) {
3312 if(forward_enable)
3313 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3314 else
3315 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3316 }
3317
3318 CLEAR_CALLED(Invoke_PROPERTYCHANGE); /* called by IE11 */
3319}

Referenced by test_WebBrowser().

◆ test_go_forward()

static void test_go_forward ( IWebBrowser2 *  wb,
const WCHAR *  forward_url,
int  back_enable,
int  forward_enable 
)
static

Definition at line 3321 of file webbrowser.c.

3322{
3323 HRESULT hres;
3324
3325 current_url = forward_url;
3327
3328 SET_EXPECT(Invoke_BEFORENAVIGATE2);
3329
3330 if(back_enable)
3331 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3332 else
3333 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3334
3335 if(forward_enable)
3336 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3337 else
3338 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3339
3340 hres = IWebBrowser2_GoForward(wb);
3341 ok(hres == S_OK, "GoForward failed: %08lx\n", hres);
3342 CHECK_CALLED(Invoke_BEFORENAVIGATE2);
3343
3344 if(back_enable)
3345 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
3346 else
3347 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
3348
3349 if(forward_enable)
3350 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
3351 else
3352 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
3353}

Referenced by test_WebBrowser().

◆ test_htmlwindow_close()

static void test_htmlwindow_close ( IWebBrowser2 *  wb)
static

Definition at line 3480 of file webbrowser.c.

3481{
3483 IHTMLDocument2 *doc;
3484 HRESULT hres;
3485
3486 doc = get_document(wb);
3487
3488 hres = IHTMLDocument2_get_parentWindow(doc, &window);
3489 ok(hres == S_OK, "get_parentWindow failed: %08lx\n", hres);
3490 IHTMLDocument2_Release(doc);
3491
3492 SET_EXPECT(Invoke_WINDOWCLOSING);
3493
3494 hres = IHTMLWindow2_close(window);
3495 ok(hres == S_OK, "close failed: %08lx\n", hres);
3496
3497 CHECK_CALLED(Invoke_WINDOWCLOSING);
3498
3499 IHTMLWindow2_Release(window);
3500}
#define get_document(u)
Definition: webbrowser.c:301
static IHTMLWindow2 * window
Definition: events.c:77
interface IHTMLWindow2 IHTMLWindow2
Definition: mshtmhst.idl:64

Referenced by test_WebBrowser().

◆ test_ie_funcs()

static void test_ie_funcs ( IWebBrowser2 *  wb)
static

Definition at line 2294 of file webbrowser.c.

2295{
2296 IDispatch *disp;
2298 int i;
2300 HRESULT hres;
2301 BSTR sName;
2302
2303 /* HWND */
2304
2305 hwnd = 0xdeadbeef;
2306 hres = IWebBrowser2_get_HWND(wb, &hwnd);
2307 ok(hres == E_FAIL, "get_HWND failed: %08lx, expected E_FAIL\n", hres);
2308 ok(hwnd == 0, "unexpected hwnd %p\n", (PVOID)hwnd);
2309
2310 /* MenuBar */
2311
2312 hres = IWebBrowser2_get_MenuBar(wb, &b);
2313 ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
2314 ok(b == VARIANT_TRUE, "b=%x\n", b);
2315
2316 SET_EXPECT(Invoke_ONMENUBAR);
2317 hres = IWebBrowser2_put_MenuBar(wb, (exvb = VARIANT_FALSE));
2318 ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
2319 CHECK_CALLED(Invoke_ONMENUBAR);
2320
2321 hres = IWebBrowser2_get_MenuBar(wb, &b);
2322 ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
2323 ok(b == VARIANT_FALSE, "b=%x\n", b);
2324
2325 SET_EXPECT(Invoke_ONMENUBAR);
2326 hres = IWebBrowser2_put_MenuBar(wb, (exvb = 100));
2327 ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
2328 CHECK_CALLED(Invoke_ONMENUBAR);
2329
2330 hres = IWebBrowser2_get_MenuBar(wb, &b);
2331 ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
2332 ok(b == VARIANT_TRUE, "b=%x\n", b);
2333
2334 /* AddressBar */
2335
2336 hres = IWebBrowser2_get_AddressBar(wb, &b);
2337 ok(hres == S_OK, "get_AddressBar failed: %08lx\n", hres);
2338 ok(b == VARIANT_TRUE, "b=%x\n", b);
2339
2340 SET_EXPECT(Invoke_ONADDRESSBAR);
2341 hres = IWebBrowser2_put_AddressBar(wb, (exvb = VARIANT_FALSE));
2342 ok(hres == S_OK, "put_AddressBar failed: %08lx\n", hres);
2343 CHECK_CALLED(Invoke_ONADDRESSBAR);
2344
2345 hres = IWebBrowser2_get_AddressBar(wb, &b);
2346 ok(hres == S_OK, "get_MenuBar failed: %08lx\n", hres);
2347 ok(b == VARIANT_FALSE, "b=%x\n", b);
2348
2349 SET_EXPECT(Invoke_ONADDRESSBAR);
2350 hres = IWebBrowser2_put_AddressBar(wb, (exvb = 100));
2351 ok(hres == S_OK, "put_AddressBar failed: %08lx\n", hres);
2352 CHECK_CALLED(Invoke_ONADDRESSBAR);
2353
2354 hres = IWebBrowser2_get_AddressBar(wb, &b);
2355 ok(hres == S_OK, "get_AddressBar failed: %08lx\n", hres);
2356 ok(b == VARIANT_TRUE, "b=%x\n", b);
2357
2358 SET_EXPECT(Invoke_ONADDRESSBAR);
2359 hres = IWebBrowser2_put_AddressBar(wb, (exvb = VARIANT_TRUE));
2360 ok(hres == S_OK, "put_MenuBar failed: %08lx\n", hres);
2361 CHECK_CALLED(Invoke_ONADDRESSBAR);
2362
2363 /* StatusBar */
2364
2365 hres = IWebBrowser2_get_StatusBar(wb, &b);
2366 ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
2367 ok(b == VARIANT_TRUE, "b=%x\n", b);
2368
2369 SET_EXPECT(Invoke_ONSTATUSBAR);
2370 hres = IWebBrowser2_put_StatusBar(wb, (exvb = VARIANT_TRUE));
2371 ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
2372 CHECK_CALLED(Invoke_ONSTATUSBAR);
2373
2374 hres = IWebBrowser2_get_StatusBar(wb, &b);
2375 ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
2376 ok(b == VARIANT_TRUE, "b=%x\n", b);
2377
2378 SET_EXPECT(Invoke_ONSTATUSBAR);
2379 hres = IWebBrowser2_put_StatusBar(wb, (exvb = VARIANT_FALSE));
2380 ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
2381 CHECK_CALLED(Invoke_ONSTATUSBAR);
2382
2383 hres = IWebBrowser2_get_StatusBar(wb, &b);
2384 ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
2385 ok(b == VARIANT_FALSE, "b=%x\n", b);
2386
2387 SET_EXPECT(Invoke_ONSTATUSBAR);
2388 hres = IWebBrowser2_put_StatusBar(wb, (exvb = 100));
2389 ok(hres == S_OK, "put_StatusBar failed: %08lx\n", hres);
2390 CHECK_CALLED(Invoke_ONSTATUSBAR);
2391
2392 hres = IWebBrowser2_get_StatusBar(wb, &b);
2393 ok(hres == S_OK, "get_StatusBar failed: %08lx\n", hres);
2394 ok(b == VARIANT_TRUE, "b=%x\n", b);
2395
2396 /* ToolBar */
2397
2398 hres = IWebBrowser2_get_ToolBar(wb, &i);
2399 ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
2400 ok(i, "i=%x\n", i);
2401
2402 SET_EXPECT(Invoke_ONTOOLBAR);
2403 hres = IWebBrowser2_put_ToolBar(wb, (exvb = VARIANT_FALSE));
2404 ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
2405 CHECK_CALLED(Invoke_ONTOOLBAR);
2406
2407 hres = IWebBrowser2_get_ToolBar(wb, &i);
2408 ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
2409 ok(i == VARIANT_FALSE, "b=%x\n", i);
2410
2411 SET_EXPECT(Invoke_ONTOOLBAR);
2412 hres = IWebBrowser2_put_ToolBar(wb, (exvb = 100));
2413 ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
2414 CHECK_CALLED(Invoke_ONTOOLBAR);
2415
2416 hres = IWebBrowser2_get_ToolBar(wb, &i);
2417 ok(hres == S_OK, "get_ToolBar failed: %08lx\n", hres);
2418 ok(i, "i=%x\n", i);
2419
2420 SET_EXPECT(Invoke_ONTOOLBAR);
2421 hres = IWebBrowser2_put_ToolBar(wb, (exvb = VARIANT_TRUE));
2422 ok(hres == S_OK, "put_ToolBar failed: %08lx\n", hres);
2423 CHECK_CALLED(Invoke_ONTOOLBAR);
2424
2425 /* FullScreen */
2426
2427 hres = IWebBrowser2_get_FullScreen(wb, &b);
2428 ok(hres == S_OK, "get_FullScreen failed: %08lx\n", hres);
2429 ok(b == VARIANT_FALSE, "b=%x\n", b);
2430
2431 SET_EXPECT(Invoke_ONFULLSCREEN);
2432 hres = IWebBrowser2_put_FullScreen(wb, (exvb = VARIANT_TRUE));
2433 ok(hres == S_OK, "put_FullScreen failed: %08lx\n", hres);
2434 CHECK_CALLED(Invoke_ONFULLSCREEN);
2435
2436 hres = IWebBrowser2_get_FullScreen(wb, &b);
2437 ok(hres == S_OK, "get_FullScreen failed: %08lx\n", hres);
2438 ok(b == VARIANT_TRUE, "b=%x\n", b);
2439
2440 SET_EXPECT(Invoke_ONFULLSCREEN);
2441 hres = IWebBrowser2_put_FullScreen(wb, (exvb = 100));
2442 ok(hres == S_OK, "put_FullScreen failed: %08lx\n", hres);
2443 CHECK_CALLED(Invoke_ONFULLSCREEN);
2444
2445 hres = IWebBrowser2_get_FullScreen(wb, &b);
2446 ok(hres == S_OK, "get_FullScreen failed: %08lx\n", hres);
2447 ok(b == VARIANT_TRUE, "b=%x\n", b);
2448
2449 SET_EXPECT(Invoke_ONFULLSCREEN);
2450 hres = IWebBrowser2_put_FullScreen(wb, (exvb = VARIANT_FALSE));
2451 ok(hres == S_OK, "put_FullScreen failed: %08lx\n", hres);
2452 CHECK_CALLED(Invoke_ONFULLSCREEN);
2453
2454 /* TheaterMode */
2455
2456 hres = IWebBrowser2_get_TheaterMode(wb, &b);
2457 ok(hres == S_OK, "get_TheaterMode failed: %08lx\n", hres);
2458 ok(b == VARIANT_FALSE, "b=%x\n", b);
2459
2460 SET_EXPECT(Invoke_ONTHEATERMODE);
2461 hres = IWebBrowser2_put_TheaterMode(wb, (exvb = VARIANT_TRUE));
2462 ok(hres == S_OK, "put_TheaterMode failed: %08lx\n", hres);
2463 CHECK_CALLED(Invoke_ONTHEATERMODE);
2464
2465 hres = IWebBrowser2_get_TheaterMode(wb, &b);
2466 ok(hres == S_OK, "get_TheaterMode failed: %08lx\n", hres);
2467 ok(b == VARIANT_TRUE, "b=%x\n", b);
2468
2469 SET_EXPECT(Invoke_ONTHEATERMODE);
2470 hres = IWebBrowser2_put_TheaterMode(wb, (exvb = 100));
2471 ok(hres == S_OK, "put_TheaterMode failed: %08lx\n", hres);
2472 CHECK_CALLED(Invoke_ONTHEATERMODE);
2473
2474 hres = IWebBrowser2_get_TheaterMode(wb, &b);
2475 ok(hres == S_OK, "get_TheaterMode failed: %08lx\n", hres);
2476 ok(b == VARIANT_TRUE, "b=%x\n", b);
2477
2478 SET_EXPECT(Invoke_ONTHEATERMODE);
2479 hres = IWebBrowser2_put_TheaterMode(wb, (exvb = VARIANT_FALSE));
2480 ok(hres == S_OK, "put_TheaterMode failed: %08lx\n", hres);
2481 CHECK_CALLED(Invoke_ONTHEATERMODE);
2482
2483 /* Resizable */
2484
2485 b = 0x100;
2486 hres = IWebBrowser2_get_Resizable(wb, &b);
2487 ok(hres == E_NOTIMPL, "get_Resizable failed: %08lx\n", hres);
2488 ok(b == 0x100, "b=%x\n", b);
2489
2490 SET_EXPECT(Invoke_WINDOWSETRESIZABLE);
2491 hres = IWebBrowser2_put_Resizable(wb, (exvb = VARIANT_TRUE));
2492 ok(hres == S_OK, "put_Resizable failed: %08lx\n", hres);
2493 CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
2494
2495 SET_EXPECT(Invoke_WINDOWSETRESIZABLE);
2496 hres = IWebBrowser2_put_Resizable(wb, (exvb = VARIANT_FALSE));
2497 ok(hres == S_OK, "put_Resizable failed: %08lx\n", hres);
2498 CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
2499
2500 hres = IWebBrowser2_get_Resizable(wb, &b);
2501 ok(hres == E_NOTIMPL, "get_Resizable failed: %08lx\n", hres);
2502 ok(b == 0x100, "b=%x\n", b);
2503
2504 /* Application */
2505
2506 disp = NULL;
2507 hres = IWebBrowser2_get_Application(wb, &disp);
2508 ok(hres == S_OK, "get_Application failed: %08lx\n", hres);
2509 ok(disp == (void*)wb, "disp=%p, expected %p\n", disp, wb);
2510 if(disp)
2511 IDispatch_Release(disp);
2512
2513 hres = IWebBrowser2_get_Application(wb, NULL);
2514 ok(hres == E_POINTER, "get_Application failed: %08lx, expected E_POINTER\n", hres);
2515
2516 /* Name */
2517 hres = IWebBrowser2_get_Name(wb, &sName);
2518 ok(hres == S_OK, "getName failed: %08lx, expected S_OK\n", hres);
2519 if (is_lang_english())
2520 ok(!lstrcmpW(sName, L"Microsoft Web Browser Control"), "got '%s', expected 'Microsoft Web Browser Control'\n", wine_dbgstr_w(sName));
2521 else /* Non-English cannot be blank. */
2522 ok(sName!=NULL, "get_Name return a NULL string.\n");
2523 SysFreeString(sName);
2524
2525 /* RegisterAsDropTarget */
2526 hres = IWebBrowser2_get_RegisterAsDropTarget(wb, NULL);
2527 ok(hres == E_INVALIDARG, "get_RegisterAsDropTarget returned: %08lx\n", hres);
2528
2529 /* Quit */
2530
2531 hres = IWebBrowser2_Quit(wb);
2532 ok(hres == E_FAIL, "Quit failed: %08lx, expected E_FAIL\n", hres);
2533}
long SHANDLE_PTR
Definition: basetsd.h:71
#define b
Definition: ke_i.h:79
static BOOL is_lang_english(void)
Definition: webbrowser.c:202

Referenced by test_WebBrowser().

◆ test_IServiceProvider()

static void test_IServiceProvider ( IWebBrowser2 *  unk)
static

Definition at line 3212 of file webbrowser.c.

3213{
3214 IServiceProvider *servprov = (void*)0xdeadbeef;
3215 IUnknown *iface;
3216 HRESULT hres;
3217
3218 hres = IWebBrowser2_QueryInterface(unk, &IID_IServiceProvider, (void**)&servprov);
3219 ok(hres == S_OK, "QueryInterface returned %08lx, expected S_OK\n", hres);
3220 if(FAILED(hres))
3221 return;
3222
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);
3226 if(hres == S_OK)
3227 IUnknown_Release(iface);
3228
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");
3232 if(hres == S_OK)
3233 IUnknown_Release(iface);
3234
3235 IServiceProvider_Release(servprov);
3236}

Referenced by test_WebBrowser().

◆ test_Navigate2()

static void test_Navigate2 ( IWebBrowser2 *  webbrowser,
const WCHAR *  nav_url 
)
static

Definition at line 2814 of file webbrowser.c.

2815{
2816 const WCHAR *title = L"WineHQ - Run Windows applications on Linux, BSD, Solaris and Mac OS X";
2817 VARIANT url;
2818 BOOL is_file;
2819 HRESULT hres;
2820
2821 test_LocationURL(webbrowser, is_first_load ? L"" : current_url);
2822 test_LocationName(webbrowser, is_first_load ? L"" : (is_http ? title : current_url));
2823 test_ready_state(is_first_load ? READYSTATE_UNINITIALIZED : READYSTATE_COMPLETE, VARIANT_FALSE);
2824
2825 is_http = !memcmp(nav_url, "http:", 5);
2826 V_VT(&url) = VT_BSTR;
2828
2829 if((is_file = !wcsnicmp(nav_url, L"file://", 7)))
2830 current_url = nav_url + 7;
2831
2832 if(is_first_load) {
2833 SET_EXPECT(Invoke_AMBIENT_USERMODE);
2834 SET_EXPECT(Invoke_PROPERTYCHANGE);
2835 SET_EXPECT(Invoke_BEFORENAVIGATE2);
2836 SET_EXPECT(Invoke_DOWNLOADBEGIN);
2837 if (use_container_olecmd) SET_EXPECT(Exec_SETDOWNLOADSTATE_1);
2838 SET_EXPECT(EnableModeless_FALSE);
2839 SET_EXPECT(Invoke_STATUSTEXTCHANGE);
2840 SET_EXPECT(SetStatusText);
2842 SET_EXPECT(GetHostInfo);
2843 SET_EXPECT(Invoke_AMBIENT_DLCONTROL);
2844 SET_EXPECT(Invoke_AMBIENT_USERAGENT);
2845 SET_EXPECT(Invoke_AMBIENT_PALETTE);
2847 SET_EXPECT(GetOptionKeyPath);
2848 SET_EXPECT(GetOverridesKeyPath);
2849 }
2851 SET_EXPECT(QueryStatus_SETPROGRESSTEXT);
2852 SET_EXPECT(Exec_SETPROGRESSMAX);
2853 SET_EXPECT(Exec_SETPROGRESSPOS);
2854 }
2855 SET_EXPECT(Invoke_SETSECURELOCKICON);
2856 SET_EXPECT(Invoke_FILEDOWNLOAD);
2857 if (use_container_olecmd) SET_EXPECT(Exec_SETDOWNLOADSTATE_0);
2858 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2859 SET_EXPECT(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2860 SET_EXPECT(EnableModeless_TRUE);
2861 if (!use_container_olecmd) SET_EXPECT(Invoke_DOWNLOADCOMPLETE);
2862 if (is_file) SET_EXPECT(Invoke_PROGRESSCHANGE);
2863 }
2864
2865 hres = IWebBrowser2_Navigate2(webbrowser, &url, NULL, NULL, NULL, NULL);
2866 ok(hres == S_OK, "Navigate2 failed: %08lx\n", hres);
2867
2868 if(is_first_load) {
2869 CHECK_CALLED(Invoke_AMBIENT_USERMODE);
2870 todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE);
2871 CHECK_CALLED(Invoke_BEFORENAVIGATE2);
2872 CHECK_CALLED(Invoke_DOWNLOADBEGIN);
2873 if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
2874 CHECK_CALLED(EnableModeless_FALSE);
2875 CHECK_CALLED(Invoke_STATUSTEXTCHANGE);
2876 CHECK_CALLED(SetStatusText);
2878 CHECK_CALLED(GetHostInfo);
2879 CHECK_CALLED(Invoke_AMBIENT_DLCONTROL);
2880 CHECK_CALLED(Invoke_AMBIENT_USERAGENT);
2881 CLEAR_CALLED(Invoke_AMBIENT_PALETTE); /* Not called by IE9 */
2883 CLEAR_CALLED(GetOptionKeyPath);
2884 CHECK_CALLED(GetOverridesKeyPath);
2885 }
2887 todo_wine CHECK_CALLED(QueryStatus_SETPROGRESSTEXT);
2888 todo_wine CHECK_CALLED(Exec_SETPROGRESSMAX);
2889 todo_wine CHECK_CALLED(Exec_SETPROGRESSPOS);
2890 }
2891 todo_wine CHECK_CALLED(Invoke_SETSECURELOCKICON);
2892 todo_wine CHECK_CALLED(Invoke_FILEDOWNLOAD);
2893 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
2894 CHECK_CALLED(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
2895 if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_0);
2896 CHECK_CALLED(EnableModeless_TRUE);
2897 if (!use_container_olecmd) CHECK_CALLED(Invoke_DOWNLOADCOMPLETE);
2898 if (is_file) todo_wine CHECK_CALLED(Invoke_PROGRESSCHANGE);
2899 }
2900
2901 VariantClear(&url);
2902
2903 test_ready_state(READYSTATE_LOADING, VARIANT_FALSE);
2904}
#define wcsnicmp
Definition: compat.h:14
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2807
#define test_LocationName(a, b)
Definition: webbrowser.c:266
#define test_LocationURL(a, b)
Definition: webbrowser.c:251
static const char * nav_url
Definition: htmldoc.c:217
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:240
static char title[]
Definition: ps.c:92
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:626

Referenced by test_FileProtocol(), test_TranslateAccelerator(), test_WebBrowser(), and test_WebBrowser_slim_container().

◆ test_navigatecomplete2()

static void test_navigatecomplete2 ( DISPPARAMS *  dp)
static

Definition at line 812 of file webbrowser.c.

813{
814 VARIANT *v;
815
816 CHECK_EXPECT(Invoke_NAVIGATECOMPLETE2);
817
818 ok(dp->rgvarg != NULL, "rgvarg == NULL\n");
819 ok(dp->cArgs == 2, "cArgs=%d, expected 2\n", dp->cArgs);
820
821 ok(V_VT(dp->rgvarg) == (VT_BYREF|VT_VARIANT), "V_VT(dp->rgvarg) = %d\n", V_VT(dp->rgvarg));
822 v = V_VARIANTREF(dp->rgvarg);
823 ok(V_VT(v) == VT_BSTR, "V_VT(url) = %d\n", V_VT(v));
824 ok(!lstrcmpW(V_BSTR(v), current_url), "url=%s, expected %s\n", wine_dbgstr_w(V_BSTR(v)),
826
827 ok(V_VT(dp->rgvarg+1) == VT_DISPATCH, "V_VT(dp->rgvarg+1) = %d\n", V_VT(dp->rgvarg+1));
828 ok(V_DISPATCH(dp->rgvarg+1) == (IDispatch*)wb, "V_DISPATCH=%p, wb=%p\n", V_DISPATCH(dp->rgvarg+1), wb);
829
831 test_ready_state(READYSTATE_COMPLETE, VARIANT_TRUE);
832 else
833 test_ready_state(READYSTATE_LOADING, VARIANT_TRUE);
834}

Referenced by WebBrowserEvents2_Invoke().

◆ test_Offline()

static void test_Offline ( IWebBrowser2 *  wb,
IOleControl *  control,
BOOL  is_clientsite 
)
static

Definition at line 2588 of file webbrowser.c.

2589{
2591 HRESULT hres;
2592
2593 b = 100;
2594 hres = IWebBrowser2_get_Offline(wb, &b);
2595 ok(hres == S_OK, "get_Offline failed: %08lx\n", hres);
2596 ok(b == VARIANT_FALSE, "b=%x\n", b);
2597
2598 hres = IWebBrowser2_put_Offline(wb, VARIANT_TRUE);
2599 ok(hres == S_OK, "set_Offline failed: %08lx\n", hres);
2600
2601 b = 100;
2602 hres = IWebBrowser2_get_Offline(wb, &b);
2603 ok(hres == S_OK, "get_Offline failed: %08lx\n", hres);
2604 ok(b == VARIANT_TRUE, "b=%x\n", b);
2605
2606 hres = IWebBrowser2_put_Offline(wb, 100);
2607 ok(hres == S_OK, "set_Offline failed: %08lx\n", hres);
2608
2609 b = 100;
2610 hres = IWebBrowser2_get_Offline(wb, &b);
2611 ok(hres == S_OK, "get_Offline failed: %08lx\n", hres);
2612 ok(b == VARIANT_TRUE, "b=%x\n", b);
2613
2614 hres = IWebBrowser2_put_Offline(wb, VARIANT_FALSE);
2615 ok(hres == S_OK, "set_Offline failed: %08lx\n", hres);
2616
2617 b = 100;
2618 hres = IWebBrowser2_get_Offline(wb, &b);
2619 ok(hres == S_OK, "get_Offline failed: %08lx\n", hres);
2620 ok(b == VARIANT_FALSE, "b=%x\n", b);
2621
2622 if(is_clientsite) {
2623 hres = IWebBrowser2_put_Offline(wb, VARIANT_TRUE);
2624 ok(hres == S_OK, "set_Offline failed: %08lx\n", hres);
2625
2626 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2627 }
2628
2629 hres = IOleControl_OnAmbientPropertyChange(control, DISPID_AMBIENT_OFFLINEIFNOTCONNECTED);
2630 ok(hres == S_OK, "OnAmbientPropertyChange failed %08lx\n", hres);
2631
2632 if(is_clientsite)
2633 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
2634
2635 b = 100;
2636 hres = IWebBrowser2_get_Offline(wb, &b);
2637 ok(hres == S_OK, "get_Offline failed: %08lx\n", hres);
2638 ok(b == VARIANT_FALSE, "b=%x\n", b);
2639}

Referenced by test_wb_funcs().

◆ test_olecmd()

static void test_olecmd ( IWebBrowser2 *  unk,
BOOL  loaded 
)
static

Definition at line 3182 of file webbrowser.c.

3183{
3184 IOleCommandTarget *cmdtrg;
3185 OLECMD cmds[3];
3186 HRESULT hres;
3187
3188 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleCommandTarget, (void**)&cmdtrg);
3189 ok(hres == S_OK, "Could not get IOleCommandTarget iface: %08lx\n", hres);
3190 if(FAILED(hres))
3191 return;
3192
3193 cmds[0].cmdID = OLECMDID_SPELL;
3194 cmds[0].cmdf = 0xdeadbeef;
3195 cmds[1].cmdID = OLECMDID_REFRESH;
3196 cmds[1].cmdf = 0xdeadbeef;
3197 hres = IOleCommandTarget_QueryStatus(cmdtrg, NULL, 2, cmds, NULL);
3198 if(loaded) {
3199 ok(hres == S_OK, "QueryStatus failed: %08lx\n", hres);
3200 ok(cmds[0].cmdf == OLECMDF_SUPPORTED, "OLECMDID_SPELL cmdf = %lx\n", cmds[0].cmdf);
3201 ok(cmds[1].cmdf == (OLECMDF_ENABLED|OLECMDF_SUPPORTED),
3202 "OLECMDID_REFRESH cmdf = %lx\n", cmds[1].cmdf);
3203 }else {
3204 ok(hres == 0x80040104, "QueryStatus failed: %08lx\n", hres);
3205 ok(cmds[0].cmdf == 0xdeadbeef, "OLECMDID_SPELL cmdf = %lx\n", cmds[0].cmdf);
3206 ok(cmds[1].cmdf == 0xdeadbeef, "OLECMDID_REFRESH cmdf = %lx\n", cmds[0].cmdf);
3207 }
3208
3209 IOleCommandTarget_Release(cmdtrg);
3210}
COMMAND cmds[]
Definition: main.c:21
BOOL loaded
Definition: xmlview.c:54
OLECMDF cmdf
Definition: olecmd.c:716

Referenced by test_WebBrowser().

◆ test_OleObject()

static void test_OleObject ( IWebBrowser2 *  wb,
int  version 
)
static

Definition at line 2275 of file webbrowser.c.

2276{
2277 IOleObject *oleobj;
2278 CLSID clsid;
2279 HRESULT hr;
2280
2281 hr = IWebBrowser2_QueryInterface(wb, &IID_IOleObject, (void **)&oleobj);
2282 ok(hr == S_OK, "QueryInterface(IID_IOleObject) failed: %08lx\n", hr);
2283
2284 hr = IOleObject_GetUserClassID(oleobj, &clsid);
2285 ok(hr == S_OK, "GetUserClassID failed: %08lx\n", hr);
2286 if (version == 1)
2287 ok(IsEqualGUID(&clsid, &CLSID_WebBrowser_V1), "got wrong CLSID: %s\n", wine_dbgstr_guid(&clsid));
2288 else
2289 ok(IsEqualGUID(&clsid, &CLSID_WebBrowser), "got wrong CLSID: %s\n", wine_dbgstr_guid(&clsid));
2290
2291 IOleObject_Release(oleobj);
2292}
static const WCHAR version[]
Definition: asmname.c:66
const CLSID * clsid
Definition: msctf.cpp:50

Referenced by test_WebBrowser(), and test_WebBrowserV1().

◆ test_OnBeforeNavigate()

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

Definition at line 719 of file webbrowser.c.

721{
722 BSTR str;
723
724 ok(V_VT(disp) == VT_DISPATCH, "V_VT(disp)=%d, expected VT_DISPATCH\n", V_VT(disp));
725 ok(V_DISPATCH(disp) != NULL, "V_DISPATCH(disp) == NULL\n");
726 ok(V_DISPATCH(disp) == (IDispatch*)wb, "V_DISPATCH(disp)=%p, wb=%p\n", V_DISPATCH(disp), wb);
727
728 ok(V_VT(url) == (VT_BYREF|VT_VARIANT), "V_VT(url)=%x, expected VT_BYREF|VT_VARIANT\n", V_VT(url));
729 ok(V_VARIANTREF(url) != NULL, "V_VARIANTREF(url) == NULL)\n");
730 if(V_VARIANTREF(url)) {
731 ok(V_VT(V_VARIANTREF(url)) == VT_BSTR, "V_VT(V_VARIANTREF(url))=%d, expected VT_BSTR\n",
733 ok(V_BSTR(V_VARIANTREF(url)) != NULL, "V_BSTR(V_VARIANTREF(url)) == NULL\n");
734 ok(!lstrcmpW(V_BSTR(V_VARIANTREF(url)), current_url), "unexpected url %s, expected %s\n",
736 }
737
738 ok(V_VT(flags) == (VT_BYREF|VT_VARIANT), "V_VT(flags)=%x, expected VT_BYREF|VT_VARIANT\n",
739 V_VT(flags));
740 ok(V_VT(flags) == (VT_BYREF|VT_VARIANT), "V_VT(flags)=%x, expected VT_BYREF|VT_VARIANT\n",
741 V_VT(flags));
742 ok(V_VARIANTREF(flags) != NULL, "V_VARIANTREF(flags) == NULL)\n");
743 if(V_VARIANTREF(flags)) {
744 int f;
745
746 ok(V_VT(V_VARIANTREF(flags)) == VT_I4, "V_VT(V_VARIANTREF(flags))=%d, expected VT_I4\n",
749 f &= ~0x100; /* IE11 sets this flag */
750 if(is_first_load)
751 ok(!f, "flags = %lx, expected 0\n", V_I4(V_VARIANTREF(flags)));
752 else
753 ok(!(f & ~0x40), "flags = %lx, expected 0x40 or 0\n", V_I4(V_VARIANTREF(flags)));
754 }
755
756 ok(V_VT(frame) == (VT_BYREF|VT_VARIANT), "V_VT(frame)=%x, expected VT_BYREF|VT_VARIANT\n",
757 V_VT(frame));
758 ok(V_VT(frame) == (VT_BYREF|VT_VARIANT), "V_VT(frame)=%x, expected VT_BYREF|VT_VARIANT\n",
759 V_VT(frame));
760 ok(V_VARIANTREF(frame) != NULL, "V_VARIANTREF(frame) == NULL)\n");
761 if(V_VARIANTREF(frame)) {
762 ok(V_VT(V_VARIANTREF(frame)) == VT_BSTR, "V_VT(V_VARIANTREF(frame))=%d, expected VT_BSTR\n",
763 V_VT(V_VARIANTREF(frame)));
764 ok(V_BSTR(V_VARIANTREF(frame)) == NULL, "V_BSTR(V_VARIANTREF(frame)) = %p, expected NULL\n",
765 V_BSTR(V_VARIANTREF(frame)));
766 }
767
768 ok(V_VT(post_data) == (VT_BYREF|VT_VARIANT), "V_VT(post_data)=%x, expected VT_BYREF|VT_VARIANT\n",
769 V_VT(post_data));
770 ok(V_VT(post_data) == (VT_BYREF|VT_VARIANT), "V_VT(post_data)=%x, expected VT_BYREF|VT_VARIANT\n",
771 V_VT(post_data));
772 ok(V_VARIANTREF(post_data) != NULL, "V_VARIANTREF(post_data) == NULL)\n");
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",
783
786
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);
789 }
790 }
791 }
792
793 ok(V_VT(headers) == (VT_BYREF|VT_VARIANT), "V_VT(headers)=%x, expected VT_BYREF|VT_VARIANT\n",
794 V_VT(headers));
795 ok(V_VARIANTREF(headers) != NULL, "V_VARIANTREF(headers) == NULL)\n");
796 if(V_VARIANTREF(headers)) {
797 ok(V_VT(V_VARIANTREF(headers)) == VT_BSTR, "V_VT(V_VARIANTREF(headers))=%d, expected VT_BSTR\n",
800 ok(!str || !lstrcmpW(str, L"Referer: http://test.winehq.org/tests/hello.html\r\n"),
801 "V_BSTR(V_VARIANTREF(headers)) = %s, expected NULL\n", wine_dbgstr_w(str));
802 }
803
804 ok(V_VT(cancel) == (VT_BYREF|VT_BOOL), "V_VT(cancel)=%x, expected VT_BYREF|VT_BOOL\n",
805 V_VT(cancel));
806 ok(V_BOOLREF(cancel) != NULL, "V_BOOLREF(pDispParams->rgvarg[0] == NULL)\n");
807 if(V_BOOLREF(cancel))
808 ok(*V_BOOLREF(cancel) == VARIANT_FALSE, "*V_BOOLREF(cancel) = %x, expected VARIANT_FALSE\n",
809 *V_BOOLREF(cancel));
810}
static struct sockaddr_in sa
Definition: adnsresfilter.c:69
@ VT_ARRAY
Definition: compat.h:2341
@ VT_UI1
Definition: compat.h:2311
GLfloat f
Definition: glext.h:7540
#define f
Definition: ke_i.h:83
static const CHAR post_data[]
Definition: protocol.c:222
#define V_ARRAY(A)
Definition: oleauto.h:222
#define V_BOOLREF(A)
Definition: oleauto.h:225
const WCHAR * str
vector< Header * > headers
Definition: sdkparse.cpp:39

Referenced by WebBrowserEvents2_Invoke().

◆ test_Persist()

static void test_Persist ( IWebBrowser2 *  wb,
int  version 
)
static

Definition at line 2256 of file webbrowser.c.

2257{
2258 IPersist *persist;
2259 GUID guid;
2260 HRESULT hr;
2261
2262 hr = IWebBrowser2_QueryInterface(wb, &IID_IPersist, (void **)&persist);
2263 ok(hr == S_OK, "QueryInterface(IID_IPersist) failed: %08lx\n", hr);
2264
2265 hr = IPersist_GetClassID(persist, &guid);
2266 ok(hr == S_OK, "GetClassID failed: %08lx\n", hr);
2267 if (version == 1)
2268 ok(IsEqualGUID(&guid, &CLSID_WebBrowser_V1), "got wrong CLSID: %s\n", wine_dbgstr_guid(&guid));
2269 else
2270 ok(IsEqualGUID(&guid, &CLSID_WebBrowser), "got wrong CLSID: %s\n", wine_dbgstr_guid(&guid));
2271
2272 IPersist_Release(persist);
2273}
const GUID IID_IPersist
Definition: proxy.cpp:14

Referenced by test_WebBrowser(), and test_WebBrowserV1().

◆ test_put_href()

static void test_put_href ( IWebBrowser2 *  unk,
const WCHAR *  url 
)
static

Definition at line 3238 of file webbrowser.c.

3239{
3240 IHTMLLocation *location;
3241 IHTMLDocument2 *doc;
3242 BSTR str;
3243 HRESULT hres;
3244
3245 trace("put_href(%s)...\n", wine_dbgstr_w(url));
3246
3247 doc = get_document(unk);
3248
3249 location = NULL;
3250 hres = IHTMLDocument2_get_location(doc, &location);
3251 IHTMLDocument2_Release(doc);
3252 ok(hres == S_OK, "get_location failed: %08lx\n", hres);
3253 ok(location != NULL, "location == NULL\n");
3254
3255 is_http = !wcsncmp(url, L"http:", 5);
3256
3257 SET_EXPECT(TranslateUrl);
3258 SET_EXPECT(Invoke_BEFORENAVIGATE2);
3259 SET_EXPECT(Invoke_PROPERTYCHANGE);
3260
3262
3265 hres = IHTMLLocation_put_href(location, str);
3266
3267 CHECK_CALLED(TranslateUrl);
3268 CHECK_CALLED(Invoke_BEFORENAVIGATE2);
3269 if(!is_http)
3270 todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE);
3271
3272 IHTMLLocation_Release(location);
3274 ok(hres == S_OK, "put_href failed: %08lx\n", hres);
3275
3276 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
3277}
_ACRTIMP int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t)
Definition: wcs.c:523
#define location(file, line)
Definition: kmtest.h:18

Referenced by test_WebBrowser().

◆ test_QueryInterface()

static void test_QueryInterface ( IWebBrowser2 *  wb)
static

Definition at line 3355 of file webbrowser.c.

3356{
3357 IQuickActivate *qa = (IQuickActivate*)0xdeadbeef;
3359 IPerPropertyBrowsing *propbrowse = (void*)0xdeadbeef;
3360 IOleInPlaceSite *inplace = (void*)0xdeadbeef;
3361 IOleCache *cache = (void*)0xdeadbeef;
3362 IObjectWithSite *site = (void*)0xdeadbeef;
3363 IViewObjectEx *viewex = (void*)0xdeadbeef;
3364 IOleLink *link = (void*)0xdeadbeef;
3365 IMarshal *marshal = (void*)0xdeadbeef;
3366 IUnknown *unk = (IUnknown*)wb;
3367 HRESULT hres;
3368
3369 hres = IUnknown_QueryInterface(unk, &IID_IQuickActivate, (void**)&qa);
3370 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3371 ok(qa == NULL, "qa=%p, expected NULL\n", qa);
3372
3373 hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&runnable);
3374 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3375 ok(runnable == NULL, "runnable=%p, expected NULL\n", runnable);
3376
3377 hres = IUnknown_QueryInterface(unk, &IID_IPerPropertyBrowsing, (void**)&propbrowse);
3378 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3379 ok(propbrowse == NULL, "propbrowse=%p, expected NULL\n", propbrowse);
3380
3381 hres = IUnknown_QueryInterface(unk, &IID_IOleCache, (void**)&cache);
3382 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3383 ok(cache == NULL, "cache=%p, expected NULL\n", cache);
3384
3385 hres = IUnknown_QueryInterface(unk, &IID_IOleInPlaceSite, (void**)&inplace);
3386 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3387 ok(inplace == NULL, "inplace=%p, expected NULL\n", inplace);
3388
3389 hres = IUnknown_QueryInterface(unk, &IID_IObjectWithSite, (void**)&site);
3390 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3391 ok(site == NULL, "site=%p, expected NULL\n", site);
3392
3393 hres = IUnknown_QueryInterface(unk, &IID_IViewObjectEx, (void**)&viewex);
3394 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3395 ok(viewex == NULL, "viewex=%p, expected NULL\n", viewex);
3396
3397 hres = IUnknown_QueryInterface(unk, &IID_IOleLink, (void**)&link);
3398 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3399 ok(link == NULL, "link=%p, expected NULL\n", link);
3400
3401 hres = IUnknown_QueryInterface(unk, &IID_IMarshal, (void**)&marshal);
3402 ok(hres == E_NOINTERFACE, "QueryInterface returned %08lx, expected E_NOINTERFACE\n", hres);
3403 ok(marshal == NULL, "marshal=%p, expected NULL\n", marshal);
3404
3405}
const WCHAR * link
Definition: db.cpp:998
const IID IID_IObjectWithSite
static IActiveScriptSite * site
Definition: script.c:149
static IRunnableObject * runnable
Definition: ole2.c:76
const GUID IID_IOleCache
const GUID IID_IRunnableObject
const GUID IID_IOleLink
const GUID IID_IPerPropertyBrowsing
Definition: cache.c:41

◆ test_QueryStatusWB()

static void test_QueryStatusWB ( IWebBrowser2 *  webbrowser,
BOOL  has_document 
)
static

Definition at line 2906 of file webbrowser.c.

2907{
2908 HRESULT hres, success_state;
2909 OLECMDF success_flags;
2910 enum OLECMDF status;
2911
2912 /*
2913 * We can tell the difference between the custom container target and the built-in target
2914 * since the custom target returns OLECMDF_SUPPORTED instead of OLECMDF_ENABLED.
2915 */
2917 success_flags = OLECMDF_SUPPORTED;
2918 else
2919 success_flags = OLECMDF_ENABLED;
2920
2921 /* When no target is available (no document or custom target) an error is returned */
2922 if (has_document)
2923 success_state = S_OK;
2924 else
2925 success_state = E_UNEXPECTED;
2926
2927 /*
2928 * Test a safe operation that exists as both a high-numbered MSHTML id and an OLECMDID.
2929 * These tests show that QueryStatusWB uses a NULL pguidCmdGroup, since OLECMDID_STOP
2930 * is enabled and IDM_STOP is not.
2931 */
2932 status = 0xdeadbeef;
2933 if (use_container_olecmd) SET_EXPECT(QueryStatus_STOP);
2934 hres = IWebBrowser2_QueryStatusWB(webbrowser, OLECMDID_STOP, &status);
2935 ok(hres == success_state, "QueryStatusWB failed: %08lx %08lx\n", hres, success_state);
2936 todo_wine_if (!use_container_olecmd && has_document)
2937 ok((has_document && status == success_flags) || (!has_document && status == 0xdeadbeef),
2938 "OLECMDID_STOP not enabled/supported: %08x %08x\n", status, success_flags);
2939 status = 0xdeadbeef;
2940 if (use_container_olecmd) SET_EXPECT(QueryStatus_IDM_STOP);
2941 hres = IWebBrowser2_QueryStatusWB(webbrowser, IDM_STOP, &status);
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);
2945}
Definition: ps.c:97

Referenced by test_WebBrowser(), test_WebBrowser_slim_container(), and test_WebBrowserV1().

◆ test_Refresh()

static void test_Refresh ( IWebBrowser2 *  webbrowser,
BOOL  use_refresh2 
)
static

Definition at line 3154 of file webbrowser.c.

3155{
3156 HRESULT hres;
3157
3158 trace("Refresh...\n");
3159
3161 SET_EXPECT(Exec_DocHostCommandHandler_2300);
3162
3163 if(use_refresh2) {
3164 VARIANT v;
3165
3166 V_VT(&v) = VT_I4;
3167 V_I4(&v) = REFRESH_NORMAL;
3168
3169 hres = IWebBrowser2_Refresh2(webbrowser, &v);
3170 ok(hres == S_OK, "Refresh failed: %08lx\n", hres);
3171 }else {
3172 hres = IWebBrowser2_Refresh(webbrowser);
3173 ok(hres == S_OK, "Refresh failed: %08lx\n", hres);
3174 }
3175
3177 CHECK_CALLED(Exec_DocHostCommandHandler_2300);
3178
3180}
static void test_download(DWORD flags)
Definition: webbrowser.c:2988

Referenced by test_WebBrowser().

◆ test_SetAdvise()

static void test_SetAdvise ( void  )
static

Definition at line 4358 of file webbrowser.c.

4359{
4360 HRESULT hr;
4361 IWebBrowser2 *browser;
4364 IOleObject *oleobj;
4365 IDispatch *doc;
4366 DWORD aspects, flags;
4367
4368 if (!(browser = create_webbrowser())) return;
4369 init_test(browser, 0);
4370
4371 hr = IWebBrowser2_QueryInterface(browser, &IID_IViewObject2, (void **)&view);
4372 ok(hr == S_OK, "got %08lx\n", hr);
4373 if (FAILED(hr)) return;
4374
4375 aspects = flags = 0xdeadbeef;
4376 sink = (IAdviseSink *)0xdeadbeef;
4377 hr = IViewObject2_GetAdvise(view, &aspects, &flags, &sink);
4378 ok(hr == S_OK, "got %08lx\n", hr);
4379 ok(!aspects, "got %08lx\n", aspects);
4380 ok(!flags, "got %08lx\n", aspects);
4381 ok(sink == NULL, "got %p\n", sink);
4382
4383 hr = IViewObject2_SetAdvise(view, DVASPECT_CONTENT, 0, &test_sink);
4384 ok(hr == S_OK, "got %08lx\n", hr);
4385
4386 aspects = flags = 0xdeadbeef;
4387 sink = (IAdviseSink *)0xdeadbeef;
4388 hr = IViewObject2_GetAdvise(view, &aspects, &flags, &sink);
4389 ok(hr == S_OK, "got %08lx\n", hr);
4390 ok(aspects == DVASPECT_CONTENT, "got %08lx\n", aspects);
4391 ok(!flags, "got %08lx\n", aspects);
4392 ok(sink == &test_sink, "got %p\n", sink);
4393
4394 hr = IWebBrowser2_QueryInterface(browser, &IID_IOleObject, (void **)&oleobj);
4395 ok(hr == S_OK, "got %08lx\n", hr);
4396
4397 SET_EXPECT(GetContainer);
4398 SET_EXPECT(Site_GetWindow);
4399 SET_EXPECT(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
4400 SET_EXPECT(Invoke_AMBIENT_SILENT);
4401 hr = IOleObject_SetClientSite(oleobj, &ClientSite);
4402 ok(hr == S_OK, "got %08lx\n", hr);
4403 CHECK_CALLED(GetContainer);
4404 CHECK_CALLED(Site_GetWindow);
4405 CHECK_CALLED(Invoke_AMBIENT_OFFLINEIFNOTCONNECTED);
4406 CHECK_CALLED(Invoke_AMBIENT_SILENT);
4407
4408 sink = (IAdviseSink *)0xdeadbeef;
4409 hr = IViewObject2_GetAdvise(view, &aspects, &flags, &sink);
4410 ok(hr == S_OK, "got %08lx\n", hr);
4411 ok(sink == &test_sink, "got %p\n", sink);
4412
4413 hr = IOleObject_SetClientSite(oleobj, NULL);
4414 ok(hr == S_OK, "got %08lx\n", hr);
4415
4416 aspects = flags = 0xdeadbeef;
4417 sink = (IAdviseSink *)0xdeadbeef;
4418 hr = IViewObject2_GetAdvise(view, &aspects, &flags, &sink);
4419 ok(hr == S_OK, "got %08lx\n", hr);
4420 ok(sink == &test_sink, "got %p\n", sink);
4421
4422 hr = IViewObject2_SetAdvise(view, 0, 0, NULL);
4423 ok(hr == S_OK, "got %08lx\n", hr);
4424
4425 doc = (void*)0xdeadbeef;
4426 hr = IWebBrowser2_get_Document(browser, &doc);
4427 ok(hr == S_FALSE, "get_Document failed: %08lx\n", hr);
4428 ok(!doc, "doc = %p\n", doc);
4429
4430 IOleObject_Release(oleobj);
4431 IViewObject2_Release(view);
4432 IWebBrowser2_Release(browser);
4433}
GLsizei GLenum GLboolean sink
Definition: glext.h:5672
const GUID IID_IViewObject2

Referenced by START_TEST().

◆ test_SetHostNames()

static void test_SetHostNames ( IOleObject *  oleobj)
static

Definition at line 1959 of file webbrowser.c.

1960{
1961 HRESULT hres;
1962
1963 hres = IOleObject_SetHostNames(oleobj, L"test app", (void*)0xdeadbeef);
1964 ok(hres == S_OK, "SetHostNames failed: %08lx\n", hres);
1965}

Referenced by test_ClientSite().

◆ test_SetQueryNetSessionCount()

static void test_SetQueryNetSessionCount ( void  )
static

Definition at line 4435 of file webbrowser.c.

4436{
4437 LONG count, init_count, inc_count, dec_count;
4438
4439 init_count = pSetQueryNetSessionCount(SESSION_QUERY);
4440 trace("init_count %ld\n", init_count);
4441
4442 inc_count = pSetQueryNetSessionCount(SESSION_INCREMENT);
4443 ok(inc_count > init_count, "count = %ld\n", inc_count);
4444
4445 count = pSetQueryNetSessionCount(SESSION_QUERY);
4446 ok(count == inc_count, "count = %ld\n", count);
4447
4448 dec_count = pSetQueryNetSessionCount(SESSION_DECREMENT);
4449 ok(dec_count < inc_count, "count = %ld\n", dec_count);
4450
4451 count = pSetQueryNetSessionCount(SESSION_QUERY);
4452 ok(count == dec_count, "count = %ld\n", count);
4453}
long LONG
Definition: pedump.c:60

Referenced by START_TEST().

◆ test_Silent()

static void test_Silent ( IWebBrowser2 *  wb,
IOleControl *  control,
BOOL  is_clientsite 
)
static

Definition at line 2535 of file webbrowser.c.

2536{
2538 HRESULT hres;
2539
2540 b = 100;
2541 hres = IWebBrowser2_get_Silent(wb, &b);
2542 ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
2543 ok(b == VARIANT_FALSE, "b=%x\n", b);
2544
2545 hres = IWebBrowser2_put_Silent(wb, VARIANT_TRUE);
2546 ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
2547
2548 b = 100;
2549 hres = IWebBrowser2_get_Silent(wb, &b);
2550 ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
2551 ok(b == VARIANT_TRUE, "b=%x\n", b);
2552
2553 hres = IWebBrowser2_put_Silent(wb, 100);
2554 ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
2555
2556 b = 100;
2557 hres = IWebBrowser2_get_Silent(wb, &b);
2558 ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
2559 ok(b == VARIANT_TRUE, "b=%x\n", b);
2560
2561 hres = IWebBrowser2_put_Silent(wb, VARIANT_FALSE);
2562 ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
2563
2564 b = 100;
2565 hres = IWebBrowser2_get_Silent(wb, &b);
2566 ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
2567 ok(b == VARIANT_FALSE, "b=%x\n", b);
2568
2569 if(is_clientsite) {
2570 hres = IWebBrowser2_put_Silent(wb, VARIANT_TRUE);
2571 ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
2572
2573 SET_EXPECT(Invoke_AMBIENT_SILENT);
2574 }
2575
2576 hres = IOleControl_OnAmbientPropertyChange(control, DISPID_AMBIENT_SILENT);
2577 ok(hres == S_OK, "OnAmbientPropertyChange failed %08lx\n", hres);
2578
2579 if(is_clientsite)
2580 CHECK_CALLED(Invoke_AMBIENT_SILENT);
2581
2582 b = 100;
2583 hres = IWebBrowser2_get_Silent(wb, &b);
2584 ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
2585 ok(b == VARIANT_FALSE, "b=%x\n", b);
2586}

Referenced by test_wb_funcs().

◆ test_TranslateAccelerator()

static void test_TranslateAccelerator ( IWebBrowser2 *  unk)
static

Definition at line 3502 of file webbrowser.c.

3503{
3504 IOleClientSite *doc_clientsite;
3506 HRESULT hres;
3507 DWORD keycode;
3508 MSG msg_a = {
3510 0, 0, 0,
3511 GetTickCount(),
3512 {5, 5}
3513 };
3514
3515 test_Navigate2(unk, L"about:blank");
3516
3517 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleInPlaceActiveObject, (void**)&pao);
3518 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3519 if(SUCCEEDED(hres)) {
3520 /* One accelerator that should be handled by mshtml */
3521 msg_a.message = WM_KEYDOWN;
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);
3525
3526 /* And one that should not */
3527 msg_a.message = WM_KEYDOWN;
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);
3531
3532 IOleInPlaceActiveObject_Release(pao);
3533 }
3534
3535 test_UIActivate(unk, TRUE);
3536
3537 /* Test again after UIActivate */
3538 hres = IWebBrowser2_QueryInterface(unk, &IID_IOleInPlaceActiveObject, (void**)&pao);
3539 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3540 if(SUCCEEDED(hres)) {
3541 /* One accelerator that should be handled by mshtml */
3542 msg_a.message = WM_KEYDOWN;
3543 msg_a.wParam = VK_F1;
3544 SET_EXPECT(DocHost_TranslateAccelerator);
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);
3548 todo_wine CHECK_CALLED(DocHost_TranslateAccelerator);
3550
3551 /* And one that should not */
3552 msg_a.message = WM_KEYDOWN;
3553 msg_a.wParam = VK_F5;
3554 SET_EXPECT(DocHost_TranslateAccelerator);
3555 hres = IOleInPlaceActiveObject_TranslateAccelerator(pao, &msg_a);
3556 todo_wine ok(hres == S_OK, "Got 0x%08lx (%04x::%02Ix)\n", hres, msg_a.message, msg_a.wParam);
3557 todo_wine CHECK_CALLED(DocHost_TranslateAccelerator);
3558
3559 IOleInPlaceActiveObject_Release(pao);
3560 }
3561
3562 doc_clientsite = get_dochost(unk);
3563 if(doc_clientsite) {
3564 IDocHostUIHandler2 *dochost;
3565 IOleControlSite *doc_controlsite;
3566 IUnknown *unk_test;
3567
3568 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IOleInPlaceFrame, (void**)&unk_test);
3569 ok(hres == E_NOINTERFACE, "Got 0x%08lx\n", hres);
3570 if(SUCCEEDED(hres)) IUnknown_Release(unk_test);
3571
3572 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostShowUI, (void**)&unk_test);
3573 todo_wine ok(hres == S_OK, "Got 0x%08lx\n", hres);
3574 if(SUCCEEDED(hres)) IUnknown_Release(unk_test);
3575
3576 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostUIHandler, (void**)&unk_test);
3577 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3578 if(SUCCEEDED(hres)) IUnknown_Release(unk_test);
3579
3580 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IDocHostUIHandler2, (void**)&dochost);
3581 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3582 if(SUCCEEDED(hres)) {
3583 msg_a.message = WM_KEYDOWN;
3585 for(keycode = 0; keycode <= 0x100; keycode++) {
3586 msg_a.wParam = keycode;
3587 SET_EXPECT(DocHost_TranslateAccelerator);
3588 hres = IDocHostUIHandler2_TranslateAccelerator(dochost, &msg_a, &CGID_MSHTML, 1234);
3589 ok(hres == 0xdeadbeef, "Got 0x%08lx\n", hres);
3590 CHECK_CALLED(DocHost_TranslateAccelerator);
3591 }
3593
3594 SET_EXPECT(DocHost_TranslateAccelerator);
3595 hres = IDocHostUIHandler2_TranslateAccelerator(dochost, &msg_a, &CGID_MSHTML, 1234);
3596 ok(hres == E_NOTIMPL, "Got 0x%08lx\n", hres);
3597 CHECK_CALLED(DocHost_TranslateAccelerator);
3598
3599 IDocHostUIHandler2_Release(dochost);
3600 }
3601
3602 hres = IOleClientSite_QueryInterface(doc_clientsite, &IID_IOleControlSite, (void**)&doc_controlsite);
3603 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3604 if(SUCCEEDED(hres)) {
3605 msg_a.message = WM_KEYDOWN;
3606 hr_site_TranslateAccelerator = 0xdeadbeef;
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)
3612 todo_wine ok(hres == S_OK, "Got 0x%08lx (keycode: %04lx)\n", hres, keycode);
3613 else
3614 ok(hres == S_FALSE, "Got 0x%08lx (keycode: %04lx)\n", hres, keycode);
3615
3617 }
3618 msg_a.wParam = VK_LEFT;
3620 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3621 ok(hres == S_FALSE, "Got 0x%08lx (keycode: %04lx)\n", hres, keycode);
3623
3626 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3627 ok(hres == S_OK, "Got 0x%08lx (keycode: %04lx)\n", hres, keycode);
3629
3632 hres = IOleControlSite_TranslateAccelerator(doc_controlsite, &msg_a, 0);
3633 ok(hres == S_FALSE, "Got 0x%08lx (keycode: %04lx)\n", hres, keycode);
3635
3636 IOleControlSite_Release(doc_controlsite);
3637 }
3638
3639 IOleClientSite_Release(doc_clientsite);
3640 }
3641
3642 test_UIActivate(unk, FALSE);
3643}
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
Definition: sync.c:182
static void test_UIActivate(IWebBrowser2 *unk, BOOL activate)
Definition: webbrowser.c:3407
const GUID IID_IOleInPlaceActiveObject
const GUID IID_IOleInPlaceFrame
#define VK_F1
Definition: winuser.h:2291
#define VK_F5
Definition: winuser.h:2295
#define VK_LEFT
Definition: winuser.h:2260
#define WM_KEYDOWN
Definition: winuser.h:1743

Referenced by test_WebBrowser().

◆ test_UIActivate()

static void test_UIActivate ( IWebBrowser2 *  unk,
BOOL  activate 
)
static

Definition at line 3407 of file webbrowser.c.

3408{
3409 IOleDocumentView *docview;
3410 IHTMLDocument2 *doc;
3411 HRESULT hres;
3412
3413 doc = get_document(unk);
3414
3415 hres = IHTMLDocument2_QueryInterface(doc, &IID_IOleDocumentView, (void**)&docview);
3416 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3417 if(SUCCEEDED(hres)) {
3418 if(activate) {
3419 SET_EXPECT(RequestUIActivate);
3420 SET_EXPECT(ShowUI);
3421 SET_EXPECT(HideUI);
3422 SET_EXPECT(OnFocus_FALSE);
3423 }
3424
3425 hres = IOleDocumentView_UIActivate(docview, activate);
3426 todo_wine_if(activate)
3427 ok(hres == S_OK, "Got 0x%08lx\n", hres);
3428
3429 if(activate) {
3430 todo_wine {
3431 CHECK_CALLED(RequestUIActivate);
3432 CHECK_CALLED(ShowUI);
3433 CHECK_CALLED(HideUI);
3434 CHECK_CALLED(OnFocus_FALSE);
3435 }
3436 }
3437
3438 IOleDocumentView_Release(docview);
3439 }
3440
3441 IHTMLDocument2_Release(doc);
3442}

Referenced by test_TranslateAccelerator().

◆ test_wb_funcs()

static void test_wb_funcs ( IWebBrowser2 *  wb,
BOOL  is_clientsite 
)
static

Definition at line 2670 of file webbrowser.c.

2671{
2673 HRESULT hres;
2674
2675 hres = IWebBrowser2_QueryInterface(wb, &IID_IOleControl, (void**)&control);
2676 ok(hres == S_OK, "Could not get IOleControl interface: %08lx\n", hres);
2677
2678 test_Silent(wb, control, is_clientsite);
2679 test_Offline(wb, control, is_clientsite);
2680 test_ambient_unknown(wb, control, is_clientsite);
2681
2682 IOleControl_Release(control);
2683}
static void test_Offline(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
Definition: webbrowser.c:2588
static void test_ambient_unknown(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
Definition: webbrowser.c:2641
static void test_Silent(IWebBrowser2 *wb, IOleControl *control, BOOL is_clientsite)
Definition: webbrowser.c:2535

Referenced by test_WebBrowser().

◆ test_WebBrowser()

static void test_WebBrowser ( DWORD  flags,
BOOL  do_close 
)
static

Definition at line 3843 of file webbrowser.c.

3844{
3845 IWebBrowser2 *webbrowser;
3846 IOleObject *oleobj;
3847 HRESULT hres;
3849
3850 webbrowser = create_webbrowser();
3851 if(!webbrowser)
3852 return;
3853
3854 init_test(webbrowser, flags);
3855
3856 hres = IWebBrowser2_QueryInterface(webbrowser, &IID_IOleObject, (void **)&oleobj);
3857 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
3858
3859 hres = IOleObject_Advise(oleobj, &test_sink, &connection);
3860 ok(hres == S_OK, "Advise failed: %08lx\n", hres);
3861
3862 test_QueryStatusWB(webbrowser, FALSE);
3863 test_ExecWB(webbrowser, FALSE);
3864 test_QueryInterface(webbrowser);
3865 test_ready_state(READYSTATE_UNINITIALIZED, BUSY_FAIL);
3866 test_ClassInfo(webbrowser);
3867 test_EnumVerbs(webbrowser);
3868 test_LocationURL(webbrowser, L"");
3869 test_ConnectionPoint(webbrowser, TRUE);
3870
3871 test_ClientSite(webbrowser, &ClientSite, !do_download);
3872 test_Extent(webbrowser);
3873 test_wb_funcs(webbrowser, TRUE);
3874 test_DoVerb(webbrowser);
3875 test_olecmd(webbrowser, FALSE);
3876 test_Navigate2(webbrowser, L"about:blank");
3877 test_QueryStatusWB(webbrowser, TRUE);
3878 test_Persist(webbrowser, 2);
3879 test_OleObject(webbrowser, 2);
3880 test_Advise(webbrowser);
3881
3882 if(do_download) {
3883 IHTMLDocument2 *doc, *doc2;
3884
3885 test_download(0);
3886 test_olecmd(webbrowser, TRUE);
3887 doc = get_document(webbrowser);
3888
3889 test_put_href(webbrowser, L"about:test");
3891 doc2 = get_document(webbrowser);
3892 ok(doc == doc2, "doc != doc2\n");
3893 IHTMLDocument2_Release(doc2);
3894
3895 trace("Navigate2 repeated...\n");
3896 test_Navigate2(webbrowser, L"about:blank");
3898 doc2 = get_document(webbrowser);
3899 ok(doc == doc2, "doc != doc2\n");
3900 IHTMLDocument2_Release(doc2);
3901 IHTMLDocument2_Release(doc);
3902
3903 if(!do_close) {
3904 trace("Navigate2 http URL...\n");
3905 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
3906 test_Navigate2(webbrowser, L"http://test.winehq.org/tests/hello.html");
3910
3911 test_Refresh(webbrowser, FALSE);
3912 test_Refresh(webbrowser, TRUE);
3913
3914 trace("put_href http URL...\n");
3915 test_put_href(webbrowser, L"http://test.winehq.org/tests/winehq_snapshot/");
3917
3918 trace("GoBack...\n");
3920 test_go_back(webbrowser, L"http://test.winehq.org/tests/hello.html", 0, 0, 1);
3923
3924 trace("GoForward...\n");
3925 test_go_forward(webbrowser, L"http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
3927
3928 trace("GoBack...\n");
3930 test_go_back(webbrowser, L"http://test.winehq.org/tests/hello.html", 0, -1, 0);
3933
3934 trace("GoForward...\n");
3935 test_go_forward(webbrowser, L"http://test.winehq.org/tests/winehq_snapshot/", -1, 0);
3937 }else {
3938 trace("Navigate2 repeated with the same URL...\n");
3939 test_Navigate2(webbrowser, L"about:blank");
3941 }
3942
3943 test_EnumVerbs(webbrowser);
3944 test_TranslateAccelerator(webbrowser);
3945
3946 test_dochost_qs(webbrowser);
3947 }else {
3948 test_ExecWB(webbrowser, TRUE);
3949 }
3950
3951 test_external(webbrowser);
3952 test_htmlwindow_close(webbrowser);
3953
3954 if(do_close) {
3955 test_Close(webbrowser, do_download);
3956 }else {
3957 test_change_ClientSite(webbrowser);
3958 test_ClientSite(webbrowser, NULL, !do_download);
3959 }
3960 test_ie_funcs(webbrowser);
3961 test_GetControlInfo(webbrowser);
3962 test_wb_funcs(webbrowser, FALSE);
3963 test_ConnectionPoint(webbrowser, FALSE);
3964 test_IServiceProvider(webbrowser);
3965
3966 hres = IOleObject_Unadvise(oleobj, connection);
3967 ok(hres == S_OK, "Unadvise failed: %08lx\n", hres);
3968
3969 IOleObject_Release(oleobj);
3970
3971 ref = IWebBrowser2_Release(webbrowser);
3972 ok(ref == 0 || broken(do_download && !do_close), "ref=%ld, expected 0\n", ref);
3973}
static void test_QueryInterface(void)
Definition: dinput.c:266
static void test_Advise(void)
Definition: ebrowser.c:1228
static void test_EnumVerbs(IWebBrowser2 *wb)
Definition: webbrowser.c:2187
static void test_IServiceProvider(IWebBrowser2 *unk)
Definition: webbrowser.c:3212
static void test_put_href(IWebBrowser2 *unk, const WCHAR *url)
Definition: webbrowser.c:3238
static void test_ie_funcs(IWebBrowser2 *wb)
Definition: webbrowser.c:2294
static void test_olecmd(IWebBrowser2 *unk, BOOL loaded)
Definition: webbrowser.c:3182
static void test_go_back(IWebBrowser2 *wb, const WCHAR *back_url, int back_enable, int forward_enable, int forward_todo)
Definition: webbrowser.c:3279
static void test_Persist(IWebBrowser2 *wb, int version)
Definition: webbrowser.c:2256
static void test_go_forward(IWebBrowser2 *wb, const WCHAR *forward_url, int back_enable, int forward_enable)
Definition: webbrowser.c:3321
static void test_change_ClientSite(IWebBrowser2 *unk)
Definition: webbrowser.c:2060
static void test_dochost_qs(IWebBrowser2 *webbrowser)
Definition: webbrowser.c:3645
static void test_QueryStatusWB(IWebBrowser2 *webbrowser, BOOL has_document)
Definition: webbrowser.c:2906
static void test_Close(IWebBrowser2 *wb, BOOL do_download)
Definition: webbrowser.c:3687
static void test_external(IWebBrowser2 *unk)
Definition: webbrowser.c:3444
static void test_TranslateAccelerator(IWebBrowser2 *unk)
Definition: webbrowser.c:3502
static void test_wb_funcs(IWebBrowser2 *wb, BOOL is_clientsite)
Definition: webbrowser.c:2670
static void test_htmlwindow_close(IWebBrowser2 *wb)
Definition: webbrowser.c:3480
static void test_Extent(IWebBrowser2 *unk)
Definition: webbrowser.c:2704
static void test_ClassInfo(IWebBrowser2 *unk)
Definition: webbrowser.c:2115
static void test_OleObject(IWebBrowser2 *wb, int version)
Definition: webbrowser.c:2275
static void test_Refresh(IWebBrowser2 *webbrowser, BOOL use_refresh2)
Definition: webbrowser.c:3154
static void test_GetControlInfo(IWebBrowser2 *unk)
Definition: webbrowser.c:2685
static void test_ExecWB(IWebBrowser2 *webbrowser, BOOL has_document)
Definition: webbrowser.c:2947
static void do_close(SOCKET)

Referenced by START_TEST().

◆ test_WebBrowser_DoVerb()

static void test_WebBrowser_DoVerb ( void  )
static

Definition at line 4040 of file webbrowser.c.

4041{
4042 IWebBrowser2 *webbrowser;
4043 RECT rect;
4044 HWND hwnd;
4045 ULONG ref;
4046 BOOL res;
4047 HRESULT hres;
4049
4050 webbrowser = create_webbrowser();
4051 init_test(webbrowser, 0);
4052
4053 test_ClientSite(webbrowser, &ClientSite, FALSE);
4054
4055 SET_EXPECT(CanInPlaceActivate);
4056 SET_EXPECT(Site_GetWindow);
4057 SET_EXPECT(OnInPlaceActivate);
4058 SET_EXPECT(GetWindowContext);
4059 SET_EXPECT(ShowObject);
4060 SET_EXPECT(GetContainer);
4063 CHECK_CALLED(CanInPlaceActivate);
4064 CHECK_CALLED(Site_GetWindow);
4065 CHECK_CALLED(OnInPlaceActivate);
4066 CHECK_CALLED(GetWindowContext);
4067 CHECK_CALLED(ShowObject);
4068 CHECK_CALLED(GetContainer);
4070
4071 hwnd = get_hwnd(webbrowser);
4072
4073 memset(&rect, 0xa, sizeof(rect));
4075 ok(res, "GetWindowRect failed: %lu\n", GetLastError());
4076
4077 SET_EXPECT(OnInPlaceDeactivate);
4078 call_DoVerb(webbrowser, OLEIVERB_HIDE);
4079 CHECK_CALLED(OnInPlaceDeactivate);
4080
4081 b = 0x100;
4082 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4083 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4084 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4085
4086 SET_EXPECT(CanInPlaceActivate);
4087 SET_EXPECT(Site_GetWindow);
4088 SET_EXPECT(OnInPlaceActivate);
4089 SET_EXPECT(GetWindowContext);
4090 SET_EXPECT(ShowObject);
4091 SET_EXPECT(GetContainer);
4093 SET_EXPECT(OnUIActivate);
4095 SET_EXPECT(UIWindow_SetActiveObject);
4097 SET_EXPECT(OnFocus_TRUE);
4098 call_DoVerb(webbrowser, OLEIVERB_SHOW);
4099 CHECK_CALLED(CanInPlaceActivate);
4100 CHECK_CALLED(Site_GetWindow);
4101 CHECK_CALLED(OnInPlaceActivate);
4102 CHECK_CALLED(GetWindowContext);
4103 CHECK_CALLED(ShowObject);
4104 CHECK_CALLED(GetContainer);
4106 CHECK_CALLED(OnUIActivate);
4108 CHECK_CALLED(UIWindow_SetActiveObject);
4110 CHECK_CALLED(OnFocus_TRUE);
4111
4112 b = 0x100;
4113 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4114 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4115 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4116
4117 call_DoVerb(webbrowser, OLEIVERB_SHOW);
4118 call_DoVerb(webbrowser, OLEIVERB_UIACTIVATE);
4119
4121 SET_EXPECT(UIWindow_SetActiveObject);
4122 SET_EXPECT(OnUIDeactivate);
4123 SET_EXPECT(OnFocus_FALSE);
4124 SET_EXPECT(OnInPlaceDeactivate);
4125 test_hide = TRUE;
4126 call_DoVerb(webbrowser, OLEIVERB_HIDE);
4127 test_hide = FALSE;
4129 CHECK_CALLED(UIWindow_SetActiveObject);
4130 CHECK_CALLED(OnUIDeactivate);
4131 CHECK_CALLED(OnFocus_FALSE);
4132 CHECK_CALLED(OnInPlaceDeactivate);
4133
4134 b = 0x100;
4135 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4136 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4137 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4138
4139 SET_EXPECT(CanInPlaceActivate);
4140 SET_EXPECT(Site_GetWindow);
4141 SET_EXPECT(OnInPlaceActivate);
4142 SET_EXPECT(GetWindowContext);
4143 SET_EXPECT(ShowObject);
4144 SET_EXPECT(GetContainer);
4146 SET_EXPECT(OnUIActivate);
4148 SET_EXPECT(UIWindow_SetActiveObject);
4150 SET_EXPECT(OnFocus_TRUE);
4151 call_DoVerb(webbrowser, OLEIVERB_SHOW);
4152 CHECK_CALLED(CanInPlaceActivate);
4153 CHECK_CALLED(Site_GetWindow);
4154 CHECK_CALLED(OnInPlaceActivate);
4155 CHECK_CALLED(GetWindowContext);
4156 CHECK_CALLED(ShowObject);
4157 CHECK_CALLED(GetContainer);
4159 CHECK_CALLED(OnUIActivate);
4161 CHECK_CALLED(UIWindow_SetActiveObject);
4163 CHECK_CALLED(OnFocus_TRUE);
4164
4165 b = 0x100;
4166 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4167 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4168 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4169
4171 SET_EXPECT(UIWindow_SetActiveObject);
4172 SET_EXPECT(OnUIDeactivate);
4173 SET_EXPECT(OnFocus_FALSE);
4174 SET_EXPECT(OnInPlaceDeactivate);
4175 test_hide = TRUE;
4176 call_DoVerb(webbrowser, OLEIVERB_HIDE);
4178 CHECK_CALLED(UIWindow_SetActiveObject);
4179 CHECK_CALLED(OnUIDeactivate);
4180 CHECK_CALLED(OnFocus_FALSE);
4181 CHECK_CALLED(OnInPlaceDeactivate);
4182
4183 call_DoVerb(webbrowser, OLEIVERB_HIDE);
4184 test_hide = FALSE;
4185
4186 b = 0x100;
4187 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4188 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4189 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4190
4191 SET_EXPECT(CanInPlaceActivate);
4192 SET_EXPECT(Site_GetWindow);
4193 SET_EXPECT(OnInPlaceActivate);
4194 SET_EXPECT(GetWindowContext);
4195 SET_EXPECT(ShowObject);
4196 SET_EXPECT(GetContainer);
4198 SET_EXPECT(OnUIActivate);
4200 SET_EXPECT(UIWindow_SetActiveObject);
4202 SET_EXPECT(OnFocus_TRUE);
4203 call_DoVerb(webbrowser, OLEIVERB_UIACTIVATE);
4204 CHECK_CALLED(CanInPlaceActivate);
4205 CHECK_CALLED(Site_GetWindow);
4206 CHECK_CALLED(OnInPlaceActivate);
4207 CHECK_CALLED(GetWindowContext);
4208 CHECK_CALLED(ShowObject);
4209 CHECK_CALLED(GetContainer);
4211 CHECK_CALLED(OnUIActivate);
4213 CHECK_CALLED(UIWindow_SetActiveObject);
4215 CHECK_CALLED(OnFocus_TRUE);
4216
4217 b = 0x100;
4218 hres = IWebBrowser2_get_Visible(webbrowser, &b);
4219 ok(hres == S_OK, "get_Visible failed: %08lx\n", hres);
4220 ok(b == VARIANT_TRUE, "Visible = %x\n", b);
4221
4222 call_DoVerb(webbrowser, OLEIVERB_SHOW);
4223
4224 test_ClientSite(webbrowser, NULL, FALSE);
4225
4226 ref = IWebBrowser2_Release(webbrowser);
4227 ok(ref == 0, "ref=%ld, expected 0\n", ref);
4228}
GLuint res
Definition: glext.h:9613
static HWND get_hwnd(void)
Definition: joystick.c:67
static void call_DoVerb(IWebBrowser2 *unk, LONG verb)
Definition: webbrowser.c:1909
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)

Referenced by START_TEST().

◆ test_WebBrowser_slim_container()

static void test_WebBrowser_slim_container ( void  )
static

Definition at line 4014 of file webbrowser.c.

4015{
4016 IWebBrowser2 *webbrowser;
4017 ULONG ref;
4018
4019 webbrowser = create_webbrowser();
4021
4022 test_ConnectionPoint(webbrowser, TRUE);
4023 test_ClientSite(webbrowser, &ClientSite, TRUE);
4024 test_DoVerb(webbrowser);
4025 test_Navigate2(webbrowser, L"about:blank");
4026
4027 /* Tests of interest */
4028 test_QueryStatusWB(webbrowser, TRUE);
4029 test_ExecWB(webbrowser, TRUE);
4030 test_external(webbrowser);
4031
4032 /* Cleanup stage */
4033 test_ClientSite(webbrowser, NULL, TRUE);
4034 test_ConnectionPoint(webbrowser, FALSE);
4035
4036 ref = IWebBrowser2_Release(webbrowser);
4037 ok(ref == 0, "ref=%ld, expected 0\n", ref);
4038}

Referenced by START_TEST().

◆ test_WebBrowserV1()

static void test_WebBrowserV1 ( void  )
static

Definition at line 3975 of file webbrowser.c.

3976{
3977 IWebBrowser2 *wb;
3978 IOleObject *oleobj;
3980 HRESULT hres;
3981
3982 hres = CoCreateInstance(&CLSID_WebBrowser_V1, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
3983 &IID_IWebBrowser2, (void**)&wb);
3984 ok(hres == S_OK, "Could not get WebBrowserV1 instance: %08lx\n", hres);
3985
3986 init_test(wb, 0);
3987 wb_version = 1;
3988
3989 hres = IWebBrowser2_QueryInterface(wb, &IID_IOleObject, (void **)&oleobj);
3990 ok(hres == S_OK, "QueryInterface(IID_OleObject) failed: %08lx\n", hres);
3991
3992 hres = IOleObject_Advise(oleobj, &test_sink, &connection);
3993 ok(hres == S_OK, "Advise failed: %08lx\n", hres);
3994
3998 test_ready_state(READYSTATE_UNINITIALIZED, BUSY_FAIL);
4001 test_Persist(wb, 1);
4002 test_OleObject(wb, 1);
4003 test_Advise(wb);
4004
4005 hres = IOleObject_Unadvise(oleobj, connection);
4006 ok(hres == S_OK, "Unadvise failed: %08lx\n", hres);
4007
4008 IOleObject_Release(oleobj);
4009
4010 ref = IWebBrowser2_Release(wb);
4011 ok(ref == 0, "ref=%ld, expected 0\n", ref);
4012}

Referenced by START_TEST().

◆ WebBrowserEvents2_Invoke()

static HRESULT WINAPI WebBrowserEvents2_Invoke ( IDispatch *  iface,
DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT *  pVarResult,
EXCEPINFO *  pExcepInfo,
UINT *  puArgErr 
)
static

Definition at line 857 of file webbrowser.c.

860{
861 ok(IsEqualGUID(&IID_NULL, riid), "riid != IID_NULL\n");
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);
865 ok(wFlags == DISPATCH_METHOD, "wFlags=%08x, expected DISPATCH_METHOD\n", wFlags);
866 ok(pDispParams->rgdispidNamedArgs == NULL,
867 "pDispParams->rgdispidNamedArgs = %p\n", pDispParams->rgdispidNamedArgs);
868 ok(pDispParams->cNamedArgs == 0, "pDispParams->cNamedArgs = %d\n", pDispParams->cNamedArgs);
869
870 switch(dispIdMember) {
872 CHECK_EXPECT2(Invoke_STATUSTEXTCHANGE);
873
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");
879 /* TODO: Check text */
880 break;
881
883 CHECK_EXPECT2(Invoke_PROPERTYCHANGE);
884
885 ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
886 ok(pDispParams->cArgs == 1, "cArgs=%d, expected 1\n", pDispParams->cArgs);
887 /* TODO: Check args */
888 break;
889
891 CHECK_EXPECT2(Invoke_DOWNLOADBEGIN);
892
893 ok(pDispParams->rgvarg == NULL, "rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
894 ok(pDispParams->cArgs == 0, "cArgs=%d, expected 0\n", pDispParams->cArgs);
896 test_ready_state(READYSTATE_COMPLETE, VARIANT_TRUE);
897 else if(!(dwl_flags & DWL_REFRESH)) /* todo_wine */
898 test_ready_state(READYSTATE_LOADING, VARIANT_TRUE);
899 break;
900
902 CHECK_EXPECT(Invoke_BEFORENAVIGATE2);
903
904 ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
905 ok(pDispParams->cArgs == 7, "cArgs=%d, expected 7\n", pDispParams->cArgs);
906 test_OnBeforeNavigate(pDispParams->rgvarg+6, pDispParams->rgvarg+5, pDispParams->rgvarg+4,
907 pDispParams->rgvarg+3, pDispParams->rgvarg+2, pDispParams->rgvarg+1,
908 pDispParams->rgvarg);
910 test_ready_state(READYSTATE_COMPLETE, VARIANT_FALSE);
911 else
912 test_ready_state(READYSTATE_LOADING, VARIANT_FALSE);
913 break;
914
916 CHECK_EXPECT2(Invoke_SETSECURELOCKICON);
917
918 ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
919 ok(pDispParams->cArgs == 1, "cArgs=%d, expected 1\n", pDispParams->cArgs);
920 /* TODO: Check args */
921 break;
922
924 CHECK_EXPECT(Invoke_FILEDOWNLOAD);
925
926 ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
927 ok(pDispParams->cArgs == 2, "cArgs=%d, expected 2\n", pDispParams->cArgs);
928 /* TODO: Check args */
929 break;
930
932 ok(pDispParams->rgvarg != NULL, "rgvarg == NULL\n");
933 ok(pDispParams->cArgs == 2, "cArgs=%d, expected 2\n", pDispParams->cArgs);
934
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));
941
942 if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEFORWARD)
943 {
945 if(V_BOOL(pDispParams->rgvarg))
946 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_TRUE);
947 else
948 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEFORWARD_FALSE);
949 }
950 }
951 else if (V_I4(pDispParams->rgvarg+1) == CSC_NAVIGATEBACK)
952 {
954 if(V_BOOL(pDispParams->rgvarg))
955 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_TRUE);
956 else
957 CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_NAVIGATEBACK_FALSE);
958 }
959 }
960 else if (V_I4(pDispParams->rgvarg+1) == CSC_UPDATECOMMANDS)
961 {
962 todo_wine CHECK_EXPECT2(Invoke_COMMANDSTATECHANGE_UPDATECOMMANDS);
963 set_update_commands_enable = V_BOOL(pDispParams->rgvarg);
964 }
965 break;
966
968 CHECK_EXPECT2(Invoke_DOWNLOADCOMPLETE);
969
970 ok(pDispParams->rgvarg == NULL, "rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
971 ok(pDispParams->cArgs == 0, "cArgs=%d, expected 0\n", pDispParams->cArgs);
973 test_ready_state(READYSTATE_LOADING, VARIANT_FALSE);
974 break;
975
976 case DISPID_ONMENUBAR:
977 CHECK_EXPECT(Invoke_ONMENUBAR);
978 test_invoke_bool(pDispParams, TRUE);
979 break;
980
982 CHECK_EXPECT(Invoke_ONADDRESSBAR);
983 test_invoke_bool(pDispParams, TRUE);
984 break;
985
987 CHECK_EXPECT(Invoke_ONSTATUSBAR);
988 test_invoke_bool(pDispParams, TRUE);
989 break;
990
991 case DISPID_ONTOOLBAR:
992 CHECK_EXPECT(Invoke_ONTOOLBAR);
993 test_invoke_bool(pDispParams, FALSE);
994 break;
995
997 CHECK_EXPECT(Invoke_ONFULLSCREEN);
998 test_invoke_bool(pDispParams, TRUE);
999 break;
1000
1002 CHECK_EXPECT(Invoke_ONTHEATERMODE);
1003 test_invoke_bool(pDispParams, TRUE);
1004 break;
1005
1007 CHECK_EXPECT(Invoke_WINDOWSETRESIZABLE);
1008 test_invoke_bool(pDispParams, TRUE);
1009 break;
1010
1011 case DISPID_TITLECHANGE:
1012 CHECK_EXPECT2(Invoke_TITLECHANGE);
1013 /* FIXME */
1014 break;
1015
1017 test_navigatecomplete2(pDispParams);
1018 break;
1019
1021 CHECK_EXPECT2(Invoke_PROGRESSCHANGE);
1022 /* FIXME */
1023 break;
1024
1026 test_documentcomplete(pDispParams);
1027 break;
1028
1029 case DISPID_WINDOWCLOSING: {
1030 VARIANT *is_child = pDispParams->rgvarg+1, *cancel = pDispParams->rgvarg;
1031
1032 CHECK_EXPECT(Invoke_WINDOWCLOSING);
1033
1034 ok(pDispParams->cArgs == 2, "pdp->cArgs = %d\n", pDispParams->cArgs);
1035 ok(V_VT(is_child) == VT_BOOL, "V_VT(is_child) = %d\n", V_VT(is_child));
1036 ok(!V_BOOL(is_child), "V_BOOL(is_child) = %x\n", V_BOOL(is_child));
1037 ok(V_VT(cancel) == (VT_BYREF|VT_BOOL), "V_VT(cancel) = %d\n", V_VT(cancel));
1038 ok(!*V_BOOLREF(cancel), "*V_BOOLREF(cancel) = %x\n", *V_BOOLREF(cancel));
1039
1040 *V_BOOLREF(cancel) = VARIANT_TRUE;
1041 return S_OK;
1042 }
1043
1044 case DISPID_SETPHISHINGFILTERSTATUS: /* FIXME */
1045 CHECK_EXPECT2(Invoke_SETPHISHINGFILTERSTATUS);
1046 break;
1047
1048 case DISPID_BEFORESCRIPTEXECUTE: /* FIXME: IE10 */
1049 break;
1050
1052 break;
1053
1054 default:
1055 ok(0, "unexpected dispIdMember %ld\n", dispIdMember);
1056 }
1057
1058 return S_OK;
1059}
#define DISPID_ONSTATUSBAR
Definition: exdispid.h:50
#define DISPID_ONTOOLBAR
Definition: exdispid.h:48
#define DISPID_ONADDRESSBAR
Definition: exdispid.h:54
#define DISPID_WINDOWSETRESIZABLE
Definition: exdispid.h:55
#define DISPID_SETSECURELOCKICON
Definition: exdispid.h:62
#define DISPID_PRIVACYIMPACTEDSTATECHANGE
Definition: exdispid.h:65
#define DISPID_ONFULLSCREEN
Definition: exdispid.h:51
#define DISPID_BEFORENAVIGATE2
Definition: exdispid.h:43
#define DISPID_NAVIGATECOMPLETE2
Definition: exdispid.h:45
#define DISPID_FILEDOWNLOAD
Definition: exdispid.h:63
#define DISPID_ONMENUBAR
Definition: exdispid.h:49
#define DISPID_TITLECHANGE
Definition: exdispid.h:35
#define DISPID_COMMANDSTATECHANGE
Definition: exdispid.h:27
#define DISPID_DOWNLOADCOMPLETE
Definition: exdispid.h:26
#define DISPID_PROGRESSCHANGE
Definition: exdispid.h:30
#define DISPID_WINDOWCLOSING
Definition: exdispid.h:56
#define DISPID_DOWNLOADBEGIN
Definition: exdispid.h:28
#define DISPID_BEFORESCRIPTEXECUTE
Definition: exdispid.h:75
#define DISPID_STATUSTEXTCHANGE
Definition: exdispid.h:24
#define DISPID_DOCUMENTCOMPLETE
Definition: exdispid.h:52
#define DISPID_SETPHISHINGFILTERSTATUS
Definition: exdispid.h:68
#define DISPID_ONTHEATERMODE
Definition: exdispid.h:53
#define DISPID_PROPERTYCHANGE
Definition: exdispid.h:34
static void test_navigatecomplete2(DISPPARAMS *dp)
Definition: webbrowser.c:812
#define test_invoke_bool(p, s)
Definition: webbrowser.c:705
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)
Definition: webbrowser.c:719
static void test_documentcomplete(DISPPARAMS *dp)
Definition: webbrowser.c:836
#define DISPATCH_METHOD
Definition: oleauto.h:1006

◆ WebBrowserEvents2_QueryInterface()

static HRESULT WINAPI WebBrowserEvents2_QueryInterface ( IDispatch *  iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 692 of file webbrowser.c.

693{
694 *ppv = NULL;
695
696 if(IsEqualGUID(&DIID_DWebBrowserEvents2, riid) || IsEqualGUID(&IID_IDispatch, riid)) {
697 *ppv = iface;
698 return S_OK;
699 }
700
701 ok(0, "unexpected riid %s\n", wine_dbgstr_guid(riid));
702 return E_NOINTERFACE;
703}

◆ wnd_proc()

static LRESULT WINAPI wnd_proc ( HWND  hwnd,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 1833 of file webbrowser.c.

1834{
1835 return DefWindowProcW(hwnd, msg, wParam, lParam);
1836}
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by create_container_window(), test_set_window_long_size(), and test_set_window_word_size().

Variable Documentation

◆ ClientSite

◆ ClientSite2

IOleClientSite ClientSite2 = { &ClientSiteVtbl }
static

Definition at line 1143 of file webbrowser.c.

Referenced by test_change_ClientSite().

◆ ClientSiteVtbl

const IOleClientSiteVtbl ClientSiteVtbl
static
Initial value:
= {
}
static HRESULT WINAPI ClientSite_RequestNewObjectLayout(IOleClientSite *iface)
Definition: webbrowser.c:1124
static HRESULT WINAPI ClientSite_ShowObject(IOleClientSite *iface)
Definition: webbrowser.c:1112
static ULONG WINAPI ClientSite_AddRef(IOleClientSite *iface)
Definition: webbrowser.c:1078
static ULONG WINAPI ClientSite_Release(IOleClientSite *iface)
Definition: webbrowser.c:1083
static HRESULT WINAPI ClientSite_SaveObject(IOleClientSite *iface)
Definition: webbrowser.c:1088
static HRESULT WINAPI ClientSite_QueryInterface(IOleClientSite *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1073
static HRESULT WINAPI ClientSite_GetMoniker(IOleClientSite *iface, DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmon)
Definition: webbrowser.c:1094
static HRESULT WINAPI ClientSite_OnShowWindow(IOleClientSite *iface, BOOL fShow)
Definition: webbrowser.c:1118
static HRESULT WINAPI ClientSite_GetContainer(IOleClientSite *iface, IOleContainer **ppContainer)
Definition: webbrowser.c:1101

Definition at line 1130 of file webbrowser.c.

◆ container_hwnd

◆ ControlSite

IOleControlSite ControlSite = { &ControlSiteVtbl }
static

Definition at line 1225 of file webbrowser.c.

Referenced by QueryInterface().

◆ ControlSiteVtbl

IOleControlSiteVtbl ControlSiteVtbl
static
Initial value:
= {
}
static HRESULT WINAPI IOleControlSite_fnOnControlInfoChanged(IOleControlSite *This)
Definition: webbrowser.c:1161
static HRESULT WINAPI IOleControlSite_fnQueryInterface(IOleControlSite *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1145
static HRESULT WINAPI IOleControlSite_fnShowPropertyFrame(IOleControlSite *This)
Definition: webbrowser.c:1206
static HRESULT WINAPI IOleControlSite_fnTransformCoords(IOleControlSite *This, POINTL *pPtlHimetric, POINTF *pPtfContainer, DWORD dwFlags)
Definition: webbrowser.c:1181
static HRESULT WINAPI IOleControlSite_fnTranslateAccelerator(IOleControlSite *This, MSG *pMsg, DWORD grfModifiers)
Definition: webbrowser.c:1190
static HRESULT WINAPI IOleControlSite_fnOnFocus(IOleControlSite *This, BOOL fGotFocus)
Definition: webbrowser.c:1197
static HRESULT WINAPI IOleControlSite_fnLockInPlaceActive(IOleControlSite *This, BOOL fLock)
Definition: webbrowser.c:1167
static ULONG WINAPI IOleControlSite_fnAddRef(IOleControlSite *iface)
Definition: webbrowser.c:1151
static HRESULT WINAPI IOleControlSite_fnGetExtendedControl(IOleControlSite *This, IDispatch **ppDisp)
Definition: webbrowser.c:1174
static ULONG WINAPI IOleControlSite_fnRelease(IOleControlSite *iface)
Definition: webbrowser.c:1156

Definition at line 1212 of file webbrowser.c.

◆ current_url

◆ Dispatch

Definition at line 690 of file webbrowser.c.

Referenced by QueryInterface().

◆ DispatchVtbl

IDispatchVtbl DispatchVtbl
static
Initial value:
= {
}
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
Definition: webbrowser.c:611
static ULONG WINAPI Dispatch_Release(IDispatch *iface)
Definition: webbrowser.c:606
static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: webbrowser.c:631
static HRESULT WINAPI Dispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: webbrowser.c:617
static ULONG WINAPI Dispatch_AddRef(IDispatch *iface)
Definition: webbrowser.c:601
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:596
static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: webbrowser.c:624

Definition at line 680 of file webbrowser.c.

◆ do_download

BOOL do_download
static

Definition at line 168 of file webbrowser.c.

Referenced by init_test(), test_Close(), and test_WebBrowser().

◆ DocHostUIHandler

IDocHostUIHandler2 DocHostUIHandler = { &DocHostUIHandlerVtbl }
static

Definition at line 1727 of file webbrowser.c.

Referenced by QueryInterface().

◆ DocHostUIHandlerVtbl

const IDocHostUIHandler2Vtbl DocHostUIHandlerVtbl
static
Initial value:
= {
}
static HRESULT WINAPI DocHostUIHandler_EnableModeless(IDocHostUIHandler2 *iface, BOOL fEnable)
Definition: webbrowser.c:1614
static HRESULT WINAPI DocHostUIHandler_ShowUI(IDocHostUIHandler2 *iface, DWORD dwID, IOleInPlaceActiveObject *pActiveObject, IOleCommandTarget *pCommandTarget, IOleInPlaceFrame *pFrame, IOleInPlaceUIWindow *pDoc)
Definition: webbrowser.c:1594
static HRESULT WINAPI DocHostUIHandler_HideUI(IDocHostUIHandler2 *iface)
Definition: webbrowser.c:1602
static HRESULT WINAPI DocHostUIHandler_ShowContextMenu(IDocHostUIHandler2 *iface, DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdicpReserved)
Definition: webbrowser.c:1573
static HRESULT WINAPI DocHostUIHandler_UpdateUI(IDocHostUIHandler2 *iface)
Definition: webbrowser.c:1608
static HRESULT WINAPI DocHostUIHandler_FilterDataObject(IDocHostUIHandler2 *iface, IDataObject *pDO, IDataObject **ppPORet)
Definition: webbrowser.c:1687
static ULONG WINAPI DocHostUIHandler_Release(IDocHostUIHandler2 *iface)
Definition: webbrowser.c:1568
static HRESULT WINAPI DocHostUIHandler_ResizeBorder(IDocHostUIHandler2 *iface, LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fRameWindow)
Definition: webbrowser.c:1636
static HRESULT WINAPI DocHostUIHandler_TranslateAccelerator(IDocHostUIHandler2 *iface, LPMSG lpMsg, const GUID *pguidCmdGroup, DWORD nCmdID)
Definition: webbrowser.c:1643
static HRESULT WINAPI DocHostUIHandler_GetExternal(IDocHostUIHandler2 *iface, IDispatch **ppDispatch)
Definition: webbrowser.c:1672
static ULONG WINAPI DocHostUIHandler_AddRef(IDocHostUIHandler2 *iface)
Definition: webbrowser.c:1563
static HRESULT WINAPI DocHostUIHandler_TranslateUrl(IDocHostUIHandler2 *iface, DWORD dwTranslate, OLECHAR *pchURLIn, OLECHAR **ppchURLOut)
Definition: webbrowser.c:1679
static HRESULT WINAPI DocHostUIHandler_OnFrameWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
Definition: webbrowser.c:1630
static HRESULT WINAPI DocHostUIHandler_GetOptionKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
Definition: webbrowser.c:1654
static HRESULT WINAPI DocHostUIHandler_GetOverrideKeyPath(IDocHostUIHandler2 *iface, LPOLESTR *pchKey, DWORD dw)
Definition: webbrowser.c:1694
static HRESULT WINAPI DocHostUIHandler_OnDocWindowActivate(IDocHostUIHandler2 *iface, BOOL fActivate)
Definition: webbrowser.c:1624
static HRESULT WINAPI DocHostUIHandler_QueryInterface(IDocHostUIHandler2 *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1558
static HRESULT WINAPI DocHostUIHandler_GetHostInfo(IDocHostUIHandler2 *iface, DOCHOSTUIINFO *pInfo)
Definition: webbrowser.c:1580
static HRESULT WINAPI DocHostUIHandler_GetDropTarget(IDocHostUIHandler2 *iface, IDropTarget *pDropTarget, IDropTarget **ppDropTarget)
Definition: webbrowser.c:1665

Definition at line 1705 of file webbrowser.c.

◆ dwl_flags

◆ expect_update_commands_enable

int expect_update_commands_enable
static

Definition at line 173 of file webbrowser.c.

Referenced by test_ClientSite(), test_Close(), and test_download().

◆ exvb

VARIANT_BOOL exvb
static

Definition at line 163 of file webbrowser.c.

Referenced by _test_invoke_bool(), and test_ie_funcs().

◆ hr_dochost_TranslateAccelerator

HRESULT hr_dochost_TranslateAccelerator = E_NOTIMPL
static

◆ hr_site_TranslateAccelerator

HRESULT hr_site_TranslateAccelerator = E_NOTIMPL
static

◆ InPlaceFrame

Definition at line 1391 of file webbrowser.c.

Referenced by InPlaceSite_GetWindowContext().

◆ InPlaceFrameVtbl

const IOleInPlaceFrameVtbl InPlaceFrameVtbl
static
Initial value:
= {
}
static HRESULT WINAPI InPlaceFrame_InsertMenus(IOleInPlaceFrame *iface, HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths)
Definition: webbrowser.c:1313
static HRESULT WINAPI InPlaceFrame_EnableModeless(IOleInPlaceFrame *iface, BOOL fEnable)
Definition: webbrowser.c:1344
static HRESULT WINAPI InPlaceUIWindow_QueryInterface(IOleInPlaceFrame *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1227
static HRESULT WINAPI InPlaceFrame_GetWindow(IOleInPlaceFrame *iface, HWND *phwnd)
Definition: webbrowser.c:1250
static ULONG WINAPI InPlaceUIWindow_Release(IOleInPlaceFrame *iface)
Definition: webbrowser.c:1239
static HRESULT WINAPI InPlaceFrame_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
Definition: webbrowser.c:1299
static HRESULT WINAPI InPlaceFrame_SetStatusText(IOleInPlaceFrame *iface, LPCOLESTR pszStatusText)
Definition: webbrowser.c:1337
static HRESULT WINAPI InPlaceFrame_SetMenu(IOleInPlaceFrame *iface, HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject)
Definition: webbrowser.c:1320
static HRESULT WINAPI InPlaceUIWindow_RequestBorderSpace(IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
Definition: webbrowser.c:1271
static HRESULT WINAPI InPlaceUIWindow_ContextSensitiveHelp(IOleInPlaceFrame *iface, BOOL fEnterMode)
Definition: webbrowser.c:1259
static HRESULT WINAPI InPlaceUIWindow_GetBorder(IOleInPlaceFrame *iface, LPRECT lprectBorder)
Definition: webbrowser.c:1265
static HRESULT WINAPI InPlaceFrame_RemoveMenus(IOleInPlaceFrame *iface, HMENU hmenuShared)
Definition: webbrowser.c:1331
static HRESULT WINAPI InPlaceFrame_TranslateAccelerator(IOleInPlaceFrame *iface, LPMSG lpmsg, WORD wID)
Definition: webbrowser.c:1353
static ULONG WINAPI InPlaceUIWindow_AddRef(IOleInPlaceFrame *iface)
Definition: webbrowser.c:1234
static HRESULT WINAPI InPlaceUIWindow_SetBorderSpace(IOleInPlaceFrame *iface, LPCBORDERWIDTHS pborderwidths)
Definition: webbrowser.c:1278

Definition at line 1373 of file webbrowser.c.

◆ InPlaceSite

IOleInPlaceSiteEx InPlaceSite = { &InPlaceSiteExVtbl }
static

Definition at line 1556 of file webbrowser.c.

Referenced by cs_qi(), DocumentSite_ActivateMe(), and QueryInterface().

◆ InPlaceSiteExVtbl

const IOleInPlaceSiteExVtbl InPlaceSiteExVtbl
static
Initial value:
= {
}
static HRESULT WINAPI InPlaceSite_OnPosRectChange(IOleInPlaceSiteEx *iface, LPCRECT lprcPosRect)
Definition: webbrowser.c:1509
static HRESULT WINAPI InPlaceSite_OnUIActivate(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1435
static HRESULT WINAPI InPlaceSite_DeactivateAndUndo(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1503
static HRESULT WINAPI InPlaceSite_GetWindow(IOleInPlaceSiteEx *iface, HWND *phwnd)
Definition: webbrowser.c:1408
static HRESULT WINAPI InPlaceSite_OnUIDeactivate(IOleInPlaceSiteEx *iface, BOOL fUndoable)
Definition: webbrowser.c:1484
static HRESULT WINAPI InPlaceSite_RequestUIActivate(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1529
static HRESULT WINAPI InPlaceSite_ContextSensitiveHelp(IOleInPlaceSiteEx *iface, BOOL fEnterMode)
Definition: webbrowser.c:1417
static HRESULT WINAPI InPlaceSite_QueryInterface(IOleInPlaceSiteEx *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1393
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivateEx(IOleInPlaceSiteEx *iface, BOOL fNoRedraw)
Definition: webbrowser.c:1522
static HRESULT WINAPI InPlaceSite_OnInPlaceActivateEx(IOleInPlaceSiteEx *iface, BOOL *pNoRedraw, DWORD dwFlags)
Definition: webbrowser.c:1515
static HRESULT WINAPI InPlaceSite_OnInPlaceActivate(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1429
static HRESULT WINAPI InPlaceSite_GetWindowContext(IOleInPlaceSiteEx *iface, IOleInPlaceFrame **ppFrame, IOleInPlaceUIWindow **ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo)
Definition: webbrowser.c:1441
static HRESULT WINAPI InPlaceSite_DiscardUndoState(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1497
static HRESULT WINAPI InPlaceSite_Scroll(IOleInPlaceSiteEx *iface, SIZE scrollExtant)
Definition: webbrowser.c:1478
static HRESULT WINAPI InPlaceSite_OnInPlaceDeactivate(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1491
static ULONG WINAPI InPlaceSite_Release(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1403
static HRESULT WINAPI InPlaceSite_CanInPlaceActivate(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1423
static ULONG WINAPI InPlaceSite_AddRef(IOleInPlaceSiteEx *iface)
Definition: webbrowser.c:1398

Definition at line 1535 of file webbrowser.c.

◆ InPlaceUIWindow

IOleInPlaceUIWindow InPlaceUIWindow = { (IOleInPlaceUIWindowVtbl*)&InPlaceUIWindowVtbl }
static

Definition at line 1371 of file webbrowser.c.

Referenced by InPlaceSite_GetWindowContext().

◆ InPlaceUIWindowVtbl

const IOleInPlaceFrameVtbl InPlaceUIWindowVtbl
static
Initial value:
= {
}
static HRESULT WINAPI InPlaceUIWindow_SetActiveObject(IOleInPlaceFrame *iface, IOleInPlaceActiveObject *pActiveObject, LPCOLESTR pszObjName)
Definition: webbrowser.c:1285
static HRESULT WINAPI InPlaceUIWindow_GetWindow(IOleInPlaceFrame *iface, HWND *phwnd)
Definition: webbrowser.c:1244

Definition at line 1359 of file webbrowser.c.

◆ is_downloading

BOOL is_downloading
static

◆ is_first_load

BOOL is_first_load
static

◆ is_http

BOOL is_http
static

Definition at line 169 of file webbrowser.c.

Referenced by _test_LocationName(), test_Navigate2(), and test_put_href().

◆ nav_back_todo

BOOL nav_back_todo
static

◆ nav_forward_todo

BOOL nav_forward_todo
static

Definition at line 174 of file webbrowser.c.

Referenced by test_ClientSite(), test_Close(), test_go_back(), and WebBrowserEvents2_Invoke().

◆ OleCommandTarget

IOleCommandTarget OleCommandTarget = { &OleCommandTargetVtbl }
static

Definition at line 534 of file webbrowser.c.

Referenced by OleContainer_QueryInterface().

◆ OleCommandTargetVtbl

IOleCommandTargetVtbl OleCommandTargetVtbl
static
Initial value:
= {
}
static ULONG WINAPI OleCommandTarget_AddRef(IOleCommandTarget *iface)
Definition: webbrowser.c:350
static HRESULT WINAPI OleCommandTarget_QueryStatus(IOleCommandTarget *iface, const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
Definition: webbrowser.c:360
static HRESULT WINAPI OleCommandTarget_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:343
static ULONG WINAPI OleCommandTarget_Release(IOleCommandTarget *iface)
Definition: webbrowser.c:355
static HRESULT WINAPI OleCommandTarget_Exec(IOleCommandTarget *iface, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: webbrowser.c:392

Definition at line 526 of file webbrowser.c.

◆ OleContainer

IOleContainer OleContainer = { &OleContainerVtbl }
static

Definition at line 594 of file webbrowser.c.

Referenced by ClientSite_GetContainer().

◆ OleContainerVtbl

const IOleContainerVtbl OleContainerVtbl
static
Initial value:
= {
}
static ULONG WINAPI OleContainer_Release(IOleContainer *iface)
Definition: webbrowser.c:560
static HRESULT WINAPI OleContainer_EnumObjects(IOleContainer *iface, DWORD grfFlags, IEnumUnknown **ppenum)
Definition: webbrowser.c:572
static HRESULT WINAPI OleContainer_ParseDisplayName(IOleContainer *iface, IBindCtx *pbc, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut)
Definition: webbrowser.c:565
static HRESULT WINAPI OleContainer_LockContainer(IOleContainer *iface, BOOL fLock)
Definition: webbrowser.c:579
static HRESULT WINAPI OleContainer_QueryInterface(IOleContainer *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:536
static ULONG WINAPI OleContainer_AddRef(IOleContainer *iface)
Definition: webbrowser.c:555

Definition at line 585 of file webbrowser.c.

◆ outer_vtbl

IUnknownVtbl outer_vtbl
static
Initial value:
= {
}
static ULONG WINAPI outer_AddRef(IUnknown *iface)
Definition: webbrowser.c:4466
static HRESULT WINAPI outer_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:4455
static ULONG WINAPI outer_Release(IUnknown *iface)
Definition: webbrowser.c:4471

Definition at line 4476 of file webbrowser.c.

Referenced by test_com_aggregation().

◆ ServiceProvider

IServiceProvider ServiceProvider = { &ServiceProviderVtbl }
static

Definition at line 1794 of file webbrowser.c.

Referenced by QueryInterface().

◆ ServiceProviderVtbl

const IServiceProviderVtbl ServiceProviderVtbl
static
Initial value:
= {
}
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: webbrowser.c:1745
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
Definition: webbrowser.c:1740
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:1730
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
Definition: webbrowser.c:1735

Definition at line 1787 of file webbrowser.c.

◆ set_update_commands_enable

int set_update_commands_enable
static

Definition at line 173 of file webbrowser.c.

Referenced by test_ClientSite(), test_Close(), test_download(), and WebBrowserEvents2_Invoke().

◆ shell_embedding_hwnd

HWND shell_embedding_hwnd
static

Definition at line 167 of file webbrowser.c.

Referenced by InPlaceFrame_SetMenu(), test_change_ClientSite(), and test_ClientSite().

◆ sink_vtbl

const IAdviseSinkVtbl sink_vtbl
static
Initial value:
=
{
}
static void WINAPI sink_OnClose(IAdviseSink *iface)
Definition: webbrowser.c:4338
static void WINAPI sink_OnDataChange(IAdviseSink *iface, FORMATETC *format, STGMEDIUM *medium)
Definition: webbrowser.c:4318
static ULONG WINAPI sink_AddRef(IAdviseSink *iface)
Definition: webbrowser.c:4308
static void WINAPI sink_OnSave(IAdviseSink *iface)
Definition: webbrowser.c:4333
static HRESULT WINAPI sink_QueryInterface(IAdviseSink *iface, REFIID riid, void **obj)
Definition: webbrowser.c:4294
static void WINAPI sink_OnRename(IAdviseSink *iface, IMoniker *moniker)
Definition: webbrowser.c:4328
static void WINAPI sink_OnViewChange(IAdviseSink *iface, DWORD aspect, LONG index)
Definition: webbrowser.c:4323
static ULONG WINAPI sink_Release(IAdviseSink *iface)
Definition: webbrowser.c:4313

Definition at line 4344 of file webbrowser.c.

◆ test_close

BOOL test_close ( void  )
static

◆ test_hide

BOOL test_hide
static

◆ test_sink

static IAdviseSink test_sink = { &sink_vtbl }
static

◆ use_container_dochostui

BOOL use_container_dochostui
static

Definition at line 169 of file webbrowser.c.

Referenced by init_test(), QueryInterface(), test_external(), and test_Navigate2().

◆ use_container_olecmd

◆ wb

◆ wb_version

int wb_version
static

Definition at line 173 of file webbrowser.c.

Referenced by _create_webbrowser(), test_ClassInfo(), and test_WebBrowserV1().

◆ WebBrowserEvents2

IDispatch WebBrowserEvents2 = { &WebBrowserEvents2Vtbl }
static

Definition at line 1071 of file webbrowser.c.

Referenced by test_ConnectionPoint().

◆ WebBrowserEvents2Vtbl

IDispatchVtbl WebBrowserEvents2Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: webbrowser.c:857
static HRESULT WINAPI WebBrowserEvents2_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
Definition: webbrowser.c:692

Definition at line 1061 of file webbrowser.c.