event firing problem !!!!!!editiert!!!!!
-
Hi ich habe ein problem ich habe eineATL Classe diese feuert beim init ein event welches vom Internetexplorer mittels javascript gehandelt wird(das funktioniert)Wenn ich das Event von einer anderen C++ classe feueren will funktioneiert es nicht In der C++ Classe habe ich einen Pointer auf die ATL-Klasse den ich ind der helpfunction verwende um eine Funktion in der ATl-Klasse auzrufen in der das Event gefeuert wird! aber das funktioniert nicht
Um zu überprüfen ob die funktion in der ATl-Classe aufgerufen wird veränder ich eine Variable in der Funktion wo ich auch das Event feuere. Die Variable wird geändert aber das Event nicht gefeuert!
Aber das wirklich komische ist das wenn ich die funktion vom Internetexplorer aufrufe das event gefeuert wird und die varible geändert!
CPP Class:
thephone.hclass thePhone { private: CmyPhone *cgi; public: void setCGI(LPVOID p); void testFunc(); }thePhone.cpp:
void thePhone::SetCGI(LPVOID p) { this->cgi = (CmyPhone*) p; } void thePhone::testFunc(){ this->cgi->helpFunction(); }ATL-Class:
myPhone.cpp:STDMETHODIMP CmyPhone::init(void) { this->tp.setValues(); this->tp.setCGI((LPVOID) this); this->tp.init(); this->tp.start(); this->tp.se.setRef(&tp); this->fval = 11; this->tp.testFunc(); //also works!!!! return S_OK; } STDMETHODIMP CmyPhone::helpFunction(void) { //works only if fired manualy from Internetexplorer this->Fire_myEvent //is always changed this->fval = this->fval + 22; return S_OK; }Please help me i don't know what to do!! MFG Tos
-
Was genau macht denn die Fire_testev()? (btw, ist das die selbe Funktion, die beim Initialisieren ordentlich arbeitet?)
Und hast du dir das ganze Spektakel mal im Debugger angesehen?
-
ja das ist das selbe event das beim init einwandfrei funktioniert und das mit den debug is etwas komisch ich setzte einen breakpoint und attache VS zum internetexplorer jedoch findet VS keine Instanc von dem ATL-Programm im IE.
-
Zu deinem Edit: Bitte bleib bei deutschen Erklärungen, die werden hier eher verstanden. (und wenn du zig neue Threads zu dem Thema anlegst, sinken deine Chancen auf Hilfe eher ;))