Udostępnij za pośrednictwem


Metoda IVsUIShell.CreateDocumentWindow — (UInt32, String, IVsUIHierarchy, UInt32, IntPtr, IntPtr, Guid, String, Guid, IServiceProvider, String, String, Int32 , IVsWindowFrame)

 

Ta metoda tworzy okno dokumentu zawierającego osadzanie wskazywanym przez punkDocView parametru.

Przestrzeń nazw:   Microsoft.VisualStudio.Shell.Interop
Zestaw:  Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)

Składnia

int CreateDocumentWindow(
    uint grfCDW,
    string pszMkDocument,
    IVsUIHierarchy pUIH,
    uint itemid,
    IntPtr punkDocView,
    IntPtr punkDocData,
    [InAttribute] ref Guid rguidEditorType,
    string pszPhysicalView,
    [InAttribute] ref Guid rguidCmdUI,
    IServiceProvider psp,
    string pszOwnerCaption,
    string pszEditorCaption,
    int[] pfDefaultPosition,
    out IVsWindowFrame ppWindowFrame
)
int CreateDocumentWindow(
    unsigned int grfCDW,
    String^ pszMkDocument,
    IVsUIHierarchy^ pUIH,
    unsigned int itemid,
    IntPtr punkDocView,
    IntPtr punkDocData,
    [InAttribute] Guid% rguidEditorType,
    String^ pszPhysicalView,
    [InAttribute] Guid% rguidCmdUI,
    IServiceProvider^ psp,
    String^ pszOwnerCaption,
    String^ pszEditorCaption,
    array<int>^ pfDefaultPosition,
    [OutAttribute] IVsWindowFrame^% ppWindowFrame
)
abstract CreateDocumentWindow : 
        grfCDW:uint32 *
        pszMkDocument:string *
        pUIH:IVsUIHierarchy *
        itemid:uint32 *
        punkDocView:nativeint *
        punkDocData:nativeint *
        rguidEditorType:Guid byref *
        pszPhysicalView:string *
        rguidCmdUI:Guid byref *
        psp:IServiceProvider *
        pszOwnerCaption:string *
        pszEditorCaption:string *
        pfDefaultPosition:int[] *
        ppWindowFrame:IVsWindowFrame byref -> int
Function CreateDocumentWindow (
    grfCDW As UInteger,
    pszMkDocument As String,
    pUIH As IVsUIHierarchy,
    itemid As UInteger,
    punkDocView As IntPtr,
    punkDocData As IntPtr,
    <InAttribute> ByRef rguidEditorType As Guid,
    pszPhysicalView As String,
    <InAttribute> ByRef rguidCmdUI As Guid,
    psp As IServiceProvider,
    pszOwnerCaption As String,
    pszEditorCaption As String,
    pfDefaultPosition As Integer(),
    <OutAttribute> ByRef ppWindowFrame As IVsWindowFrame
) As Integer

Parametry

  • pszMkDocument
    Type: System.String

    [in] Ścieżka do dokumentu. Ta ścieżka jest używana przez środowisko do zarejestrowania tego widoku w tabeli systemem dokumentu (Normalizacją).

  • itemid
    Type: System.UInt32

    [in] Identyfikator elementu w hierarchii odpowiadający tego dokumentu. Wartość jest pobierana z VSITEMID wyliczenia.

  • punkDocView
    Type: System.IntPtr

    [in] Wskaźnik do IUnknown interfejsu dla obiektu dokumentu widok ma być wyświetlany w tym oknie. Obiekt widoku dokumentu może być obiekt dokumentu, takich jak IOleDocument, a formantu, takie jak IOleObject lub IOleControl, lub proste środowisko osadzanie, takich jak IVsWindowPane.

  • punkDocData
    Type: System.IntPtr

    [in] Wskaźnik do IUnknown interfejs obiekt reprezentujący obiekt dokumentu danych tego dokumentu w sytuacjach, w przypadku rozdzielenie widoku lub danych. Na przykład, Edytor tekstu core ma obiekt widoku tekstu (IVsTextView) i obiekt buforu tekstu (IVsTextBuffer). Ten parametr może być null. Przekazywanie null powoduje, że w środowisku do tworzenia wystąpienia Domyślna implementacja punkDocData w imieniu wywołującego.

  • rguidEditorType
    Type: System.Guid

    [in] Unikatowy identyfikator fabryki Edytor utworzony widok i dokumentu obiekty danych wystąpienia dokumentu. Powinno to być GUID_NULL, jeśli dokument nie został skonstruowany przy użyciu edytora fabryki (wystąpienie jest tworzony z prywatnej wiedzy o konkretnym projektem).

  • pszPhysicalView
    Type: System.String

    [in] Ciąg do identyfikacji typu Widok fizyczny edytora. Niektóre fabryki Edytor może obsługiwać tworzenie wielu typów widok fizyczny. Na przykład, istnieje możliwość fabryki pojedynczego edytora do obsługi tworzenia widoku graficznego projektanta (LOGVIEWID_Designer) oraz widok kodu tekstowej (LOGVIEWID_Code). Fabryka Edytor należy zarejestrować informacji w rejestrze systemowym mapowanie między typami widoku logiczne i fizyczne podkluczu rejestru LogicalViewMap.

  • rguidCmdUI
    Type: System.Guid

    [in] Wskazuje, jaki zestaw menu powinny zostać scalony głównego menu paska podczas tego dokumentu jest aktywny. Ten typ scalania menu zaleca się za pośrednictwem menu OLE2 scalanie, którego można użyć, jeśli ten parametr jest GUID_NULL. Początkowa wartość tego parametru jest zwracany jako parametrem [out] w CreateEditorInstance metody.

  • psp
    Type: Microsoft.VisualStudio.OLE.Interop.IServiceProvider

    [in] Wskaźnik do IServiceProvider interfejsu. Może być null. To dodatkowe usługodawcy dostarczane przez wywołującego (zazwyczaj projekt) co obiekt wywołujący zapewnić dodatkowy kontekst (za pomocą usługi) osadzony edytora. W związku z tym kiedy osadzonego obiektu wysyła żądanie usługi, ramki próbuje spełnić to żądanie. Jeśli usługa nie jest dostępna ramki, psp zostanie podjęta próba. Jeśli usługa nie zostaną znalezione, dostawca usługi globalne środowisko jest badane.

  • pszOwnerCaption
    Type: System.String

    [in] Podpis początkowy zdefiniowane przez właściciela dokumentu (projekt) dla okna dokumentu. Jest to często w postaci: "NazwaProjektu — nazwa elementu."

  • pszEditorCaption
    Type: System.String

    [in] Podpis początkowy zdefiniowany przez Edytor dokumentów dotyczących okna dokumentu. Zazwyczaj jest to ciąg, ujęte w nawiasy kwadratowe (na przykład [Form]). Początkowa wartość tego parametru jest zwracany jako parametrem [out] w IVsEditorFactory::CreateEditorInstance metody.

  • pfDefaultPosition
    Type: System.Int32[]

    [out] Może być null jeśli obiekt wywołujący nie wymaga tych informacji.true Jeśli środowisko nie ma żadnych zapisane informacje o ostatniej pozycji tego okna narzędzia (oznacza to, guidPersistenceSlot nie znaleziono), dlatego został umieszczony w niektórych domyślnej lokalizacji na ekranie.false Jeśli to okno umieszczenia gdzie użytkownik ostatnio znajduje się i jego rozmiar.

  • ppWindowFrame
    Type: Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame

    [out] Wskaźnik do ramki zawierające ten edytor, który może służyć do manipulowania lokalizację, rozmiar, podpis i inne właściwości okna. Również można uzyskać IUnknown Wskaźnik interfejsu osadzenia (czyli punkDocView) lub punkDocData.

Wartość zwracana

Type: System.Int32

Jeśli metoda zakończy się pomyślnie, zwraca S_OK. Jeśli nie, zwraca kod błędu.

Uwagi

Podpis COM

Z vsshell.idl:

HRESULT IVsUIShell::CreateDocumentWindow(
   [in] VSCREATEDOCWIN grfCDW,
   [in] LPCOLESTR pszMkDocument,
   [in] IVsUIHierarchy *pUIH,
   [in] VSITEMID itemid,
   [in] IUnknown *punkDocView,
   [in] IUnknown *punkDocData,
   [in] REFGUID rguidEditorType,
   [in] LPCOLESTR pszPhysicalView,
   [in] REFGUID rguidCmdUI,
   [in] IServiceProvider *pSP,
   [in] LPCOLESTR pszOwnerCaption,
   [in] LPCOLESTR pszEditorCaption,
   [out] BOOL *pfDefaultPosition,
   [out] IVsWindowFrame **ppWindowFrame
);

IVsUIShell.CreateDocumentWindow to jest używane w scenariuszach zaawansowanych procedura niskiego poziomu. Ta metoda nie jest zazwyczaj wywoływana przez większość klientów, którzy zwykle wywołać OpenStandardEditor lub OpenSpecificEditor do otwarcia dokumentu. Wywołanie metody IVsUIShell.CreateDocumentWindow jako część ich implementacji.

Następujące elementy są skojarzone z każdego okna dokumentu:

Ścieżka dokumentu (pszMkDocument), który jest zarejestrowany w Normalizacją.

Identyfikator hierarchii/elementu pary wskazujący projektu, z którym jest skojarzona dokumentu.

Obiekt widoku wyświetlane w obszarze klienta okna (punkDocView).

Obiekt reprezentujący edytowany przez ten widok danych (punkDocData).

Środowisko zaimplementowane IVsWindowFrame obiekt jest zwracany przez tę metodę. Umożliwia dostęp do tego wskaźnika punkDocView, podpis, umieść i tak dalej. Aby uzyskać pełną listę właściwości, które są dostępne, zobacz __VSFPROPID.

Tytuł okna dokumentu jest zarządzana przez trzech niezależnych stron, że właściciel dokumentu (zwykle projektu), edytora i środowiska.

Właściciel podpisu

Podpis edytora

Podpis środowiska

Tytuł okna dokumentu

"%1 - %2"

gdzie

%1 = "Projektu Project1" i

%2 = "MyForm"

"[kod]"

" :2"

"Projektu Project1 = MyForm [kod]: 2"

"%3"

gdzie

%3 = "c:/.../mydir/mydoc.txt"

null

""

"c:/.../mydir/mydoc.txt"

Tego zarządzania odbywa się w dokumencie Futryna okienna śledzenia pszOwnerCaption i pszEditorCaption Podpis właściwości. Te ciągi są połączeniem Futryna okienna z dowolnego ciągów środowiska zamieszczone.pszOwnerCaption Ciągu można zdefiniować za pomocą ciągu formatu sprintf podobny do określenia, gdzie DocumentAttribute ciągi powinny zostać automatycznie zastąpione. Wykrywanie ramki okna OnAfterAttributeChange zdarzenie, aby wiedzieć, kiedy należy zaktualizować ten podpis. Zdefiniowano następujące ciągi DocumentAttribute:

%1 == Project name –

pHier->GetProperty(VSITEMID_ROOT, VSHPROPID_Name,...)

%2 == item name –

pHier->GetProperty(itemid, VSHPROPID_Name,...)

%3 == Document (file) name –

pHier->GetProperty(itemid, VSHPROPID_SaveName,...)

Jeśli OwnerCaption zawiera ciąg % #, a następnie monitoruje Futryna okienna OnAfterAttributeChange zdarzeń i hierarchii OnPropertyChanged zdarzenie, aby śledzić te nazwy są zmieniane.

Zobacz też

Interfejs IVsUIShell
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop

Powrót do początku