次の方法で共有


オートメーション モデルの使用

VSPackage をオートメーションに接続した後、_DTE オブジェクトの GetObject メソッドを呼び出して、取得するオブジェクトを表す文字列を渡すことによって、プロパティとメソッドを取得できます。

プロジェクト オブジェクトの取得

次の 2 つのコード例は、オートメーション コンシューマーでプロジェクト オートメーション オブジェクトを取得する方法を示しています。 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