Freigeben über


Implementieren von Projekten für geschachtelte Befehls-Behandlung

Die IDE kann Befehle übergeben, die von IVsUIHierarchy und die IOleCommandTarget-Schnittstellen zu geschachtelten Projekten übergebenen Befehle können die Projekte oder Elemente filtern oder überschreiben.

Hinweis

Die ONLY-Befehle, die normalerweise durch das Projekt Elemente gefiltert werden können, behandelt werden.Befehle wie Build und Deploy , die von der IDE behandelt werden, können nicht gefiltert werden.

Die folgenden Schritte beschreiben den Prozess zum Implementieren eines Befehls Klassenbehandlung.

Arbeitsschritte

So implementieren Sie die Klassenbehandlung Befehls

  1. Wenn der Benutzer ein geschachteltes Projekt oder in einem geschachtelten Projekt auswählen:

    1. Die IDE ruft die QueryStatus-Methode veranschaulicht.

    - oder -

    1. Wenn der Befehl in einem Fenster Hierarchie, z. B. einen Kontextmenübefehl stammt, klicken Sie im Projektmappen-Explorer das ruft die IDE QueryStatusCommand-Methode auf dem übergeordneten Element des Projekts an.
  2. Das übergeordnete Projekt kann die QueryStatus, wie pguidCmdGroup und prgCmdszu übergebenden Parameter überprüfen, um zu bestimmen, ob das übergeordnete Projekt die Befehle filtern soll. Wenn das Projekt Elemente zu filtern, Befehle implementiert wird, sollte es fest:

    prgCmds[0].cmdf = OLECMDF_SUPPORTED;
    // make sure it is disabled
    prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;
    

    Anschließend sollte das übergeordnete Projekt S_OKzurückgeben.

    Wenn das Projekt nicht den Befehl Elemente filtert, muss er gerade S_OKzurückgeben. In diesem Fall führt die IDE automatisch den Befehl auf das untergeordnete Projekt weiter.

    Das übergeordnete Projekt muss mit dem Befehl nicht auf das untergeordnete Projekt weiterleiten. Die IDE führt diese Aufgabe aus.

Siehe auch

Referenz

IVsUIHierarchy

Konzepte

Schachtelungs-Projekte

Weitere Ressourcen

Befehle, Menüs und Symbolleisten