Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция обнаружения доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]
Получает любые события добавления, удаления или обновления во время уведомления.
Синтаксис
HRESULT OnEvent(
[in] DWORD dwEventID,
[in] FDQUERYCONTEXT fdqcQueryContext,
[in] const WCHAR *pszProvider
);
Параметры
[in] dwEventID
Тип события.
| Значение | Значение |
|---|---|
|
Поиск был выполнен поставщиком. Как правило, это уведомление отправляется поставщиками сетевых протоколов, где протокол задает определенный интервал, в котором будут приниматься результаты поиска. Поставщики WSD и SSDP используют этот тип события.
После отправки этого уведомления запрос игнорирует все входящие ответы на первоначальный запрос поиска или пробы. Однако запрос по-прежнему будет отслеживать сообщения Hello или Bye (используется для указания, когда устройство добавляется или удаляется). Запрос будет продолжать отслеживать эти события до тех пор, пока не будет вызван выпуск для объекта запроса. Это уведомление не будет отправлено при возникновении катастрофической ошибки. Сведения о том, как это событие реализуется или используется определенным поставщиком, см. по ссылке на документацию по поставщику в разделе Встроенные поставщики . |
|
Не используется клиентами обнаружения функций. |
|
Не используется клиентами обнаружения функций. |
|
Ip-адрес сетевой карты изменен. Поставщик WSD реализует это уведомление. События могут отправляться при возникновении события питания (например, при выходе компьютера из спящего режима) или при перемещении с помощью ноутбука.
Примечание Это значение недоступно для использования в Windows Vista. Он доступен в Windows Vista с пакетом обновления 1 (SP1), Windows Server 2008 и последующих версиях операционной системы.
|
[in] fdqcQueryContext
Контекст, зарегистрированный для уведомления об изменениях. Тип FDQUERYCONTEXT определяется как DWORDLONG. Этот параметр может принимать значение NULL.
[in] pszProvider
Имя поставщика.
Возвращаемое значение
Реализация метода OnEvent клиентской программы должна возвращать вызывающей стороне одно из следующих значений HRESULT .
| Код возврата | Описание |
|---|---|
|
Метод завершился успешно. |
|
Недопустимое значение одного из входных параметров. |
Комментарии
Поставщики обнаружения функций (SSDP и WSD) используют этот метод для реализации уведомлений о завершении прохода поиска.
Не вызывайте Release для объекта запроса из этого метода. Это может привести к взаимоблокировки. Если метод Release вызывается для объекта запроса из другого потока во время обратного вызова, объект не будет освобожден до завершения обратного вызова.
Все уведомления, передаваемые в обнаружение функций поставщиками, помещаются в очередь и возвращаются клиенту по одному. Обратные вызовы синхронизируются таким образом, что клиент будет получать только одно уведомление за раз.
Так как другие вызовы метода IFunctionDiscoveryNotification могут выполняться в других потоках, все изменения, внесенные в состояние потока во время вызова, должны быть восстановлены перед выходом из метода .
Примеры
В следующем примере показана реализация обработчика OnEvent. Класс CMyNotificationListener определен в разделе 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;
}
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Целевая платформа | Windows |
| Header | functiondiscoveryapi.h |