获取保存的事件Visual Studio DTE

时间:2018-11-23 09:03:36

标签: c++ visual-studio events com envdte

我正在使用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 ++中的文档相对较差)

1 个答案:

答案 0 :(得分:0)

您在正确的道路上。现在,只需订阅DocumentSaved事件。