2009-07-23 9 views
0

我有當標籤在IE被切換在我的IE擴展處理以下等 [ATL項目,VS2008,C++使用IDispEventImpl的]處理windowStateChanged - 在IE延伸突出變化

SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_WINDOWSTATECHANGED,WindowStateChanged) 
. 
. 
.  
void WindowStateChanged (DWORD dwFlags, DWORD dwValidFlagsMask); 
. 
. 
. 
. 
void CHelloWorld::WindowStateChanged (DWORD dwFlags, DWORD dwValidFlagsMask){ 
    //I don't do anything here right now. Even if I have some piece of code like 
    //ATLTRACE, IE just hangs 

} 

每當我運行我的代碼,IE停止工作(我得到一個對話框「Internet Explorer已停止工作」)我做錯了什麼?我的代碼中可能缺少什麼? 或者,這是IE8中的錯誤嗎?我正在開發Windows 7(eval)。

+0

你會想要在調試器下運行你的代碼來確定崩潰的位置。 – EricLaw 2009-07-23 21:26:55

回答

0

我是多麼的愚蠢。我錯過了這一點:STDMETHODCALLTYPE 所以我的代碼是:

SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_WINDOWSTATECHANGED,WindowStateChanged) 
. 
. 
.  
void STDMETHODCALLTYPE WindowStateChanged (DWORD dwFlags, DWORD dwValidFlagsMask); 
. 
. 
. 
. 
void STDMETHODCALLTYPE CHelloWorld::WindowStateChanged (DWORD dwFlags, DWORD dwValidFlagsMask){ 
    //I don't do anything here right now. Even if I have some piece of code like 
    //ATLTRACE, IE just hangs 

} 

現在,IE掛沒了。 :)