Aracılığıyla paylaş


IVsUIShell.CreateDocumentWindow Yöntem (UInt32, String, IVsUIHierarchy, UInt32, IntPtr, IntPtr, Guid, String, Guid, IServiceProvider, String, String, Int32 , IVsWindowFrame)

 

Bu yöntem tarafından belirtilen katıştırma içeren bir belge penceresi oluşturur punkDocView parametresi.

Ad Alanı:   Microsoft.VisualStudio.Shell.Interop
Derleme:  Microsoft.VisualStudio.Shell.Interop (Microsoft.VisualStudio.Shell.Interop.dll içinde)

Sözdizimi

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

Parametreler

  • pszMkDocument
    Type: System.String

    [in] Belge yolu. Bu yol ortamı tarafından çalıştıran belge tablo'nda (RDT) Bu görünümde kaydetmek için kullanılır.

  • itemid
    Type: System.UInt32

    [in] Bu belgeye karşılık gelen hiyerarşi içinde öğesinin tanıtıcısı. Değer öğesinden alınır VSITEMID numaralandırması.

  • punkDocView
    Type: System.IntPtr

    [in] İşaretçi IUnknown Bu pencere içinde görüntülenecek belge görünümü nesnesi için arabirim. Belge Görünümü nesnesi gibi bir belge nesnesi olabilir IOleDocument, bir denetimi gibi IOleObject veya IOleControl, veya gömme, gibi basit bir ortam IVsWindowPane.

  • punkDocData
    Type: System.IntPtr

    [in] İşaretçi IUnknown durumlarda bu belgenin belge veri nesnesini temsil eden bir nesne arabiriminin görünümü veya veri ayrımı alınır. Örneğin, temel metin düzenleyici metin görünümü nesnesi vardır (IVsTextView) ve metin arabellek nesnesi (IVsTextBuffer). Bu parametre olabilir null. Geçirme null neden olan bir varsayılan uygulaması bir örneğini oluşturmak için ortamı punkDocData arayanın adınıza.

  • rguidEditorType
    Type: System.Guid

    [in] Görünüm ve belge veri nesneleri belgenin bir örneği oluşturulan Düzenleyici üreteci benzersiz tanımlayıcısı. Düzenleyici üreteci kullanarak belge oluşturulur değil, bu GUID_NULL olmalıdır (diğer bir deyişle, bir örneği, belirli bir projeye özel bilgi ile oluşturulur).

  • pszPhysicalView
    Type: System.String

    [in] Dize Düzenleyicisi fiziksel görünüm türünü tanımlamak için. Bazı Düzenleyicisi oluşturucuları birden fazla fiziksel görünüm türleri oluşturma destekleyebilir. Örneğin, bir grafik Tasarımcı görünümü oluşturma desteklemek tek Düzenleyici üreteci için mümkündür (LOGVIEWID_Designer) yanı sıra bir metinsel kod görünümü (LOGVIEWID_Code). Düzenleyici üreteci LogicalViewMap kayıt defteri alt anahtarı altında mantıksal ve fiziksel görünüm türleri arasında eşleme için sistem kayıt defteri bilgilerini kaydetmeniz gerekir.

  • rguidCmdUI
    Type: System.Guid

    [in] Ana menü çubuğunda, bu belgenin etkin olduğunda içine hangi menü kümesi birleştirilmiş gösterir. Bu tür menü birleştirme Bu parametre GUID_NULL ise kullanılabilecek birleştirme, OLE2 menüye önerilir. Bu parametre değerini bir [out] parametresi olarak döndürülür CreateEditorInstance yöntemi.

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

    [in] İşaretçi IServiceProvider arabirimi. Olabilir null. Katıştırılmış Düzenleyicisi'ni (Hizmetleri) yoluyla ek bağlam sağlamak arayan edinerek (genellikle bir proje) çağıran tarafından sağlanan bir ek hizmet sağlayıcısıdır. Bu nedenle, gömülü nesnenin bir hizmet isteği yaptığında, bu isteği karşılamak çerçeve çalışır. Hizmet çerçevesi tarafından sağlanmamışsa psp denenir. Hizmet var. bulunamazsa, ardından ortamın genel hizmet sağlayıcısı sorgulanır.

  • pszOwnerCaption
    Type: System.String

    [in] Belge penceresi için belgenin sahibi (Proje) tarafından tanımlanan ilk resim yazısı. Bu genellikle biçimidir: "ProjectName – ItemName."

  • pszEditorCaption
    Type: System.String

    [in] Belge penceresi için belgenin Düzenleyicisi tarafından tanımlanan ilk resim yazısı. Bu genellikle köşeli ayraçlar (örneğin, [Form]) içine bir dizedir. Bu parametre değerini IVsEditorFactory içinde bir [out] parametresi olarak döndürülür::CreateEditorInstance yöntemi.

  • pfDefaultPosition
    Type: System.Int32[]

    [out] Olabilir null arayan bu bilgi işlemleriniz değil ise.true ortam kaydedilen son bu araç penceresi konumu hakkında herhangi bir bilgi yoksa (diğer bir deyişle, guidPersistenceSlot bulunamadı), bu nedenle bazı varsayılan konumuna ekranında yerleştirildi.false Bu pencere yerleştirdiyseniz burada kullanıcı son bulunan ve bu boyuta sahip.

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

    [out] Bu düzenleyici, konumu, boyutu, resim yazısı ve diğer özellikler penceresinin işlemek için kullanılan içeren çerçeve işaretçisi. Almak için de kullanılabilir IUnknown katıştırma arabirim işaretçisi (diğer bir deyişle, punkDocView) veya punkDocData.

Dönüş Değeri

Type: System.Int32

Yöntem başarılı olursa, döndürür S_OK. Başarısız olursa, bir hata kodu döndürür.

Notlar

COM imza

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 Gelişmiş senaryolar kullanılan alt düzey bir yordamdır. Bu yöntem genellikle genellikle arayan çoğu istemciler tarafından çağrılmaz OpenStandardEditor veya OpenSpecificEditor bir belgeyi açmak için. Bu yöntemleri çağırmak IVsUIShell.CreateDocumentWindow uygulamalarının bir parçası olarak.

Aşağıdaki öğeler, her belge penceresi ile ilişkilidir:

Belgenin yolu (pszMkDocument), RDT içinde kayıtlı.

Belgenin ilişkili olduğu proje belirten bir hiyerarşi/ItemId çifti.

Pencerenin istemci alanında görüntülenen view nesnesinin (punkDocView).

Bu görünüm tarafından düzenlenen temel veri temsil eden bir nesne (punkDocData).

Ortam uygulanan IVsWindowFrame Bu yöntem tarafından döndürülen nesne. Bu işaretçi erişmek için kullandığınız punkDocView, resim yazısı, konumlandırma ve benzeri. Erişilebilir özelliklerin tam listesi için bkz: __VSFPROPID.

Belge penceresi resim yazısı üç bağımsız taraflar, belge sahibinin (genellikle Proje), düzenleyici ve ortamı tarafından yönetilir.

Resim yazısı sahibi

Düzenleyici resim yazısı

Ortam başlık

Belge penceresi başlığı

"%1 - %2"

Burada

%1 "Project1" = ve

%2 = "MyForm"

"[kod]"

" :2"

"Project1 MyForm [kod] =: 2"

"%3"

Burada

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

null

""

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

Bu yönetim WindowFrame belge tarafından gerçekleştirilir izleme pszOwnerCaption ve pszEditorCaption Resim yazısı özellikleri. Bu tüm ortam katkısıyla dizeler WindowFrame birleşimi dizelerdir.pszOwnerCaption Dize burada DocumentAttribute dizeleri otomatik olarak yerine kullanılacağını belirtmek için bir sprintf benzeri biçim dizesi kullanılarak tanımlanabilir. Pencere çerçevesi dinlediği OnAfterAttributeChange Bu resim yazısı güncelleştirme zamanı bilmeniz olay. DocumentAttribute dizeleri aşağıda tanımlanmıştır:

%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,...)

OwnerCaption % # dize sonra WindowFrame izleyiciler içeriyorsa, OnAfterAttributeChange olay ve hiyerarşi OnPropertyChanged Bu adlar değiştirirken izlemek için olay.

Ayrıca bkz.

IVsUIShell Arabirim
Microsoft.VisualStudio.Shell.Interop Ad Alanı

Başa dön