Porady: pobieranie odwołań do obiektów DTE i DTE2

[!UWAGA]

W Visual Studio 2013, dodatki są przestarzałe.Zalecamy uaktualnienie dodatków do rozszerzeń VSPackage.Aby uzyskać więcej informacji, zobacz Często zadawane pytania: konwertowanie dodatków na rozszerzenia pakietu VSPackage.

W EnvDTE Zgromadzenia, DTE obiekt reprezentuje Visual Studio zintegrowane środowisko programistyczne (IDE) i jest obiektem najwyższego poziomu w hierarchii modelu automatyzacji.Aby uzyskać dostęp do modelu Rdzeń automatyzacji, aplikację automation musi mieć odwołania do tego obiektu.

Jednak dodanie EnvDTE80 zestaw zawiera zastępczy obiekt najwyższego poziomu, który nosi nazwę DTE2 która zastępuje DTE obiektu.Chociaż oba obiekty działać — i są tak zaprogramowane, — podobnie, DTE2 zawiera nowe funkcje i obsługuje nowych i zaktualizowanych obiektów i kolekcji.

Podczas tworzenia nowej aplikacji automatyzujących pracę, zaleca się utworzenie odwołania do obu obiektów — do DTE2 obiekt, aby zapewnić dostęp do nowych funkcji i DTE obiekt, aby zapewnić dostęp do pozostałej części podstawowe funkcje.Zalecane jest również możliwe korzystanie z nowych obiektów i kolekcji w DTE2 a nie te w DTE.

Poniższe kroki pokazują jak odwołać się do DTE2 obiektu. (Ta sama procedura stosuje się do obiektu DTE). Aby dodać odwołanie do obiektu, należy dodać odwołania do zgromadzenia odpowiednich i biblioteki typów.Aby uzyskać więcej informacji, zobacz Porady: dodawanie odwołań do przestrzeni nazw automatyzacji.

Identyfikator programowy (ProgID) służący do Visual Studio 2013 to VisualStudio.DTE.12.0.Następnie można rzutować zwracany obiekt w DTE2 interfejsie.

Gdy nazywa się DTE2 właściwości, metody i zdarzenia zwrot DTE typów.Na przykład Solution zwraca Solution obiektu, nie Solution2 obiektów, jak można oczekiwać.Dlatego, kiedy używać DTE2 rzutowanie członków lub innego typu, użytkownik musi jawnie typu je.Ten projekt promuje spójność i zmniejsza ryzyko pomyłek.Zgromadzenie EnvDTE80.dll konsekwentnie zwraca ten sam interfejs dla wszystkich DTE2 właściwości.Zwracanie najnowszą wersję interfejsu byłoby mylące — na przykład, jeśli do przyszłej wersji systemu Visual Studio były mieć typu DTE3, a następnie niektóre interfejsy mógł zwrócić DTE, niektóre DTE2i niektóre DTE3.Ponadto, ponieważ można utworzyć COM interop problemy interfejsy "2" w EnvDTE80 pochodzić od EnvDTE interfejsów.Na przykład Window2 wynika z Window; Jeśli DTE właściwości zostały dodane do Window2, spowoduje ukrycie Windows właściwość i nie działają poprawnie z aplikacji COM.

[!UWAGA]

Komputer może polazać inne nazwy lub lokalizacje dla niektórych elementów interfejsu użytkownika Visual Studio w dalszych instrukcjach.Te elementy są determinowane przez numer edycji Twojego programu Visual Studio oraz Twoje ustawienia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Aby odwołać ten obiekt DTE2 w Visual Basic i C+

  • W kodzie Dodaj to:

    ' Get an instance of the currently running Visual Studio IDE.
    Dim DTE2 as EnvDTE80.DTE2
    DTE2 = System.Runtime.InteropServices.Marshal. _
    GetActiveObject("VisualStudio.DTE.12.0")
    
    // Get an instance of the currently running Visual Studio IDE.
    EnvDTE80.DTE2 dte2;
    dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.
    GetActiveObject("VisualStudio.DTE.12.0");
    

Aby odwołać te DTE lub DTE2 obiektu w Visual C++ ATL)

  • W kodzie Dodaj to:

    CComPtr<EnvDTE::_DTE> m_pDTE;
    CComPtr<EnvDTE80::DTE2> m_pDTE2;
    CLSID clsid;
    CLSID clsid2;
    CLSIDFromProgID(L"VisualStudio.DTE.12.0",&clsid);
    CLSIDFromProgID(L"VisualStudio.DTE.12.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

Porady: dodawanie odwołań do przestrzeni nazw automatyzacji

Porady: kontrolowanie dodatków za pomocą menedżera dodatków

Koncepcje

Dołączanie do specyficznych wystąpień IDE

Rejestracja dodatków

Wykres modelu obiektów automatyzacji

Inne zasoby

Tworzenie dodatków i kreatorów