Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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.]
Gehen Sie wie folgt vor, um die neuen Schnittstellen des Filters für Clients verfügbar zu machen:
Fügen Sie das Makro DECLARE_IUNKNOWN in den Abschnitt öffentliche Deklaration Ihres Filters ein:
public: DECLARE_IUNKNOWN;Überschreiben Sie CUnknown::NonDelegatingQueryInterface , um nach den IIDs der beiden Schnittstellen zu suchen:
STDMETHODIMP CGrayFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv) { if (riid == IID_ISpecifyPropertyPages) { return GetInterface( static_cast<ISpecifyPropertyPages*>(this), ppv); } else if (riid == IID_ISaturation) { return GetInterface(static_cast<ISaturation*>(this), ppv); } else { // Call the parent class. return CBaseFilter::NonDelegatingQueryInterface(riid, ppv); // NOTE: This example assumes that the filter inherits directly // from CBaseFilter. If your filter inherits from another class, // call the NonDelegatingQueryInterface method of that class. } }
Nächster Schritt: Schritt 4. Erstellen Sie die Eigenschaftenseite.
Zugehörige Themen