Otwieranie standardowych edytorów
Po otwarciu edytora standardowego środowisko IDE umożliwia określenie standardowego edytora dla wyznaczonego typu pliku zamiast określania edytora specyficznego dla projektu dla pliku.
Wykonaj poniższą procedurę, aby zaimplementować metodę OpenItem . Spowoduje to otwarcie pliku projektu w standardowym edytorze.
Aby zaimplementować metodę OpenItem za pomocą standardowego edytora
Wywołaj IVsRunningDocumentTable metodę (
RDT_EditLock
), aby określić, czy plik obiektu danych dokumentu jest już otwarty.Jeśli plik jest już otwarty, zapoznaj się z plikiem, wywołując IsDocumentOpen metodę , określając wartość
IDO_ActivateIfOpen
parametrugrfIDO
.Jeśli plik jest otwarty, a dokument jest własnością innego projektu niż projekt wywołujący, projekt otrzymuje ostrzeżenie, że otwierany edytor pochodzi z innego projektu. Następnie zostanie wyświetlone okno pliku.
Jeśli dokument nie jest otwarty lub nie znajduje się w uruchomionej tabeli dokumentów, wywołaj OpenStandardEditor metodę (
OSE_ChooseBestStdEditor
), aby otworzyć standardowy edytor pliku.Podczas wywoływania metody środowisko IDE wykonuje następujące zadania:
Środowisko IDE skanuje podklucz Editors/{guidEditorType}/Extensions w rejestrze, aby określić, który edytor może otworzyć plik i ma najwyższy priorytet.
Po określeniu, który edytor może otworzyć plik, środowisko IDE wywołuje polecenie CreateEditorInstance. Implementacja tej metody edytora zwraca informacje wymagane do wywołania CreateDocumentWindow środowiska IDE i lokacji nowo otwartego dokumentu.
Na koniec środowisko IDE ładuje dokument przy użyciu zwykłego interfejsu trwałości, takiego jak IVsPersistDocData2.
Jeśli środowisko IDE wcześniej ustaliło, że hierarchia lub element hierarchii jest dostępny, środowisko IDE wywołuje GetItemContext metodę w projekcie, aby uzyskać wskaźnik kontekstu IServiceProvider na poziomie projektu w celu przekazania z powrotem za pomocą CreateDocumentWindow wywołania metody.
IServiceProvider Zwróć wskaźnik do środowiska IDE, gdy środowisko IDE wywołuje GetItemContext projekt, jeśli chcesz zezwolić edytorowi na uzyskanie kontekstu z projektu.
Wykonanie tego kroku umożliwia projektowi oferowanie dodatkowych usług edytorowi.
Jeśli obiekt widoku dokumentu lub widoku dokumentu został pomyślnie zlokalizowany w ramce okna, obiekt jest inicjowany przy użyciu jego danych przez wywołanie metody LoadDocData.