您可以使用SVsShellMonitorSelection服务来获取当前选择的IVsHierarchy,然后通过它的方法GetProjectItem获得的项目项,该论坛帖子下面的代码是Feng
Chen答复的。
代码示例:
IntPtr hierarchyPtr, selectionContainerPtr;
Object prjItemObject =
null;
IVsMultiItemSelect mis;
uint prjItemId;
IVsMonitorSelection monitorSelection = (IVsMonitorSelection)Package.GetGlobalService(typeof(SVsShellMonitorSelection));
monitorSelection.GetCurrentSelection(out
hierarchyPtr, out prjItemId,
out mis,
out selectionContainerPtr);
IVsHierarchy selectedHierarchy =
Marshal.GetTypedObjectForIUnknown(hierarchyPtr,
typeof(IVsHierarchy))
asIVsHierarchy;
if (selectedHierarchy !=
null)
{
ErrorHandler.ThrowOnFailure(selectedHierarchy.GetProperty(prjItemId,
(int)__VSHPROPID.VSHPROPID_ExtObject,
out prjItemObject));
}
ProjectItem selectedPrjItem = prjItemObject
asProjectItem;
相关帖子:
http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/24f71d7f-bb7d-4df8-a00a-ff0ce6f4d48f
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过
邮件告诉我们。
立刻免费下载
MSDN 论坛好帮手