Расширение ATL, VS2008: добавление обработчика событий в WindowEvents

Воспользовался мастером создания надстройки для создания проекта надстройки Visual C++/ATL.
Сгенерированный код:

HRESULT hr = S_OK;  
pApplication->QueryInterface(__uuidof(DTE2), (LPVOID*)&m_pDTE);    
pAddInInst->QueryInterface(__uuidof(AddIn), (LPVOID*)&m_pAddInInstance);`

Получите объект Events и WindowEvents:

m_pDTE->get_Events(&m_pEvents);  
m_pEvents->get_WindowEvents(0, &m_pWinEvents);

Как добавить обработчик событий?

if (NULL != m_pWinEvents) {  
    m_pWinEvents += ????  
}

Спасибо за любые подсказки или ссылки...

ОБНОВЛЕНИЕ, пробуя предложение Alien01:

m_pWinEvents->WindowActivated += new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated);

1>Компиляция...
1>Connect.cpp
1>c:\work\visstudio_addin\cbaddin3\cbaddin3\connect.cpp(43): ошибка C2039: 'WindowActivated': не является членом ' EnvDTE::_WindowEvents'
1> c:\work\visstudio_addin\cbaddin3\cbaddin3\debug\dte80a.tlh(1006): см. объявление 'EnvDTE::_WindowEvents'
1>c:\work\visstudio_addin \cbaddin3\cbaddin3\connect.cpp(43): ошибка C2061: синтаксическая ошибка: идентификатор '_dispWindowEvents_WindowActivatedEventHandler'


person Number8    schedule 06.07.2009    source источник
comment
Вы определили функцию WindowActivated в своем классе?   -  person anand    schedule 06.07.2009
comment
Да, в моем классе есть функция WindowActivated(). Я считаю, что сообщения об ошибках относятся к m_pWinEvents->WindowActivated и _dispWindowEvents_WindowActivatedEventHandler.   -  person Number8    schedule 06.07.2009


Ответы (1)


You can try using

m_pWinEvents. WindowCreated += 
  new _dispWindowEvents_WindowCreatedEventHandler(this.WindowCreated);

а затем определить обработчик

   public : 
   void WindowCreated(EnvDTE.Window window)
    {
        // some code
    }
person anand    schedule 06.07.2009
comment
Спасибо за ответ, добавил ваше предложение в ОП. - person Number8; 06.07.2009
comment
Ссылка MSDN для получения дополнительной информации msdn.microsoft.com/en- us/library/ms165650(VS.80).aspx Ссылка на проект кода codeproject .com/KB/macros/vsnowediting.aspx - person anand; 06.07.2009
comment
Ссылка на библиотеку MSDN описывает C#. У меня есть эта версия, построенная успешно (есть проблема с ее загрузкой). Ссылка CodeProject также использует C # (несмотря на то, что говорят ее теги). Но спасибо за ссылки. - person Number8; 06.07.2009