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 数组。
- prgCmds
类型:array<Microsoft.VisualStudio.OLE.Interop.OLECMD[]
[in, out, size_is(cCmds)] 调用方分配的数组指示命令调用方需要状态信息的 OLECMD 结构。此方法用取自 OLECMDF 枚举的值填充每个结构的 cmdf 成员。
- 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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。