Bagikan melalui


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

IAdviseSink