Metode IFunctionDiscoveryNotification::OnEvent (functiondiscoveryapi.h)

[Penemuan Fungsi tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]

Menerima peristiwa tambahkan, hapus, atau perbarui selama pemberitahuan.

Sintaks

HRESULT OnEvent(
  [in] DWORD          dwEventID,
  [in] FDQUERYCONTEXT fdqcQueryContext,
  [in] const WCHAR    *pszProvider
);

Parameter

[in] dwEventID

Jenis kejadian.

Nilai Makna
FD_EVENTID_SEARCHCOMPLETE
1000
Pencarian diselesaikan oleh penyedia. Biasanya, pemberitahuan ini dikirim oleh penyedia protokol jaringan di mana protokol menentukan interval yang ditentukan di mana hasil pencarian akan diterima. Penyedia WSD dan SSDP menggunakan jenis kejadian ini.

Setelah pemberitahuan ini dikirim, kueri mengabaikan semua respons masuk ke pencarian awal atau permintaan pemeriksaan. Namun, kueri masih akan memantau pesan Halo atau Bye (digunakan untuk menunjukkan kapan perangkat ditambahkan atau dihapus). Kueri akan terus memantau peristiwa ini hingga Rilis dipanggil pada objek kueri.

Pemberitahuan ini tidak akan dikirim jika terjadi kesalahan besar.

Untuk informasi tentang bagaimana peristiwa ini diterapkan atau digunakan oleh penyedia tertentu, ikuti tautan ke dokumentasi penyedia dari topik Penyedia Bawaan .

FD_EVENTID_ASYNCTHREADEXIT
1001
Tidak digunakan oleh klien Penemuan Fungsi.
FD_EVENTID_SEARCHSTART
1002
Tidak digunakan oleh klien Penemuan Fungsi.
FD_EVENTID_IPADDRESSCHANGE
1003
Alamat IP NIC berubah. Penyedia WSD mengimplementasikan pemberitahuan ini. Peristiwa dapat dikirim ketika peristiwa daya terjadi (misalnya, ketika mesin bangun dari tidur) atau saat menjelajah dengan laptop.
Catatan Nilai ini tidak tersedia untuk digunakan pada Windows Vista. Ini tersedia di Windows Vista dengan SP1, Windows Server 2008, dan versi sistem operasi berikutnya.
 

[in] fdqcQueryContext

Konteks yang terdaftar untuk pemberitahuan perubahan. Jenis FDQUERYCONTEXT didefinisikan sebagai DWORDLONG. Parameter ini bisa NULL.

[in] pszProvider

Nama penyedia.

Mengembalikan nilai

Implementasi program klien dari metode OnEvent 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

Penyedia Penemuan Fungsi (SSDP dan WSD) menggunakan metode ini untuk mengimplementasikan pemberitahuan bahwa pass pencarian selesai.

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

Contoh berikut menunjukkan implementasi handler OnEvent. Kelas CMyNotificationListener didefinisikan dalam topik IFunctionDiscoveryNotification .

#include <windows.h>

HRESULT CMyNotificationListener::OnEvent(
                                         IN DWORD dwEventID,
                                         IN FDQUERYCONTEXT fdqcQueryContext,
                                         IN const WCHAR * pszProvider
                                         )
{
    HRESULT hr = S_OK;
    HANDLE hSearchComplete = INVALID_HANDLE_VALUE;
    hSearchComplete = OpenEventW( EVENT_ALL_ACCESS, 
                                  FALSE, 
                                  L"SearchComplete" );
    
    if( NULL == hSearchComplete )
    {
        return hr;
    }

    if( FD_EVENTID_SEARCHCOMPLETE == dwEventID )
    {
        SetEvent( hSearchComplete );
    }

    CloseHandle( hSearchComplete );
    
    return hr;
} 

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