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


Метод IUPnPService::AddCallback (upnp.h)

Метод AddCallback регистрирует обратный вызов приложения с помощью платформы UPnP.

Синтаксис

HRESULT AddCallback(
  [in] IUnknown *pUnkCallback
);

Параметры

[in] pUnkCallback

Указывает ссылку на интерфейс, содержащий регистрируемую функцию обратного вызова. Объект, на который ссылается pUnkCallback , должен поддерживать интерфейс IUPnPServiceCallback или интерфейс IDispatch .

Возвращаемое значение

Если метод выполнен успешно, возвращаемое значение будет S_OK. В противном случае метод возвращает один из кодов com-ошибок, определенных в WinError.h.

Комментарии

Не вызывайте этот метод из обратного вызова; Происходит повреждение памяти.

Если зарегистрировано несколько обратных вызовов, платформа UPnP последовательно вызывает обратные вызовы.

Объект, на который ссылается pUnkCallback , должен поддерживать интерфейс IUPnPServiceCallback или интерфейс IDispatch . Метод AddCallback сначала запрашивает pUnkCallback для интерфейса IUPnPServiceCallback . Если этот интерфейс не поддерживается, метод AddCallback запрашивает pUnkCallback для интерфейса IDispatch . Если интерфейс IDispatch не поддерживается, обе проверки завершились сбоем и метод AddCallback возвращает E_FAIL.

Если поддерживается только IDispatch , объект службы вызывает обратный вызов путем вызова IDispatch::Invoke с идентификатором диспетчеризации, указанным как ноль, что указывает метод по умолчанию. Этот метод IDispatch по умолчанию передает те же параметры, что и метод IUPnPServiceCallback , но первым переданным параметром является строка, указывающая причину вызова обратного вызова. Допустимые значения: VARIABLE_UPDATE и SERVICE_INSTANCE_DIED.

Этот метод имеет следующие аргументы:

  • Причина вызова обратного вызова. Он вызывается из-за изменения переменной состояния (VARIABLE_UPDATE) или из-за недоступности экземпляра службы (SERVICE_INSTANCE_DIED).
  • Объект службы, для которого вызывается обратный вызов.

Если обратный вызов вызывается для изменения переменной состояния, метод передает два дополнительных аргумента:

  • Имя переменной, которая была изменена.
  • Новое значение.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header upnp.h
DLL Upnp.dll

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

IUPnPService

IUPnPServiceCallback