IVsUIHierarchy.QueryStatusCommand 方法

查询命令状态的对象。

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

语法

声明
Function QueryStatusCommand ( _
    itemid As UInteger, _
    ByRef pguidCmdGroup As Guid, _
    cCmds As UInteger, _
    <OutAttribute> prgCmds As OLECMD(), _
    <OutAttribute> pCmdText As IntPtr _
) As Integer
int QueryStatusCommand(
    uint itemid,
    ref Guid pguidCmdGroup,
    uint cCmds,
    OLECMD[] prgCmds,
    IntPtr pCmdText
)

参数

  • itemid
    类型:System.UInt32
    [in] 此命令的影响的项的标识符。有关 itemid 值列表,请参见 VSITEMID。对于唯一的选择,这是实际项 ID对于多重选择,设置 itemid 等于 VSITEMID_SELECTION
  • pguidCmdGroup
    类型:System.Guid%
    [in, unique] 为命令组的唯一标识符的指针。pguidCmdGroup 参数可以是指定标准组的 nullnull 引用(在 Visual Basic 中为 Nothing) 。
  • cCmds
    类型:System.UInt32
    [in] 命令数。 prgCmds 数组。
  • pCmdText
    类型:System.IntPtr
    [in, out, unique] 对返回单个命令的名称和状态信息的一 OLECMDTEXT 结构的指针。可以是指示的 nullnull 引用(在 Visual Basic 中为 Nothing) 调用方不需要此信息。

返回值

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

备注

COM 签名

从 vsshell.idl:

HRESULT IVsUIHierarchy::QueryStatusCommand(
   [in] VSITEMID itemid,
   [in, unique] const GUID * pguidCmdGroup,
   [in] ULONG cCmds,
   [in, out, size_is(cCmds)] OLECMD prgCmds[],
   [in, out, unique] OLECMDTEXT *pCmdText
);

此方法类似于 M:Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(System.Guid@,System.UInt32,System.UInt32,System.IntPtr,System.IntPtr) 方法,不支持层次结构。 ExecCommand 方法附加包含 itemid 参数,标识层次结构项目命令适用。

,当 UI 层次结构 " 窗口具有焦点时,该环境执行此方法。 UI 层次结构 " 窗口委托的任何菜单或工具栏命令将为选择的公用父级的 UIHierarchy 对象。 这提供了处理的选项命令仅适用的 UIHierarchy 对象,当 UI 层次结构 " 窗口具有焦点。 示例包括 删除移除 命令。

也不处理这些命令使用 QueryInterface 可以从 IVsHierarchy 接口运行的 IOleCommandTarget 接口。 活动项目中 IOleCommandTarget 在环境的常用命令传送包括,因此,即使另一个窗口 (例如,文件) 具有焦点。

如果 UI 层次结构 " 窗口不是活动窗口,但是,它仍是有效的层次结构,涉及活动层次结构的意味着它是最后层次结构中选择了,则所有命令通过 IOleCommandTarget 接口发送而不是 IVsUIHierarchy 接口。 例如,因此,如果所选内容从 解决方案资源管理器 更改为任务列表,然后 解决方案资源管理器 有效的层次结构,但是,活动窗口是任务列表。 在这种情况下,使用有效的层次结构相关,例如将项添加到项目的所有命令,通过 IOleCommandTarget 接口发送。

,因为它们是从层次结构中的窗口之外,不会获得不应当由 IVsUIHierarchy 方法处理类似添加项目项的命令。 为了 UI 层次结构 窗口具有焦点,或在该层次结构中的特定项操作处理命令的仅使用 IVsUIHierarchy

.NET Framework 安全性

请参见

参考

IVsUIHierarchy 接口

Microsoft.VisualStudio.Shell.Interop 命名空间