Partilhar via


Controlando gráficos de filtro usando C

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Se você estiver escrevendo um aplicativo DirectShow em C (em vez de C++), deverá usar um ponteiro vtable para chamar métodos. O exemplo a seguir ilustra como chamar o IUnknown::QueryInterface método de um aplicativo escrito em C:

pGraph->lpVtbl->QueryInterface(pGraph, &IID_IMediaEvent, (void **)&pEvent);

A seguir mostra a chamada equivalente em C++:

pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);

Em C, as interfaces COM são definidas como estruturas. O membro lpVtbl é um ponteiro para uma tabela de métodos de uma interface (o vtable). Todos os métodos usam um parâmetro adicional, que é um ponteiro para a interface.

Apêndices