BeginSubscribeToEvents 在异步模式下启动事件订阅,并将应用程序回调注册到 UPnP 框架。
语法
HRESULT BeginSubscribeToEvents(
[in] IUnknown *pUnkCallback,
[in, optional] IUPnPAsyncResult *pAsyncResult,
[out] PULONG64 pullRequestID
);
参数
[in] pUnkCallback
指定对接口对象的引用,该接口对象包含要注册的回调。 此对象必须支持 IUPnPServiceCallback 接口或 IDispatch 接口。
[in, optional] pAsyncResult
指定对 IUPnPAsyncResult 对象的引用。 BeginSubscribeToEvents 调用完成后,UPnP 将使用 IUPnPAsyncResult::AsyncOperationComplete 方法通知控制点。
[out] pullRequestID
指向用于标识异步 I/O 操作的 64 位 ULONG 值的指针。 控制点必须在通过 EndSubscribeToEvents 或 CancelAsyncOperation 结束或取消操作时使用此句柄。
返回值
如果成功,则返回 S_OK。 否则,方法将返回 WinError.h 中定义的 COM 错误代码或以下值之一:
| 返回代码 | 说明 |
|---|---|
|
未能启动异步操作。 |
注意 某些值可以指示已从 UPnP 认证的设备收到错误。 有关详细信息,请参阅 设备错误代码。
注解
在使用 BeginQueryStateVariable 查询任何事件状态变量之前,应先完成事件订阅。 如果未发生这种情况,则返回 UPNP_E_VARIABLE_VALUE_UNKNOWN ,事件订阅将在内部发生。 因此,下一个 BeginQueryStateVariable 调用将成功。
注意 对于没有事件变量的服务, BeginQueryStateVariable 将始终按预期方式运行。
要求
| 要求 | 值 |
|---|---|
| 最低受支持的客户端 | Windows 8 [仅限桌面应用] |
| 最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
| 目标平台 | Windows |
| 标头 | upnp.h |
| DLL | Upnp.dll |