funzione TSPI_providerRemove (tspi.h)
La funzione TSPI_providerRemove è obsoleta. I provider di servizi TAPI versione 1.4 o precedenti possono implementare questa funzione TSPI. I TSP tapi versione 2.0 o successiva implementano TUISPI_providerRemove.
La funzione TSPI_providerRemove chiede all'utente di confermare l'eliminazione del provider di servizi. È responsabilità del provider di servizi rimuovere tutte le voci del Registro di sistema aggiunte dal provider di servizi in fase di addProvider , nonché qualsiasi altro modulo e file che non sono più necessari.
Sintassi
LONG TSPIAPI TSPI_providerRemove(
HWND hwndOwner,
DWORD dwPermanentProviderID
);
Parametri
hwndOwner
Handle della finestra padre in cui la funzione può creare qualsiasi finestra di dialogo richiesta durante la rimozione.
dwPermanentProviderID
Identificatore del provider di servizi permanente.
Valore restituito
Restituisce zero se la funzione ha esito positivo o un numero di errore se si verifica un errore. I valori restituiti possibili sono i seguenti:
LINEERR_OPERATIONFAILED, LINEERR_INIFILECORRUPT, LINEERR_NOMEM, LINEERR_INVALPARAM.
Commenti
Questa funzione deve garantire che la sezione del provider di servizi e le informazioni definite privatamente per il provider di servizi vengano rimosse dal Registro di sistema in caso di esito positivo. In particolare, la sezione [Provider<PPID>] la cui <PPID> corrisponde a dwPermanentProviderID deve essere rimossa, incluse le relative voci NumLines e NumPhones . Se la funzione restituisce l'esito positivo, è responsabilità del chiamante rimuovere le voci ProviderIDx e ProviderFilenamex corrispondenti dalla sezione [Providers] e rinumerare le voci rimanenti nella sezione [Providers] di conseguenza.
Questa procedura deve lasciare il sistema in uno stato coerente. Deve essere eseguita fino al completamento, non consentendo all'utente di interrompere la rimozione quando viene completata parzialmente. Se la rimozione non riesce, è responsabilità del provider "eseguire il backout" e restituire un errore. Ciò può implicare la pre-scansione per verificare che sia possibile una rimozione completa, prima dell'inizio della rimozione.
Questa funzione può essere chiamata mentre il provider di servizi è in uso, ovvero tra TSPI_providerInit e TSPI_providerShutdown. In questo caso, il provider di servizi deve eseguire una combinazione appropriata di visualizzazione di una finestra di dialogo dell'utente per annunciare eventuali conflitti e confermare la rimozione, limitare le opzioni di rimozione a quelle che possono essere eseguite in modo trasparente o inviare LINE_CLOSE e PHONE_CLOSE messaggi per informare TAPI e le applicazioni che i dispositivi interessati sono stati chiusi forzatamente per la rimozione. In ogni caso, tutte le modifiche che influiscono sul comportamento visibile tramite TSPI devono essere applicate solo quando il provider di servizi viene arrestato al successivo TSPI_providerShutdown.
Questa funzione non deve restituire LINEERR_INUSE o altri errori che potrebbero verificarsi perché il provider è in uso da un'applicazione; Al contrario, il provider deve fornire all'utente direttamente il problema e quindi restituire LINEERR_OPERATIONFAILED se l'utente decide di interrompere l'operazione.
Questa procedura viene chiamata una sola volta, al momento della rimozione del provider di servizi, fino a quando non viene eseguita una chiamata a TSPI_providerInstall. È responsabilità del chiamante garantire questo.
L'utilità Telefonia Pannello di controllo fornita con La telefonia Windows nelle versioni 1.4 e precedenti chiama questa funzione (con requisiti di sequenza esterni soddisfatti come descritto qui) quando viene richiamato il comando "remove".
Non esiste alcuna funzione corrispondente a livello TAPI. A questo livello, le applicazioni prevedono che i provider di servizi siano già installati; in caso contrario, le linee e i telefoni non vengono visualizzati all'interno della sequenza disponibile di identificatori di dispositivo. Le applicazioni in esecuzione vengono informate sulla riconfigurazione dinamica, inclusa la rimozione dei provider di servizi, tramite il valore LINEDEVSTATE_REINIT o PHONESTATE_REINIT nel messaggio di LINE_LINEDEVSTATE o di PHONE_STATE.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | tspi.h |