Proprietà e metodi estesi dai sottotipi di progetto
Un sottotipo di progetto ha molta potenza per influenzare il comportamento del progetto perché viene costruito come aggregatore di un progetto di base. Questa sezione riepiloga alcune delle funzionalità che possono essere migliorate o modificate dai sottotipi di progetto.
Funzionalità ottenute dall'aggregazione
La tabella seguente riepiloga molti dei metodi che l'aggregazione consente ai sottotipi di progetto di eseguire l'override nei progetti di base.
Metodi sottoposti a override dall'aggregazione | Sottotipo progetto |
---|---|
Da IVsHierarchy: GetProperty SetProperty GetGuidProperty SetGuidProperty |
Consente a un sottotipo di progetto di - Modificare didascalia e l'icona del nodo del progetto. - Eseguire completamente l'override dell'oggetto progetto Browse .- Controllare se è possibile rinominare il progetto. - Controllare l'ordinamento. - Controllare il contesto utente per la Guida dinamica. |
Da IVsProject: GetItemContext |
Consente a un sottotipo di progetto di controllare quali servizi contestuali vengono forniti ai progettisti e agli editor. |
Da IOleCommandTarget: QueryStatus Exec QueryStatusCommand ExecCommand |
Consente a un sottotipo di progetto di - Partecipare al routing dei comandi per i comandi del progetto. - Aggiungere, rimuovere o disabilitare entrambi i comandi di ambiente del progetto e Esplora soluzioni comandi attivi. |
IVsFilterAddProjectItemDlg2 | Consente al sottotipo di progetto di filtrare gli elementi visualizzati dall'utente nella finestra di dialogo Aggiungi nuovo elemento . |
IVsSingleFileGeneratorFactory | Consente a un sottotipo di progetto di - Determinare il generatore predefinito in base a un'estensione di file. - Eseguire il mapping di un nome generatore leggibile a un oggetto COM. |
Proprietà usate dai sottotipi di progetto
L'ambiente e il sistema di progetto di base possono utilizzare le proprietà delle __VSSPROPID enumerazioni __VSSPROPID2 descritte nella tabella seguente per consentire a un sottotipo di progetto di controllare varie funzionalità del sistema di progetto.
Proprietà VSHPROPID | Sottotipo progetto |
---|---|
AddItemTemplatesGuid |
Consente a un sottotipo di progetto di controllare il contenuto della finestra di dialogo Aggiungi elemento . Il sottotipo di progetto può fornire una nuova specifica delle directory modello, aggiungere nuovi tipi di elementi, rimuovere gli elementi esistenti e riorganizzare un subset degli elementi nella finestra di dialogo Aggiungi elemento del progetto di base. |
PropertyPagesCLSIDList |
Consente a un sottotipo di progetto di aggiungere o rimuovere pagine di proprietà indipendenti dalla configurazione. |
CfgPropertyPagesCLSIDList |
Consente a un sottotipo di progetto di aggiungere o rimuovere pagine di proprietà dipendenti dalla configurazione. |
ExtObjectCATID |
Consente a un sottotipo di progetto di fornire un oggetto Automation Extender per il progetto o gli oggetti elemento del progetto conoscendo il CATID Extender. Ad esempio, un sottotipo di progetto può fornire un oggetto personalizzato Project.Extender("<subtype>") . |
BrowseObjectCATID |
Consente a un sottotipo di progetto di fornire un extender di automazione per l'oggetto Browse conoscendo il CATID extender. Ad esempio, un sottotipo di progetto può aggiungere proprietà aggiuntive alla Properties raccolta. |
CfgBrowseObjectCATID |
Consente a un sottotipo di progetto di fornire un extender di automazione per l'oggetto di esplorazione della configurazione del progetto. Ad esempio, un sottotipo di progetto può aggiungere proprietà aggiuntive alla Properties raccolta. |
CfgExtObjectCATID |
Consente a un sottotipo di progetto di fornire un extender di automazione per l'oggetto di configurazione. |
DefaultPlatformName |
Consente a un sottotipo di progetto di determinare il nome della piattaforma per gli oggetti di configurazione del progetto. |
Il progetto di base fornisce un'implementazione predefinita delle proprietà precedenti. Il progetto di base ottiene questi valori chiamando QueryInterface
sul IVsHierarchy sottotipo di progetto più esterno, consentendo quindi al sottotipo di progetto di eseguire l'override dell'implementazione delle proprietà.