IUPnPDeviceFinder::CreateAsyncFind 方法 (upnp.h)
CreateAsyncFind 方法创建异步搜索操作。
语法
HRESULT CreateAsyncFind(
[in] BSTR bstrTypeURI,
[in] DWORD dwFlags,
[in] IUnknown *punkDeviceFinderCallback,
[out] LONG *plFindData
);
参数
[in] bstrTypeURI
指定要搜索的统一资源标识符 (URI) 。
[in] dwFlags
指定零。 此参数留待将来使用。
[in] punkDeviceFinderCallback
对 IUnknown 接口对象的引用,该对象指定 UPnP 框架必须用来传达此异步搜索结果的回调。
pUnkCallback 引用的对象必须支持 IUPnPDeviceFinderCallback 接口或 IDispatch 接口。 pUnkCallback 引用的对象除了 IUPnPDeviceFinderCallback 接口外,还可能支持 IUPnPDeviceFinderCallback 接口。
[out] plFindData
对接收此特定搜索的标识符的 LONG 的引用。 应用程序必须向调用的其他异步搜索方法提供此标识符。
返回值
如果方法成功,则返回值S_OK。 否则,方法将返回 WinError.h 中定义的 COM 错误代码之一。
注解
此方法将立即返回;UPnP 框架使用 pUnkCallback 指定的回调通知调用方任何搜索结果。 此方法返回搜索标识符;调用方必须使用 IUPnPDeviceFinder::StartAsyncFind 才能实际开始搜索。
在 C++ 中, pUnkCallback 引用的对象必须支持 IUPnPDeviceFinderCallback 接口或 IDispatch 接口。 (可选)pUnkCallback 引用的对象除了 IUPnPDeviceFinderCallback 接口外,还可能支持 IUPnPDeviceFinderCallback 接口。 UPnP 框架首先查询 IUPnPDeviceFinderAddCallbackWithInterface 接口的 pUnkCallback。 如果接口不受支持,UPnP 框架接下来会查询 IUPnPDeviceFinderCallback 接口的 pUnkCallback。 如果不支持,则 UPnP 框架会查询 pUnkCallback 以获取 IDispatch 接口。 如果 不支持 IDispatch 接口,则 UPnP 框架将返回E_FAIL。
在 VBScript 中,第二个参数必须是 GetRef (funcname) ,其中 funcname 是回调子例程的名称。
在 Visual Basic 中,必须使用三个参数声明回调函数。 回调函数使用为每个参数指定的值:
- param1 是新设备的 Device 对象;仅当 param3 为零时,它才有效。
- param2 是找到或已删除设备的 UDN;仅当 param3 为零或 1 时,它才有效。
- param3 是回调的类型。 有效值为:
- 0 - 表示新设备。
- 1 - 指示已删除设备。
- 2 - 指示搜索已完成。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | 无受支持的版本 |
目标平台 | Windows |
标头 | upnp.h |
DLL | Upnp.dll |