我正在使用COM DTE来创建一个应用程序,在其中保存Visual Studio解决方案中的文档时,将执行某些操作。例如,如果保存了解决方案中的文档,则会触发新的编译。
我正在使用C ++,但是我唯一能找到的文档是编写的C#[DTE事件] [https://docs.microsoft.com/en-us/dotnet/api/envdte.events?view=visualstudiosdk-2017]。
我尝试了几种DTE对象方法,但是无法找到保存文档时触发的事件,例如使用[DocumentEvents] [https://docs.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 ++中的文档相对较差)>