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 所參考的物件除了 IUPnPDeviceFinderAddCallbackWithInterface 介面之外,還支援 IUPnPDeviceFinderCallback 介面。
[out] plFindData
LONG 的參考,該 LONG 會接收這個特定搜尋的標識碼。 應用程式必須將此標識碼提供給呼叫的其他異步搜尋方法。
傳回值
如果方法成功,傳回值會S_OK。 否則,方法會傳回 WinError.h 中定義的其中一個 COM 錯誤碼。
備註
這個方法會立即傳回;UPnP 架構會使用 pUnkCallback 指定的回呼,通知呼叫端任何搜尋結果。 這個方法會傳回搜尋標識符;呼叫端必須使用 IUPnPDeviceFinder::StartAsyncFind 來實際開始搜尋。
在 C++ 中, pUnkCallback 所參考的對象必須支援 IUPnPDeviceFinderCallback 介面或 IDispatch 介面。 除了 IUPnPDeviceFinderCallback 介面之外,pUnkCallback 所參照的物件可能還支援 IUPnPDeviceFinderAddCallbackWithInterface 介面。 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 為零或一時,它才有效。
-
param3 是回呼的類型。 有效值為:
- 0— 表示新的裝置。
- 1— 表示裝置已移除。
- 2— 表示搜尋已完成。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | 都不支援 |
目標平台 | Windows |
標頭 | upnp.h |
Dll | Upnp.dll |