Compartir a través de


Método IFilterGraph2::AddSourceFilterForMoniker (strmif.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El AddSourceFilterForMoniker método crea un filtro de origen a partir de un puntero IMoniker y agrega el filtro al gráfico. Por ejemplo, puede obtener un moniker para un dispositivo del sistema, como un dispositivo de captura de vídeo, y agregar un filtro de captura de vídeo para ese dispositivo. (Para obtener más información sobre los monikers de dispositivos del sistema, consulta la interfaz ICreateDevEnum ).

Sintaxis

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

Parámetros

[in] pMoniker

Puntero a la interfaz IMoniker .

[in] pCtx

Puntero a una interfaz de contexto de enlace IBindCtx .

[in] lpcwstrFilterName

Nombre del filtro.

[out] ppFilter

Recibe un puntero al puntero IBaseFilter del filtro de origen. El autor de la llamada debe liberar la interfaz .

Valor devuelto

Devuelve y el valor HRESULT . Estos son algunos de los valores posibles.

Código devuelto Descripción
S_OK
Correcto.
VFW_S_DUPLICATE_NAME
Éxito; pero el nombre especificado era un duplicado, por lo que Filter Graph Manager modificó el nombre.
E_FAIL
Error.
E_OUTOFMEMORY
Memoria insuficiente.
VFW_E_DUPLICATE_NAME
No se pudo agregar un filtro con un nombre duplicado.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
No se pudo cargar el filtro de origen de .
VFW_E_UNKNOWN_FILE_TYPE
No se reconoce el tipo de medio de este archivo.

Observaciones

El Administrador de gráficos de filtros contiene un recuento de referencias en el filtro hasta que se quita el filtro del gráfico o se libera el Administrador de gráficos de filtros.

Ejemplos

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

Use IEnumMonikers para obtener el puntero IMoniker. (No se muestra).

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

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado strmif.h (incluye Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IFilterGraph2 (Interfaz)