Aracılığıyla paylaş


Kap: Gelişmiş Özellikler

Bu makalede, varolan kapsayıcı uygulamalarına isteğe bağlı gelişmiş özellikleri birleştirmek için gereken adımları açıklar.Bu özellikler şunlardır:

  • Bir kapsayıcı ve sunucusu olan bir uygulama

  • Katıştırılmış nesne için ole bağlantısı

Kapsayıcı/sunucu uygulaması oluşturma

Kapsayıcı/sunucu uygulaması, hem kapsayıcı hem de sunucu olarak davranan bir uygulamadır.Windows için Microsoft Word, bu bir örnektir.Windows için Word belgelerini başka uygulamalarda katıştırabilir ve öğeleri Windows için Word belgelerine katıştırabilirsiniz.Konteyner uygulamanızı, hem kapsayıcı hem de (bileşik kap/miniserver uygulama oluşturamazsınız) tam bir sunucu olarak değiştirme işlemi tam sunucu oluşturma işlemine benzer.

Makale sunucuları: Sunucu uygulama sunucu uygulaması uygulamak için gereken görevleri listeler.Kapsayıcı/sunucu uygulaması için bir konteyner uygulaması dönüştürürseniz, sonra aynı bu görevlerden bazılarını gerçekleştirmek konteyner kodu eklenmesi gerekir.Göz önüne almanız gereken önemli noktalar aşağıda listelenmektedir:

  • Konteyner kodu uygulama Sihirbazı'nı önceden oluşturulmuş ole alt sistemi başlatır.Bu destek için herhangi bir şey eklemek veya varolanı değiştirmek gerekmez.

  • Çalıştığınız her yerde belge sınıfının temel sınıfı olan COleDocument, temel sınıf değiştirmek COleServerDoc.

  • Geçersiz kılma COleClientItem::CanActivate server yerinde düzenlemek için kullanıldığı sırada öğeler yerinde düzenleme önlemek için.

    Örneğin, mfc ole örnek OCLIENT kapsayıcı/sunucu uygulamanız tarafından oluşturulmuş bir öğe katıştırılmış.OCLIENT uygulamasını açın ve kapsayıcı/sunucu uygulamanız tarafından oluşturulan madde yerinde düzenlemek.Uygulamanızın öğeyi düzenlerken, mfc ole örnek tarafından oluşturulan bir madde gömmek istediğiniz karar HIERSVR.Bunu yapmak için yerinde etkinleştirme kullanamazsınız.Bu öğeyi etkinleştirmek için HIERSVR tam olarak açmanız gerekir.Microsoft Foundation Class Library ole bu özelliği desteklemediği için geçersiz kılma COleClientItem::CanActivate bu durum için denetleyin ve uygulamanızın olası bir çalışma zamanı hatası verir.

Yeni bir uygulama oluşturuyorsanız ve kapsayıcı/sunucu uygulaması çalışmasını istiyorsanız, uygulama Sihirbazı ve bu desteği ole Seçenekleri iletişim kutusundaki seçeneği otomatik olarak oluşturulan seçin.Bu makalede daha fazla bilgi için bkz: Genel Bakış: ActiveX denetimi kapsayıcısı oluşturuluyor.mfc Örnekleri mfc Örnekleri hakkında daha fazla bilgi için bkz.

Not kendisine bir MDI uygulamasını eklenemez.SDI uygulamalarına olmadığı sürece bir kapsayıcı/sunucu uygulama kendi içine eklenemez.

Katıştırılmış nesneler için bağlantılar

ole bağlantısı için konteyner uygulamanızın içine katıştırılmış nesne içeren bir belge oluşturmak bir kullanıcı bağlantılar katıştırılmış nesneleri özelliğini etkinleştirir.Örneğin, bir sözcük işlemci katıştırılmış bir elektronik tablo içeren bir belge oluşturun.Uygulamanızın bağlantılar katıştırılmış nesneleri destekliyorsa, sözcük işlemcinin belgede bulunan elektronik bir bağlantı yapıştırmak.Bu özellik, burada sözcük işlemci başlangıçta var bilmeden elektronik tabloda bulunan bilgileri kullanmak uygulama sağlar.

Uygulamanızda katıştırılmış nesneleri bağlamak için

  1. Belge sınıf türetin COleLinkingDoc yerine COleDocument.

  2. ole sınıfı kimliği oluşturur (CLSID) uygulamanızın sınıf kimliği ole geliştirme araçları ile dahil Oluşturucu kullanarak.

  3. Uygulama ole ile kaydettirin.

  4. Oluşturma bir COleTemplateServer nesne, application sınıfının üyesi olarak.

  5. Uygulama sınıfının içinde InitInstance üye işlev için aşağıdakileri yapın:

    • Bağlanma, COleTemplateServer çağırarak nesnenin belge şablonlarınızı nesnesine ConnectTemplate üye işlevi.

    • Call COleTemplateServer::RegisterAll ole sistem ile tüm sınıf nesnelerini kaydetmek için üye işlevi.

    • Call COleTemplateServer::UpdateRegistry.Tek parametre UpdateRegistry olması gereken OAT_CONTAINER , uygulama "/ gömülü" anahtarıyla başlatılmaz.Bu uygulama bağlantılar katıştırılmış nesneleri destekleyen bir kapsayıcı olarak kaydeder.

      "/ Gömülü" anahtarı ile başlatılan uygulama, kendi ana penceresinde, bir sunucu uygulamasına benzer görünür değil.

mfc ole örnek OCLIENT bu özelliği uygular.Bunun nasıl yapılacağı, bir örnek için bkz: InitInstance OCLIENT işlevinde.Bu örnek uygulama, cpp dosyası.

Ayrıca bkz.

Kavramlar

Kapsayıcılar

Sunucuları