Partager via


Utilisation du modèle d’automatisation

Une fois que vous avez connecté votre VSPackage à l’automatisation, vous pouvez obtenir les propriétés et les méthodes en appelant la GetObject méthode sur l’objet _DTE , en transmettant une chaîne représentant l’objet que vous souhaitez récupérer.

Obtention d’objets de projet

Voici deux exemples de code qui montrent comment un consommateur d’automatisation obtient les objets d’automatisation de projet. Pour plus d’informations sur l’obtention de l’objet DTE, consultez How to : Get References to the DTE and DTE2 Objects.

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

À ce stade, vous pouvez utiliser les objets de projet standard qui font partie d’un VSPackage spécifique pour descendre dans le modèle de hiérarchie.

L’exemple de code suivant montre comment obtenir un objet personnalisé qui est une propriété d’un type de projet personnalisé.

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

Le code suivant répertorie les noms de toutes les propriétés de l’option Général de l’environnement Visual Studio dans le menu Outils :

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