Inizializzazione e arresto
Per un'applicazione che usa una delle 30 funzioni telefoniche supplementari di TAPI, ha bisogno di una connessione a TAPI, tramite la quale può ricevere messaggi. L'applicazione stabilisce questa connessione usando la funzione phoneInitializeEx . In questa funzione, l'applicazione specifica il meccanismo di notifica in base al quale TAPI informa l'applicazione delle modifiche nello stato del telefono e del completamento asincrono delle funzioni telefoniche.
La funzione phoneInitializeEx restituisce due informazioni all'applicazione: un handle dell'applicazione e il numero di dispositivi telefonici. L'handle dell'applicazione rappresenta l'utilizzo dell'applicazione TAPI. Le funzioni TAPI che usano handle di telefono non richiedono l'handle dell'applicazione, poiché questo handle è derivato dall'handle del telefono specificato.
La seconda parte delle informazioni restituite dal telefonoInitializeEx è il numero di dispositivi telefonici disponibili per TAPI. I dispositivi telefonici vengono identificati dall'identificatore del dispositivo (ID dispositivo). Gli identificatori di dispositivo validi vanno da zero al numero di dispositivi telefonici meno uno. Ad esempio, se phoneInitializeEx segnala che in un sistema sono presenti due dispositivi telefonici, gli identificatori di dispositivo telefonico validi sono 0 e 1. Al termine dell'uso delle funzioni telefoniche di TAPI, un'applicazione richiama phoneShutdown, passando l'handle dell'applicazione per arrestare l'utilizzo di TAPI. Ciò consente a TAPI di liberare tutte le risorse assegnate all'applicazione.
Le applicazioni non devono richiamare phoneInitializeEx senza successivamente aprire un telefono (almeno per il monitoraggio). Se l'applicazione non esegue il monitoraggio e non usa alcun dispositivo, deve chiamare phoneShutdown in modo che le risorse di memoria allocate dalla libreria di collegamento dinamico TAPI possano essere rilasciate se non è necessario e la libreria stessa può essere scaricata dalla memoria mentre non è necessaria.
Sia phoneInitializeEx che phoneShutdown operano in modo sincrono. Ovvero, queste funzioni restituiscono un'indicazione di esito positivo o negativo e non restituiscono mai un identificatore di richiesta asincrona.