Metodo IFilterMapper2::EnumMatchingFilters (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il EnumMatchingFilters metodo enumera i filtri registrati che soddisfano i requisiti specificati.

Sintassi

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
);

Parametri

[out] ppEnum

Riceve un puntatore all'interfaccia IEnumMoniker . Usare questo puntatore all'interfaccia per recuperare i moniker di filtro dall'enumerazione . Il chiamante deve rilasciare l'interfaccia.

[in] dwFlags

Riservato, deve essere zero.

[in] bExactMatch

Valore booleano che indica se è necessaria una corrispondenza esatta. Per ulteriori informazioni, vedere la sezione Osservazioni.

[in] dwMerit

Valore minimo di merito. L'enumerazione esclude i filtri con un valore di merito minore. Per un elenco dei valori di merito, vedere Merit. Se dwMerit è maggiore di MERIT_DO_NOT_USE, l'enumerazione esclude anche i filtri la cui categoria ha un merito minore o uguale a MERIT_DO_NOT_USE. Vedere Categorie di filtri.

[in] bInputNeeded

Valore booleano che indica se il filtro deve avere un pin di input. Se il valore è TRUE, il filtro deve avere almeno un pin di input.

[in] cInputTypes

Numero di tipi di supporti di input specificati in pInputTypes.

[in] pInputTypes

Puntatore a una matrice di coppie GUID che specificano tipi e sottotipi principali, in modo che i pin di input corrispondano. La dimensione della matrice è 2 * cInputTypes. La matrice può essere NULL. I singoli membri della matrice possono essere GUID_NULL, che corrispondono a qualsiasi tipo. Vedere Tipi di supporti.

[in] pMedIn

Puntatore a una struttura REGPINMEDIUM che specifica il supporto per i pin di input. Impostare su NULL se non necessario.

[in] pPinCategoryIn

Puntatore a un GUID che specifica la categoria del pin di input. Vedere Set di proprietà Pin. Impostare su NULL se non necessario.

[in] bRender

Valore booleano che specifica se il filtro deve eseguire il rendering dell'input. Se TRUE, il filtro specificato deve eseguire il rendering dell'input. Questo valore corrisponde al campo bRendered nella struttura REGFILTERPINS , che viene usato per registrare informazioni sui pin del filtro.

[in] bOutputNeeded

Valore booleano che specifica se il filtro deve avere un pin di output. Se TRUE, il filtro deve avere almeno un pin di output.

[in] cOutputTypes

Numero di tipi di supporti di input specificati in pOutputTypes.

[in] pOutputTypes

Puntatore a una matrice di coppie GUID che specificano tipi e sottotipi principali, in modo che i pin di output corrispondano. La dimensione della matrice è 2 * cOutputTypes. La matrice può essere NULL. I singoli membri della matrice possono essere GUID_NULL, che corrispondono a qualsiasi tipo.

[in] pMedOut

Puntatore a una struttura REGPINMEDIUM che specifica il supporto per i pin di output. Impostare su NULL se non necessario.

[in] pPinCategoryOut

Puntatore a un GUID che specifica la categoria del pin di output. Vedere Set di proprietà Pin. Impostare su NULL se non necessario.

Valore restituito

Restituisce un valore HRESULT . I valori possibili includono quelli illustrati nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione riuscita
E_FAIL
Operazioni non riuscite
E_OUTOFMEMORY
Memoria insufficiente
E_POINTER
Argomento puntatore NULL

Commenti

Per trovare filtri i cui pin di input corrispondono a un determinato set di tipi multimediali, dichiarare una matrice con GUID di tipo principale e GUID di sottotipo ordinati in coppie. Passare l'indirizzo della matrice nel parametro pInputTypes e impostare il parametro cInputTypes uguale al numero di coppie (ovvero metà delle dimensioni della matrice):

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

DWORD cInTypes = 1;

Per i pin di output, passare una matrice simile nel parametro pOutputTypes e specificare il numero di coppie GUID nel parametro cOutputTypes .

Se il valore del parametro bExactMatch è TRUE, questo metodo cerca filtri che corrispondono esattamente ai valori specificati per il tipo di supporto, la categoria di pin e il supporto pin. Se il valore è FALSE, i filtri che registrano un valore NULL per uno di questi elementi vengono considerati una corrispondenza. In effetti, un valore NULL nel Registro di sistema funge da carattere jolly.

Se si specifica NULL per il tipo di supporto, la categoria di pin o il supporto pin, qualsiasi filtro viene considerato una corrispondenza per tale parametro.

Se un pin non ha registrato alcun tipo di supporto, questo metodo non lo considererà una corrispondenza per il tipo di supporto.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici di errore e di esito positivo

Interfaccia IFilterMapper2