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á různé kritéria při rozhodování, který editor vybrat pro 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í filename.rtf (nebo jakýkoli jiný soubor s příponou .rtf ), prostředí zavolá IsDocumentInProject implementaci pro každý projekt, nakonec projde všemi instancemi projektu v řešení. Projekty vrátí sadu příznaků, které identifikují nároky na dokument 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í .rtf soubory. 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íčiHKEY_CLASSES_ROOT\CLSID pro všechny objekty, které mají podklíč DocObject. Pokud je tam nalezena přípona souboru, v prostředí Visual Studio se vytvoří vložená 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á editorová továrna pro .rtf soubory, prostředí se podívá do klíče HKEY_CLASSES_ROOT\.rtf a otevře editor, který je tam zadaný. Pokud se přípona souboru v HKEY_CLASSES_ROOT nenajde, pak prostředí pomocí základního textového editoru sady Visual Studio soubor otevře, 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 pro rozšíření .rtf, načte balíček VSPackage, který implementuje editorovou továrnu. Prostředí volá metodu SetSite v novém balíčku VSPackage. Balíček VSPackage volá QueryService pro SID_SVsRegistorEditor, pomocí metody RegisterEditor k registraci továrny editoru v prostředí.

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