IUPnPService::AddCallback 方法 (upnp.h)

AddCallback 方法向 UPnP 框架注册应用程序的回调。

语法

HRESULT AddCallback(
  [in] IUnknown *pUnkCallback
);

参数

[in] pUnkCallback

指定对接口的引用,该接口包含要注册的回调。 pUnkCallback 引用的对象必须支持 IUPnPServiceCallback 接口或 IDispatch 接口。

返回值

如果方法成功,则返回值S_OK。 否则,方法将返回 WinError.h 中定义的 COM 错误代码之一。

注解

不要从回调中调用此方法;内存损坏。

如果注册了多个回调,则 UPnP 框架将按顺序调用回调。

pUnkCallback 引用的对象必须支持 IUPnPServiceCallback 接口或 IDispatch 接口。 AddCallback 方法首先查询 IUPnPServiceCallback 接口的 pUnkCallback。 如果不支持此接口, 则 AddCallback 方法将查询 pUnkCallback 以获取 IDispatch 接口。 如果 不支持 IDispatch 接口,则两个检查都失败, AddCallback 方法将返回E_FAIL。

如果仅支持 IDispatch则服务对象 通过调用 IDispatch::Invoke 并指定为零的调度 ID(指示默认方法)来调用回调。 此默认 IDispatch 方法传递的参数与 IUPnPServiceCallback 方法相同,但传递的第一个参数是一个字符串,指示调用回调的原因。 有效值为VARIABLE_UPDATE和SERVICE_INSTANCE_DIED。

此方法具有以下参数:

  • 调用回调的原因。 由于状态变量 (VARIABLE_UPDATE) 更改,或者服务实例 (SERVICE_INSTANCE_DIED) 不可用,因此调用它。
  • 为其调用回调的服务对象。

如果为状态变量更改调用了回调,则会向 方法传递两个附加参数:

  • 更改的变量的名称。
  • 新值。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 upnp.h
DLL Upnp.dll

另请参阅

IUPnPService

IUPnPServiceCallback