3,245
社区成员
发帖
与我相关
我的任务
分享
#include <Exdisp.h>
struct CMyWebBrwoser2Event
: public DWebBrowserEvents2
{
// IUnknown
STDMETHODIMP QueryInterface(REFIID riid,void ** ppvObject);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
virtual void BeforeNavigate2( IDispatch *pDisp,VARIANT *url,VARIANT *Flags,VARIANT *TargetFrameName,VARIANT *PostData,VARIANT *Headers,VARIANT_BOOL *Cancel);
virtual void DocumentComplete( IDispatch *pDisp,VARIANT *URL );
virtual void ClientToHostWindow( long *CX,long *CY );
virtual void CommandStateChange( long Command,VARIANT_BOOL Enable );
virtual void DownloadBegin(VOID);
virtual void DownloadComplete(VOID);
virtual void FileDownload(VARIANT_BOOL ActiveDocument,VARIANT_BOOL *Cancel);
virtual void NavigateComplete2(IDispatch *pDisp,VARIANT *URL);
virtual void NavigateError( IDispatch *pDisp,VARIANT *URL,VARIANT *TargetFrameName, VARIANT *StatusCode,VARIANT_BOOL *Cancel);
virtual void NewProcess(long lCauseFlag,IDispatch *pWB2,VARIANT_BOOL *Cancel);
virtual void NewWindow2(IDispatch **ppDisp,VARIANT_BOOL *Cancel);
virtual void NewWindow3(IDispatch **ppDisp,VARIANT_BOOL *Cancel,DWORD dwFlags,BSTR bstrUrlContext,BSTR bstrUrl);
virtual void OnFullScreen(VARIANT_BOOL FullScreen);
virtual void OnMenuBar(VARIANT_BOOL MenuBar);
virtual void OnQuit(VOID);
virtual void OnStatusBar(VARIANT_BOOL StatusBar );
virtual void OnTheaterMode(VARIANT_BOOL TheaterMode);
virtual void OnToolBar(VARIANT_BOOL ToolBar);
virtual void OnVisible(VARIANT_BOOL Visible);
virtual void PrintTemplateInstantiation(IDispatch *pDisp);
virtual void PrintTemplateTeardown(IDispatch *pDisp);
virtual void PrivacyImpactedStateChange(boolean PrivacyImpacted);
virtual void ProgressChange(long Progress,long ProgressMax);
virtual void PropertyChange(BSTR szProperty);
virtual void RedirectXDomainBlocked(IDispatch *pDisp,VARIANT *StartURL,VARIANT *RedirectURL,VARIANT *Frame,VARIANT *StatusCode);
virtual void SetPhishingFilterStatus(long PhishingFilterStatus);
virtual void SetSecureLockIcon(SecureLockIconConstants);//typedef enum SecureLockIconConstants
virtual void StatusTextChange( BSTR Text);
virtual void ThirdPartyUrlBlocked(VARIANT *URL,DWORD dwCount);
virtual void TitleChange(BSTR Text);
virtual void WindowClosing(VARIANT_BOOL IsChildWindow,VARIANT_BOOL *Cancel);
virtual void WindowSetHeight(long Height);
virtual void WindowSetLeft( long Left);
virtual void WindowSetResizable(VARIANT_BOOL Resizable);
virtual void WindowSetTop(long Top);
virtual void WindowSetWidth(long Width);
virtual void WindowStateChanged(DWORD dwFlags, DWORD dwValidFlagsMask);
};
STDMETHODIMP CMyWebBrwoser2Event::QueryInterface(REFIID riid,void ** ppvObject)
{
NOTIMPLEMENTED;
}
STDMETHODIMP_(ULONG) CMyWebBrwoser2Event::AddRef(void)
{
return 1;
}
STDMETHODIMP_(ULONG) CMyWebBrwoser2Event::Release(void)
{
return 1;
}
void CMyWebBrwoser2Event::BeforeNavigate2(IDispatch *pDisp, VARIANT *url, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers, VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::DocumentComplete( IDispatch *pDisp,VARIANT *URL ){return;}
void CMyWebBrwoser2Event::ClientToHostWindow( long *CX,long *CY ){return;}
void CMyWebBrwoser2Event::CommandStateChange( long Command,VARIANT_BOOL Enable ){return;}
void CMyWebBrwoser2Event::DownloadBegin(VOID){return;}
void CMyWebBrwoser2Event::DownloadComplete(VOID){return;}
void CMyWebBrwoser2Event::FileDownload(VARIANT_BOOL ActiveDocument,VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::NavigateComplete2(IDispatch *pDisp,VARIANT *URL){return;}
void CMyWebBrwoser2Event::NavigateError( IDispatch *pDisp,VARIANT *URL,VARIANT *TargetFrameName, VARIANT *StatusCode,VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::NewProcess(long lCauseFlag,IDispatch *pWB2,VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::NewWindow2(IDispatch **ppDisp,VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::NewWindow3(IDispatch **ppDisp,VARIANT_BOOL *Cancel,DWORD dwFlags,BSTR bstrUrlContext,BSTR bstrUrl){return;}
void CMyWebBrwoser2Event::OnFullScreen(VARIANT_BOOL FullScreen){return;}
void CMyWebBrwoser2Event::OnMenuBar(VARIANT_BOOL MenuBar){return;}
void CMyWebBrwoser2Event::OnQuit(VOID){return;}
void CMyWebBrwoser2Event::OnStatusBar(VARIANT_BOOL StatusBar ){return;}
void CMyWebBrwoser2Event::OnTheaterMode(VARIANT_BOOL TheaterMode){return;}
void CMyWebBrwoser2Event::OnToolBar(VARIANT_BOOL ToolBar){return;}
void CMyWebBrwoser2Event::OnVisible(VARIANT_BOOL Visible){return;}
void CMyWebBrwoser2Event::PrintTemplateInstantiation(IDispatch *pDisp){return;}
void CMyWebBrwoser2Event::PrintTemplateTeardown(IDispatch *pDisp){return;}
void CMyWebBrwoser2Event::PrivacyImpactedStateChange(boolean PrivacyImpacted){return;}
void CMyWebBrwoser2Event::ProgressChange(long Progress,long ProgressMax){return;}
void CMyWebBrwoser2Event::PropertyChange(BSTR szProperty){return;}
void CMyWebBrwoser2Event::RedirectXDomainBlocked(IDispatch *pDisp,VARIANT *StartURL,VARIANT *RedirectURL,VARIANT *Frame,VARIANT *StatusCode){return;}
void CMyWebBrwoser2Event::SetPhishingFilterStatus(long PhishingFilterStatus){return;}
void CMyWebBrwoser2Event::SetSecureLockIcon(SecureLockIconConstants){return;}//typedef enum SecureLockIconConstants
void CMyWebBrwoser2Event::StatusTextChange( BSTR Text){return;}
void CMyWebBrwoser2Event::ThirdPartyUrlBlocked(VARIANT *URL,DWORD dwCount){return;}
void CMyWebBrwoser2Event::TitleChange(BSTR Text){return;}
void CMyWebBrwoser2Event::WindowClosing(VARIANT_BOOL IsChildWindow,VARIANT_BOOL *Cancel){return;}
void CMyWebBrwoser2Event::WindowSetHeight(long Height){return;}
void CMyWebBrwoser2Event::WindowSetLeft( long Left){return;}
void CMyWebBrwoser2Event::WindowSetResizable(VARIANT_BOOL Resizable){return;}
void CMyWebBrwoser2Event::WindowSetTop(long Top){return;}
void CMyWebBrwoser2Event::WindowSetWidth(long Width){return;}
void CMyWebBrwoser2Event::WindowStateChanged(DWORD dwFlags, DWORD dwValidFlagsMask){return;}
#include <Exdisp.h>
class CMyWebBrwoser2Event : public DWebBrowserEvents2
{
public: // IDispatch methods
STDMETHOD(QueryInterface)( REFIID riid, void **ppvObject);
{
HRESULT hr = E_NOINTERFACE;
if (riid == __uuidof(IDispatch))
{
*ppvObject = (IDispatch*)this;
AddRef();
hr = S_OK;
}
else if (riid == __uuidof(DWebBrowserEvents2))
{
*ppvObject = (DWebBrowserEvents2*)this;
AddRef();
hr = S_OK;
}
return hr;
}
STDMETHODIMP_(ULONG) AddRef(void)
{
return 1;
};
STDMETHODIMP_(ULONG) Release(void);
{
return 1;
}
STDMETHOD(GetTypeInfoCount)(UINT*)
{
return E_NOTIMPL;
}
STDMETHOD(GetTypeInfo)(UINT, LCID, ITypeInfo**)
{
return E_NOTIMPL;
}
STDMETHOD(GetIDsOfNames)(REFIID, LPOLESTR *rgszNames, UINT, LCID, DISPID *rgDispId)
{
return E_NOTIMPL;
}
STDMETHOD(Invoke)(DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS FAR* pDispParams,VARIANT FAR* pVarResult,EXCEPINFO FAR* pExcepInfo,unsigned int FAR* puArgErr);
{
HRESULT hr = S_OK;
if(dispIdMember == DISPID_DOCUMENTCOMPLETE)
{
// OnNavigateComplete
}
return hr;
}
};