Метод IUPnPDeviceFinder::CreateAsyncFind (upnp.h)
Метод CreateAsyncFind создает асинхронную операцию поиска.
Синтаксис
HRESULT CreateAsyncFind(
[in] BSTR bstrTypeURI,
[in] DWORD dwFlags,
[in] IUnknown *punkDeviceFinderCallback,
[out] LONG *plFindData
);
Параметры
[in] bstrTypeURI
Указывает универсальный код ресурса (URI), по которому выполняется поиск.
[in] dwFlags
Укажите ноль. Этот параметр зарезервирован для использования в будущем.
[in] punkDeviceFinderCallback
Ссылка на объект интерфейса IUnknown , указывающий обратный вызов, который платформа UPnP должна использовать для передачи результатов этого асинхронного поиска.
Объект, на который ссылается pUnkCallback , должен поддерживать интерфейс IUPnPDeviceFinderCallback или интерфейс IDispatch . Объект, на который ссылается pUnkCallback , может поддерживать интерфейс IUPnPDeviceFinderAddCallbackWithInterface в дополнение к интерфейсу IUPnPDeviceFinderCallback .
[out] plFindData
Ссылка на объект LONG , который получает идентификатор для этого конкретного поиска. Приложение должно предоставить этот идентификатор другим асинхронным методам поиска, которые вызываются.
Возвращаемое значение
Если метод выполнен успешно, возвращаемое значение будет S_OK. В противном случае метод возвращает один из кодов com-ошибок, определенных в WinError.h.
Комментарии
Этот метод возвращает немедленно. платформа UPnP уведомляет вызывающий объект о любых результатах поиска с помощью обратного вызова, указанного pUnkCallback. Этот метод возвращает идентификатор поиска; вызывающий объект должен использовать IUPnPDeviceFinder::StartAsyncFind , чтобы начать поиск.
В C++ объект, на который ссылается pUnkCallback , должен поддерживать интерфейс IUPnPDeviceFinderCallback или интерфейс IDispatch . При необходимости объект, на который ссылается pUnkCallback , может поддерживать интерфейс IUPnPDeviceFinderAddCallbackWithInterface в дополнение к интерфейсу IUPnPDeviceFinderCallback . Платформа UPnP сначала запрашивает интерфейс PUnkCallback для интерфейса IUPnPDeviceFinderAddCallbackWithInterface . Если интерфейс не поддерживается, платформа UPnP затем запрашивает pUnkCallback для интерфейса IUPnPDeviceFinderCallback . Если она не поддерживается, платформа UPnP запрашивает pUnkCallback для интерфейса IDispatch . Если интерфейс IDispatch не поддерживается, платформа UPnP возвращает E_FAIL.
В VBScript вторым аргументом должен быть GetRef(funcname), где funcname — имя подпрограммы обратного вызова.
В Visual Basic функция обратного вызова должна быть объявлена с тремя параметрами. Функция обратного вызова использует значения, указанные для каждого параметра:
- param1 — объект Device нового устройства; Он действителен, только если параметр param3 равен нулю.
- param2 — это определяемый пользователем идентификатор найденного или удаленного устройства; Он действителен, только если параметр param3 равен нулю или единице.
- param3 — это тип обратного вызова. Допустимые значения:
- 0 — указывает на новое устройство.
- 1 — указывает, что устройство было удалено.
- 2 — указывает, что поиск завершен.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Ни одна версия не поддерживается |
Целевая платформа | Windows |
Header | upnp.h |
DLL | Upnp.dll |