导航:  CWebBrowser Class > Methods >

SetUIEventProc

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

描述

 

用户程序集实现的回调指针接收该IDocHostUIHandler2接口事件.

 

语法

 

FUNCTION SetUIEventProc ( _

  BYVAL pwszEventName AS WSTRING PTR, _

  BYVAL pProc AS ANY PTR _

) AS HRESULT

 

参数

 

pwszEventName

 

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

ShowContextMenu

GetHostInfo

ShowUI

HideUI

UpdateUI

EnableModeless

OnDocWindowActivate

OnFrameWindowActivate

ResizeBorder

TranslateAccelerator

getoptionkeypathā

GetDropTarget

GetExternal

TranslateUrl

filterdataobjectā

GetOverrideKeyPath

 

pProc

 

回调过程的地址.

 

Function callback prototypes

 

FUNCTION EnableModelessProc (BYVAL hwndContainer AS HWND, BYVAL fEnable AS WINBOOL) AS HRESULT

FUNCTION FilterDataObjectProc (BYVAL hwndContainer AS HWND, BYVAL pDO AS IDataObject PTR, BYVAL ppDORet AS IDataObject PTR PTR) AS HRESULT

FUNCTION GetDropTargetProc (BYVAL hwndContainer AS HWND, BYVAL pDropTarget AS IDropTarget PTR, BYVAL ppDropTarget AS IDropTarget PTR PTR) AS HRESULT

FUNCTION GetExternalProc (BYVAL hwndContainer AS HWND, BYVAL ppDispatch AS IDispatch PTR PTR) AS HRESULT

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

FUNCTION GetOptionKeyPathProc (BYVAL hwndContainer AS HWND, BYVAL pchKey AS LPOLESTR PTR, BYVAL dw AS DWORD) AS HRESULT

FUNCTION GetOverrideKeyPathProc (BYVAL hwndContainer AS HWND, BYVAL pchKey AS LPOLESTR PTR, BYVAL dw AS DWORD) AS HRESULT

FUNCTION HideUIProc (BYVAL hwndContainer AS HWND) AS HRESULT

FUNCTION OnDocWindowActivateProc (BYVAL hwndContainer AS HWND, BYVAL fActivate AS WINBOOL) AS HRESULT

FUNCTION OnFrameWindowActivateProc (BYVAL hwndContainer AS HWND, BYVAL fActivate AS WINBOOL) AS HRESULT

FUNCTION ResizeBorderProc (BYVAL hwndContainer AS HWND, BYVAL prcBorder AS LPCRECT, BYVAL pUIWindow AS IOleInPlaceUIWindow PTR, BYVAL frameWindow AS WINBOOL) AS HRESULT

FUNCTION 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

FUNCTION ShowUIProc (BYVAL hwndContainer AS HWND, BYVAL dwID AS DWORD, BYVAL pActiveObject AS IOleInPlaceActiveObject PTR, BYVAL pCommandTarget AS IOleCommandTarget PTR, BYVAL pFrame AS IOleInPlaceFrame PTR, BYVAL pDoc AS IOleInPlaceUIWindow PTR) AS HRESULT

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

FUNCTION TranslateUrlProc (BYVAL hwndContainer AS HWND, BYVAL dwTranslate AS DWORD, BYVAL pchURLIn AS LPWSTR, BYVAL ppchURLOut AS LPWSTR PTR) AS HRESULT

FUNCTION UpdateUIProc (BYVAL hwndContainer AS HWND) AS HRESULT

 

用法示例

 

' // 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(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(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