Aracılığıyla paylaş


Kapsayıcılar: Gelişmiş Özellikler

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

Kapsayıcı/Sunucu Uygulaması Oluşturma

Kapsayıcı/sunucu uygulaması, hem kapsayıcı hem de sunucu işlevi gören bir uygulamadır. Windows için Microsoft Word buna bir örnektir. Windows için Word belgelerini diğer uygulamalara ekleyebilir ve windows için Word belgelerine de öğe ekleyebilirsiniz. Kapsayıcı uygulamanızı hem kapsayıcı hem de tam sunucu olacak şekilde değiştirme işlemi (karma bir kapsayıcı/mini sunucu uygulaması oluşturamazsınız) tam sunucu oluşturma işlemine benzer.

Sunucular: Sunucu Uygulama makalesi , bir sunucu uygulamasını uygulamak için gereken birkaç görevi listeler. Kapsayıcı uygulamasını bir kapsayıcı/sunucu uygulamasına dönüştürürseniz, kapsayıcıya kod ekleyerek bu görevlerin bazılarını gerçekleştirmeniz gerekir. Aşağıda dikkate alınması gereken önemli şeyler listelenir:

  • Uygulama sihirbazı tarafından oluşturulan kapsayıcı kodu OLE alt sistemini zaten başlatır. Bu destek için herhangi bir şeyi değiştirmeniz veya eklemeniz gerekmez.

  • Belge sınıfının temel sınıfı nerede olursa olsun COleDocument, temel sınıfı olarak COleServerDocdeğiştirin.

  • Sunucu yerinde düzenlemek için kullanılırken öğelerin yerinde düzenlenmesini önlemek için geçersiz kılın COleClientItem::CanActivate .

    Örneğin, MFC OLE örneği OCLIENT kapsayıcı/sunucu uygulamanız tarafından oluşturulan bir öğeyi katıştırmıştır. OCLIENT uygulamasını açar ve kapsayıcı/sunucu uygulamanız tarafından oluşturulan öğeyi yerinde düzenlersiniz. Uygulamanızın öğesini düzenlerken, MFC OLE örneği HIERSVR tarafından oluşturulan bir öğeyi eklemek istediğinize karar verirsiniz. Bunu yapmak için yerinde etkinleştirme kullanamazsınız. Bu öğeyi etkinleştirmek için HIERSVR'ı tamamen açmanız gerekir. Microsoft Foundation Sınıf Kitaplığı bu OLE özelliğini desteklemediğinden geçersiz kılma COleClientItem::CanActivate , bu durumu denetlemenize ve uygulamanızda olası bir çalışma zamanı hatasını önlemenize olanak tanır.

Yeni bir uygulama oluşturuyorsanız ve kapsayıcı/sunucu uygulaması olarak çalışmasını istiyorsanız, uygulama sihirbazındaki OLE Seçenekleri iletişim kutusunda bu seçeneği belirleyin; bu destek otomatik olarak oluşturulur. Daha fazla bilgi için Genel Bakış: ActiveX Denetim Kapsayıcısı Oluşturma makalesine bakın. MFC örnekleri hakkında bilgi için bkz . MFC Örnekleri.

Bir MDI uygulamasını kendi içine ekleyemeyeceğinizi unutmayın. Kapsayıcı/sunucu olan bir uygulama, bir SDI uygulaması olmadığı sürece kendisine eklenemez.

Katıştırılmış Nesnelere Bağlantılar özelliği, kullanıcının kapsayıcı uygulamanızın içindeki katıştırılmış bir nesneye OLE bağlantısı olan bir belge oluşturmasına olanak tanır. Örneğin, eklenmiş bir elektronik tablo içeren bir sözcük işlemcisinde belge oluşturun. Uygulamanız eklenmiş nesnelere bağlantıları destekliyorsa, sözcük işlemcisinin belgesinde yer alan elektronik tabloya bir bağlantı yapıştırabilir. Bu özellik, uygulamanızın elektronik tabloda yer alan bilgileri, sözcük işlemcisinin ilk olarak nereden aldığını bilmeden kullanmasını sağlar.

  1. Belge sınıfınızı yerine öğesinden COleLinkingDoc COleDocumenttüretin.

  2. OLE Geliştirme Araçları'na dahil edilen Sınıf Kimliği Oluşturucusunu kullanarak uygulamanız için bir OLE sınıf kimliği (CLSID) oluşturun.

  3. Uygulamayı OLE'ye kaydedin.

  4. Uygulama sınıfınızın üyesi olarak bir COleTemplateServer nesne oluşturun.

  5. Uygulama sınıfınızın InitInstance üye işlevinde aşağıdakileri yapın:

    • Nesnenin üye işlevini çağırarak nesnenizi COleTemplateServer ConnectTemplate belge şablonlarınıza Bağlan.

    • COleTemplateServer::RegisterAll Tüm sınıf nesnelerini OLE sistemine kaydetmek için üye işlevini çağırın.

    • COleTemplateServer::UpdateRegistry çağrısı yapın. Uygulama "/Embedded" anahtarıyla başlatılmamışsa tek parametresi UpdateRegistry OAT_CONTAINER olmalıdır. Bu, uygulamayı ekli nesnelere yönelik bağlantıları destekleyebilecek bir kapsayıcı olarak kaydeder.

      Uygulama "/Embedded" anahtarıyla başlatılırsa, sunucu uygulamasına benzer şekilde ana penceresini göstermemelidir.

MFC OLE örneği OCLIENT bu özelliği uygular. Bunun nasıl yapıldığını gösteren bir örnek için OCLIENT işlevine bakınInitInstance. Bu örnek uygulamanın CPP dosyası.

Ayrıca bkz.

Konteynerler
Sunucular