Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
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.
Temel sınıfı
COleDocumentolan her belge sınıfında, bu temel sınıfıCOleServerDocile değ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,
COleClientItem::CanActivateöğesini geçersiz kılmak bu durumu kontrol etmenize 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.
Eklenmiş Nesnelere Bağlantılar
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.
Uygulamanızdaki katıştırılmış nesnelere bağlanmak için
Belge sınıfınızı
COleLinkingDocyerineCOleDocumentöğesinden türetin.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.
Uygulamayı OLE'ye kaydedin.
Uygulama sınıfınızın üyesi olarak bir
COleTemplateServernesne oluşturun.Uygulama sınıfınızın
InitInstanceüye işlevinde aşağıdakileri yapın:Nesnenin
COleTemplateServerüye işlevini çağırarak nesneniziConnectTemplatebelge şablonlarınıza bağlayın.COleTemplateServer::RegisterAllTüm sınıf nesnelerini OLE sistemine kaydetmek için üye işlevini çağırın.COleTemplateServer::UpdateRegistry'ı arayın. Uygulama "/Embedded" anahtarıyla başlatılmamışsa tek parametresiUpdateRegistryOAT_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 bu örnek uygulamanın InitInstance dosyasındaki fonksiyonuna bakın.