Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes

DWebBrowserEvents2Impl Struct Reference

#include <webchild.h>

Inheritance diagram for DWebBrowserEvents2Impl:
Inheritance graph
[legend]
Collaboration diagram for DWebBrowserEvents2Impl:
Collaboration graph
[legend]

List of all members.

Public Types

typedef IComSrvBase
< FixedDWebBrowserEvents2,
DWebBrowserEvents2Impl
super

Public Member Functions

 DWebBrowserEvents2Impl (BrowserNavigator &navigator)
STDMETHOD() GetTypeInfoCount (UINT *pctinfo)
STDMETHOD() GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
STDMETHOD() GetIDsOfNames (REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
STDMETHOD() Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS __RPC_FAR *pDispParams, VARIANT __RPC_FAR *pVarResult, EXCEPINFO __RPC_FAR *pExcepInfo, UINT __RPC_FAR *puArgErr)

Public Attributes

DWebBrowserEvents2IF_callback

Protected Member Functions

void NavigateComplete2 (IDispatch *pDisp, const Variant &url)

Protected Attributes

BrowserNavigator_navigator

Detailed Description

Definition at line 533 of file webchild.h.


Member Typedef Documentation

Reimplemented from IComSrvBase< FixedDWebBrowserEvents2, DWebBrowserEvents2Impl >.

Reimplemented in WebChildWindow.

Definition at line 537 of file webchild.h.


Constructor & Destructor Documentation

DWebBrowserEvents2Impl::DWebBrowserEvents2Impl ( BrowserNavigator navigator ) [inline]

Definition at line 543 of file webchild.h.

     :  super(DIID_DWebBrowserEvents2),
        _navigator(navigator)
    {
        _callback = this;
    }

Member Function Documentation

STDMETHOD() DWebBrowserEvents2Impl::GetIDsOfNames ( REFIID  riid,
LPOLESTR *  rgszNames,
UINT  cNames,
LCID  lcid,
DISPID *  rgDispId 
) [inline]

Definition at line 570 of file webchild.h.

        {return E_NOTIMPL;}
STDMETHOD() DWebBrowserEvents2Impl::GetTypeInfo ( UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
) [inline]

Definition at line 567 of file webchild.h.

        {return E_NOTIMPL;}
STDMETHOD() DWebBrowserEvents2Impl::GetTypeInfoCount ( UINT *  pctinfo ) [inline]

Definition at line 564 of file webchild.h.

        {return E_NOTIMPL;}
STDMETHOD() DWebBrowserEvents2Impl::Invoke ( DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS __RPC_FAR *  pDispParams,
VARIANT __RPC_FAR *  pVarResult,
EXCEPINFO __RPC_FAR *  pExcepInfo,
UINT __RPC_FAR *  puArgErr 
) [inline]

Definition at line 573 of file webchild.h.

References DISPID_CLIENTTOHOSTWINDOW, DISPID_COMMANDSTATECHANGE, DISPID_DOCUMENTCOMPLETE, DISPID_DOWNLOADBEGIN, DISPID_DOWNLOADCOMPLETE, DISPID_FILEDOWNLOAD, DISPID_FRAMEBEFORENAVIGATE, DISPID_FRAMENAVIGATECOMPLETE, DISPID_FRAMENEWWINDOW, DISPID_NAVIGATECOMPLETE2, DISPID_NAVIGATEERROR, DISPID_ONADDRESSBAR, DISPID_ONFULLSCREEN, DISPID_ONMENUBAR, DISPID_ONQUIT, DISPID_ONSTATUSBAR, DISPID_ONTHEATERMODE, DISPID_ONTOOLBAR, DISPID_ONVISIBLE, DISPID_PRIVACYIMPACTEDSTATECHANGE, DISPID_PROGRESSCHANGE, DISPID_PROPERTYCHANGE, DISPID_SETSECURELOCKICON, DISPID_STATUSTEXTCHANGE, DISPID_TITLECHANGE, DISPID_TITLEICONCHANGE, DISPID_WINDOWACTIVATE, DISPID_WINDOWCLOSING, DISPID_WINDOWMOVE, DISPID_WINDOWRESIZE, DISPID_WINDOWSETHEIGHT, DISPID_WINDOWSETLEFT, DISPID_WINDOWSETRESIZABLE, DISPID_WINDOWSETTOP, DISPID_WINDOWSETWIDTH, and DWebBrowserEvents2IF::NavigateComplete2().

    {
        switch(dispIdMember) {
          case DISPID_STATUSTEXTCHANGE:
            _callback->StatusTextChange((BStr)Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_COMMANDSTATECHANGE:
            _callback->CommandStateChange(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_DOWNLOADBEGIN:
            _callback->DownloadBegin();
            break;

          case DISPID_PROGRESSCHANGE:   // sent when download progress is updated
            _callback->ProgressChange(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWMOVE:       // sent when main window has been moved
            _callback->WindowMove();
            break;

          case DISPID_WINDOWRESIZE:     // sent when main window has been sized
            _callback->WindowResize();
            break;

          case DISPID_WINDOWACTIVATE:   // sent when main window has been activated
            _callback->WindowActivate();
            break;

          case DISPID_PROPERTYCHANGE:   // sent when the PutProperty method is called
            _callback->PropertyChange((BStr)Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_TITLECHANGE:      // sent when the document title changes
            _callback->TitleChange((BStr)Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_TITLEICONCHANGE:  // sent when the top level window icon may have changed.
            _callback->TitleIconChange((BStr)Variant(pDispParams->rgvarg[0]));
            break;


            // anything below here is not present in DWebBrowserEvents, only in DWebBrowserEvents2: ->

          case DISPID_FRAMEBEFORENAVIGATE:
            if (pDispParams->cArgs != 6)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            _callback->FrameBeforeNavigate(
                                  (BStr)Variant(&pDispParams->rgvarg[5]), Variant(&pDispParams->rgvarg[4]),
                                  (BStr)Variant(&pDispParams->rgvarg[3]), &pDispParams->rgvarg[2],
                                  (BStr)Variant(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_FRAMENAVIGATECOMPLETE:
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->FrameNavigateComplete((BStr)Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_FRAMENEWWINDOW:
            if (pDispParams->cArgs != 6)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            _callback->FrameNewWindow((BStr)Variant(&pDispParams->rgvarg[5]), Variant(&pDispParams->rgvarg[4]),
                                  (BStr)Variant(&pDispParams->rgvarg[3]), &pDispParams->rgvarg[2],
                                  (BStr)Variant(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_BEFORENAVIGATE2:  // hyperlink clicked on
            if (pDispParams->cArgs != 7)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            _callback->BeforeNavigate2(Variant(pDispParams->rgvarg[6]),
                                  pDispParams->rgvarg[5], &pDispParams->rgvarg[4],
                                  pDispParams->rgvarg[3], &pDispParams->rgvarg[2],
                                  pDispParams->rgvarg[1], *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_NEWWINDOW2:       // sent when a new window should be created
            if (pDispParams->cArgs != 2)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[1]) != (VT_DISPATCH|VT_BYREF))
                return E_INVALIDARG;
            _callback->NewWindow2(V_DISPATCHREF(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_NAVIGATECOMPLETE2:// UIActivate new document
            if (pDispParams->cArgs != 2)
                return E_INVALIDARG;

             // notify the navigator
            NavigateComplete2(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0]));

            _callback->NavigateComplete2(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONQUIT:
            _callback->OnQuit();
            break;

          case DISPID_ONVISIBLE:        // sent when the window goes visible/hidden
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnVisible(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONTOOLBAR:        // sent when the toolbar should be shown/hidden
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnToolbar(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONMENUBAR:        // sent when the menubar should be shown/hidden
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnMenubar(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONSTATUSBAR:      // sent when the statusbar should be shown/hidden
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnStatusbar(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONFULLSCREEN:     // sent when kiosk mode should be on/off
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnFullscreen(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_DOCUMENTCOMPLETE:// new document goes ReadyState_Complete
            _callback->DocumentComplete();
            break;

          case DISPID_DOWNLOADCOMPLETE:
            _callback->DownloadComplete();
            break;

          case DISPID_ONTHEATERMODE:    // sent when theater mode should be on/off
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnTheatermode(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_ONADDRESSBAR:     // sent when the address bar should be shown/hidden
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->OnAddressbar(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWSETRESIZABLE:// sent to set the style of the host window frame
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->WindowSetResizable(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWCLOSING:    // sent before script window.close closes the window
            if (pDispParams->cArgs != 2)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            _callback->WindowClosing(Variant(pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWSETLEFT:    // sent when the put_left method is called on the WebOC
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->WindowSetLeft(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWSETTOP:     // sent when the put_top method is called on the WebOC
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->WindowSetTop(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWSETWIDTH:   // sent when the put_width method is called on the WebOC
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->WindowSetWidth(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_WINDOWSETHEIGHT:  // sent when the put_height method is called on the WebOC
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->WindowSetHeight(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_CLIENTTOHOSTWINDOW:// sent during window.open to request conversion of dimensions
          {
            long cx, cy;
            if (pDispParams->cArgs != 2)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_I4|VT_BYREF))
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[1]) != (VT_I4|VT_BYREF))
                return E_INVALIDARG;
            cx = *V_I4REF(&pDispParams->rgvarg[1]);
            cy = *V_I4REF(&pDispParams->rgvarg[0]);
            _callback->ClientToHostWindow(cx, cy);
            break;
          }

          case DISPID_SETSECURELOCKICON:// sent to suggest the appropriate security icon to show
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->SetSecureLockIcon(Variant(pDispParams->rgvarg[0]));
            break;

          case DISPID_FILEDOWNLOAD: {   // Fired to indicate the File Download dialog is opening
            if (pDispParams->cArgs != 1)    //@@ every time 2 ?!
                return E_INVALIDARG;
            Variant var(pDispParams->rgvarg[0]);
            _callback->FileDownload(var);}
            break;

          case DISPID_NAVIGATEERROR:    // Fired to indicate the a binding error has occured
            if (pDispParams->cArgs != 5)
                return E_INVALIDARG;
            if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF))
                return E_INVALIDARG;
            _callback->NavigateError(Variant(pDispParams->rgvarg[4]), Variant(pDispParams->rgvarg[3]),
                                Variant(pDispParams->rgvarg[2]), Variant(pDispParams->rgvarg[1]),
                                *V_BOOLREF(&pDispParams->rgvarg[0]));
            break;

          case DISPID_PRIVACYIMPACTEDSTATECHANGE:// Fired when the user's browsing experience is impacted
            if (pDispParams->cArgs != 1)
                return E_INVALIDARG;
            _callback->PrivacyImpactedStateChange(Variant(pDispParams->rgvarg[0]));
            break;

          default:
            return NOERROR;
        }

        return S_OK;
    }

Here is the call graph for this function:

void DWebBrowserEvents2Impl::NavigateComplete2 ( IDispatch *  pDisp,
const Variant url 
) [inline, protected, virtual]

Reimplemented from DWebBrowserEvents2IF.

Reimplemented in WebChildWindow.

Definition at line 824 of file webchild.h.

Referenced by WebChildWindow::NavigateComplete2().

    {
        String adr = (BStr)url;

        _navigator.navigated(adr);
    }

Here is the caller graph for this function:


Member Data Documentation

Definition at line 540 of file webchild.h.

Reimplemented in WebChildWindow.

Definition at line 822 of file webchild.h.


The documentation for this struct was generated from the following file:

ROS Explorer Source Code Documentation
generated on 02.01.2013 by doxygen

ROS Explorer Homepage