002
13.12.2005, 20:12 Uhr
lsybimbo
|
Das Ding is, dass das sehr viele Codestellen sind...
hier eine kurzversion:
ERSTELLUNG DES THREADS:
C++: |
m_hLineMsgThread = CreateThread(NULL,NULL,LineEventThread,this,NULL,0);
|
AKTION BEI EVENT AUS DIESEM THREAD:
C++: |
DWORD WINAPI CTapiLine::LineEventThread(LPVOID lpVoid) { CTapiLine *pcTapiLine = (CTapiLine *)lpVoid; long lRet; CREATEDEBUGCLASS; LOG("CTapiLine::LineEventThread - started");
//is needed for callmap key management wxString callKey; //pointer to callMap of pcTapiLine CallMap* containerCallMap = pcTapiLine->ptrCallMap;
////TEST AUFRUF wxString myckey; myckey.Printf("66474");
//Hier ein Call erzeugt in dem dann der Frame aufgerufen wird //das klappt nicht... containerCallMap->createCall(myckey); Customer mycust; retrieveCustomerInformation((char*)"1158034388",&mycust); (containerCallMap->getCall(&myckey))->UpdateCustomer(mycust); //TEST END return 0; }
|
METHODE DIE EIN CALL OBJEKT ERZEUGT
C++: |
//create CallObject and insert into HashMap int CallMap::createCall(wxString key) { myCallHashMap[key]= new LsyCall((char*)key.c_str(),myUser,this);
//HANDLE h_toSuicideThread = CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)waitToCommitSuicide,(LPVOID)myCallHashMap[key],NULL,0); //myHandleMap[key]=h_toSuicideThread;
return 0; }
|
METHODE DIE EINEN LSYCALL ERZEUGT UND DEN FRAME OEFFNET
C++: |
LsyCall::LsyCall(char *key,User* user, CallMap* myMap) { CREATEDEBUGCLASS; LOG(returnString("LsyCall initialized. Key: ",key));
//set backpointer to Container Map HoldingMap = myMap;
//Bastian - test /*wxString myckey = _T("66474"); callKey = wxString(myckey);*/
// key for the call callKey = wxString(key);
// flag signalling whether call is taken or not isTaken = false;
// Pointer to user info (password, username) myUser = user;
// flag signalling if deleted directly waitDelete = false; // is fired when call taken h_signalCallTaken = CreateEvent(NULL,0,0,NULL);
//Pointer to PopupWindow //DAS KLAPPT NICHT!!!! myCallFrame = new callFrame(&callCustomer,myUser,callKey,myMap); //HIER WIRD DER FRAME NICHT ANGEZEIGT!! myCallFrame->Show(true);
}
|
Das Programm soll einen eingehenden Anruf ueber TAPI aus einer Telefonanlage auslesen. Das klappt soweit, nur kann ich dann aus dem thread, der sozusagen die Telefonanlage ueberwacht das Fenster nicht anzeigen.
Bin ich jetzt hilfewuerdiger bzw. - faehiger?
Danke... |