2009-07-23 6 views
0

Ich habe folgendes in meiner IE-Erweiterung zu handhaben, wenn ein Register in IE geschaltet wird, usw. [ATL-Projekt, VS2008, C++ mit IDispEventImpl]Handhabung windowStateChanged - Tab Änderung der IE-Erweiterung

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 

} 

Wann immer Ich starte meinen Code, der IE funktioniert nicht mehr (ich bekomme den Dialog "Internet Explorer funktioniert nicht mehr") Was mache ich falsch? Was könnte in meinem Code fehlen? Oder ist das ein Fehler in IE8? Ich arbeite an Windows 7 (eval) BTW.

+0

Sie möchten Ihren Code unter einem Debugger ausführen, um festzustellen, wo der Absturz ist. – EricLaw

Antwort

0

Wie dumm von mir. Ich vermisste das: STDMETHODCALLTYPE So ist mein Code:

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 

} 

Nun IE hängt nicht mehr. :)

Verwandte Themen