lineOpen
9/19/2008
Essa função abre o dispositivo de linha especificado por seu identificador dispositivo e retorna um identificador de linha para o correspondente aberto dispositivo de linha. Esse identificador de linha é usado em operações subseqüentes no dispositivo de linha.
Syntax
LONG lineOpen(
HLINEAPP hLineApp,
DWORD dwDeviceID,
LPHLINE lphLine,
DWORD dwAPIVersion,
DWORD dwExtVersion,
DWORD dwCallbackInstance,
DWORD dwPrivileges,
DWORD dwMediaModes,
LPLINECALLPARAMS const lpCallParams
);
Parameters
- hLineApp
[no] Identificador para registro do aplicativo com TAPI.
- dwDeviceID
[no] Identificador do dispositivo de linha a ser aberto. Ele deve ser um válido identificador dispositivo.
- lphLine
[out] Ponteiro para um HLINE identificador que é carregado, em seguida, com o identificador que representa o dispositivo de linha aberto. Use este identificador para identificar o dispositivo ao chamar outras funções no aberto dispositivo de linha.
- dwAPIVersion
[no] Número versão TAPI sob a qual o aplicativo e TAPI concordaram para operar. Esse número é obtido com o lineNegotiateAPIVersion função.
- dwExtVersion
[no] Sem suporte; definido como zero.
- dwCallbackInstance
[no] Usuário-dados instância passados voltar para o aplicativo com cada mensagem associado com esta linha ou endereços ou chamadas nesta linha. Este parâmetro não é interpretado pelo TAPI.
dwPrivileges
[no] Privilégio de aplicativo deseja para as chamadas que ele é notificado para. Este parâmetro pode ser uma combinação da LINECALLPRIVILEGE. A seguinte tabela mostra os valores de parâmetro pode demorar.Valor Descrição LINECALLPRIVILEGE_NONE
O aplicativo pode fazer chamadas somente de saída.
LINECALLPRIVILEGE_MONITOR
O aplicativo pode monitor somente de entrada e de saída chamadas.
LINECALLPRIVILEGE_OWNER
O aplicativo pode possuir apenas de entrada chamadas dos tipos especificadas na dwMediaModes.
LINECALLPRIVILEGE_MONITOR + LINECALLPRIVILEGE_OWNER
O aplicativo pode possuir apenas de entrada chamadas dos tipos especificadas na dwMediaModes, mas se não for um proprietário de um chamar, é um monitor.
São outras combinações sinalizador inválido.
- dwMediaModes
[no] Modo de mídia ou modos de interesse para o aplicativo. Este parâmetro é usado para registrar o aplicativo como um destino potencial para de entrada chamar e entrega chamar para o modo de mídia especificado. Este parâmetro é significativo somente se o bit LINECALLPRIVILEGE_OWNER in dwPrivileges é definido (e ignorado se ele não for). Este parâmetro usa LINEMEDIAMODE.
- lpCallParams
[no] Ponteiro para uma estrutura de tipo LINECALLPARAMS. Esse ponteiro deve ser definido como NULL para 2.x Windows Embedded CE.
Return Value
Zero indica sucesso. Um número de erro negativa indica que ocorreu um erro. A seguinte tabela mostra os valores de retorno para esta função.
Valor | Descrição |
---|---|
LINEERR_ALLOCATED |
A linha não pode ser aberta devido a uma condição persistente. |
LINEERR_BADDEVICEID |
ID de dispositivo fornecido está incorreto. |
LINEERR_INCOMPATIBLEAPIVERSION |
A versão API é incompatível |
LINEERR_INCOMPATIBLEEXTVERSION |
A versão extensão é incompatível. |
LINEERR_INVALAPPHANDLE |
O identificador APP é inválido. |
LINEERR_INVALMEDIAMODE |
O dispositivo de linha é aberto com privilégio proprietário e um modo de mídia extensão não está registrado. |
LINEERR_INVALPOINTER |
O ponteiro é inválido. |
LINEERR_INVALPRIVSELECT |
O privilégio selecionado é inválido. |
LINEERR_LINEMAPPERFAILED |
|
LINEERR_NODEVICE |
O dispositivo não foi encontrado. |
LINEERR_NODRIVER |
O driver não foi encontrado. |
LINEERR_NOMEM |
É insuficiente de memória disponível para esta operação. |
LINEERR_OPERATIONFAILED |
A operação falhou. |
LINEERR_OPERATIONUNAVAIL |
A operação é não disponível. |
LINEERR_REINIT |
O aplicativo tentado inicializar TAPI duas vezes. |
LINEERR_RESOURCEUNAVAIL |
A linha não pode ser aberta devido a um dinâmico recurso overcommitment |
LINEERR_STRUCTURETOOSMALL |
A estrutura é muito pequena. |
LINEERR_UNINITIALIZED |
Um parâmetro é não inicializado. |
Remarks
Se LINEERR_ALLOCATED for retornado, a linha não é possível abrir devido a uma condição persistente, such as de um porta serial que está sendo aberto exclusivamente por outro processo. Se LINEERR_RESOURCEUNAVAIL for retornado, a linha não é possível abrir devido a um dinâmico recurso overcommitment, as in processador DSP ciclos ou memória. Este overcommitment pode ser passageira, causado pela monitoração do modo de mídia ou tons, e alterações nessas atividades por outros aplicativos podem torná-lo possíveis para reabrir a linha em um curto período de tempo.
Abrir uma linha sempre habilita o aplicativo para fazer chamadas em qualquer endereço disponível na linha. A capacidade do aplicativo para lidar com de entrada chamadas ou ser o destino de chamar handoffs na linha é determinado pelo dwMediaModes parâmetro. O lineOpen função registra o aplicativo como tendo um interesse na monitoração chamadas ou posse de recebimento de chamadas que são um dos modos de mídia especificado. Se o aplicativo apenas deseja chamadas monitor e, em seguida, ele pode especificar LINECALLPRIVILEGE_MONITOR. Se o aplicativo apenas desejar tornar de saída chamadas, ele pode especificar LINECALLPRIVILEGE_NONE. Se o aplicativo está disposto a controle não classificado chamadas (chamadas de modo de mídia desconhecido), ele pode especificar LINECALLPRIVILEGE_OWNER e LINEMEDIAMODE_UNKNOWN. Caso contrário, o aplicativo deve especificar o modo de mídia ela está interessada em manipulação.
Os modos de mídia especificados com lineOpen adicionar para o valor usar como padrão para modo de mídia do provedor de monitoração para de entrada inicial determinação tipo chamar. Se um dispositivo de linha é aberto com privilégio proprietário e um modo de mídia extensão não está registrado, em seguida, o erro LINEERR_INVALMEDIAMODE será retornado.
Um aplicativo que abriu com êxito um dispositivo de linha pode iniciar chamadas usando o lineMakeCall função.
Um único aplicativo pode especificar múltiplo sinalizadores simultaneamente para identificador múltiplo modos de mídia. Conflito pode ocorrer se múltiplo aplicativos aberto o mesmo dispositivo de linha para o mesmo modo de mídia. Esses conflitos são resolvidos por uma esquema prioridade na qual o usuário atribui relativo prioridades para os aplicativos. Somente o aplicativo prioridade mais alto para um modo de mídia especificado nunca receberão apropriar (não solicitada) de um chamar de que modo de mídia. A propriedade pode ser recebida quando uma de entrada chamar primeiro chega ou quando um chamar é entregue fora.
Um aplicativo que voz automatizada alças também deve selecionar o interativo voz aberto modo e ser atribuída a prioridade mais baixa para interativo voz. O motivo disso é que relatório provedores serviço todos voz modos de mídia como interativo voz. Se determinação modo de mídia não é executada, o aplicativo para o tipo de mídia desconhecido, e não interativo voz aplicativo abriu o dispositivo de linha, de voz chamadas seriam Não é possível acessar o aplicativo de voz automatizada e deve ser descartadas.
O mesmo aplicativo, ou instalações diferentes do aplicativo a mesma, poderá aberto a mesma linha múltiplo vezes com os parâmetros mesmos ou diferentes.
Quando um aplicativo for aberto um dispositivo de linha ele deve especificar a versão TAPI negociado, qual é obtida com um chamar para o lineNegotiateAPIVersion função. Numeração versão permite a mixagem e compatível de aplicativo diferentes versões com diferentes versões TAPI.
Requirements
Header | tapi.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
lineGetID
lineInitialize
lineMakeCall
lineNegotiateAPIVersion
lineShutdown
LINECALLPARAMS