Metoda IVsEditorFactory.CreateEditorInstance — (UInt32, String, String, IVsHierarchy, UInt32, IntPtr, IntPtr, IntPtr, String, Guid, Int32)
Używany przez architekturę factory edytor do tworzenia edytorów, które obsługują separacji/widok danych.
Przestrzeń nazw: Microsoft.VisualStudio.Shell.Interop
Zestaw: Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)
Składnia
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
[w] Flagi, którego wartości są pobierane z __VSCREATEEDITORFLAGS wyliczenie, który określa warunki, pod którym chcesz utworzyć w edytorze.Tylko otwarte i odbiorcze flagi są prawidłowe.
- pszMkDocument
[w] Ciąg formularza identyfikator moniker dokumentu w systemie projektu.W odniesieniu do dokumentów, które są plikami to jest zawsze ścieżką do pliku.Ten parametr można również określić dokumenty, które nie są plikami.Na przykład w projekcie zorientowana na bazy danych, ten parametr może zawierać ciąg, który odnosi się do rekordów w tabeli.
- pszPhysicalView
[w] Nazwa widoku fizyczne.Aby uzyskać szczegółowe informacje, zobacz uwagi.
- pvHier
[w] Wskaźnik, aby IVsHierarchy interfejsu.
- itemid
[w] Identyfikator elementu instancji tego edytora.
- punkDocDataExisting
[w] Musi być punkDocData obiekt, który jest zarejestrowany w uruchomiony dokumentu tabeli (RDT).Ten parametr jest używany do określenia, czy bufor dokumentu (DocData obiektu) została już utworzona.Zapytany fabryka edytor do tworzenia wtórnych Widok ten parametr będzie niezerowe, wskazująca, że jest w buforze dokumentu.Jeśli plik jest otwarty, zwrotu VS_E_INCOMPATIBLEDOCDATA i środowiska naturalnego, poprosi użytkownika, aby je zamknąć.
- ppunkDocView
[out] Wskaźnik, aby IUnknown interfejsu dla DocView obiektu.Zwraca null , jeśli istnieje w zewnętrznym edytorze, w przeciwnym razie zwraca widoku dokumentu.
- ppunkDocData
[out] Wskaźnik, aby IUnknown interfejsu dla DocData obiektu.Zwraca buforu dla dokumentu.
- pbstrEditorCaption
[out] Podpis początkowe określone przez Edytor dokumentu w oknie dokumentu.Zazwyczaj jest to ciąg w nawiasach kwadratowych, takie jak "[Form]".Wartość ta jest przekazywana jako parametr wejściowy, aby CreateDocumentWindow metody.Jeśli plik jest [tylko do odczytu] podpis zostanie ustawiona podczas ładowania pliku.
- pguidCmdUI
[out] Zwraca identyfikator GUID interfejsu użytkownika polecenia.Ten identyfikator GUID jest aktywne po uaktywnieniu tego edytora.Każdy element interfejsu użytkownika, który jest widoczny w edytorze ma używać ten identyfikator GUID.Ten identyfikator GUID jest używany w pliku .ctc w satelitarnych biblioteki DLL, gdzie wskazuje które menu i paski narzędzi mają być wyświetlane, gdy dokument jest aktywny.
- pgrfCDW
[out, retval] enum typu __VSEDITORCREATEDOCWIN.Flagi te są przekazywane do CreateDocumentWindow.
Wartość zwracana
Type: System.Int32
Jeśli dokument ma format, którego nie można otworzyć w edytorze VS_E_UNSUPPORTEDFORMAT jest zwracany.
Jeśli dokument jest otwarty w edytorze niezgodne (lub E_NOINTERFACE), VS_E_INCOMPATIBLEDOCDATA jest zwracany.
Jeśli nie można otworzyć pliku z innego powodu, zwracana jest inny kod błędu HRESULT.
Uwagi
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.CreateEditorInstancejest wywoływana przez środowisko w odpowiedzi na wywołanie albo system projektu OpenStandardEditor lub OpenSpecificEditor helper działa w jego OpenItem implementacja metody.W odniesieniu do OpenStandardEditor, środowiska, najpierw określa factory Edytor o najwyższym priorytecie do otwierania pliku, a następnie wywołuje IVsEditorFactory.CreateEditorInstance. w przypadku nie można utworzyć wystąpienia danych dokumentu w tym edytorze środowiska znajdą Edytor następny najwyższy priorytet i próba tak, że ten sam rzeczą.Może zwracać następujące fabrycznej edytora do obsługi tej pętli:
VS_E_UNSUPPORTEDFORMATUmożliwia pętli kontynuować bez zamykania dokumentu, jeśli jest aktualnie otwarte.
Jeśli dane dokumentu do fabrycznej Edytor nie jest zgodny z fabrycznie edytora, należy zwrócić tę wartość.Można określić, czy dane dokumentu jest zgodna, wywołując QueryInterface w obiekcie danych dokumentu dla zestawu interfejsów wymagane.W takim przypadku użytkownik nie jest monitowany o Zamknij plik.VS_E_INCOMPATIBLEDOCDATA prosi, otwórz dokument powinien zostać zamknięty.Inne zwrotu zatrzyma pętli z dalszego.
Jeśli dane dokumentu do fabrycznej Edytor nie jest zgodny z fabrycznie edytora, należy zwrócić tę wartość.Można określić, czy dane dokumentu jest zgodna, wywołując QueryInterface w obiekcie danych dokumentu dla zestawu interfejsów wymagane.Ta wartość jest zwracana również jeśli fabryce Edytor obsługuje tylko jeden widok danych dokumentu, ponieważ w takim przypadku dane dokumentu jest już otwarty w innym widoku.Zwrócenie tej wartości powoduje, że środowisko monit, aby zamknąć plik w innym edytorze i umożliwić mu ma zostać otwarty w edytorze.
[!UWAGA]
Jeśli Edytor tworzy danych dokumentu i Widok dokumentu na tym samym obiekcie, następnie Edytor może obsługiwać tylko pojedynczy widok dla wystąpienia danych dokumentu otwarcia.W związku z powyższym Jeśli wymagane są do otwierania danych dokumentu, który już jest w innym edytorze lub nawet edytora, można nie są w stanie wspierać dostarczanie innego widoku i musi zwracać wartość ta.
Jeśli odwołuje się obiekt danych dokumentu ppunkDocData obsługuje IOleCommandTarget, obiekt znajduje się w łańcuchu routingu polecenia środowiska po polecenia jest kierowany do aktywnego obiektu odwołuje się ppunkDocView.
Ciąg widok fizycznych pszPhysicalView albo jest dostarczana przez MapLogicalView lub znajduje się w formularzu, w kluczu odpowiedniego edytora rejestru: \LogicalViews\ HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ < guid Edytor > < guid logicznym widokiem >.
Zobacz też
Interfejs IVsEditorFactory
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop
Powrót do początku