Implementazione della gestione di comando per i progetti annidati
L'ide possibile passare i controlli che vengono passati tra IVsUIHierarchy e le interfacce di IOleCommandTarget ai progetti annidati, o i progetti padre possono filtrare o eseguire l'override dei controlli.
Nota
Solo i controlli normalmente gestiti dal progetto padre possono essere filtrati.I controlli come Build e Deploy che vengono gestiti dall'IDE non possono essere filtrati.
Nei passaggi seguenti viene descritto il processo per implementare la gestione del comando.
Procedure
Per applicare gestione di comando
Quando l'utente seleziona un progetto annidato o un nodo in un annidato progetti:
- The IDE calls the QueryStatus method.
—oppure—
- Se il comando ha avuto origine in una finestra gerarchia, quale un comando in Esplora soluzioni il menu di scelta rapida, l'ide chiama il metodo di QueryStatusCommand nell'elemento padre del progetto.
Il progetto padre possibile esaminare i parametri da passare a QueryStatus, come pguidCmdGroup e prgCmds, per determinare se il progetto padre necessario filtrare i controlli. Se il progetto padre viene implementato filtrare i controlli, deve impostare:
prgCmds[0].cmdf = OLECMDF_SUPPORTED; // make sure it is disabled prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;
Quindi il progetto padre deve restituire S_OK.
Se il progetto padre non filtra il comando, deve restituire solo S_OK. In questo caso, l'ide automaticamente illustrato il comando al progetto figlio.
Il progetto padre non deve soddisfare il comando al progetto figlio. L'ide esegue questa attività.