Sdílet prostřednictvím


Určení editoru, který otevře soubor v projektu

Když uživatel otevře soubor v projektu, prostředí projde procesem dotazování a nakonec otevře příslušný editor nebo návrhář pro daný soubor. Počáteční postup používaný prostředím je stejný pro standardní i vlastní editory. Prostředí používá při dotazování, který editor má použít k otevření souboru, a balíček VSPackage musí během tohoto procesu koordinovat s prostředím.

Když například uživatel vybere příkaz Otevřít z nabídky Soubor a pak zvolí název souboru.rtf (nebo jakýkoli jiný soubor s příponou .rtf ), prostředí volá IsDocumentInProject implementaci pro každý projekt, nakonec cyklicky prochází všemi instancemi projektu v řešení. Projekty vrací sadu příznaků, které identifikují deklarace identity v dokumentu podle priority. Při použití nejvyšší priority prostředí volá příslušnou OpenItem metodu. Další informace o procesu dotazování najdete v tématu Přidání šablon projektů a položek projektu.

Projekt Různé soubory deklaruje všechny soubory, které nejsou deklarovány jinými projekty. Díky tomu můžou vlastní editory otevírat dokumenty dřív, než je otevřou standardní editory. Pokud projekt Různé soubory deklaruje soubor, prostředí volá metodu OpenStandardEditor pro otevření souboru pomocí standardního editoru. Prostředí zkontroluje interní seznam registrovaných editorů, které zpracovávají soubory .rtf . Tento seznam se nachází v registru v následujícím klíči:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<version>\Editors\<editor factory guid>\Extensions

Prostředí také zkontroluje identifikátory třídy v klíči HKEY_CLASSES_ROOT\CLSID pro všechny objekty, které mají podklíč DocObject. Pokud tam najdete příponu souboru, vytvoří se v sadě Visual Studio vložená verze aplikace, například Microsoft Word. Tyto objekty dokumentu musí být složené soubory, které implementují IPersistStorage rozhraní, nebo objekt musí implementovat IPersistFileFormat rozhraní.

Pokud v registru není žádná továrna editoru pro soubory .rtf , prostředí hledá v klíči HKEY_CLASSES_ROOT\.rtf a otevře editor zadaný tam. Pokud se přípona souboru v HKEY_CLASSES_ROOT nenajde, pak prostředí k otevření souboru použije základní textový editor sady Visual Studio, pokud se jedná o textový soubor.

Pokud se základní textový editor nezdaří, což nastane, pokud soubor není textový soubor, prostředí pro soubor použije jeho binární editor.

Pokud prostředí v registru najde editor rozšíření .rtf , načte balíček VSPackage, který implementuje tuto továrnu editoru. Prostředí volá metodu SetSite v novém balíčku VSPackage. Balíček VSPackage volá QueryServiceSID_SVsRegistorEditorpomocí RegisterEditor metody k registraci objektu pro vytváření editoru v prostředí.

Prostředí teď znovu zkontroluje interní seznam registrovaných editorů a vyhledá nově zaregistrovanou továrnu editoru pro soubory .rtf . Prostředí volá vaši implementaci CreateEditorInstance metody a předává název souboru a typ zobrazení, které chcete vytvořit.