Share via


Controllo dei grafici di filtro tramite C

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Se si scrive un'applicazione DirectShow in C (anziché C++), è necessario usare un puntatore vtable per chiamare i metodi. Nell'esempio seguente viene illustrato come chiamare il metodo IUnknown::QueryInterface da un'applicazione scritta in C:

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

Di seguito viene illustrata la chiamata equivalente in C++:

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

In C, le interfacce COM sono definite come strutture. Il membro lpVtbl è un puntatore a una tabella di metodi di interfaccia (la vtable). Tutti i metodi accettano un parametro aggiuntivo, ovvero un puntatore all'interfaccia.

Appendici