使用本机界面获取解决方案中的选定项目
Get selected items in solution with native interfaces
我试图在一个解决方案中获取所有选定的项目,并使用本机代码。对于本机代码,我指的是不使用 DTE
.
的代码
我查看了文档并试图找到合适的解决方案,但是我并没有走得太远。我发现的是包含以下内容的 IVsUiHierarchy
which contains the ExecCommand
方法。
Commands that act on a specific item within the hierarchy. (If ItemID equals VSITEMID_SELECTION, the command is applied to the selected item or items.)
所以我怀疑他们说的方法,就是前面提到的ExecCommand
一种。一方面,我不太确定如何从 IVsHierarchy
或类似的对象获取 IVsHierarchy
对象,另一方面,我不太确定如何正确使用 ExecCommand
方法.此外,我什至不太确定这是否是接近此的 'right way'。
注意:我正在寻找不包含以下代码的解决方案this answer。
您可以使用 IVsMonitorSelection.GetCurrentSelection 来识别解决方案资源管理器中的所有选定项目。
以上将为您 return 一个 IVsMultiItemSelect 接口,您可以使用该接口调用 IVsMultiItemSelect.GetSelectedItems 来检索 VSITEMSELECTION 值的数组。
有a few extensibilty samples利用了GetSelectedItems,大家可以参考一下。
真诚的,
埃德·多尔
我试图在一个解决方案中获取所有选定的项目,并使用本机代码。对于本机代码,我指的是不使用 DTE
.
我查看了文档并试图找到合适的解决方案,但是我并没有走得太远。我发现的是包含以下内容的 IVsUiHierarchy
which contains the ExecCommand
方法。
Commands that act on a specific item within the hierarchy. (If ItemID equals VSITEMID_SELECTION, the command is applied to the selected item or items.)
所以我怀疑他们说的方法,就是前面提到的ExecCommand
一种。一方面,我不太确定如何从 IVsHierarchy
或类似的对象获取 IVsHierarchy
对象,另一方面,我不太确定如何正确使用 ExecCommand
方法.此外,我什至不太确定这是否是接近此的 'right way'。
注意:我正在寻找不包含以下代码的解决方案this answer。
您可以使用 IVsMonitorSelection.GetCurrentSelection 来识别解决方案资源管理器中的所有选定项目。
以上将为您 return 一个 IVsMultiItemSelect 接口,您可以使用该接口调用 IVsMultiItemSelect.GetSelectedItems 来检索 VSITEMSELECTION 值的数组。
有a few extensibilty samples利用了GetSelectedItems,大家可以参考一下。
真诚的, 埃德·多尔