新しいアドインウィザードを使用してVisual C++/ATLアドインプロジェクトを作成しました。
生成されたコード:ATL、VS2008拡張:イベントハンドラをWindowEventsに追加する
HRESULT hr = S_OK;
pApplication->QueryInterface(__uuidof(DTE2), (LPVOID*)&m_pDTE);
pAddInInst->QueryInterface(__uuidof(AddIn), (LPVOID*)&m_pAddInInstance);`
は、イベントオブジェクトを取得し、のWindowEvents:
m_pDTE->get_Events(&m_pEvents);
m_pEvents->get_WindowEvents(0, &m_pWinEvents);
イベントハンドラを追加する方法は?任意のヒントや参照用
if (NULL != m_pWinEvents) {
m_pWinEvents += ????
}
おかげで... Alien01の提案をしようと
UPDATE:
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 \ visstudi (Envelope :: _WindowsEvents)の宣言を参照してください。
1> c:\ work \ visstudio_addin \ cbaddin3 \ cbaddin3 \ connect.cpp(43):エラーC2061:構文エラー:識別子 '_dispWindowEvents_WindowActivatedEventHandler'
を定義するには、あなたのクラスでのwindowActivated機能を定義していますか? – anand
はい、クラスにWindowActivated()関数があります。 エラーメッセージが m_pWinEvents-> WindowActivated および _dispWindowEvents_WindowActivatedEventHandlerを参照していると考えられます。 – Number8