Events registrieren -> TAPI



  • Hallo,
    ich ärger mich schon seit Tagen mit der implementation von TAPI

    Mitlerweile bin ich soweit, dass meine Applikation läuft, und auch schon die Fritzkarte erkannt wird.

    Ich habe mich an die vorgaben von hier http://msdn2.microsoft.com/en-us/library/ms734192.aspx gehalten.

    Mein Traceprogramm zeigt zwar den einkommenenden Anruf und die Eventmessage, aber meine Applikation fängt sich nicht auf.

    Ich habe wie beschrieben eine Klasse zum registrieren des Events

    ///////////////////////////////////////////////////////////////////
    // CallEventNotification
    //
    // The only method in the ITCallEventNotification interface.  This gets
    // called by TAPI 3.0 when there is a call event to report. This just
    // posts the message to our UI thread, so that we do as little as
    // possible on TAPI's callback thread.
    //
    ///////////////////////////////////////////////////////////////////
    
    HRESULT STDMETHODCALLTYPE CTAPIEventNotification::Event(IN TAPI_EVENT TapiEvent,IN IDispatch * pEvent)
    {
    	AfxMessageBox("ICH KOMM HIER NET REIN");
    	//
    	//sanity check
    	//
    	if(NULL == pEvent)
    	{
    		return S_OK;
    	}
    
        //
        // Addref the event so it doesn't go away.
        //
        pEvent->AddRef();
    
        //
        // Post a message to our own UI thread.
        //
    
        PostMessage(g_hDlg,
    		WM_PRIVATETAPIEVENT,
                    (WPARAM) TapiEvent,
                    (LPARAM) pEvent
                   );
        return S_OK;
    }
    

    Ich habe auch bereits ein die AFX Message Map der cpp Datei folgendes eingefügt

    ON_MESSAGE(WM_PRIVATETAPIEVENT, OnTapiEvent)
    

    Und im Header

    afx_msg HRESULT OnTapiEvent(IN TAPI_EVENT TapiEvent,IN IDispatch * pEvent);
    

    sowie

    HRESULT CFinalPCPDlg::OnTapiEvent(IN TAPI_EVENT TapiEvent,IN IDispatch * pEvent)
    {
        HRESULT hr = E_FAIL;
    ...
    ...
    ...
        return S_OK;
    }
    

    Testweise habe ich mal die AFX Message zu ONMOUSEMOVE geändert, und dann wurde meine OnTapiEvent aufgerufen.

    Also liegts wohl daran, das meine Applikation die WM_PRIVATETAPIEVENT irgendwie nicht auffängt.

    Nur leider wird mir aus den Beschreibungen im Internet und auf der msdn Seite nicht klar, wie ich weiter machen muss 😞

    Bin über jede Hilfe dankbar,
    Multiplex


Anmelden zum Antworten