Freigeben über


Schritt 4. Erstellen der Eigenschaftenseite

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

An diesem Punkt unterstützt der Filter alles, was er für eine Eigenschaftenseite benötigt. Der nächste Schritt besteht darin, die Eigenschaftenseite selbst zu implementieren. Leiten Sie zunächst eine neue Klasse von CBasePropertyPage ab. Das folgende Beispiel zeigt einen Teil der Deklaration, einschließlich einiger privater Membervariablen, die später im Beispiel verwendet werden:

class CGrayProp : public CBasePropertyPage
{
private:
    ISaturation *m_pGray;    // Pointer to the filter's custom interface.
    long        m_lVal       // Store the old value, so we can revert.
    long        m_lNewVal;   // New value.
public:
    /* ... */
};

Erstellen Sie als Nächstes eine Dialogressource im Ressourcen-Editor zusammen mit einer Zeichenfolgenressource für den Dialogtitel. Die Zeichenfolge wird auf der Registerkarte für die Eigenschaftenseite angezeigt. Die beiden Ressourcen-IDs sind Argumente für den CBasePropertyPage-Konstruktor :

CGrayProp::CGrayProp(IUnknown *pUnk) : 
  CBasePropertyPage(NAME("GrayProp"), pUnk, IDD_PROPPAGE, IDS_PROPPAGE_TITLE),
  m_pGray(0)
{ }

Die folgende Abbildung zeigt die Dialogressource für die Beispieleigenschaftenseite.

Eigenschaftenseitendialogfeld

Jetzt können Sie die Eigenschaftenseite implementieren. Hier sind die Methoden in CBasePropertyPage , die überschrieben werden sollen:

  • OnConnect wird aufgerufen, wenn der Client die Eigenschaftenseite erstellt. Er legt den IUnknown-Zeiger auf den Filter fest.
  • OnActivate wird aufgerufen, wenn das Dialogfeld erstellt wird.
  • OnReceiveMessage wird aufgerufen, wenn das Dialogfeld eine Fenstermeldung empfängt.
  • OnApplyChanges wird aufgerufen, wenn der Benutzer die Eigenschaftsänderungen committet, indem er auf die Schaltfläche OK oder Anwenden klickt.
  • OnDisconnect wird aufgerufen, wenn der Benutzer das Eigenschaftenblatt verwirf.

Im weiteren Verlauf dieses Tutorials werden die einzelnen Methoden beschrieben.

Weiter: Schritt 5. Speichern Sie einen Zeiger auf den Filter.

Erstellen einer Filtereigenschaftenseite