Jak: získat odkazy na DTE a DTE2 objektů
V EnvDTE sestavení, DTE představuje objekt Visual Studio integrované vývojové prostředí (IDE) a je objekt nejvyšší úrovně v hierarchii automatizace modelu.Všechny automatizace aplikace musí obsahovat odkaz na tento objekt k získání přístupu k automatizaci modelu jádra.Který pokračuje v případě Visual Studio.
Avšak přídavek EnvDTE80 sestavení obsahuje náhradní nejvyšší objekt s názvem DTE2 které nahrazuje DTE objektu.Oba objekty jednat a podobně, program, ale DTE2 obsahuje nové funkce a počet nových a aktualizovaných objektů a kolekcí hostitelem.
Proto při vytváření nové aplikace pro automatizaci a doplňky, vytvořte odkazy na obou objektů.Nový DTE2 objekt poskytuje přístup k nové funkci při DTE objekt poskytuje přístup ke zbytku základní funkce pro automatizaci.Nové objekty a kolekce pod DTE2 by měl použít místo objektů a kolekcí v DTE je to možné.
Následující postupy popisují, jak odkazovat DTE2 objektu.(Stejný postup platí pro DTE objektu.) Před přidáním odkazů na objekty, musíte přidat odkazy na příslušné sestavení a knihovny typů.Další informace naleznete v tématu Jak: přidání odkazů k automatizaci obory názvů.
Programový identifikátor (ProgID) pro Visual Studio 2012 je VisualStudio.DTE.11.0.Potom můžete obsadit objekt vrácený DTE2 rozhraní.
DTE2 Vlastnosti, metody a události, při vrácení DTE typy.Například Solution vrátí Solution objektu není Solution2 objektu podle očekávání.To je důvod, proč, při použití DTE2 přiřazení členů nebo jiných členů typu se musí výslovně typu je.Důvodem bylo záměrně pro z mnoha důvodů.Prvním důvodem je podporovat konzistence a uváděno.Sestavení EnvDTE80.dll důsledně vrátí všechny stejné rozhraní DTE2 vlastnosti.Vrací nejnovější verze rozhraní by matoucí.Například pokud budoucí verze Visual Studio má DTE3 typu, pak může vrátit některá rozhraní DTE, některé DTE2a některé DTE3.Kromě toho jej by představovat COM interop problémy, protože rozhraní "2" v EnvDTE80 odvodit z EnvDTE rozhraní.Například Window2 je odvozen z Window.Pokud DTE vlastnost byly přidány do Window2, pak by skrýt Windows vlastnosti a by nemusí pracovat správně s aplikací modelu COM.
[!POZNÁMKA]
Dialogová okna a příkazy v nabídkách menu, které vidíte, se mohou lišit od těch popsaných v nápovědě, v závislosti na vašich aktivních nastaveních nebo edici.Tyto postupy byly vyvinuty Obecné nastavení rozvoj aktivní.Chcete-li změnit nastavení, zvolte Import a ExportNastavení na Nástroje nabídce.Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Jako odkaz na objekt DTE2 v jazyce Visual Basic a C#
V kódu přidejte následující položky:
' Get an instance of the currently running Visual Studio IDE. Dim DTE2 as EnvDTE80.DTE2 DTE2 = System.Runtime.InteropServices.Marshal. _ GetActiveObject("VisualStudio.DTE.11.0")
// Get an instance of the currently running Visual Studio IDE. EnvDTE80.DTE2 dte2; dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. GetActiveObject("VisualStudio.DTE.11.0");
Referenční DTE nebo DTE2 objekt v aplikaci Visual C++ (ATL)
V kódu zadejte následující příkaz:
CComPtr<EnvDTE::_DTE> m_pDTE; CComPtr<EnvDTE80::DTE2> m_pDTE2; CLSID clsid; CLSID clsid2; CLSIDFromProgID(L"VisualStudio.DTE.11.0",&clsid); CLSIDFromProgID(L"VisualStudio.DTE.11.0",&clsid2); CComPtr<IUnknown> punk; CComPtr<IUnknown> punk2; // Get a running instance of Visual Studio. HRESULT hr = GetActiveObject(clsid,NULL,&punk); hr = GetActiveObject(clsid2,NULL,&punk2); m_pDTE = punk; m_pDTE2 = punk2;
Viz také
Úkoly
Jak: přidání odkazů k automatizaci obory názvů
Postup: ovládání doplňky pomocí Správce doplňků
Koncepty
Připojování k specifické instance IDE
Automatizační objekt modelu grafu