Sdílet prostřednictvím


IVsEditorFactory.CreateEditorInstance – metoda (UInt32, String, String, IVsHierarchy, UInt32, IntPtr, IntPtr, IntPtr, String, Guid, Int32)

 

Architektura editoru factory používá vytvořit editory, které podporují oddělení dat nebo zobrazit.

Obor názvů:   Microsoft.VisualStudio.Shell.Interop
Sestavení:  Microsoft.VisualStudio.Shell.Interop (v Microsoft.VisualStudio.Shell.Interop.dll)

Syntaxe

int CreateEditorInstance(
    uint grfCreateDoc,
    string pszMkDocument,
    string pszPhysicalView,
    IVsHierarchy pvHier,
    uint itemid,
    IntPtr punkDocDataExisting,
    out IntPtr ppunkDocView,
    out IntPtr ppunkDocData,
    out string pbstrEditorCaption,
    out Guid pguidCmdUI,
    out int pgrfCDW
)
int CreateEditorInstance(
    unsigned int grfCreateDoc,
    String^ pszMkDocument,
    String^ pszPhysicalView,
    IVsHierarchy^ pvHier,
    unsigned int itemid,
    IntPtr punkDocDataExisting,
    [OutAttribute] IntPtr% ppunkDocView,
    [OutAttribute] IntPtr% ppunkDocData,
    [OutAttribute] String^% pbstrEditorCaption,
    [OutAttribute] Guid% pguidCmdUI,
    [OutAttribute] int% pgrfCDW
)
abstract CreateEditorInstance : 
        grfCreateDoc:uint32 *
        pszMkDocument:string *
        pszPhysicalView:string *
        pvHier:IVsHierarchy *
        itemid:uint32 *
        punkDocDataExisting:nativeint *
        ppunkDocView:nativeint byref *
        ppunkDocData:nativeint byref *
        pbstrEditorCaption:string byref *
        pguidCmdUI:Guid byref *
        pgrfCDW:int byref -> int
Function CreateEditorInstance (
    grfCreateDoc As UInteger,
    pszMkDocument As String,
    pszPhysicalView As String,
    pvHier As IVsHierarchy,
    itemid As UInteger,
    punkDocDataExisting As IntPtr,
    <OutAttribute> ByRef ppunkDocView As IntPtr,
    <OutAttribute> ByRef ppunkDocData As IntPtr,
    <OutAttribute> ByRef pbstrEditorCaption As String,
    <OutAttribute> ByRef pguidCmdUI As Guid,
    <OutAttribute> ByRef pgrfCDW As Integer
) As Integer

Parametry

  • grfCreateDoc
    [v] Příznaky, jejichž hodnoty jsou převzaty z __VSCREATEEDITORFLAGS výčtu, definující podmínky, za nichž k vytvoření editoru.Pouze otevřené a pasivní příznaky jsou platné.
  • pszMkDocument
    [v] Řetězec formuláři zástupný název identifikátor dokumentu v systému Microsoft Office project.Z dokumentů, které jsou soubory je to vždy cestu k souboru.Tento parametr lze také určit dokumenty, které nejsou soubory.V projektu orientované databáze, například tento parametr může obsahovat řetězec, který odkazuje na záznamy v tabulce.
  • pszPhysicalView
    [v] Zobrazit fyzický název.Podrobnosti naleznete v části poznámky.
  • itemid
    [v] Položky identifikátor instance tohoto editoru.
  • punkDocDataExisting
    [v] Musí být punkDocData objektu, který je registrován v systémem dokumentu tabulky (RDT).Tento parametr slouží k určení, zda dokument vyrovnávací paměti (DocData objektu) již existuje.Výrobě editor je dotaz, vytvořte sekundární zobrazení, bude mít tento parametr hodnotu null označující, že je bez vyrovnávací paměti dokumentu.Pokud je soubor otevřen, požádá uživatele zavřete VS_E_INCOMPATIBLEDOCDATA vratky a životní prostředí.
  • ppunkDocView
    [výstup] Ukazatel IUnknown pro rozhraní DocView objektu.Vrátí null Pokud existuje externí editor, jinak vrátí zobrazení dokumentu.
  • ppunkDocData
    [výstup] Ukazatel IUnknown pro rozhraní DocData objektu.Vrátí vyrovnávací paměti pro dokument.
  • pbstrEditorCaption
    [výstup] Počáteční titulek definován editor dokumentu pro okna dokumentu.Obvykle se jedná o řetězec uzavřený v hranatých závorkách, například "[Form]".Tato hodnota je předána jako vstupní parametr CreateDocumentWindow metoda.Pokud je soubor [jen pro čtení] Nastaví titulek během načítání souboru.
  • pguidCmdUI
    [výstup] Vrátí identifikátor GUID Uživatelského příkazu.Identifikátor GUID je aktivní při aktivaci tohoto editoru.Libovolný prvek uživatelského rozhraní, která je zobrazena v editoru má pro tento identifikátor GUID.Tento Identifikátor se používá v souboru .ctc v satelitní knihovny DLL, kde označuje které nabídky a panely nástrojů má být zobrazen dokument je aktivní.

Vrácená hodnota

Type: System.Int32

Pokud má dokument ve formátu, který nelze otevřít v editoru VS_E_UNSUPPORTEDFORMAT je vrácena.

Pokud je dokument otevřený v nekompatibilního editoru (nebo E_NOINTERFACE), VS_E_INCOMPATIBLEDOCDATA je vrácena.

Pokud soubor nelze otevřít z jiného důvodu, je vrácena jiný kód chyby HRESULT.

Poznámky

Podpis COM

Z vsshell.idl:

HRESULT IVsEditorFactory::CreateEditorInstance(
   [in] VSCREATEEDITORFLAGS grfCreateDoc,
   [in] LPCOLESTR pszMkDocument,
   [in] LPCOLESTR pszPhysicalView,
   [in] IVsHierarchy *pvHier,
   [in] VSITEMID itemid,
   [in] IUnknown *punkDocDataExisting,
   [out] IUnknown **ppunkDocView,
   [out] IUnknown **ppunkDocData,
   [out] BSTR *pbstrEditorCaption,
   [out] GUID *pguidCmdUI,
   [out, retval] VSEDITORCREATEDOCWIN *pgrfCDW
);

IVsEditorFactory.CreateEditorInstancese nazývá prostředí v reakci na projektu systémové volání buď OpenStandardEditor nebo OpenSpecificEditor pomocné funkce v jeho OpenItem implementace metody.U OpenStandardEditor, prostředí nejprve určí factory editor s nejvyšší prioritou pro otevření souboru a pak zavolá IVsEditorFactory.CreateEditorInstance. Pokud prostředí nelze vytvořit instanci datového dokumentu v tomto editoru, nalezne editor s další nejvyšší prioritu a pokus tak to stejnou věc.Můžete se vrátit pro výrobce editor pro podporu této smyčky následující:

VS_E_UNSUPPORTEDFORMATumožňuje pokračovat bez zavření dokumentu, pokud je aktuálně otevřené smyčky.

Tato hodnota vrátíte, pokud není kompatibilní s vaší výroby editor dat dokumentu poskytované výrobě editor.Můžete určit, zda je dokument dat kompatibilní voláním QueryInterface na data objektu dokumentu sady rozhraní, které požadujete.Zavřete soubor není v tomto případě vyzván uživatel.VS_E_INCOMPATIBLEDOCDATA požádá-li otevřít dokument by měl být zavřen.Ostatní návrat přestane opakovat pokračovat.

Tato hodnota vrátíte, pokud není kompatibilní s vaší výroby editor dat dokumentu poskytované výrobě editor.Můžete určit, zda je dokument dat kompatibilní voláním QueryInterface na data objektu dokumentu sady rozhraní, které požadujete.Vrácení této hodnoty také pokud výrobce editor podporuje pouze jedno zobrazení dat dokumentu, protože v tomto případě již otevřen v jiném zobrazení data dokumentu.Vrácení této hodnoty způsobí prostředí na výzvu zavřete soubor v jiném editoru a povolit ji otevřít v editoru.

[!POZNÁMKA]

Pokud používáte editor konkretizuje data dokumentu a zobrazení dokumentu na stejný objekt, potom editor podporuje pouze otevření instance dat dokumentu do jednoho zobrazení.Pokud jsou požadovaná data dokumentu, která je již vytvořena otevřít v jiném editoru nebo dokonce editor, proto nemohou podporovat poskytování jiné zobrazení a musí vrátit tuto hodnotu.

Pokud data objektu dokumentu odkazuje ppunkDocData podporuje IOleCommandTarget, objekt je součástí řetězce směrování příkazového prostředí po příkazu je směrována na aktivní objekt odkazovaný ppunkDocView.

Řetězec zobrazení fyzické pszPhysicalView buď poskytnutých MapLogicalView nebo se nachází v registru pod klíčem editor odpovídající formuláře: \LogicalViews\ HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ < guid editor > < guid logické zobrazení >.

Viz také

IVsEditorFactory – rozhraní
Microsoft.VisualStudio.Shell.Interop – obor názvů

Zpátky na začátek