Aracılığıyla paylaş


Etkin Belge Kapsayıcıları

Microsoft Office Ciltçisi veya Internet Explorer gibi etkin bir belge kapsayıcısı, tek bir çerçeve içinde (her belge türü için birden çok uygulama çerçevesi oluşturmaya ve kullanmaya zorlamak yerine) farklı uygulama türlerinde birkaç belgeyle çalışmanıza olanak tanır.

MFC, sınıfındaki COleDocObjectItem etkin belge kapsayıcıları için tam destek sağlar. MFC Uygulama Sihirbazı'nı kullanarak, MFC Uygulama Sihirbazı'nın Bileşik Belge Desteği sayfasında Etkin belge kapsayıcısı onay kutusunu seçerek etkin bir belge kapsayıcısı oluşturabilirsiniz. Daha fazla bilgi için bkz . Etkin Belge Kapsayıcı Uygulaması Oluşturma.

Etkin belge kapsayıcıları hakkında daha fazla bilgi için bkz:

Kapsayıcı Gereksinimleri

Etkin belge kapsayıcısında etkin belge desteği yalnızca arabirim uygulamalarından fazlasını ifade eder: ayrıca, kapsanan bir nesnenin arabirimlerini kullanma bilgisi de gerektirir. Aynı durum, kapsayıcının etkin belgelerde bu uzantı arabirimlerinin nasıl kullanılacağını da bilmesi gereken etkin belge uzantıları için de geçerlidir.

Etkin belgeleri tümleştiren etkin bir belge kapsayıcısı:

  • Arabirim aracılığıyla nesne depolamayı IPersistStorage işleyebilme becerisine sahip olması, yani her etkin belgeye bir IStorage örnek sağlaması gerekir.

  • ve IAdviseSinkuygulayan "site" nesnelerini (belge başına bir nesne veya ekleme) zorunlu kılarak OLE belgelerinin IOleClientSite temel ekleme özelliklerini destekleyin.

  • Katıştırılmış nesnelerin veya etkin belgelerin yerinde etkinleştirilmesini destekler. Kapsayıcının site nesneleri uygulamalı IOleInPlaceSite ve kapsayıcının çerçeve nesnesi sağlamalıdır IOleInPlaceFrame.

  • Kapsayıcının belgeyle konuşma mekanizmasını sağlamak için uygulayarak IOleDocumentSite etkin belgelerin uzantılarını destekleyin. İsteğe bağlı olarak kapsayıcı etkin belge arabirimlerini IOleCommandTarget uygulayabilir ve IContinueCallback yazdırma veya kaydetme gibi basit komutları alabilir.

Çerçeve nesnesi, görünüm nesneleri ve kapsayıcı nesnesi, Komut Hedefleri'nde açıklandığı gibi belirli komutların gönderilmesini desteklemek için isteğe bağlı olarak uygulanabilirIOleCommandTarget. Görünüm ve kapsayıcı nesneleri, Programlı Yazdırma'da açıklandığı gibi programlı yazdırmayı desteklemek için isteğe bağlı olarak ve IContinueCallbackuygulayabilirIPrint.

Aşağıdaki şekilde, kapsayıcı ile bileşenleri (solda) ve etkin belge ile görünümleri (sağda) arasındaki kavramsal ilişkiler gösterilmektedir. Etkin belge depolamayı ve verileri yönetir ve görünüm bu verileri görüntüler veya isteğe bağlı olarak yazdırır. Etkin belge katılımı için gerekenler kalın arabirimlerdir; kalın ve italik olanlar isteğe bağlıdır. Diğer tüm arabirimler gereklidir.

Active document container interfaces.

Yalnızca tek bir görünümü destekleyen bir belge, tek bir somut sınıfa hem görünüm hem de belge bileşenlerini (karşılık gelen arabirimleri) uygulayabilir. Ayrıca, bir kerede yalnızca bir görünümü destekleyen bir kapsayıcı sitesi, belge sitesini ve görünüm sitesini tek bir somut site sınıfında birleştirebilir. Ancak kapsayıcının çerçeve nesnesi ayrı kalmalıdır ve kapsayıcının belge bileşeni yalnızca mimarinin tam bir resmini vermek için buraya eklenmiştir; etkin belge kapsama mimarisinden etkilenmez.

Belge Sitesi Nesneleri

Etkin belge kapsama mimarisinde, bir belge sitesi OLE Belgeleri'ndeki istemci site nesnesiyle aynıdır ve arabirimi eklenir IOleDocument :

interface IOleDocumentSite : IUnknown
{
    HRESULT ActivateMe(IOleDocumentView *pViewToActivate);
}

Belge sitesi kavramsal olarak bir veya daha fazla "siteyi görüntüle" nesnesinin kapsayıcısıdır. Her görünüm sitesi nesnesi, belge sitesi tarafından yönetilen belgenin tek tek görünüm nesneleriyle ilişkilendirilir. Kapsayıcı, belge sitesi başına yalnızca tek bir görünümü destekliyorsa, belge sitesini ve görünüm sitesini tek bir somut sınıfla uygulayabilir.

Site Nesnelerini Görüntüle

Kapsayıcının görünüm sitesi nesnesi, belgenin belirli bir görünümü için görüntüleme alanını yönetir. Bir görünüm sitesi, standart IOleInPlaceSite arabirimi desteklemenin yanı sıra genellikle programlı yazdırma denetimi için de uygulanır IContinueCallback . (Görünüm nesnesinin hiçbir zaman sorgu IContinueCallback oluşturmadığını, bu nedenle kapsayıcının istediği herhangi bir nesneye uygulanabileceğini unutmayın.)

Birden çok görünümü destekleyen bir kapsayıcı, belge sitesi içinde birden çok görünüm sitesi nesnesi oluşturabilmelidir. Bu, aracılığıyla IOleInPlaceSitesağlanan her görünüme ayrı etkinleştirme ve devre dışı bırakma hizmetleri sağlar.

Çerçeve Nesnesi

Kapsayıcının çerçeve nesnesi, çoğunlukla OLE Belgelerinde yerinde etkinleştirme için kullanılan çerçevedir, yani menü ve araç çubuğu anlaşmalarını işleyen çerçevedir. Görünüm nesnesinin aracılığıyla bu çerçeve nesnesine IOleInPlaceSite::GetWindowContexterişimi vardır. Bu, kapsayıcı belgesini temsil eden kapsayıcı nesnesine de erişim sağlar (bölme düzeyinde araç çubuğu anlaşması ve kapsanan nesne numaralandırmasını işleyebilir).

Etkin bir belge kapsayıcısı, ekleyerek IOleCommandTargetçerçeveyi genişletebilir. Bu, etkin belgenin kullanıcı arabiriminden kaynaklanan komutları, bu arabirimin bir kapsayıcının aynı komutları (Dosya Yeni, Aç, Farklı Kaydet, Yazdır gibi) göndermesine izin verdiği şekilde almasını sağlar. Kopyalama, Yapıştırma, Geri Alma ve diğerlerini) etkin bir belgeye düzenleyin. Daha fazla bilgi için bkz . Komut Hedefleri.

Ayrıca bkz.

Etkin Belge Kapsaması