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