Condividi tramite


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à.

Vedi anche