导航:  CWebBrowser Class > Methods >

SetEventProc

上一页返回章节概述下一页

描述

 

用户程序集实现的回调指针接受托管WebBrowser控件的事件.

 

语法

 

FUNCTION SetEventProc ( _

  BYVAL pwszEventName AS WSTRING PTR, _

  BYVAL pProc AS ANY PTR _

) AS HRESULT

 

参数

 

pwszEventName

 

事件的名称.可用的名称是:

statustextchangeā

downloadcompleteā

CommandStateChange

downloadbegin?o

ProgressChange

PropertyChange

TitleChange

PrintTemplateInstantiation

PrintTemplateTeardown

BeforeNavigate2

NewWindow2

NavigateComplete2

可见

OnToolBar

OnMenuBar

OnStatusBar

OnFullScreen

一个DocumentComplete

OnTheaterMode

WindowSetResizable

WindowClosing

WindowSetLeft

WindowSetTop

windowsetwidth?

WindowSetHeight

ClientToHostWindow

SetSecureLockIcon

FileDownload

NavigateError

PrivacyImpactedStateChange

NewWindow3

SetPhishingFilterStatus

WindowStateChanged

HtmlDocumentEvents

 

pProc

 

回调过程的地址.

 

Function callback prototypes

 

SUB BeforeNavigate2Proc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR, _

  BYVAL vUrl AS VARIANT PTR, BYVAL Flags AS VARIANT PTR, BYVAL TargetFrameName AS VARIANT PTR, _

  BYVAL PostData AS VARIANT PTR, BYVAL Headers AS VARIANT PTR, BYVAL pbCancel AS VARIANT_BOOL PTR)

SUB ClientToHostWindowProc (BYVAL hwndContainer AS HWND, BYVAL CX AS LONG PTR, BYVAL CY AS LONG PTR)

SUB CommandStateChangeProc (BYVAL hwndContainer AS HWND, BYVAL nCommand AS LONG, BYVAL fEnable AS VARIANT_BOOL)

SUB DocumentCompleteProc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR, BYVAL vUrl AS VARIANT PTR)

SUB DownloadBeginProc (BYVAL hwndContainer AS HWND)

SUB DownloadCompleteProc (BYVAL hwndContainer AS HWND)

SUB FileDownloadProc (BYVAL hwndContainer AS HWND, BYVAL pbCancel AS VARIANT_BOOL PTR)

SUB NavigateComplete2Proc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR, BYVAL vUrl AS VARIANT PTR)

SUB NavigateErrorProc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR, _

  BYVAL vUrl AS VARIANT PTR, BYVAL vFrame AS VARIANT PTR, BYVAL StatusCode AS VARIANT PTR, BYVAL pbCancel AS VARIANT_BOOL PTR)

SUB NewWindow3Proc (BYVAL hwndContainer AS HWND, BYVAL ppdispVal AS IDispatch PTR PTR, _

  BYVAL pbCancel AS VARIANT_BOOL PTR, BYVAL dwFlags AS ULONG, BYVAL pwszUrlContext AS WSTRING PTR, BYVAL pwszUrl AS WSTRING PTR)

SUB OnVisibleProc (BYVAL hwndContainer AS HWND, BYVAL bVisible AS VARIANT_BOOL)

SUB PrintTemplateInstantiationProc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR)

SUB PrintTemplateTeardownProc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR)

SUB PrivacyImpactedStateChangeProc (BYVAL hwndContainer AS HWND, BYVAL bImpacted AS VARIANT_BOOL)

SUB ProgressChangeProc (BYVAL hwndContainer AS HWND, BYVAL Progress AS LONG, BYVAL ProgressMax AS LONG)

SUB PropertyChangeProc (BYVAL hwndContainer AS HWND, BYVAL pwszProperty AS WSTRING PTR)

SUB SetSecureLockIconProc (BYVAL hwndContainer AS HWND, BYVAL SecureLockIcon AS LONG)

SUB StatusTextChangeProc (BYVAL hwndContainer AS HWND, BYVAL pwszText AS WSTRING PTR)

SUB TitleChangeProc (BYVAL hwndContainer AS HWND, BYVAL pwszText AS WSTRING PTR)

SUB WindowClosingProc (BYVAL hwndContainer AS HWND, BYVAL IsChildWindow AS VARIANT_BOOL, BYVAL pbCancel AS VARIANT_BOOL PTR)

SUB WindowSetHeightProc (BYVAL hwndContainer AS HWND, BYVAL nHeight AS LONG)

SUB WindowSetLeftProc (BYVAL hwndContainer AS HWND, BYVAL nLenft AS LONG)

SUB WindowSetResizableProc (BYVAL hwndContainer AS HWND, BYVAL bResizable AS VARIANT_BOOL)

SUB WindowSetTopProc (BYVAL hwndContainer AS HWND, BYVAL nTop AS LONG)

SUB WindowSetWidthProc (BYVAL hwndContainer AS HWND, BYVAL nWidth AS LONG)

SUB WindowStateChangedProc (BYVAL hwndContainer AS HWND, BYVAL dwFlags AS LONG, BYVAL dwValidFlagsMask AS LONG)

FUNCTION HtmlDocumentEventsProc (BYVAL hwndContainer AS HWND, BYVAL dispid AS LONG, BYVAL pEvtObj AS IHTMLEventObj) AS BOOLEAN

 

用法示例

 

' // Add a WebBrowser control

DIM pwb AS CWebBrowser = CWebBrowser(@pWindow, IDC_WEBBROWSER, 0, 0, pWindow.ClientWidth, pWindow.ClientHeight)

' // Connect events

pwb.Advise

' // Set event callback procedures

pwb.SetEventProc("StatusTextChange", @WebBrowser_StatusTextChangeProc)

pwb.SetEventProc("DocumentComplete", @WebBrowser_DocumentCompleteProc)

' // Set the IDocHostUIHandler interface

pwb.SetUIHandler

' // Set event callback procedures

pwb.SetUIEventProc("ShowContextMenu", @DocHostUI_ShowContextMenuProc)

pwb.SetUIEventProc("GetHostInfo", @DocHostUI_GetHostInfo)

pwb.SetUIEventProc("TranslateAccelerator", @DocHostUI_TranslateAccelerator)

' // Navigate to a URL

pwb.Navigate("http://com.it-berater.org/")

 

' ========================================================================================

' Process the WebBrowser StatusTextChange event.

' ========================================================================================

SUB WebBrowser_StatusTextChangeProc (BYVAL hwndContainer AS HWND, BYVAL bstrText AS AFX_BSTR)

 IF bstrText THEN StatusBar_SetText(GetDlgItem(GetParent(this->m_hwndContainer), IDC_SATUSBAR), 0, *bstrText)

END SUB

' ========================================================================================

 

' ========================================================================================

' Process the WebBrowser DocumentComplete event.

' ========================================================================================

SUB WebBrowser_DocumentCompleteProc (BYVAL hwndContainer AS HWND, BYVAL pdisp AS IDispatch PTR, BYVAL vUrl AS VARIANT PTR)

 ' // The vUrl parameter is a VT_BYREF OR VT_BSTR variant

 DIM varUrl AS VARIANT

 VariantCopyInd(@varUrl, vUrl)

 DIM bstrUrl AS AFX_BSTR = varUrl.bstrVal

 IF bstrUrl THEN StatusBar_SetText(GetDlgItem(GetParent(this->m_hwndContainer), IDC_SATUSBAR), 0, "Document complete: " & *bstrUrl)

 VariantClear(@varUrl)

END SUB

' ========================================================================================

 

' ========================================================================================

' Process the IDocHostUIHandler ShowContextMenu event.

' ========================================================================================

FUNCTION DocHostUI_ShowContextMenuProc (BYVAL hwndContainer AS HWND, BYVAL dwID AS DWORD, BYVAL ppt AS POINT PTR, BYVAL pcmdtReserved AS IUnknown PTR, BYVAL pdispReserved AS IDispatch PTR) AS HRESULT

 ' // This event notifies that the user has clicked the right mouse button to show the

 ' // context menu. We can anulate it returning %S_OK and show our context menu.

 ' // Do not allow to show the context menu

 AfxMsg "Sorry! Context menu disabled"

 RETURN S_OK

 ' // Host did not display its UI. MSHTML will display its UI.

 RETURN S_FALSE

END FUNCTION

' ========================================================================================

 

' ========================================================================================

' Process the IDocHostUIHandler GetHostInfo event.

' ========================================================================================

PRIVATE FUNCTION DocHostUI_GetHostInfo (BYVAL hwndContainer AS HWND, BYVAL pInfo AS DOCHOSTUIINFO PTR) AS HRESULT

 IF pInfo THEN

    pInfo->cbSize = SIZEOF(DOCHOSTUIINFO)

    pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER OR DOCHOSTUIFLAG_THEME OR DOCHOSTUIFLAG_DPI_AWARE

    pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT

    pInfo->pchHostCss = NULL

    pInfo->pchHostNS = NULL

 END IF

 RETURN S_OK

END FUNCTION

' ========================================================================================

 

' ========================================================================================

' Process the IDocHostUIHandler TranslateAccelerator event.

' ========================================================================================

PRIVATE FUNCTION DocHostUI_TranslateAccelerator (BYVAL hwndContainer AS HWND, BYVAL lpMsg AS LPMSG, BYVAL pguidCmdGroup AS const GUID PTR, BYVAL nCmdID AS DWORD) AS HRESULT

 ' // When you use accelerator keys such as TAB, you may need to override the

 ' // default host behavior. The example shows how to do this.

  IF lpMsg->message = WM_KEYDOWN AND lpMsg->wParam = VK_TAB THEN

     RETURN S_FALSE   ' S_OK to disable tab navigation

  END IF

 ' // return S_FALSE if you don't process the message

 RETURN S_FALSE

END FUNCTION

' ========================================================================================

 

引用文件

 

CWebBrowser.inc