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 |