Metode IFunctionDiscoveryNotification::OnUpdate (functiondiscoveryapi.h)
[Penemuan Fungsi tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]
Menunjukkan bahwa instans fungsi telah ditambahkan, dihapus, atau diubah. Metode ini diimplementasikan oleh program klien dan dipanggil oleh Function Discovery.
Sintaks
HRESULT OnUpdate(
[in] QueryUpdateAction enumQueryUpdateAction,
[in] FDQUERYCONTEXT fdqcQueryContext,
[in] IFunctionInstance *pIFunctionInstance
);
Parameter
[in] enumQueryUpdateAction
Nilai QueryUpdateAction yang menentukan jenis tindakan yang dilakukan Penemuan Fungsi pada instans fungsi yang ditentukan.
[in] fdqcQueryContext
Konteks yang terdaftar untuk pemberitahuan perubahan. Jenis FDQUERYCONTEXT didefinisikan sebagai DWORDLONG. Parameter ini bisa NULL.
[in] pIFunctionInstance
Penunjuk antarmuka IFunctionInstance yang mewakili instans fungsi yang terpengaruh oleh pembaruan.
Nilai kembali
Implementasi program klien dari metode OnUpdate harus mengembalikan salah satu nilai HRESULT berikut kepada pemanggil.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil diselesaikan. |
|
Nilai salah satu parameter input tidak valid. |
Keterangan
Jangan panggil Rilis pada objek kueri dari metode ini. Melakukannya bisa menyebabkan kebuntuan. Jika Rilis dipanggil pada objek kueri dari utas lain saat panggilan balik sedang dalam proses, objek tidak akan dirilis sampai panggilan balik selesai.
Semua pemberitahuan yang diteruskan ke Penemuan Fungsi oleh penyedia diantrekan dan dikembalikan ke klien satu per satu. Panggilan balik disinkronkan sehingga klien hanya akan menerima satu pemberitahuan pada satu waktu.
Karena panggilan metode IFunctionDiscoveryNotification lainnya dapat dilakukan di utas lain, setiap perubahan yang dilakukan pada status utas selama panggilan harus dipulihkan sebelum keluar dari metode .
Contoh
Kode berikut menunjukkan implementasi handler OnUpdate. Kelas CMyNotificationListener didefinisikan dalam topik IFunctionDiscoveryNotification .
#include <windows.h>
HRESULT STDMETHODCALLTYPE CMyNotificationListener::OnUpdate(
IN QueryUpdateAction Action,
IN FDQUERYCONTEXT fdqcQueryContext,
IN IFunctionInstance *pInstance)
{
HRESULT hr = S_OK;
switch (Action) {
case QUA_ADD:
SetEvent( m_hAddEvent );
break;
case QUA_REMOVE:
SetEvent( m_hRemoveEvent );
break;
case QUA_CHANGE:
SetEvent( m_hChangeEvent );
break;
}
return S_OK;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | functiondiscoveryapi.h |