Empfangen eines Anrufs

Im folgenden Codebeispiel wird die Behandlung neuer Anrufbenachrichtigungen veranschaulicht, z. B. suchen oder erstellen, um die Medien zu rendern. In diesem Beispiel handelt es sich um einen Teil der Switch-Anweisung, die für die Ereignisbehandlung implementiert werden muss. Der Code selbst kann in der Implementierung von ITTAPIEventNotification::Event enthalten sein, oder die Ereignismethode kann eine Nachricht an einen Arbeitsthread posten, der den Schalter enthält.

Bevor Sie dieses Codebeispiel verwenden, müssen Sie die Vorgänge in initialisieren TAPI, Adresse auswählen und Ereignisse registrieren.

Außerdem müssen Sie die in " Terminal auswählen" dargestellten Vorgänge ausführen, nachdem sie die ITBasicCallControl - und ITAddress-Schnittstellenzeiger abgerufen haben.

Hinweis

In diesem Beispiel ist die Fehlerüberprüfung und -version nicht für den Produktionscode geeignet.

 

// pEvent is an IDispatch pointer for the ITCallNotificationEvent interface of the
// call object created by TAPI, and is passed into the event handler by TAPI. 

case TE_CALLNOTIFICATION:
{
    // Get the ITCallNotification interface.
    ITCallNotificationEvent * pNotify;
    hr = pEvent->QueryInterface( 
            IID_ITCallNotificationEvent, 
            (void **)&pNotify 
            );
    // If ( hr != S_OK ) process the error here. 
    
    // Get the ITCallInfo interface.
    ITCallInfo * pCallInfo;
    hr = pNotify->get_Call( &pCallInfo);
    // If ( hr != S_OK ) process the error here. 

    // Get the ITBasicCallControl interface.
    ITBasicCallControl * pBasicCall;
    hr = pCallInfo->QueryInterface(
            IID_ITBasicCallControl,
            (void**)&pBasicCall
            );
    // If ( hr != S_OK ) process the error here. 

    // Get the ITAddress interface.
    ITAddress * pAddress;
    hr = pCallInfo->get_Address( &pAddress );
    // If ( hr != S_OK ) process the error here. 

    // Create the required terminals for this call.
    {
        // See the Select a Terminal code example.
    }
    // Complete incoming call processing.
    hr = pBasicCall->Answer();
    // If ( hr != S_OK ) process the error here. 
}

Ereignisse

ITTAPIEventNotification

ITTAPI::RegisterCallNotifications

ITCallNotificationEvent

ITCallInfo

ITBasicCallControl

ITTerminalSupport