#include <webchild.h>
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) |
Data Fields | |
DWebBrowserEvents2IF * | _callback |
Protected Member Functions | |
void | NavigateComplete2 (IDispatch *pDisp, const Variant &url) |
Protected Attributes | |
BrowserNavigator & | _navigator |
Definition at line 617 of file webchild.h.
Reimplemented from IComSrvBase< FixedDWebBrowserEvents2, DWebBrowserEvents2Impl >.
Reimplemented in WebChildWindow.
Definition at line 621 of file webchild.h.
DWebBrowserEvents2Impl::DWebBrowserEvents2Impl | ( | BrowserNavigator & | navigator | ) | [inline] |
Definition at line 627 of file webchild.h.
00628 : super(DIID_DWebBrowserEvents2), 00629 _navigator(navigator) 00630 { 00631 _callback = this; 00632 }
STDMETHOD() DWebBrowserEvents2Impl::GetTypeInfoCount | ( | UINT * | pctinfo | ) | [inline] |
STDMETHOD() DWebBrowserEvents2Impl::GetTypeInfo | ( | UINT | iTInfo, | |
LCID | lcid, | |||
ITypeInfo ** | ppTInfo | |||
) | [inline] |
STDMETHOD() DWebBrowserEvents2Impl::GetIDsOfNames | ( | REFIID | riid, | |
LPOLESTR * | rgszNames, | |||
UINT | cNames, | |||
LCID | lcid, | |||
DISPID * | rgDispId | |||
) | [inline] |
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 657 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().
00659 { 00660 switch(dispIdMember) { 00661 case DISPID_STATUSTEXTCHANGE: 00662 _callback->StatusTextChange((BStr)Variant(pDispParams->rgvarg[0])); 00663 break; 00664 00665 case DISPID_COMMANDSTATECHANGE: 00666 _callback->CommandStateChange(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0])); 00667 break; 00668 00669 case DISPID_DOWNLOADBEGIN: 00670 _callback->DownloadBegin(); 00671 break; 00672 00673 case DISPID_PROGRESSCHANGE: // sent when download progress is updated 00674 _callback->ProgressChange(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0])); 00675 break; 00676 00677 case DISPID_WINDOWMOVE: // sent when main window has been moved 00678 _callback->WindowMove(); 00679 break; 00680 00681 case DISPID_WINDOWRESIZE: // sent when main window has been sized 00682 _callback->WindowResize(); 00683 break; 00684 00685 case DISPID_WINDOWACTIVATE: // sent when main window has been activated 00686 _callback->WindowActivate(); 00687 break; 00688 00689 case DISPID_PROPERTYCHANGE: // sent when the PutProperty method is called 00690 _callback->PropertyChange((BStr)Variant(pDispParams->rgvarg[0])); 00691 break; 00692 00693 case DISPID_TITLECHANGE: // sent when the document title changes 00694 _callback->TitleChange((BStr)Variant(pDispParams->rgvarg[0])); 00695 break; 00696 00697 case DISPID_TITLEICONCHANGE: // sent when the top level window icon may have changed. 00698 _callback->TitleIconChange((BStr)Variant(pDispParams->rgvarg[0])); 00699 break; 00700 00701 00702 // anything below here is not present in DWebBrowserEvents, only in DWebBrowserEvents2: -> 00703 00704 case DISPID_FRAMEBEFORENAVIGATE: 00705 if (pDispParams->cArgs != 6) 00706 return E_INVALIDARG; 00707 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00708 return E_INVALIDARG; 00709 _callback->FrameBeforeNavigate( 00710 (BStr)Variant(&pDispParams->rgvarg[5]), Variant(&pDispParams->rgvarg[4]), 00711 (BStr)Variant(&pDispParams->rgvarg[3]), &pDispParams->rgvarg[2], 00712 (BStr)Variant(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0])); 00713 break; 00714 00715 case DISPID_FRAMENAVIGATECOMPLETE: 00716 if (pDispParams->cArgs != 1) 00717 return E_INVALIDARG; 00718 _callback->FrameNavigateComplete((BStr)Variant(pDispParams->rgvarg[0])); 00719 break; 00720 00721 case DISPID_FRAMENEWWINDOW: 00722 if (pDispParams->cArgs != 6) 00723 return E_INVALIDARG; 00724 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00725 return E_INVALIDARG; 00726 _callback->FrameNewWindow((BStr)Variant(&pDispParams->rgvarg[5]), Variant(&pDispParams->rgvarg[4]), 00727 (BStr)Variant(&pDispParams->rgvarg[3]), &pDispParams->rgvarg[2], 00728 (BStr)Variant(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0])); 00729 break; 00730 00731 case DISPID_BEFORENAVIGATE2: // hyperlink clicked on 00732 if (pDispParams->cArgs != 7) 00733 return E_INVALIDARG; 00734 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00735 return E_INVALIDARG; 00736 _callback->BeforeNavigate2(Variant(pDispParams->rgvarg[6]), 00737 pDispParams->rgvarg[5], &pDispParams->rgvarg[4], 00738 pDispParams->rgvarg[3], &pDispParams->rgvarg[2], 00739 pDispParams->rgvarg[1], *V_BOOLREF(&pDispParams->rgvarg[0])); 00740 break; 00741 00742 case DISPID_NEWWINDOW2: // sent when a new window should be created 00743 if (pDispParams->cArgs != 2) 00744 return E_INVALIDARG; 00745 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00746 return E_INVALIDARG; 00747 if (V_VT(&pDispParams->rgvarg[1]) != (VT_DISPATCH|VT_BYREF)) 00748 return E_INVALIDARG; 00749 _callback->NewWindow2(V_DISPATCHREF(&pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0])); 00750 break; 00751 00752 case DISPID_NAVIGATECOMPLETE2:// UIActivate new document 00753 if (pDispParams->cArgs != 2) 00754 return E_INVALIDARG; 00755 00756 // notify the navigator 00757 NavigateComplete2(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0])); 00758 00759 _callback->NavigateComplete2(Variant(pDispParams->rgvarg[1]), Variant(pDispParams->rgvarg[0])); 00760 break; 00761 00762 case DISPID_ONQUIT: 00763 _callback->OnQuit(); 00764 break; 00765 00766 case DISPID_ONVISIBLE: // sent when the window goes visible/hidden 00767 if (pDispParams->cArgs != 1) 00768 return E_INVALIDARG; 00769 _callback->OnVisible(Variant(pDispParams->rgvarg[0])); 00770 break; 00771 00772 case DISPID_ONTOOLBAR: // sent when the toolbar should be shown/hidden 00773 if (pDispParams->cArgs != 1) 00774 return E_INVALIDARG; 00775 _callback->OnToolbar(Variant(pDispParams->rgvarg[0])); 00776 break; 00777 00778 case DISPID_ONMENUBAR: // sent when the menubar should be shown/hidden 00779 if (pDispParams->cArgs != 1) 00780 return E_INVALIDARG; 00781 _callback->OnMenubar(Variant(pDispParams->rgvarg[0])); 00782 break; 00783 00784 case DISPID_ONSTATUSBAR: // sent when the statusbar should be shown/hidden 00785 if (pDispParams->cArgs != 1) 00786 return E_INVALIDARG; 00787 _callback->OnStatusbar(Variant(pDispParams->rgvarg[0])); 00788 break; 00789 00790 case DISPID_ONFULLSCREEN: // sent when kiosk mode should be on/off 00791 if (pDispParams->cArgs != 1) 00792 return E_INVALIDARG; 00793 _callback->OnFullscreen(Variant(pDispParams->rgvarg[0])); 00794 break; 00795 00796 case DISPID_DOCUMENTCOMPLETE:// new document goes ReadyState_Complete 00797 _callback->DocumentComplete(); 00798 break; 00799 00800 case DISPID_DOWNLOADCOMPLETE: 00801 _callback->DownloadComplete(); 00802 break; 00803 00804 case DISPID_ONTHEATERMODE: // sent when theater mode should be on/off 00805 if (pDispParams->cArgs != 1) 00806 return E_INVALIDARG; 00807 _callback->OnTheatermode(Variant(pDispParams->rgvarg[0])); 00808 break; 00809 00810 case DISPID_ONADDRESSBAR: // sent when the address bar should be shown/hidden 00811 if (pDispParams->cArgs != 1) 00812 return E_INVALIDARG; 00813 _callback->OnAddressbar(Variant(pDispParams->rgvarg[0])); 00814 break; 00815 00816 case DISPID_WINDOWSETRESIZABLE:// sent to set the style of the host window frame 00817 if (pDispParams->cArgs != 1) 00818 return E_INVALIDARG; 00819 _callback->WindowSetResizable(Variant(pDispParams->rgvarg[0])); 00820 break; 00821 00822 case DISPID_WINDOWCLOSING: // sent before script window.close closes the window 00823 if (pDispParams->cArgs != 2) 00824 return E_INVALIDARG; 00825 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00826 return E_INVALIDARG; 00827 _callback->WindowClosing(Variant(pDispParams->rgvarg[1]), *V_BOOLREF(&pDispParams->rgvarg[0])); 00828 break; 00829 00830 case DISPID_WINDOWSETLEFT: // sent when the put_left method is called on the WebOC 00831 if (pDispParams->cArgs != 1) 00832 return E_INVALIDARG; 00833 _callback->WindowSetLeft(Variant(pDispParams->rgvarg[0])); 00834 break; 00835 00836 case DISPID_WINDOWSETTOP: // sent when the put_top method is called on the WebOC 00837 if (pDispParams->cArgs != 1) 00838 return E_INVALIDARG; 00839 _callback->WindowSetTop(Variant(pDispParams->rgvarg[0])); 00840 break; 00841 00842 case DISPID_WINDOWSETWIDTH: // sent when the put_width method is called on the WebOC 00843 if (pDispParams->cArgs != 1) 00844 return E_INVALIDARG; 00845 _callback->WindowSetWidth(Variant(pDispParams->rgvarg[0])); 00846 break; 00847 00848 case DISPID_WINDOWSETHEIGHT: // sent when the put_height method is called on the WebOC 00849 if (pDispParams->cArgs != 1) 00850 return E_INVALIDARG; 00851 _callback->WindowSetHeight(Variant(pDispParams->rgvarg[0])); 00852 break; 00853 00854 case DISPID_CLIENTTOHOSTWINDOW:// sent during window.open to request conversion of dimensions 00855 if (pDispParams->cArgs != 2) 00856 return E_INVALIDARG; 00857 if (V_VT(&pDispParams->rgvarg[0]) != (VT_I4|VT_BYREF)) 00858 return E_INVALIDARG; 00859 if (V_VT(&pDispParams->rgvarg[1]) != (VT_I4|VT_BYREF)) 00860 return E_INVALIDARG; 00861 _callback->ClientToHostWindow(*V_I4REF(&pDispParams->rgvarg[1]), *V_I4REF(&pDispParams->rgvarg[0])); 00862 break; 00863 00864 case DISPID_SETSECURELOCKICON:// sent to suggest the appropriate security icon to show 00865 if (pDispParams->cArgs != 1) 00866 return E_INVALIDARG; 00867 _callback->SetSecureLockIcon(Variant(pDispParams->rgvarg[0])); 00868 break; 00869 00870 case DISPID_FILEDOWNLOAD: { // Fired to indicate the File Download dialog is opening 00871 if (pDispParams->cArgs != 1) //@@ every time 2 ?! 00872 return E_INVALIDARG; 00873 Variant var(pDispParams->rgvarg[0]); 00874 _callback->FileDownload(var);} 00875 break; 00876 00877 case DISPID_NAVIGATEERROR: // Fired to indicate the a binding error has occured 00878 if (pDispParams->cArgs != 5) 00879 return E_INVALIDARG; 00880 if (V_VT(&pDispParams->rgvarg[0]) != (VT_BOOL|VT_BYREF)) 00881 return E_INVALIDARG; 00882 _callback->NavigateError(Variant(pDispParams->rgvarg[4]), Variant(pDispParams->rgvarg[3]), 00883 Variant(pDispParams->rgvarg[2]), Variant(pDispParams->rgvarg[1]), 00884 *V_BOOLREF(&pDispParams->rgvarg[0])); 00885 break; 00886 00887 case DISPID_PRIVACYIMPACTEDSTATECHANGE:// Fired when the user's browsing experience is impacted 00888 if (pDispParams->cArgs != 1) 00889 return E_INVALIDARG; 00890 _callback->PrivacyImpactedStateChange(Variant(pDispParams->rgvarg[0])); 00891 break; 00892 00893 default: 00894 return NOERROR; 00895 } 00896 00897 return S_OK; 00898 }
void DWebBrowserEvents2Impl::NavigateComplete2 | ( | IDispatch * | pDisp, | |
const Variant & | url | |||
) | [inline, protected, virtual] |
Reimplemented from DWebBrowserEvents2IF.
Reimplemented in WebChildWindow.
Definition at line 903 of file webchild.h.
Referenced by WebChildWindow::NavigateComplete2().
00904 { 00905 String adr = (BStr)url; 00906 00907 _navigator.navigated(adr); 00908 }
Definition at line 624 of file webchild.h.
BrowserNavigator& DWebBrowserEvents2Impl::_navigator [protected] |
IBrowser Source Code Documentation
generated on 18.09.2008 by |