Aracılığıyla paylaş


IVsEditorFactory.CreateEditorInstance Yöntem (UInt32, String, String, IVsHierarchy, UInt32, IntPtr, IntPtr, IntPtr, String, Guid, Int32)

 

Düzenleyici Fabrika mimarisi tarafından veri/view ayrımını destekleyen Düzenleyicileri oluşturmak için kullanılır.

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

Sözdizimi

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

Parametreler

  • grfCreateDoc
    [in] Bayrakları değerleri alınan __VSCREATEEDITORFLAGS düzenleyen oluşturmak hangi koşullarda tanımlar numaralandırma.Yalnızca açık ve sessiz bayrakları geçerli olur.
  • pszMkDocument
    [in] Belgenin adı tanımlayıcı formu proje sisteminde dize.Dosyaları belgeler söz konusu olduğunda, bu her zaman dosya yoludur.Bu parametre, dosyalar belge belirtmek için de kullanılabilir.Örneğin, bir veritabanı yönelimli projesinde, bu parametre bir tablodaki kayıtlara başvuruda bulunan bir dize içerebilir.
  • pszPhysicalView
    [in] Fiziksel görünümün adı.Ayrıntılı bilgi için Açıklamalar'a bakın.
  • itemid
    [in] Bu düzenleyici örneğinin öğesi tanıtıcısı.
  • punkDocDataExisting
    [in] Olması gereken punkDocData çalıştıran belge tablosu'nda (rdt) kayıtlı nesnesi.Bu parametre, bir belge Arabellek olduğunu belirlemek için kullanılır (DocData nesne) oluşturuldu.İkincil bir görünüm oluşturmak için bir düzenleyici Fabrika sorulduğunda, bu parametrenin hiçbir belge Arabellek olduğunu belirten boş olmayan.Dosya açıksa, dönüş VS_E_INCOMPATIBLEDOCDATA ve ortamı kapatmak için kullanıcıya sorar.
  • ppunkDocView
    [Çıkış] İşaretçi IUnknown için arabirim DocView nesne.Döner null harici bir düzenleyiciyi varsa, belgenin görünümünü döndürür.
  • ppunkDocData
    [Çıkış] İşaretçi IUnknown için arabirim DocData nesne.Belge için arabellek döndürür.
  • pbstrEditorCaption
    [Çıkış] Belge penceresinde belge düzenleyen tarafından tanımlanan ilk başlık.Bu genellikle "[formu]" gibi köşeli ayraçlar içine bir dizedir.Bu değer giriş parametresi olarak geçirilen CreateDocumentWindow yöntemi.Dosya [salt okunur] ise başlık dosya yükleme sırasında ayarlanır.
  • pguidCmdUI
    [Çıkış] Komutu kullanıcı Arabirimi GUID döndürür.Bu GUID, bu Düzenleyici etkin olduğunda etkindir.Bu GUID kullanılacak Düzenleyicisi'nde görüntülenen herhangi bir kullanıcı Arabirimi öğesi vardır.Bu GUID, uydu dll burada belge etkinken hangi menüleri ve araç çubuklarını görüntüleneceğini gösterir .ctc dosyasında kullanılır.

Dönüş Değeri

Type: System.Int32

Düzenleyici'de açılmış bir biçimde belge varsa, VS_E_UNSUPPORTEDFORMAT döndürülür.

Uyumsuz bir düzenleyicide belge açıksa (ya da E_NOINTERFACE), VS_E_INCOMPATIBLEDOCDATA döndürülür.

Dosyayı başka bir nedenle açılamadı, başka hresult hata kodu döndürülür.

Notlar

com imzası

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.CreateEditorInstanceyanıt olarak bir proje sistemi ya da arama ortamı tarafından çağrılan OpenStandardEditor veya OpenSpecificEditor Yardımcısı işlevleri de kendi OpenItem yöntem uygulaması.Durumunda OpenStandardEditor, ortamı ilk dosyayı açmak için en yüksek önceliğe sahip Düzenleyici Fabrika belirler ve daha sonra çağırır IVsEditorFactory.CreateEditorInstance. ortamı o Düzenleyicisi'nde belge veri örneğini yapamıyorsa, onu sonraki en yüksek öncelik ve aynı şekilde bu girişimi düzenleyen bulacaksınız şey.Bu döngü desteklemek Düzenleyici Fabrika aşağıdaki dönebilirsiniz:

VS_E_UNSUPPORTEDFORMATşu anda açık değilse, belgeyi kapatmadan devam etmek döngü sağlar.

Düzenleyici fabrikanızın sağlanan belge veri Düzenleyicisi Fabrika ile uyumlu değilse, bu değeri döndürür.Çağırarak, belge veri uyumlu olup olmadığının QueryInterface belge veri nesnesi için gerekli arabirimleri kümesi.Bu durumda, kullanıcı dosyayı kapatmak için istenmez.VS_E_INCOMPATIBLEDOCDATA açık belge kapalı, ister.Başka bir geri döngü devam etmesini durdurur.

Düzenleyici fabrikanızın sağlanan belge veri Düzenleyicisi Fabrika ile uyumlu değilse, bu değeri döndürür.Çağırarak, belge veri uyumlu olup olmadığının QueryInterface belge veri nesnesi için gerekli arabirimleri kümesi.Düzenleyici fabrika yalnızca tek bir belge veri görünümü destekliyorsa, bu durumda, belgeyi veri zaten başka bir görünüm açık olduğu için de bu değeri döndürülür.Bu değer döndüren diğer düzenleyici dosyayı kapatın ve düzenleyicinizde açılmasına olanak tanımak için kullanıcıdan ortamı neden olur.

[!NOT]

Belge veri ve belge görünümü aynı nesne üzerinde düzenleyicinizi başlatır, sonra düzenleyiciniz yalnızca belge veri örneği için tek bir görünümde açmak destekleyebilir.Sonuç olarak, başka bir düzenleyici veya düzenleyiciniz bile zaten başlatılmış belge veri açın isteniyorsa, desteklemeyen başka bir görünüm sağlayan ve bu değer döndürmesi gerekir.

Belge veri nesnesi tarafından başvurulan ppunkDocData destekleyen IOleCommandTarget, komutu etkin nesne tarafından başvuruda bulunulan yönlendirilir sonra nesne ortamı komut yönlendirme zincirinde bulunan ppunkDocView.

Fiziksel görünüm dize pszPhysicalView ya da tarafından sağlanan MapLogicalView veya kayıt formunun uygun olan düzenleyici anahtarı altında bulunur: HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ düzenleyicisinin < GUID > \LogicalViews\ < GUID > mantıksal görünümü.

Ayrıca bkz.

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

Başa dön