Freigeben über


Steuern von Filterdiagrammen mit C

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Wenn Sie eine DirectShow-Anwendung in C (anstelle von C++) schreiben, müssen Sie einen vtable-Zeiger verwenden, um Methoden aufzurufen. Im folgenden Beispiel wird veranschaulicht, wie die IUnknown::QueryInterface-Methode aus einer in C geschriebenen Anwendung aufgerufen wird:

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

Im Folgenden wird der entsprechende Aufruf in C++ veranschaulicht:

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

In C werden COM-Schnittstellen als Strukturen definiert. Das lpVtbl-Element ist ein Zeiger auf eine Tabelle von Schnittstellenmethoden (die vtable). Alle Methoden verwenden einen zusätzlichen Parameter, bei dem es sich um einen Zeiger auf die Schnittstelle handelt.

Anhänge