使用自动化模型

将 VSPackage 连接到自动化后,可以通过对对象调用 GetObject 方法 _DTE 来获取属性和方法,并传递表示要检索的对象的字符串。

获取项目对象

下面是两个代码示例,演示自动化使用者如何获取项目自动化对象。 有关如何获取 DTE 对象的信息,请参阅 如何:获取对 DTE 和 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.
}

此时,可以使用属于特定 VSPackage 的标准项目对象向下移动层次结构模型。

下面的代码示例演示如何获取自定义对象,该对象是自定义项目类型的属性。

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 环境“常规”选项中所有属性的名称:

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