Metodo CSourceStream.GetMediaType (Source.h) - Parametri iPosition e pMediaType

[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 metodo GetMediaType recupera un tipo di supporto preferito.

Sintassi

virtual HRESULT GetMediaType(
   int        iPosition,
   CMediaType *pMediaType
);

Parametri

iPosition

Valore di indice in base zero.

pMediaType

Puntatore a un oggetto CMediaType che riceve il tipo di supporto.

Valore restituito

Restituisce uno dei valori HRESULT illustrati nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
VFW_S_NO_MORE_ITEMS
Indice non compreso nell'intervallo.
E_INVALIDARG
Indice minore di zero.
E_UNEXPECTED
Errore imprevisto.

Commenti

Esistono due versioni di questo metodo. Una versione esegue l'override del metodo CBasePin::GetMediaType e accetta un valore di indice come parametro. L'altra versione è progettata per recuperare un singolo tipo di supporto, pertanto manca il parametro index.

Il metodo a parametro singolo restituisce E_UNEXPECTED. Il metodo a due parametri verifica che il parametro iPosition sia zero e quindi chiami la versione a parametro singolo. A seconda del numero di tipi multimediali supportati dal pin, è necessario eseguire l'override di uno di questi metodi:

  • Se il pin supporta esattamente un tipo di supporto, eseguire l'override della versione a parametro singolo. Compilare il tipo di supporto supportato dal pin.
  • Se il pin supporta più di un tipo di supporto, eseguire l'override della versione a due parametri. Eseguire anche l'override del metodo CSourceStream::CheckMediaType .

Requisiti

Requisito Valore
Intestazione Source.h (include Streams.h)
Libreria Strmbase.lib (build retail); Strmbasd.lib (build di debug)

Vedi anche

Classe CSourceStream