共用方式為


IUPnPDescriptionDocument::LoadAsync 方法 (upnp.h)

LoadAsync方法會以非同步方式載入檔。 這個方法會立即將控制權傳回給呼叫端,並使用指定的回呼在作業完成時通知呼叫端。

語法

HRESULT LoadAsync(
  [in] BSTR     bstrUrl,
  [in] IUnknown *punkCallback
);

參數

[in] bstrUrl

指定要載入之檔的 URL。 如果指定的 URL 是相對 URL,伺服器名稱會前面加上 bstrUrl的值。

[in] punkCallback

IUnknown的參考,指定 UPnP 架構在作業完成時用來通知呼叫端的回呼。 如果載入作業未立即失敗,此回呼會指出載入作業是否成功或失敗。 pUnkCallback所參考的物件必須支援IUPnPDescriptionDocumentCallback介面或IDispatch介面。

傳回值

如果方法成功,傳回值會S_OK。 否則,方法會傳回 WinError.h 中定義的其中一個 COM 錯誤碼,或下列其中一個 UPnP 傳回值。

傳回碼 描述
UPNP_E_DEVICE_ELEMENT_EXPECTED
XML 檔沒有裝置元素:根項目或 DeviceList 元素遺失。
UPNP_E_DEVICE_NODE_INCOMPLETE
XML 檔遺漏 Device 元素中的其中一個必要元素。
UPNP_E_ICON_ELEMENT_EXPECTED
XML 檔沒有圖示專案。 IconList元素遺失,或DeviceList元素不包含IconList元素。
UPNP_E_ICON_NODE_INCOMPLETE
XML 檔缺少 Icon 元素中的其中一個必要元素。
UPNP_E_ROOT_ELEMENT_EXPECTED
XML 檔在檔最上層沒有根項目。
UPNP_E_SERVICE_ELEMENT_EXPECTED
XML 檔沒有服務元素。 ServiceList 元素遺失,或 DeviceList元素不包含ServiceList元素。
UPNP_E_SERVICE_NODE_INCOMPLETE
XML 檔缺少 Service 元素中的其中一個必要元素。

備註

這個方法不應該從使用者介面執行緒呼叫,因為此方法可能需要很長的時間才能傳回。

如果您在先前的調用之後立即針對相同物件叫用這個方法, 就會中止 LoadAsync 的第一個調用。 若要避免這種情況,請等候 IUPnPDescriptionDocumentCallback::LoadComplete 回呼,然後使用 LoadResult 來檢視狀態資訊。

如果 LoadAsync 方法是由網頁內的腳本呼叫, bstrUrl 可能是相對 URL。 目前網頁的位址會當做基底 URL 使用。

如果此方法是從網頁呼叫,呼叫端指定的 URL 必須參考載入網頁所在的相同伺服器。

pUnkCallback所參考的物件必須支援IUPnPDescriptionDocumentCallback介面或IDispatch介面。 LoadAsync方法會先查詢IUPnPDescriptionDocumentCallback介面的pUnkCallback。 如果不支援此介面,LoadAsync方法會查詢iDispatch介面的pUnkCallback。 如果不支援 IDispatch 介面,則兩個檢查都失敗, LoadAsync 方法會傳回E_FAIL。

以 LoadAsync方法IDispatch為基礎的回呼可作為採用一個參數的腳本函式。 此參數是載入作業的結果。 如果 參數為零,則載入成功,而且使用者可以從檔擷取裝置物件。 如果 參數為非零,則會描述錯誤。 值與 IUPnPDescriptionDocument::Load 方法傳回的錯誤碼相同。

在 Visual Basic Scripting Edition (VBScript) 開發軟體中,第二個引數必須是 GetRef (funcname) ,其中 funcname 是回呼副程式的名稱。

如果此函式傳回S_OK,UPnP 架構會叫用 IUPnPDescriptionDocumentCallback::LoadComplete

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 都不支援
目標平台 Windows
標頭 upnp.h
Dll Upnp.dll

另請參閱

IUPnPDescriptionDocument

IUPnPDescriptionDocument::Load