Veri Bildirimi

Dış kaynaktaki verileri kullanan nesnelerin bazen bu kaynaktaki veriler değiştiğinde bilgilendirilmesi gerekir. Örneğin, bazı elektronik tablolardaki verileri kullanan bir hisse senedi değerleyici bant görüntüleyicisinin, bu verilerin görünümünü güncelleştirebilmesi için değiştiğinde bilgilendirilmesi gerekir. Benzer şekilde, bileşik bir belgenin veri önbelleklerini güncelleştirebilmesi için ekli nesnelerindeki veri değişiklikleri hakkında bilgi alması gerekir. Bu gibi durumlarda, verilerin dinamik olarak güncelleştirilmesinin istendiği durumlarda, veri kaynakları, tüketicilerin verilerini güncelleştirmek için her şeyi bırakmalarını zorunlu bırakmadan veri tüketicilerini gerçekleşen değişiklikleri bildirme mekanizması gerektirir. İdeal olarak, veri kaynağında bir değişiklik olduğu bildirilmişse, tüketen bir nesne uygun zamanda güncelleştirilmiş bir kopya isteyebilir.

COM'un bu tür zaman uyumsuz bildirimleri işleme mekanizması, yalnızca IAdviseSinkadlı bir arabirim uygulayan herhangi bir COM nesnesi olan öneri havuzu olarak adlandırılan bir nesnedir. Veri tüketicileri IAdviseSinkuygular. İlgi çekici veri nesnesine bir işaretçi sunarak bildirim almak için kaydolırlar.

IAdviseSink arabirimleri, zaman uyumsuz bildirimleri almak için aşağıdaki yöntemleri kullanıma sunar:

Yöntem Öneri havuzuna
OnDataChange
Çağıran nesnenin verileri değişti.
OnViewChange
Çağıran nesneyi çizme yönergeleri değişti.
OnRename
Çağıran nesnenin adı değişti.
Kaydet
Çağıran nesne kalıcı depolama alanına kaydedildi.
OnClose
Çağıran nesne kapatıldı.

Tabloda gösterildiği gibi IAdviseSink arabirimi, çağıran nesnenin verilerindeki değişiklikler dışındaki olayların öneri havuzuna bildirilmesi için yöntemleri kullanıma sunar. Çağıran nesne, kendisini çizme şekli değiştiğinde veya yeniden adlandırıldığında, kaydedildiğinde veya kapatıldığında da havuza bildirimde bulunabilir. Bu diğer bildirimler çoğunlukla veya tamamen bileşik belgeler bağlamında kullanılır, ancak bildirim mekanizması aynıdır. Bileşik belge bildirimleri hakkında daha fazla bilgi için bkz. "Bileşik Belgeler."

Öneri havuzundan yararlanmak için bir veri kaynağının IDataObject::D Advise, IDataObject::D Unadviseuygulaması ve IDataObject::EnumDAdviseuygulaması gerekir. Veri tüketicisi, bir veri nesnesine nesnenin verileri değiştiğinde bildirim almak istediği bildirmek için DAdvise yöntemini çağırır. Tüketen nesne, bu bağlantıyı kapatmak için DUnadvise yöntemini çağırır. İlgili taraflardan herhangi biri, veri nesnesiyle danışmanlık bağlantısı olan nesne sayısını öğrenmek için EnumDAdvise yöntemini çağırabilir.

Kaynakta veriler değiştiğinde, veri nesnesi bildirim almak üzere kaydolan tüm veri tüketicilerinde IAdviseSink::OnDataChangeçağırır. Veri kaynakları, danışmanlık bağlantılarını izlemek ve bildirimlerin gönderilmesini yönetmek için veri önerisi sahibi olarak adlandırılan nesneyi kullanır. IDataAdviseHolder arabirimini uygulayarak kendi veri öneri sahibinizi oluşturabilirsiniz. Alternatif olarak, CreateDataAdviseHolderyardımcı işlevini çağırarak COM'un bunu sizin için yapmasına izin vekleyebilirsiniz.

Veri Aktarımı