Получить сохраненное событие Visual Studio DTE - PullRequest
0 голосов
/ 23 ноября 2018

Я использую COM DTE для создания приложения, в котором при сохранении документа в Visual Studio Solution выполняется определенное действие.Например, если документ в решении сохранен, запускается новая компиляция.

Я использую 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 голосов
/ 24 ноября 2018

Вы на правильном пути.Теперь просто подпишитесь на событие DocumentSaved .

...