À l'aide de le modèle Automation
Après avoir connecté votre VSPackage à l'automation, vous pouvez obtenir les propriétés et les méthodes en appelant la méthode d' GetObject sur l'objet d' _DTE , en passant une chaîne représentant l'objet que vous souhaitez récupérer.
obtention des objets Project
Voici deux exemples de code qui montrent comment un consommateur automation obtient les objets Automation initiaux du projet. le premier exemple utilise une macro de Visual Studio ; le deuxième code C++ d'usage.
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, le consommateur peut utiliser des objets standard de projet qui font partie d'un ensemble VSPackage pour réduire le modèle de la hiérarchie. Si vous étendez le code de Visual Basic dans l'exemple précédent, vous pouvez voir comment le consommateur peut obtenir l'objet Automation qui contient une de vos méthodes et propriétés spécialisées.
l'exemple de code suivant affiche une macro de Visual Studio pour un modèle de projet :
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
L'exemple de code suivant affiche une macro Visual Studio pour les pages options dans le menu d' Outils . Listes de ce code définit les noms des propriétés dans l'option de Général d'environnement de Visual Studio dans le menu d' 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