Funzione lineSetMediaControl (tapi.h)
La funzione lineSetMediaControl abilita e disabilita le azioni di controllo nel flusso multimediale associato alla riga, all'indirizzo o alla chiamata specificati. Le azioni di controllo multimediale possono essere attivate dal rilevamento di cifre, tipi di supporti, toni personalizzati e stati di chiamata specificati.
Sintassi
LONG lineSetMediaControl(
HLINE hLine,
DWORD dwAddressID,
HCALL hCall,
DWORD dwSelect,
LPLINEMEDIACONTROLDIGIT const lpDigitList,
DWORD dwDigitNumEntries,
LPLINEMEDIACONTROLMEDIA const lpMediaList,
DWORD dwMediaNumEntries,
LPLINEMEDIACONTROLTONE const lpToneList,
DWORD dwToneNumEntries,
LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
DWORD dwCallStateNumEntries
);
Parametri
hLine
Gestire in un dispositivo a linea aperta.
dwAddressID
Identificatore dell'indirizzo nel dispositivo a riga aperta specificata. Un identificatore di indirizzo è associato in modo permanente a un indirizzo; l'identificatore rimane costante tra gli aggiornamenti del sistema operativo.
hCall
Gestire una chiamata. L'applicazione deve essere un proprietario della chiamata. Lo stato della chiamata di hCall può essere qualsiasi stato.
dwSelect
Se il controllo multimediale richiesto è associato a una singola chiamata, è l'impostazione predefinita per tutte le chiamate in un indirizzo o è l'impostazione predefinita per tutte le chiamate su una riga. Questo parametro è uno e solo uno dei costanti LINECALLSELECT_.
lpDigitList
Puntatore alla matrice che contiene le cifre che consentono di attivare azioni di controllo multimediale, di tipo LINEMEDIACONTROLDIGIT. Ogni volta che viene rilevata una cifra nell'elenco cifre, l'azione di controllo multimediale specificata viene eseguita sul flusso multimediale della chiamata.
Le cifre valide per la modalità pulse sono da '0' a '9'. Le cifre valide per la modalità DTMF sono da '0' a '9', 'A', 'B', 'C', 'D', '*', '#'.
dwDigitNumEntries
Numero di voci in lpDigitList.
lpMediaList
Puntatore a una matrice con voci di tipo LINEMEDIACONTROLMEDIA. La matrice contiene voci dwMediaNumEntries . Ogni voce contiene un tipo di supporto da monitorare, informazioni specifiche del tipo di supporto (ad esempio durata) e un campo di controllo multimediale. Se viene rilevato un tipo di supporto nell'elenco, l'azione di controllo multimediale corrispondente viene eseguita sul flusso multimediale della chiamata.
dwMediaNumEntries
Numero di voci in lpMediaList.
lpToneList
Puntatore a una matrice con voci di tipo LINEMEDIACONTROLTONE. La matrice contiene voci dwToneNumEntries . Ogni voce contiene una descrizione di un tono da monitorare, la durata del tono e un campo di controllo multimediale. Se viene rilevato un tono nell'elenco, l'azione di controllo multimediale corrispondente viene eseguita sul flusso multimediale della chiamata.
dwToneNumEntries
Numero di voci in lpToneList.
lpCallStateList
Puntatore a una matrice con voci di tipo LINEMEDIACONTROLCALLSTATE. La matrice contiene voci dwCallStateNumEntries . Ogni voce contiene uno stato di chiamata e un'azione di controllo multimediale. Ogni volta che la chiamata specificata passa a uno degli stati di chiamata nell'elenco, viene richiamata l'azione di controllo multimediale corrispondente.
dwCallStateNumEntries
Numero di voci in lpCallStateList.
Valore restituito
Restituisce zero se la richiesta ha esito positivo o negativo se si verifica un errore. I valori restituiti possibili sono:
LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONFAILED, LINEERR_INVALDIGITLIST, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIALIST, LINEERR_INVALPOINTER, LINEERR_INVALTONELIST.
Commenti
La funzione lineSetMediaControl viene considerata corretta se il controllo multimediale è stato avviato correttamente, non quando viene applicato alcun controllo multimediale. Il controllo multimediale in corso viene modificato o viene annullato chiamando di nuovo questa funzione con parametri diversi o NULL. Se uno o più parametri lpDigitList, lpMediaList, lpToneList e lpCallStateList sono NULL, la cifra corrispondente, il tipo di supporto, il tono o il controllo multimediale attivato dallo stato di chiamata è disabilitato. Per modificare solo una parte dei parametri del controllo multimediale lasciando effettive le impostazioni rimanenti, l'applicazione deve richiamare lineSetMediaControl, specificando i parametri precedenti per le parti che devono rimanere attive e nuovi parametri per le parti da modificare.
Se hCall è selezionato e la chiamata termina o l'applicazione dealloca il relativo handle, il controllo multimediale su tale chiamata viene annullato.
Tutte le applicazioni proprietari della chiamata sono in linea di principio autorizzate a effettuare richieste di controllo multimediale sulla chiamata. Solo una singola richiesta di controllo multimediale può essere in attesa in una chiamata in tutte le applicazioni proprietarie della chiamata. Ogni volta che viene chiamato lineSetMediaControl , la nuova richiesta esegue l'override di qualsiasi controllo multimediale e quindi in vigore sulla chiamata, sia imposta dall'applicazione chiamante che da qualsiasi altra applicazione proprietaria.
A seconda del provider di servizi e di altre attività che competono per tali risorse, il numero di rilevamenti simultanei che possono essere effettuati può variare nel tempo. Se le risorse del provider di servizi vengono sottoposte a overcommitted, viene restituito l'errore LINEERR_RESOURCEUNAVAIL.
Indica se il controllo multimediale è supportato dal provider di servizi è una funzionalità del dispositivo.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | tapi.h |
Libreria | Tapi32.lib |
DLL | Tapi32.dll |