Condividi tramite


Uso del modello di automazione

Dopo aver connesso il VSPackage all'automazione, è possibile ottenere le proprietà e i metodi chiamando il GetObject metodo sull'oggetto _DTE , passando una stringa che rappresenta l'oggetto da recuperare.

Recupero di oggetti progetto

Di seguito sono riportati due esempi di codice che illustrano come un consumer di automazione ottiene gli oggetti di automazione del progetto. Per informazioni su come ottenere l'oggetto DTE, vedere Procedura: Ottenere riferimenti agli oggetti DTE e DTE2.

Sub DoAutomation()
    Dim MyProjects As Projects
    MyProjects = DTE.GetObject("AcmeProject")
End Sub
void DoAutomation(void)
{
  CComQIPtr<Projects> pMyPkg; // Use an IDispatch-derived object type.
    pMyPkg = pDTE->GetObject("AcmeProjects");

   // The '=' performs a Query Interface.
   // Assumes pDTE is already available as a global.
   // Use pMyPkg to access your projects object's properties and methods.
}

A questo punto, è possibile usare gli oggetti di progetto standard che fanno parte di un VSPackage specifico per spostarsi verso il basso nel modello gerarchia.

Nell'esempio di codice seguente viene illustrato come ottenere un oggetto personalizzato che è una proprietà di un tipo di progetto personalizzato:

Dim MyPrj As Project
Dim MyPrjItem As ProjectItem
Dim objMyObject as MyExtendedObject

MyPrj = MyProjects.Item(1) 'use the Projects collection to get a project
objMyObject = MyPrj.Object 'You call .Object to get to special Project
                           'implementation
objMyObject.MySpecialMethodOrProperty

Il codice seguente elenca i nomi di tutte le proprietà nell'opzione Generale dell'ambiente di Visual Studio nel menu Strumenti:

dim objDTE
dim objEnv
set objDTE = CreateObject("VisualStudio.DTE")
set objEnv = objDTE.Properties("Environment", "General")
for each obj in ObjEnv
MsgBox obj.Name
Next