Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEngineoraz Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w ramach Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Jeśli piszesz aplikację DirectShow w języku C (a nie C++), musisz użyć wskaźnika vtable do wywoływania metod. Poniższy przykład ilustruje sposób wywoływania metody IUnknown::QueryInterface z aplikacji napisanej w języku C:
pGraph->lpVtbl->QueryInterface(pGraph, &IID_IMediaEvent, (void **)&pEvent);
Poniżej przedstawiono równoważne wywołanie w języku C++:
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
W języku C interfejsy COM są definiowane jako struktury. Element członkowski lpVtbl jest wskaźnikiem do tabeli metod interfejsu (vtable). Wszystkie metody przyjmują dodatkowy parametr, który jest wskaźnikiem do interfejsu.
Tematy pokrewne