Bagikan melalui


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
S_OK
Metode berhasil diselesaikan.
E_INVALIDARG
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

Lihat juga

IFunctionDiscoveryNotification