IOleComponentUIManager.ShowContextMenu 方法

请求上下文菜单中显示。

命名空间:  Microsoft.VisualStudio.Shell.Interop
程序集:  Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)

语法

声明
Function ShowContextMenu ( _
    dwCompRole As UInteger, _
    ByRef rclsidActive As Guid, _
    nMenuId As Integer, _
    pos As POINTS(), _
    pCmdTrgtActive As IOleCommandTarget _
) As Integer
int ShowContextMenu(
    uint dwCompRole,
    ref Guid rclsidActive,
    int nMenuId,
    POINTS[] pos,
    IOleCommandTarget pCmdTrgtActive
)

参数

  • dwCompRole
    类型:System.UInt32
    [in] 请求就地 VSPackage 的对象的角色上下文菜单。有关有效的 dwCompRole 值,请参见 OLEROLE
  • rclsidActive
    类型:System.Guid%
    [in] 类标识符 (CLSID 请求) 就地 VSPackage 中的对象上下文菜单。
  • nMenuId
    类型:System.Int32
    [in] 标识要显示的上下文菜单。

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

COM 签名

从 oleipc.idl:

HRESULT IOleComponentUIManager::ShowContextMenu(
   [in] DWORD dwCompRole,
   [in] REFCLSID rclsidActive,
   [in] LONG nMenuId,
   [in] REFPOINTS pos,
   [in] IOleCommandTarget *pCmdTrgtActive
);

ShowContextMenu 可由顶级工具对象和就地 VSPackage 对象使用。就地 VSPackage 对象必须是最里层的 UI 有效的对象或母版或子单元在 UI 活动对象的父链。

在上下文菜单不再可见时,使用最内层的有效的对象的 IOleCommandTarget 接口, SOleComponentUIManager 服务返回计划有效的对象命令。这是在调用最后一传递给 IOleCommandTarget的对象。

由于指向由 pCmdTrgtActive 使用 IOleCommandTarget 接口,以便上下文菜单当前显示而不是 UI 活动对象的接口时,显示上下文菜单是可能的,而不采用其中嵌套的控件上。在显示请求的菜单中,,如果请求来自作为一个子元素就地或组件控件的对象, SOleComponentUIManager 提供给主要就地元素机会使用有效的对象菜单来重写或组合容器菜单。

调用用户在上下文菜单中选择的命令出现错误,则为 ShowContextMenu 的调用返回。

如果作为 VSPackage 的对象组件控件所需的主要组件显示其一般控件上下文菜单,组件控件调用 IOleCommandTarget,提供自己的 GUID 和菜单标识符 COMP_CONTEXTID_CTRLGENERIC。,在调用对象的 GetCntrContextMenu时, SOleComponentUIManager 服务通过这些标识符为主要组件。主要组件应识别此菜单标识符和可以禁止组件控制菜单和替换它响应用主要组件的一般控件菜单。

.NET Framework 安全性

请参见

参考

IOleComponentUIManager 接口

Microsoft.VisualStudio.Shell.Interop 命名空间