获取保存的事件Visual Studio DTE



我使用COM DTE是为了制作一个应用程序,当保存Visual Studio解决方案中的文档时,将执行某个操作。例如,如果解决方案中的文档被保存,则会触发新的编译。

我使用的是C++,但我能找到的唯一文档是编写的C#[DTE事件][https://learn.microsoft.com/en-us/dotnet/api/envdte.events?view=visualstudiosdk-2017年]。

我尝试了几种DTE对象的方法,但无法找到保存文档时触发的事件,例如使用[DocumentEvents][https://learn.microsoft.com/en-us/dotnet/api/envdte.events.documentevents?view=visualstudiosdk-2017](为了简单起见,我省略了错误检查(:

TComPtr<EnvDTE::Events> events;
DTE->get_Events(&events);
TComPtr<EnvDTE::_DocumentEvents> docsEvents;
TComPtr<EnvDTE::Document> doc;
events->get_DocumentEvents(doc, &docsEvents);

然后我在docsEvents被阻止了,我希望这能给我提供要控制的事件(例如,使用__hook将它们连接到处理程序(。

因此,我想知道访问解决方案中文档事件的正确调用顺序是什么(尤其是在保存解决方案文档时启动的调用((C++中的文档相对较差(

你走在了正确的道路上。现在只需订阅DocumentSaved事件。

最新更新