Udostępnij za pośrednictwem


Jak: Uzyskiwanie odwołania do DTE i obiekty DTE2

W EnvDTE Zgromadzenia, DTE reprezentuje obiekt Visual Studio zintegrowanego środowiska programowania (IDE) i jest najwyższy poziom obiektu w hierarchii modelu automatyzacji.Wszystkie aplikacje automatyzacji musi mieć odwołania do tego obiektu, aby uzyskać dostęp do modelu podstawowego automatyzacji.Że nadal w przypadku Visual Studio.

Ale dodanie EnvDTE80 zestawu zawiera zastąpienia obiektu najwyższego poziomu o nazwie DTE2 który zastępuje DTE obiektu.Oba obiekty działania i program podobnie, ale DTE2 zawiera nowe funkcje i obsługuje szereg nowych i zaktualizowanych obiektów i kolekcji.

W rezultacie podczas tworzenia nowych aplikacji automatyzacji i dodatki, należy utworzyć odwołania do obu obiektów.Nowy DTE2 obiektu zapewnia dostęp do nowych funkcji, podczas gdy DTE obiektu zapewnia dostęp do pozostałej części podstawowych funkcji automatyzacji.Nowe obiekty i kolekcje, pod DTE2 powinny być używane zamiast obiektów i kolekcji w DTE w każdym przypadku, gdy jest to możliwe.

W poniższych procedurach przedstawiono sposób uzyskać odwołanie do DTE2 obiektu.(Tę samą procedurę stosuje się do DTE obiektu.) Przed dodaniem odwołania do obiektów, należy dodać odwołania do odpowiednich zestawów i biblioteki typów.Aby uzyskać więcej informacji, zobacz Jak: Dodawanie odwołania do nazw automatyzacji.

Identyfikatorów programowych (ProgID) służących do Visual Studio 2012 jest VisualStudio.DTE.11.0.Następnie można rzutować zwracany obiekt do DTE2 interfejsu.

DTE2 Właściwości, metod i zdarzeń, wywołanie zwraca DTE typów.Na przykład Solution zwraca Solution obiektu, nie Solution2 obiektów, jak można by oczekiwać.Dlatego, gdy za pomocą DTE2 rzutowanie członków lub innego typu, użytkownik musi jawnie typu je.Zrobiono to celowo wielu powodów.Pierwszym powodem jest wspieranie spójności i uniknąć pomyłek.Zgromadzenie EnvDTE80.dll konsekwentnie zwraca tego samego interfejsu dla wszystkich DTE2 właściwości.Zwracanie najnowszą wersję interfejsu byłoby mylące.Na przykład, jeśli do przyszłej wersji Visual Studio ma typ DTE3, a następnie mógł zwrócić niektóre interfejsy DTE, niektóre DTE2, a niektóre DTE3.Ponadto go stanowiłyby problemów międzyoperacyjne COM ponieważ interfejsy "2" w EnvDTE80 pochodzić od EnvDTE interfejsów.Na przykład Window2 pochodzi z Window.Jeśli DTE właściwości zostały dodane do Window2, a następnie go spowoduje ukrycie Windows właściwości i nie będzie działać prawidłowo z aplikacjami COM.

[!UWAGA]

Okna dialogowe i poleceń menu, którą widzisz może różnią się od opisane w pomocy, w zależności od ustawień aktywny lub edition.Procedury te zostały opracowane z ogólnych ustawień rozwoju aktywnych.Aby zmienić ustawienia, wybierz polecenie przywóz i wywózUstawienia na Narzędzia menu.Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Aby odwołać się za obiektu DTE2 w języku Visual Basic i C#

  • W kodzie Dodaj następujące informacje:

    ' 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");
    

Aby odwołać się za obiekt DTE lub DTE2 w Visual C++ ATL (—)

  • W kodzie wprowadź następujące polecenie:

    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;
    

Zobacz też

Zadania

Jak: Dodawanie odwołania do nazw automatyzacji

Jak: dodatki formantu przy użyciu dodać Menedżera

Koncepcje

Dołączanie do określonego wystąpienia IDE

Dodaj w rejestracji

Wykres modelu obiektu automatyzacji

Inne zasoby

Tworzenie dodatków i kreatorów