共用方式為


使用自動化模型

自動化連接您的 VSPackage 之後,您可以取得的屬性和方法的呼叫GetObject上的方法_DTE物件,傳遞字串,代表您想要擷取的物件。

取得專案的物件

以下是兩個程式碼範例示範如何自動化消費者會取得最初的專案 automation 物件。 第一個範例會使用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的程式碼在前一個範例中,您可以看到如何取用者可以取得包含任何特定的方法和屬性的自動化物件。

下列程式碼範例會顯示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