Método IMediaSeeking::CheckCapabilities (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O método CheckCapabilities consulta se um fluxo especificou recursos de busca.

Sintaxe

HRESULT CheckCapabilities(
  [in, out] DWORD *pCapabilities
);

Parâmetros

[in, out] pCapabilities

Na entrada, um ponteiro para uma variável que contém um OR bit a bit de um ou mais atributos AM_SEEKING_SEEKING_CAPABILITIES . Quando o método retorna, o valor indica quais desses atributos estão disponíveis.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_FALSE
Alguns, mas nem todos os recursos em pCapabilities estão presentes.
S_OK
Todos os recursos em pCapabilities estão presentes.
E_FAIL
Não há funcionalidades em pCapabilities presentes.
E_POINTER
Argumento de ponteiro NULL.

Comentários

Se você estiver interessado apenas em alguns recursos específicos, chamar esse método é mais eficiente do que chamar IMediaSeeking::GetCapabilities, que verifica todos os recursos de busca do fluxo.

Para chamar esse método, declare uma variável DWORD e defina o valor como a combinação or bit a bit dos sinalizadores AM_SEEKING_SEEKING_CAPABILITIES que você deseja testar. Passe o endereço desse valor no parâmetro pCapabilities . Quando o método retorna, pCapabilities contém um subconjunto dos bits originais, indicando quais recursos estão presentes. O valor retornado indica se alguns, nenhum ou todos os recursos solicitados estão presentes.

O exemplo de código a seguir mostra como descobrir se o fluxo dá suporte à busca de encaminhamento, à busca de versões anteriores e à busca absoluta.

C++
Defina sinalizadores para os recursos que você deseja marcar.

DWORD dwCaps = AM_SEEKING_CanSeekAbsolute | AM_SEEKING_CanSeekForwards | AM_SEEKING_CanSeekBackwards;

HRESULT hr = pMediaSeeking-CheckCapabilities>(&dwCaps); if(FAILED(hr)) { // O fluxo não pode buscar. } caso contrário, se (hr == S_OK) {
// The stream can seek forward, backward, and to an absolute position. } else if (hr == S_FALSE) // The stream has some of the capabilities. { if (dwCaps & AM_SEEKING_CanSeekAbsolute) { // The stream can seek to an absolute position. } if (dwCaps & AM_SEEKING_CanSeekForwards) { // The stream can seek forward. } if (dwCaps & AM_SEEKING_CanSeekBackwards) { // The stream can seek backward. } }

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IMediaSeeking Interface