Condividi tramite


Automazione per i pacchetti VSPackage

Esistono due modi principali per fornire l'automazione per i pacchetti VSPackage: implementando oggetti specifici di VSPackage e implementando oggetti di automazione standard. In genere, questi vengono usati insieme per estendere il modello di automazione dell'ambiente.

Oggetti specifici di VSPackage

Alcune posizioni all'interno del modello di automazione richiedono di fornire oggetti di automazione univoci per il pacchetto VSPackage. Ad esempio, i nuovi progetti richiedono oggetti distinti forniti solo dal pacchetto VSPackage. I nomi di questi oggetti vengono immessi nel Registro di sistema e ottenuti tramite chiamate all'oggetto ambiente DTE .

Gli oggetti specifici di VSPackage possono essere ottenuti anche quando un consumer di automazione usa l'oggetto fornito tramite la proprietà Object di un oggetto standard. Ad esempio, l'oggetto standard Window ha una Object proprietà, nota comunemente come Windows.Object proprietà . Quando i consumer chiamano su Window.Object una finestra implementata nel pacchetto VSPackage, si passa di nuovo un oggetto di automazione specifico della propria progettazione.

Progetti

I pacchetti VSPackage possono estendere il modello di automazione per i nuovi tipi di progetto tramite i propri oggetti specifici di VSPackage. Lo scopo principale di fornire nuovi oggetti di automazione per il pacchetto VSPackage consiste nel differenziare gli oggetti di progetto univoci da un VCProject oggetto o .VSProject2 Questa differenziazione è utile quando si vuole fornire un modo per eseguire l'iterazione del tipo di progetto a parte altri tipi di progetto, se vengono visualizzati affiancati in una soluzione. Per altre informazioni, vedere Esposizione di oggetti progetto.

Eventi

L'architettura degli eventi dell'ambiente offre un'altra posizione in cui aggiungere oggetti specifici di VSPackage. Creando ad esempio oggetti evento univoci, è possibile estendere il modello di evento dell'ambiente per i progetti. È possibile specificare eventi personalizzati quando un nuovo elemento viene aggiunto al proprio tipo di progetto. Per altre informazioni, vedere Esposizione di eventi.

Oggetti finestra

Windows può tornare all'ambiente quando viene chiamato un oggetto di automazione specifico di VSPackage. Si implementa un oggetto derivato da IVsExtensibleObjectIExtensibleObject o IDispatch che esegue il maniback delle proprietà, estendendo l'oggetto finestra in cui si trova. Ad esempio, è possibile usare questo approccio per fornire l'automazione per un controllo sito in una cornice di finestra. La semantica di questo oggetto e qualsiasi altro oggetto che potrebbe estendersi è la progettazione. Per altre informazioni, vedere Procedura: Fornire automazione per Windows.

Pagine opzioni nel menu Strumenti

È possibile creare pagine per estendere il modello di automazione Strumenti, Opzioni tramite l'implementazione di pagine e l'aggiunta di informazioni al Registro di sistema per creare opzioni personalizzate. Le pagine possono quindi essere chiamate tramite il modello a oggetti dell'ambiente come qualsiasi altra pagina di opzioni. Se la progettazione della funzionalità che si aggiunge all'ambiente tramite VSPackage richiede pagine di opzioni, è necessario aggiungere anche il supporto per l'automazione. Per altre informazioni, vedere Supporto di Automazione per le pagine delle opzioni.

Oggetti di automazione standard

Per estendere l'automazione per i progetti, si implementano anche oggetti di automazione standard (derivati da IDispatch) che si trovano accanto agli altri oggetti di progetto e implementano metodi e proprietà standard. Esempi di oggetti standard includono gli oggetti di progetto inseriti nella gerarchia della soluzione, ad Projectsesempio , ProjectProjectItem, e ProjectItems. Ogni nuovo tipo di progetto deve implementare questi oggetti (ed eventualmente altri a seconda della semantica del progetto).

In un certo senso, questi oggetti forniscono il vantaggio opposto degli oggetti di progetto specifici di VSPackage. Gli oggetti di automazione standard consentono di usare il progetto in modo generalizzato come qualsiasi altro progetto che supporta gli stessi oggetti. Di conseguenza, un componente aggiuntivo scritto su oggetti e ProjectItem generali Project può funzionare su progetti di qualsiasi tipo. Per altre informazioni, vedere Modellazione di progetti.