Metode IAdviseSink::OnDataChange (objidl.h)
Dipanggil oleh server untuk memberi tahu objek data yang saat ini terdaftar menyarankan sink bahwa data dalam objek telah berubah.
Sintaks
void OnDataChange(
[in] FORMATETC *pFormatetc,
[in] STGMEDIUM *pStgmed
);
Parameter
[in] pFormatetc
Penunjuk ke struktur FORMATETC , yang menjelaskan format, perangkat target, penyajian, dan informasi penyimpanan objek data panggilan.
[in] pStgmed
Penunjuk ke struktur STGMEDIUM , yang mendefinisikan media penyimpanan (memori global, file disk, objek penyimpanan, objek aliran, objek GDI, atau tidak terdefinisi) dan kepemilikan media tersebut untuk objek data panggilan.
Nilai kembali
Tidak ada
Keterangan
Penangan objek dan kontainer objek tautan mengimplementasikan IAdviseSink::OnDataChange untuk mengambil langkah-langkah yang sesuai ketika diberi tahu bahwa data dalam objek telah berubah. Mereka juga harus memanggil IDataObject::D Advise untuk menyiapkan koneksi nasihat dengan objek yang datanya mereka minati.
Kontainer yang memanfaatkan dukungan penembolokan OLE tidak perlu mendaftar untuk pemberitahuan perubahan data, karena informasi yang diperlukan untuk memperbarui presentasi kontainer objek, termasuk perubahan apa pun dalam datanya, dipertahankan dalam cache objek.
Catatan untuk Pelaksana
Jika Anda menerapkan IAdviseSink::OnDataChange untuk kontainer, ingatlah bahwa metode ini asinkron dan bahwa melakukan panggilan sinkron dalam metode asinkron tidak valid. Oleh karena itu, Anda tidak dapat memanggil IDataObject::GetData untuk mendapatkan data yang Anda butuhkan untuk memperbarui objek Anda. Sebagai gantinya, Anda memposting pesan internal, atau membatalkan persegi panjang untuk data yang diubah dengan memanggil InvalidateRect dan menunggu pesan WM_PAINT , di mana Anda bebas mendapatkan data dan memperbarui objek.Data itu sendiri, yang hanya berlaku selama panggilan, diteruskan menggunakan media penyimpanan yang diarahkan oleh pStgmed. Karena penelepon memiliki media, sink yang disarankan tidak boleh membebaskannya. Selain itu, jika pStgmed menunjuk ke antarmuka IStorage atau IStream , sink tidak boleh menambah jumlah referensi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | objidl.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk