Поделиться через


Метод 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

См. также раздел

IUPnPDeviceFinder

IUPnPDeviceFinder::StartAsyncFind