Control de gráficos de filtros mediante C
[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.
Si está escribiendo una aplicación directShow en C (en lugar de C++), debe usar un puntero de tabla virtual para llamar a métodos. En el ejemplo siguiente se muestra cómo llamar al método IUnknown::QueryInterface desde una aplicación escrita en C:
pGraph->lpVtbl->QueryInterface(pGraph, &IID_IMediaEvent, (void **)&pEvent);
A continuación se muestra la llamada equivalente en C++:
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
En C, las interfaces COM se definen como estructuras. El miembro lpVtbl es un puntero a una tabla de métodos de interfaz (vtable). Todos los métodos toman un parámetro adicional, que es un puntero a la interfaz.
Temas relacionados