Funzione linePickupA (tapi.h)

La linePickup funzione preleva un avviso di chiamata all'indirizzo di destinazione specificato e restituisce un handle di chiamata per la chiamata selezionata. Se richiamato con NULL per il parametro lpszDestAddress, viene eseguito un ritiro del gruppo. Se richiesto dal dispositivo, lpszGroupID specifica l'identificatore di gruppo a cui appartiene la stazione di avviso.

Sintassi

LONG linePickupA(
  HLINE   hLine,
  DWORD   dwAddressID,
  LPHCALL lphCall,
  LPCSTR  lpszDestAddress,
  LPCSTR  lpszGroupID
);

Parametri

hLine

Handle per il dispositivo a riga aperta in cui deve essere prelevata una chiamata.

dwAddressID

Indirizzo in hLine in cui deve essere originato il ritiro. Un identificatore di indirizzo è associato in modo permanente a un indirizzo; l'identificatore rimane costante tra gli aggiornamenti del sistema operativo.

lphCall

Puntatore a una posizione di memoria in cui viene restituito l'handle per la chiamata prelevata. L'applicazione è l'unico proprietario iniziale della chiamata.

lpszDestAddress

Puntatore a un nullbuffer di caratteri con terminazione contenente l'indirizzo la cui chiamata deve essere prelevata. L'indirizzo è in formato di indirizzo indirizzabile standard.

lpszGroupID

Puntatore a un nullbuffer di caratteri con terminazione contenente l'identificatore di gruppo a cui appartiene la stazione di avviso. Questo parametro è obbligatorio in alcune opzioni per prelevare chiamate all'esterno del gruppo di ritiro corrente.

Il parametro lpszGroupID può essere specificato da solo con un puntatore NULL per lpszDestAddress. In alternativa, è possibile specificare lpszGroupID oltre a lpszDestAddress, se richiesto dal dispositivo.

Valore restituito

Restituisce un identificatore di richiesta positivo se la funzione viene completata in modo asincrono o un numero di errore negativo se si verifica un errore. Il parametro dwParam2 del messaggio di LINE_REPLY corrispondente è zero se la funzione ha esito positivo o è un numero di errore negativo se si verifica un errore. I possibili valori restituiti sono:

LINEERR_INVALADDRESS, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALGROUPID, LINEERR_OPERATIONFAILED, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_UNINITIALIZED.

Osservazioni

Quando una chiamata è stata prelevata correttamente, l'applicazione riceve una notifica dal messaggio LINE_CALLSTATE sulle modifiche dello stato della chiamata. La struttura LINECALLINFO fornisce informazioni sulla chiamata che è stata prelevata. Elenca il motivo della chiamata come ritiro. Questa struttura è disponibile usando lineGetCallInfo.

Se LINEADDRCAPFLAGS_PICKUPCALLWAIT è TRUE, linePickup può essere usato per raccogliere una chiamata per cui l'utente ha rilevato in modo udibile il segnale di attesa della chiamata, ma per il quale il provider non è in grado di eseguire il rilevamento. In questo modo l'utente ha un meccanismo per "rispondere" a una chiamata in attesa anche se il provider di servizi non è riuscito a rilevare il segnale di attesa della chiamata. Sia parametri di puntatore lpszDestAddress che lpszGroupID devono essere NULL per raccogliere una chiamata in attesa di chiamata. La funzione linePickup crea un nuovo handle di chiamata per la chiamata in attesa e passa tale handle all'utente. Il parametro dwAddressID è spesso zero (in particolare nei casi residenziali a riga singola).

Dopo linePickup è stato usato per prelevare la seconda chiamata, è possibile usare lineSwapHold per passare da un'altra. La funzione lineDrop può essere usata per rilasciarne una (e passare all'altra) e così via. Se l'utente vuole eliminare la chiamata corrente e selezionare la seconda chiamata, deve chiamare lineDrop quando riceve l'segnale acustico in attesa della chiamata, attendere che la seconda chiamata venga chiamato e quindi chiamare lineAnswer sul nuovo handle di chiamata. Il flag LINEADDRFEATURE_PICKUP nel dwAddressFeatures membro in LINEADDRESSSTATUS indica quando il ritiro è effettivamente possibile.

Nota

L'intestazione tapi.h definisce linePickup come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
piattaforma di destinazione Finestre
intestazione tapi.h
libreria Tapi32.lib
dll Tapi32.dll

Vedere anche

LINEADDRESSSTATUS

LINECALLINFO

LINE_CALLSTATE

LINE_REPLY

panoramica ritiro

funzioni supplementari del servizio linea

panoramica dei riferimenti TAPI 2.2

lineAnswer

lineDrop

lineGetCallInfo

lineSwapHold