WebBrowserEventHandler.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #pragma once
  2. #include <ExDisp.h>
  3. #include <ExDispid.h>
  4. #include <mshtmhst.h>
  5. namespace DuiLib
  6. {
  7. class CWebBrowserUI;
  8. class CWebBrowserEventHandler
  9. {
  10. public:
  11. CWebBrowserEventHandler() {}
  12. ~CWebBrowserEventHandler() {}
  13. virtual void BeforeNavigate2(CWebBrowserUI* pWeb, IDispatch *pDisp,VARIANT *&url,VARIANT *&Flags,VARIANT *&TargetFrameName,VARIANT *&PostData,VARIANT *&Headers,VARIANT_BOOL *&Cancel ) {}
  14. virtual void NavigateError(CWebBrowserUI* pWeb, IDispatch *pDisp,VARIANT * &url,VARIANT *&TargetFrameName,VARIANT *&StatusCode,VARIANT_BOOL *&Cancel) {}
  15. virtual void NavigateComplete2(CWebBrowserUI* pWeb, IDispatch *pDisp,VARIANT *&url){}
  16. virtual void ProgressChange(CWebBrowserUI* pWeb, LONG nProgress, LONG nProgressMax){}
  17. virtual void NewWindow3(CWebBrowserUI* pWeb, IDispatch **pDisp, VARIANT_BOOL *&Cancel, DWORD dwFlags, BSTR bstrUrlContext, BSTR bstrUrl){}
  18. virtual void CommandStateChange(CWebBrowserUI* pWeb, long Command,VARIANT_BOOL Enable){};
  19. virtual void TitleChange(CWebBrowserUI* pWeb, BSTR bstrTitle){};
  20. virtual void DocumentComplete(CWebBrowserUI* pWeb, IDispatch *pDisp,VARIANT *&url){}
  21. // interface IDocHostUIHandler
  22. virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(CWebBrowserUI* pWeb,
  23. /* [in] */ DWORD dwID,
  24. /* [in] */ POINT __RPC_FAR *ppt,
  25. /* [in] */ IUnknown __RPC_FAR *pcmdtReserved,
  26. /* [in] */ IDispatch __RPC_FAR *pdispReserved)
  27. {
  28. //return E_NOTIMPL;
  29. //返回 E_NOTIMPL 正常弹出系统右键菜单
  30. return S_OK;
  31. //返回S_OK 则可屏蔽系统右键菜单
  32. }
  33. virtual HRESULT STDMETHODCALLTYPE GetHostInfo(CWebBrowserUI* pWeb,
  34. /* [out][in] */ DOCHOSTUIINFO __RPC_FAR *pInfo)
  35. {
  36. return E_NOTIMPL;
  37. }
  38. virtual HRESULT STDMETHODCALLTYPE ShowUI(CWebBrowserUI* pWeb,
  39. /* [in] */ DWORD dwID,
  40. /* [in] */ IOleInPlaceActiveObject __RPC_FAR *pActiveObject,
  41. /* [in] */ IOleCommandTarget __RPC_FAR *pCommandTarget,
  42. /* [in] */ IOleInPlaceFrame __RPC_FAR *pFrame,
  43. /* [in] */ IOleInPlaceUIWindow __RPC_FAR *pDoc)
  44. {
  45. return S_FALSE;
  46. }
  47. virtual HRESULT STDMETHODCALLTYPE HideUI( CWebBrowserUI* pWeb)
  48. {
  49. return S_OK;
  50. }
  51. virtual HRESULT STDMETHODCALLTYPE UpdateUI( CWebBrowserUI* pWeb)
  52. {
  53. return S_OK;
  54. }
  55. virtual HRESULT STDMETHODCALLTYPE EnableModeless(CWebBrowserUI* pWeb,
  56. /* [in] */ BOOL fEnable)
  57. {
  58. return S_OK;
  59. }
  60. virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(CWebBrowserUI* pWeb,
  61. /* [in] */ BOOL fActivate)
  62. {
  63. return S_OK;
  64. }
  65. virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(CWebBrowserUI* pWeb,
  66. /* [in] */ BOOL fActivate)
  67. {
  68. return S_OK;
  69. }
  70. virtual HRESULT STDMETHODCALLTYPE ResizeBorder(CWebBrowserUI* pWeb,
  71. /* [in] */ LPCRECT prcBorder,
  72. /* [in] */ IOleInPlaceUIWindow __RPC_FAR *pUIWindow,
  73. /* [in] */ BOOL fRameWindow)
  74. {
  75. return S_OK;
  76. }
  77. virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(CWebBrowserUI* pWeb,
  78. /* [in] */ LPMSG lpMsg,
  79. /* [in] */ const GUID __RPC_FAR *pguidCmdGroup,
  80. /* [in] */ DWORD nCmdID)
  81. {
  82. return S_FALSE;
  83. }
  84. virtual HRESULT STDMETHODCALLTYPE GetOptionKeyPath(CWebBrowserUI* pWeb,
  85. /* [out] */ LPOLESTR __RPC_FAR *pchKey,
  86. /* [in] */ DWORD dw)
  87. {
  88. return S_OK;
  89. }
  90. virtual HRESULT STDMETHODCALLTYPE GetDropTarget(CWebBrowserUI* pWeb,
  91. /* [in] */ IDropTarget __RPC_FAR *pDropTarget,
  92. /* [out] */ IDropTarget __RPC_FAR *__RPC_FAR *ppDropTarget)
  93. {
  94. return E_NOTIMPL;
  95. }
  96. virtual HRESULT STDMETHODCALLTYPE GetExternal(CWebBrowserUI* pWeb,
  97. /* [out] */ IDispatch __RPC_FAR *__RPC_FAR *ppDispatch)
  98. {
  99. return E_NOTIMPL;
  100. }
  101. virtual HRESULT STDMETHODCALLTYPE TranslateUrl(CWebBrowserUI* pWeb,
  102. /* [in] */ DWORD dwTranslate,
  103. /* [in] */ OLECHAR __RPC_FAR *pchURLIn,
  104. /* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppchURLOut)
  105. {
  106. return S_OK;
  107. }
  108. virtual HRESULT STDMETHODCALLTYPE FilterDataObject(CWebBrowserUI* pWeb,
  109. /* [in] */ IDataObject __RPC_FAR *pDO,
  110. /* [out] */ IDataObject __RPC_FAR *__RPC_FAR *ppDORet)
  111. {
  112. return S_OK;
  113. }
  114. // virtual HRESULT STDMETHODCALLTYPE GetOverrideKeyPath(
  115. // /* [annotation][out] */
  116. // __deref_out LPOLESTR *pchKey,
  117. // /* [in] */ DWORD dw)
  118. // {
  119. // return E_NOTIMPL;
  120. // }
  121. // IDownloadManager
  122. virtual HRESULT STDMETHODCALLTYPE Download( CWebBrowserUI* pWeb,
  123. /* [in] */ IMoniker *pmk,
  124. /* [in] */ IBindCtx *pbc,
  125. /* [in] */ DWORD dwBindVerb,
  126. /* [in] */ LONG grfBINDF,
  127. /* [in] */ BINDINFO *pBindInfo,
  128. /* [in] */ LPCOLESTR pszHeaders,
  129. /* [in] */ LPCOLESTR pszRedir,
  130. /* [in] */ UINT uiCP)
  131. {
  132. return S_OK;
  133. }
  134. };
  135. }