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
Wenn der Benutzer ein geschachteltes Projekt oder in einem geschachtelten Projekt auswählen:
- Die IDE ruft die QueryStatus-Methode veranschaulicht.
- oder -
- 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.
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.