Поделиться через


Использование модели автоматизации

После подключения в VSPackage к автоматизации можно получить свойства и методы, вызвав GetObject метод _DTE объект, передавая строку объект необходимо получить.

Получение объектов проекта

Следующие 2 примера кода, демонстрирующий объект-получатель автоматизации возвращает исходные объекты автоматизации проектов. В первом примере используется Visual Studio макрос; второе используется код C++.

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

На этом этапе, объект-получатель может использовать стандартные объекты проекта, которые являются частью указанного VSPackage, чтобы переместить вниз модели иерархии. Если выбрано расширение Visual Basic код в предыдущем примере можно видеть, как объект-получатель может получить объект автоматизации, содержащий любое из специальных методов и свойств.

Следующий пример кода показывает a Visual Studio макрос модели проекта:

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

Следующий пример кода показывает макроса Visual Studio Параметры на странице Сервис меню. Эти имена всех свойств в коде перечисляются Visual Studio среда Общие параметр Сервис меню:

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

См. также

Ссылки

GetObject