Share via


Metodo IFilterGraph2::AddSourceFilterForMoniker (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 AddSourceFilterForMoniker metodo crea un filtro di origine da un puntatore IMoniker e aggiunge il filtro al grafico. Ad esempio, è possibile ottenere un moniker per un dispositivo di sistema, ad esempio un dispositivo di acquisizione video, e aggiungere un filtro di acquisizione video per tale dispositivo. Per altre informazioni sui moniker del dispositivo di sistema, vedere l'interfaccia ICreateDevEnum .

Sintassi

HRESULT AddSourceFilterForMoniker(
  [in]  IMoniker    *pMoniker,
  [in]  IBindCtx    *pCtx,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Parametri

[in] pMoniker

Puntatore all'interfaccia IMoniker .

[in] pCtx

Puntatore a un'interfaccia del contesto di associazione IBindCtx .

[in] lpcwstrFilterName

Nome del filtro.

[out] ppFilter

Riceve un puntatore al puntatore IBaseFilter del filtro di origine. Il chiamante deve rilasciare l'interfaccia.

Valore restituito

Restituisce e valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
VFW_S_DUPLICATE_NAME
Successo; ma il nome specificato è stato duplicato, quindi Filter Graph Manager ha modificato il nome.
E_FAIL
Esito negativo.
E_OUTOFMEMORY
Memoria insufficiente.
VFW_E_DUPLICATE_NAME
Impossibile aggiungere un filtro con un nome duplicato.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Impossibile caricare il filtro di origine per .
VFW_E_UNKNOWN_FILE_TYPE
Il tipo di supporto di questo file non viene riconosciuto.

Commenti

Filter Graph Manager contiene un conteggio dei riferimenti per il filtro finché il filtro non viene rimosso dal grafico o viene rilasciato Filter Graph Manager.

Esempio

C++
IBaseFilter *pSource = NULL; IMoniker *pMoniker = NULL;

Usare IEnumMonikers per ottenere il puntatore IMoniker. (Non visualizzato).

// Create a bind context for working with the moniker. IBindCtx pContext=0; hr = CreateBindCtx(0, &pContext); if (SUCCEEDED(hr)) { // Query the Filter Graph Manager for IFilterGraph2. IFilterGraph2 pFG2 = NULL; hr = pGraph->QueryInterface(IID_IFilterGraph2, (void)&pFG2); if (SUCCEEDED(hr)) { // Create the source filter. hr = pFG2->AddSourceFilterForMoniker(pMoniker, pContext, L"Source", &pSource); pFG2->Release(); } pContext->Release(); } pMoniker->Release();

Requisiti

   
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 IFilterGraph2