IDE 会通过 IVsUIHierarchy 和 IOleCommandTarget 接口对嵌套的项目的命令,或者父项目可筛选或重写命令。
备注
父项目通常处理的唯一的顺序进行筛选。由 IDE 处理指令例如 Build 和 Deploy 无法筛选。
以下步骤介绍实现的命令处理。
过程
为实现 " 命令处理
当用户选择一个嵌套的项目或一个节点在嵌套的项:
- IDE 调用 QueryStatus 方法。
- 或 -
- 如果命令则源自一层次结构 " 窗口,例如在解决方案资源管理器中的一个快捷菜单命令, IDE 对项的父级的 QueryStatusCommand 方法。
父项目可以检查将传递的参数传递给 QueryStatus,例如 pguidCmdGroup 和 prgCmds,确定父项是否应筛选命令。 如果父项目实现筛选命令,则应设置:
prgCmds[0].cmdf = OLECMDF_SUPPORTED; // make sure it is disabled prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;
单击父项应返回 S_OK。
如果父项目不筛选命令,则应返回 S_OK。 在这种情况下, IDE 会自动路由命令为子项。
父项目不必路由命令到子项。 IDE 执行此任务。