描述
由MSHTML调用显示快捷菜单。
C++ 语法
HRESULT ShowContextMenu( DWORD dwID, POINT *ppt, IUnknown *pcmdtReserved, IDispatch *pdispReserved ); |
PowerBASIC 语法
METHOD ShowContextMenu ( _ BYVAL dwID AS DWORD, _ BYREF *ppt AS POINT _ BYVAL *pcmdtReserved AS IUnknown, _ BYVAL *pdispReserved AS IDispatch _ ) AS LONG |
参数
dwID |
[in]DWORD指定要显示的快捷菜单的标识符。该标识符是通过Mshtmhst.inc中定义的快捷菜单值(例如,CONTEXT_MENU_DEFAULT)来对值0x1进行按位移位。 0x2 值(0x1 <<CONTEXT_MENU_DEFAULT) 0x4 值(0x1 <<CONTEXT_MENU_CONTROL) 0x8 (0x1 <<CONTEXT_MENU_TABLE)的值 0x10 值(0x1 <<CONTEXT_MENU_TEXTSELECT) 0x30 值(0x1 <<CONTEXT_MENU_ANCHOR) 0x20 值(0x1 <<CONTEXT_MENU_UNKNOWN) |
ppt |
[in]指向包含菜单屏幕坐标的POINT结构的指针。 |
pcmdtReserved |
[in]指向IUnknown的IOleCommandTarget接口的指针,用于查询命令状态并对该对象执行命令。 |
pdispReserved |
[in]在ppt指定的屏幕坐标上指向对象的IDispatch界面。这允许主机区分特定对象以提供更具体的上下文。 |
OBJRESULT
返回以下值之一:
S_OK |
主机显示自己的用户界面(UI)。MSHTML不会尝试显示其UI。 |
S_FALSE |
主机没有显示任何UI。MSHTML将显示其UI。 |
DOCHOST_E_UNKNOWN |
菜单标识是未知的。MSHTML可以尝试从先前版本的替代标识符。 |
备注
在Microsoft Internet Explorer 4.0中,pdispReserveden参数不提供信息,但在Internet Explorer 5及更高版本中,该参数包含指向IDispatch接口的指针。
例
以下代码示例显示如何使用pdispReserveden参数。
IHTMLElement * pelem;
HRESULT小时
hr = pdispReserved- >QueryInterface(IID_IHTMLElement,(空虚**)pelem);
if(SUCCEEDED(hr)){
BSTR BSTR;
pElem->get_tagName(bstr);
USES_CONVERSION;
ATLTRACE(“TagName:%s \\ n”,OLE2T(bstr));
SysFreeString(bstr);
pElem->Release();
}