Função lineGetRequest (tapi.h)

A função lineGetRequest recupera a próxima solicitação por proxy para o modo de solicitação especificado.

Sintaxe

LONG lineGetRequest(
  HLINEAPP hLineApp,
  DWORD    dwRequestMode,
  LPVOID   lpRequestBuffer
);

Parâmetros

hLineApp

O identificador de uso do aplicativo para a parte de linha do TAPI.

dwRequestMode

Um tipo de solicitação a ser obtida. Lembre-se de que dwRequestMode só pode ter um bit definido. Esse parâmetro usa uma e apenas uma das constantes LINEREQUESTMODE_.

lpRequestBuffer

Um ponteiro para um buffer de memória em que os parâmetros da solicitação devem ser colocados. O tamanho do buffer e a interpretação dos dados colocados no buffer dependem do modo de solicitação. O buffer alocado pelo aplicativo é considerado de tamanho suficiente para manter a solicitação.

Se dwRequestMode for LINEREQUESTMODE_MAKECALL, interprete o conteúdo do buffer de solicitação usando a estrutura LINEREQMAKECALL .

LINEREQUESTMODE_MEDIACALL está obsoleto. Para obter mais informações, consulte tapiRequestMediaCall.

Retornar valor

Retornará zero se a solicitação for bem-sucedida ou um número de erro negativo se ocorrer um erro. Os valores retornados possíveis são:

LINEERR_INVALAPPHANDLE, LINEERR_NOTREGISTERED, LINEERR_INVALPOINTER, LINEERR_OPERATIONFAILED, LINEERR_INVALREQUESTMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_UNINITIALIZEDLINEERR_NOREQUEST.

Comentários

Um aplicativo habilitado para telefonia pode solicitar que uma chamada seja feita em seu nome invocando tapiRequestMakeCall. Essas solicitações são enfileiradas pelo TAPI e o aplicativo de prioridade mais alta que se registrou para lidar com a solicitação recebe uma mensagem LINE_REQUEST com indicação do modo da solicitação pendente. Normalmente, esse aplicativo é o aplicativo de controle de chamada do usuário. A mensagem LINE_REQUEST indica que zero ou mais solicitações podem estar pendentes para o aplicativo registrado processar; depois de receber LINE_REQUEST, é responsabilidade do aplicativo destinatário chamar lineGetRequest até que LINEERR_NOREQUEST seja retornado, indicando que não há mais solicitações pendentes.

Em seguida, o aplicativo de controle de chamada que recebe essa mensagem invoca lineGetRequest, especificando o modo de solicitação e um buffer grande o suficiente para manter a solicitação. Em seguida, o aplicativo de controle de chamada interpreta e executa a solicitação.

Após a execução de lineGetRequest, o TAPI limpa a solicitação de sua fila interna, disponibilizando espaço para uma solicitação subsequente. Portanto, é possível que uma nova mensagem LINE_REQUEST seja recebida imediatamente após a execução de lineGetRequest, caso o mesmo ou outro aplicativo emita outra solicitação. É responsabilidade do aplicativo destinatário da solicitação lidar com esse cenário por algum mecanismo; por exemplo, observando o LINE_REQUEST adicional e adiando uma lineGetRequest subsequente até que o processamento da solicitação anterior seja concluído, obtendo a solicitação e o buffer subsequentes conforme necessário ou por outro meio apropriado.

Os LINE_REQUEST subsequentes não devem ser ignorados porque não são repetidos pelo TAPI.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho tapi.h
Biblioteca Tapi32.lib
DLL Tapi32.dll

Confira também

Referência básica dos Serviços de Telefonia

LINEREQMAKECALL

LINE_REQUEST

Visão geral da referência do TAPI 2.2

Tapirequestmakecall