Método IFilterMapper2::EnumMatchingFilters (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na 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 Captura de Áudio/Vídeo no 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 EnumMatchingFilters método enumera filtros registrados que atendem aos requisitos especificados.

Sintaxe

HRESULT EnumMatchingFilters(
  [out] IEnumMoniker       **ppEnum,
  [in]  DWORD              dwFlags,
  [in]  BOOL               bExactMatch,
  [in]  DWORD              dwMerit,
  [in]  BOOL               bInputNeeded,
  [in]  DWORD              cInputTypes,
  [in]  const GUID         *pInputTypes,
  [in]  const REGPINMEDIUM *pMedIn,
  [in]  const CLSID        *pPinCategoryIn,
  [in]  BOOL               bRender,
  [in]  BOOL               bOutputNeeded,
  [in]  DWORD              cOutputTypes,
  [in]  const GUID         *pOutputTypes,
  [in]  const REGPINMEDIUM *pMedOut,
  [in]  const CLSID        *pPinCategoryOut
);

Parâmetros

[out] ppEnum

Recebe um ponteiro para a interface IEnumMoniker . Use esse ponteiro de interface para recuperar monikers de filtro da enumeração. O chamador deve liberar a interface.

[in] dwFlags

Reservado, precisa ser zero.

[in] bExactMatch

Valor booliano que indica se uma correspondência exata é necessária. Confira Comentários para obter mais informações.

[in] dwMerit

Valor mínimo de mérito. A enumeração exclui filtros com um valor de mérito menor. Para obter uma lista de valores de mérito, confira Mérito. Se dwMerit for maior que MERIT_DO_NOT_USE, a enumeração também excluirá filtros cuja categoria tem um mérito menor ou igual a MERIT_DO_NOT_USE. (Consulte Categorias de Filtro.)

[in] bInputNeeded

Valor booliano que indica se o filtro deve ter um pino de entrada. Se o valor for TRUE, o filtro deverá ter pelo menos um pino de entrada.

[in] cInputTypes

Número de tipos de mídia de entrada especificados em pInputTypes.

[in] pInputTypes

Ponteiro para uma matriz de pares GUID que especificam tipos principais e subtipos para que os pinos de entrada correspondam. O tamanho da matriz é 2 * cInputTypes. A matriz pode ser NULL. Membros de matriz individuais podem ser GUID_NULL, que corresponde a qualquer tipo. (Consulte Tipos de mídia.)

[in] pMedIn

Ponteiro para uma estrutura REGPINMEDIUM que especifica o meio para os pinos de entrada. Defina como NULL se não for necessário.

[in] pPinCategoryIn

Ponteiro para um GUID que especifica a categoria de pino de entrada. (Consulte Fixar Conjunto de Propriedades.) Defina como NULL se não for necessário.

[in] bRender

Valor booliano que especifica se o filtro deve renderizar sua entrada. Se TRUE, o filtro especificado deverá renderizar sua entrada. (Esse valor corresponde ao campo bRendered na estrutura REGFILTERPINS , que é usada para registrar informações sobre os pinos do filtro.)

[in] bOutputNeeded

Valor booliano que especifica se o filtro deve ter um pino de saída. Se TRUE, o filtro deverá ter pelo menos um pino de saída.

[in] cOutputTypes

Número de tipos de mídia de entrada especificados em pOutputTypes.

[in] pOutputTypes

Ponteiro para uma matriz de pares GUID que especificam tipos principais e subtipos para que os pinos de saída correspondam. O tamanho da matriz é 2 * cOutputTypes. A matriz pode ser NULL. Membros de matriz individuais podem ser GUID_NULL, que corresponde a qualquer tipo.

[in] pMedOut

Ponteiro para uma estrutura REGPINMEDIUM especificando o meio para os pinos de saída. Defina como NULL se não for necessário.

[in] pPinCategoryOut

Ponteiro para um GUID que especifica a categoria de pino de saída. (Consulte Fixar Conjunto de Propriedades.) Defina como NULL se não for necessário.

Retornar valor

Retorna um valor HRESULT . Os valores possíveis incluem os mostrados na tabela a seguir.

Código de retorno Descrição
S_OK
Êxito
E_FAIL
Falha
E_OUTOFMEMORY
Memória insuficiente
E_POINTER
Argumento de ponteiro NULL

Comentários

Para localizar filtros cujos pinos de entrada correspondem a um determinado conjunto de tipos de mídia, declare uma matriz com GUIDs de tipo principal e GUIDs de subtipo ordenados em pares. Passe o endereço da matriz no parâmetro pInputTypes e defina o parâmetro cInputTypes igual ao número de pares (ou seja, metade do tamanho da matriz):

C++
MATRIZ GUIDInTypes[2]; arrayInTypes[0] = MEDIATYPE_Video; arrayInTypes[1] = GUID_NULL;

DWORD cInTypes = 1;

Para pinos de saída, passe uma matriz semelhante no parâmetro pOutputTypes e especifique o número de pares GUID no parâmetro cOutputTypes .

Se o valor do parâmetro bExactMatch for TRUE, esse método procurará filtros que correspondam exatamente aos valores especificados para tipo de mídia, categoria de pino e pino médio. Se o valor for FALSE, os filtros que registram um valor nulo para qualquer um desses itens serão considerados uma correspondência. (Na verdade, um valor NULL no registro atua como um curinga.)

Se você especificar NULL para tipo de mídia, categoria de pino ou pino médio, qualquer filtro será considerado uma correspondência para esse parâmetro.

Se um pin não registrou nenhum tipo de mídia, esse método não o considerará uma correspondência para o tipo de mídia.

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

IFilterMapper2 Interface