Interface IKsJackDescription (devicetopology.h)
A interface IKsJackDescription fornece informações sobre as tomadas ou conectores internos que fornecem uma conexão física entre um dispositivo em um adaptador de áudio e um dispositivo de ponto de extremidade externo ou interno (por exemplo, um microfone ou player de CD). O cliente obtém uma referência à interface IKsJackDescription de uma parte chamando o método IPart::Activate com refiid de parâmetro definido como REFIID IID_IKsJackDescription. A chamada para IPart::Activate só terá êxito se a parte der suporte à interface IKsJackDescription . Somente um objeto de parte que representa um conector com um tipo de conexão Physical_External ou Physical_Internal dará suporte a essa interface.
A maioria dos drivers de adaptador de áudio do Windows dá suporte ao WDM (Modelo de Driver do Windows) e usa propriedades de KS (streaming de kernel) para representar os parâmetros de descrição de hardware em conectores (conhecidos como pinos KS). A interface IKsJackDescription fornece acesso conveniente à propriedade KSPROPERTY_JACK_DESCRIPTION de um conector para um dispositivo de ponto de extremidade. Para obter mais informações sobre propriedades KS e pinos KS, consulte a documentação do DDK do Windows.
Herança
A interface IKsJackDescription herda da interface IUnknown . IKsJackDescription também tem estes tipos de membros:
Métodos
A interface IKsJackDescription tem esses métodos.
IKsJackDescription::GetJackCount O método GetJackCount obtém o número de tomadas necessárias para se conectar a um dispositivo de ponto de extremidade de áudio. |
IKsJackDescription::GetJackDescription O método GetJackDescription obtém uma descrição de uma tomada de áudio. |
Comentários
Se um dispositivo de ponto de extremidade de áudio der suporte à interface IKsJackDescription , o painel de controle multimídia do Windows, Mmsys.cpl, exibirá as informações de tomada. Para exibir as informações de tomada, siga estas etapas:
-
Para executar Mmsys.cpl, abra uma janela do Prompt de Comando e insira o seguinte comando:
mmsys.cplde controle
Como alternativa, você pode executar Mmsys.cpl clicando com o botão direito do mouse no ícone do alto-falante na área de notificação, que está localizada no lado direito da barra de tarefas e selecionando Dispositivos de Reprodução ou Dispositivos de Gravação.
- Depois que a janela Mmsys.cpl for aberta, selecione um dispositivo na lista de dispositivos de reprodução ou na lista de dispositivos de gravação e clique em Propriedades.
- Quando a janela de propriedades for aberta, clique em Geral. Se a página de propriedades selecionada exibir as informações de tomada do dispositivo, o dispositivo oferecerá suporte à interface IKsJackDescription . Se a página de propriedades exibir o texto "Nenhuma informação de tomada está disponível", o dispositivo não oferecerá suporte à interface .
//-----------------------------------------------------------
// Get the IKsJackDescription interface that describes the
// audio jack or jacks that the endpoint device plugs into.
//-----------------------------------------------------------
#define EXIT_ON_ERROR(hres) \
if (FAILED(hres)) { goto Exit; }
#define SAFE_RELEASE(punk) \
if ((punk) != NULL) \
{ (punk)->Release(); (punk) = NULL; }
HRESULT GetJackInfo(IMMDevice *pDevice,
IKsJackDescription **ppJackDesc)
{
HRESULT hr = S_OK;
IDeviceTopology *pDeviceTopology = NULL;
IConnector *pConnFrom = NULL;
IConnector *pConnTo = NULL;
IPart *pPart = NULL;
IKsJackDescription *pJackDesc = NULL;
if (NULL != ppJackDesc)
{
*ppJackDesc = NULL;
}
if (NULL == pDevice || NULL == ppJackDesc)
{
return E_POINTER;
}
// Get the endpoint device's IDeviceTopology interface.
hr = pDevice->Activate(__uuidof(IDeviceTopology), CLSCTX_ALL,
NULL, (void**)&pDeviceTopology);
EXIT_ON_ERROR(hr)
// The device topology for an endpoint device always
// contains just one connector (connector number 0).
hr = pDeviceTopology->GetConnector(0, &pConnFrom);
EXIT_ON_ERROR(hr)
// Step across the connection to the jack on the adapter.
hr = pConnFrom->GetConnectedTo(&pConnTo);
if (HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND) == hr)
{
// The adapter device is not currently active.
hr = E_NOINTERFACE;
}
EXIT_ON_ERROR(hr)
// Get the connector's IPart interface.
hr = pConnTo->QueryInterface(__uuidof(IPart), (void**)&pPart);
EXIT_ON_ERROR(hr)
// Activate the connector's IKsJackDescription interface.
hr = pPart->Activate(CLSCTX_INPROC_SERVER,
__uuidof(IKsJackDescription), (void**)&pJackDesc);
EXIT_ON_ERROR(hr)
*ppJackDesc = pJackDesc;
Exit:
SAFE_RELEASE(pDeviceTopology)
SAFE_RELEASE(pConnFrom)
SAFE_RELEASE(pConnTo)
SAFE_RELEASE(pPart)
return hr;
}
No exemplo de código anterior, a função GetJackInfo usa dois parâmetros. O parâmetro de entrada pDevice aponta para a interface IMMDevice de um dispositivo de ponto de extremidade. O parâmetro de saída ppJackDesc aponta para um valor de ponteiro no qual a função grava o endereço da interface IKsJackDescription correspondente, se a interface existir. Se a interface não existir, a função gravará NULL em *ppJackDesc e retornará o código de erro E_NOINTERFACE.
No exemplo de código anterior, a chamada para IMMDevice::Activate recupera a interface IDeviceTopology do dispositivo de ponto de extremidade. A topologia de dispositivo de um dispositivo de ponto de extremidade contém um único conector (número do conector 0) que se conecta ao dispositivo adaptador. No outro lado dessa conexão, o conector no dispositivo adaptador representa a tomada de áudio ou as tomadas às quais o dispositivo de ponto de extremidade se conecta. A chamada para o método IDeviceTopology::GetConnector recupera a interface IConnector do conector no dispositivo de ponto de extremidade e a chamada de método IConnector::GetConnectedTo recupera o conector correspondente no dispositivo adaptador. Por fim, a chamada do método IConnector::QueryInterface recupera a interface IPart do conector do dispositivo adaptador e a chamada do método IPart::Activate recupera a interface IKsJackDescription do conector, se existir.
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | devicetopology.h |