Componenti di base del modello di progetto
Le tabelle seguenti si espandono sul modello di progetto. Le tabelle presentano brevi descrizioni delle interfacce e dei servizi identificati nel modello e le interfacce e i servizi associati a oggetti specifici. Inoltre, le tabelle illustrano in dettaglio altre interfacce facoltative nella creazione e nella manutenzione del progetto a seconda dei requisiti del tipo di progetto specifico.
Per altre informazioni, vedere Supporto degli strumenti di esplorazione dei simboli.
Oggetto package
Interfaccia | Commenti |
---|---|
IVsPackage | Inizializza un VSPackage nell'IDE e ne rende disponibili i servizi per l'IDE. |
Oggetto Project Factory
Interfaccia | Commenti |
---|---|
IVsProjectFactory | Gestisce la creazione di nuovi progetti e l'apertura di progetti esistenti. |
Oggetti progetto
Interfacce | Commenti |
---|---|
IVsProject3 | Gestisce l'aggiunta e la rimozione degli elementi del progetto, apre gli editor e mantiene il mapping tra ogni moniker del documento e .VSITEMID Eredita da IVsProject e IVsProject2 . |
IVsHierarchy | Gestisce le proprietà di spostamento e visualizzazione e fornisce eventi. |
IVsUIHierarchy | Abilita l'esecuzione dei comandi simile a quella di IOleCommandTarget per i comandi, ad esempio Taglia e Rinomina, che si applicano solo quando lo stato attivo si trova in Esplora soluzioni. |
IOleCommandTarget | Funge da interfaccia di destinazione del comando principale per una gerarchia di progetto. Si tratta dell'interfaccia standard per l'esecuzione di query sugli oggetti per lo stato o lo stato del comando e l'esecuzione di comandi. Disponibile quando non si è attivati nella finestra Progetto. |
IPersistFileFormat | Coordina la persistenza dello stato del progetto. In genere, lo stato del progetto viene archiviato come file di progetto, ma può essere adattato ai sistemi di archiviazione che non sono basati su file. |
IVsPersistHierarchyItem2 | Consente al progetto di gestire tutti gli aspetti della persistenza per i relativi elementi di progetto, come file su disco o oggetti in altri sistemi di archiviazione. L'interfaccia IVsPersistHierarchyItem2 viene usata per gli elementi che non implementano l'interfaccia IVsPersistDocData2 . |
IVsSccProject2 | Coordina le interazioni con il controllo del codice sorgente. |
IVsProjectFlavorCfgProvider | Consente ai progetti di gestire le informazioni di configurazione. |
IVsCfgProvider2 | Gestisce gli oggetti di configurazione del progetto, ad esempio configurazioni di debug/rilascio. Le operazioni di compilazione, distribuzione e debug sono coordinate tramite oggetti di configurazione del progetto. |
IVsHierarchyDeleteHandler | Implementata dalle gerarchie per controllare le opzioni di eliminazione (distruttive) o rimozione (non distruttive) per gli elementi della gerarchia. Chiamare l'interfaccia di query sull'interfaccia IVsHierarchyDeleteHandler dall'interfaccia IVsHierarchy . |
IVsGetCfgProvider | Fornisce l'opzione di implementazione di disporre dell'oggetto che supporta l'interfaccia IVsCfgProvider2 su un'identità COM diversa rispetto all'oggetto progetto che implementa l'interfaccia IVsHierarchy . |
IVsProjectStartupServices | Interfaccia facoltativa implementata per rendere il progetto estendibile da altri sviluppatori. L'interfaccia IVsProjectStartupServices consente a un VSPackage di terze parti di registrare un GUID persistente nel file di progetto in modo che ogni volta che il progetto viene caricato, si carica il GUID del servizio di terze parti nel file di progetto e si chiama QueryService tale GUID. |
IVsUIHierWinClipboardHelperEvents | Implementata dalle gerarchie di origine in una UIHierarchy finestra per coordinare le operazioni degli Appunti, ad esempio taglia, copia e incolla. Usare l'interfaccia AdviseClipboardHelperEvents per registrare gli eventi degli Appunti. |
IVsHierarchyDropDataSource2 | Fornisce informazioni su un elemento trascinato rispetto all'origine dati durante un'operazione di trascinamento della selezione in una finestra della gerarchia dell'interfaccia utente. Chiamato dall'interfaccia IVsHierarchy . |
IVsHierarchyDropDataTarget | Fornisce informazioni su un elemento trascinato rispetto alla destinazione di rilascio durante un'operazione di trascinamento della selezione in una finestra della gerarchia dell'interfaccia utente. Chiamato dall'interfaccia IVsHierarchy . |
oggetto di configurazione
Interfacce | Commenti |
---|---|
IVsCfg | Fornisce informazioni su una configurazione. |
IVsProjectCfg2 | Consente ai progetti di gestire le informazioni di configurazione. |
IVsDebuggableProjectCfg | Consente l'esecuzione di un progetto sotto il controllo del debugger. |
IVsDeployableProjectCfg | Implementata dai progetti di distribuzione che eseguono operazioni di distribuzione per altri progetti. |
Oggetto Configuration Builder
Interfacce | Commenti |
---|---|
IVsBuildableProjectCfg | Gestisce l'operazione di compilazione di una configurazione del progetto. |
Oggetti Project aggiuntivi
Interfacce | Commenti |
---|---|
IDispatch ISpecifyPropertyPages |
Visualizza le proprietà dell'elemento nella finestra Proprietà . |
IVsOutput2 IVsEnumOutputs |
Visualizza gli output per la distribuzione. |
La tabella seguente presenta brevi descrizioni dei servizi identificati nel modello di progetto.
Servizi
Service | Commenti |
---|---|
SVsRegisterProjectTypes | Usato dai pacchetti VSPackage che implementano i tipi di progetto per registrare che la factory del progetto esiste con l'IDE. Il pacchetto VSPackage deve chiamare QueryService questo servizio e registrare la factory del progetto quando IVsPackage::SetSite viene chiamato il metodo . Se il SetSite metodo non viene chiamato, il progetto non viene creato un'istanza. |
SVsSolution | Fornisce l'accesso alla nozione interna e predefinita dell'IDE della soluzione corrente, ad esempio la possibilità di enumerare i progetti, creare nuovi progetti, prendere nota delle modifiche del progetto e così via. |
SVsSccManager | Chiamato da progetti che desiderano partecipare al controllo del codice sorgente. |
SVsRunningDocumentTable | Gestisce una tabella di documenti aperti per determinare se uno o più elementi del progetto sono già aperti. |
SVsUIShellOpenDocument | Contiene le interfacce e i metodi chiamati per aprire effettivamente un elemento di progetto usando l'editor standard o un editor specifico. |
SVsTrackProjectDocuments | Deve essere chiamato da tutti i progetti quando aggiungono, rimuovono o rinominano gli elementi. |
SVsFileChangeEx | Gestisce le modifiche apportate a un file o a una directory e invia una notifica ai client quando i file selezionati sono stati modificati su disco. |
SVsQueryEditQuerySave | Deve essere chiamato da tutti i progetti e gli editor prima di sporcarli o salvarli. |
SVsSolutionBuildManager | Gestisce l'ordine delle operazioni di compilazione e distribuzione per le configurazioni del progetto. |
SVsShellDebugger | Fornisce l'accesso ai servizi debugger di basso livello usati per la maggior parte dei controlli di debug. |
SVsShellMonitorSelection | Abilita l'accesso ai pacchetti VSPackage alle informazioni sulle selezioni correnti e abilita la comunicazione con la finestra Proprietà . |
SVsUIShell | Fornisce funzionalità di base dell'IDE correlate all'interfaccia utente, ad esempio la possibilità di creare ed enumerare finestre degli strumenti o finestre di documenti o di segnalare un errore all'utente. |
SVsStatusbar | Fornisce l'accesso alla barra di stato dell'IDE. |
IVsExtensibility3 | Usato per implementare il modello di automazione. Nel modello di progetto verrà restituito un oggetto proprietà che consente di creare un'istanza di tale oggetto. |
SVsUIHierWinClipboardHelper | Utilizzato per implementare gli eventi degli Appunti nell'oggetto progetto nella gerarchia. SVsUIHierWinClipboardHelper consente di gestire correttamente le operazioni taglia, copia e incolla. |