共用方式為


IFunctionInstanceCollectionQuery::Execute 方法 (functiondiscoveryapi.h)

[函式探索可用於需求一節中指定的作業系統。 後續版本可能會變更或無法使用。]

執行 IFunctionDiscovery::CreateInstanceCollectionQuery所定義的查詢。

語法

HRESULT Execute(
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

參數

[out] ppIFunctionInstanceCollection

IFunctionInstanceCollection介面指標的指標,可接收要求的函式實例集合。

傳回值

可能的傳回值包括但不限於下列各項。

傳回碼 描述
S_OK
已成功完成命令。 結果會在 ppIFunctonInstanceCollecton中同步傳回。
E_OUTOFMEMORY
方法無法配置執行這項作業所需的記憶體。
E_PENDING
某些結果會由非同步通知傳回。 如需詳細資訊,請參閱<備註>小節。
 

預先定義的查詢是分層 類別的查詢。 執行預先定義的查詢時,傳回函式實例的每個提供者也會傳回 HRESULT 值。 提供者 HRESULT 值會匯總, 而 Execute 方法傳回的值會反映這些匯總結果。 結果的匯總方式如下:

  • 如果所有提供者 都傳回S_OKExecute 會傳回 S_OK
  • 如果至少有一個提供者傳回 E_PENDING,而所有其他提供者都會傳回 S_OKE_PENDINGExecute傳回E_PENDING
  • 如果所有提供者 (傳回錯誤值,即 S_OKE_PENDING) 以外的值, Execute 會傳回上次查詢的網路提供者所傳回的錯誤值。 此外,如果用戶端的 IFunctionDiscoveryNotification 回呼常式提供給 IFunctionDiscovery::CreateInstanceCollectionQuery,則會為每個提供者傳送 OnError 通知。 每個 OnError 通知都包含提供者傳回的 HRESULT。
  • 如果至少有一個提供者傳回錯誤值,而所有其他提供者都會傳回 S_OKExecute傳回S_OKOnError 通知會如上所述傳送。
  • 如果至少有一個提供者傳回錯誤值,而且至少有一個提供者傳回 E_PENDINGExecute傳回E_PENDINGOnError 通知會如上所述傳送。
Execute 傳回 S_OK時, ppIFunctionInstanceCollection 會包含查詢的結果。 如果IFunctionDiscoveryNotification介面提供給IFunctionDiscoveryCreateInstanceCollectionQuery方法,則會使用該介面來傳達結果的變更。

Execute傳回E_PENDING時,結果集會透過IFunctionDiscoveryNotification介面以非同步方式傳回給IFunctionDiscoveryCreateInstanceCollectionQuery方法。 ppIFunctionInstanceCollection 可能是 Null 或可能包含部分結果集。 一旦使用FD_EVENTID_SEARCHCOMPLETE呼叫IFunctionDiscoveryNotificationOnEvent方法之後,列舉就會完成。 收到 FD_EVENTID_SEARCHCOMPLETE 事件之後,其他通知會更新結果。

備註

必須先由用戶端程式叫用這個方法,才能從查詢物件擷取任何資料。 呼叫時,這個方法會執行下列動作:

  1. 擷取函式實例集合物件。
  2. 查詢傳遞至 IFunctionDiscovery::CreateInstanceCollectionQuery之類別的提供者。
  3. 擷取類別提供者。
  4. 使用子類別資料查詢類別提供者,以使用查詢準則約束產生集合。
  5. 如果用戶端程式的 IFunctionDiscoveryNotification 回呼常式的位址提供給 IFunctionDiscovery::CreateInstanceCollectionQuery,就會起始更新通知機制。
  6. 快取集合資料並傳回。
函式探索網路提供者只會透過 IFunctionDiscoveryNotification 介面傳回函式實例。 當叫用此方法時,它們不會直接傳回任何函式實例。 相反地, Execute 只會起始完全非同步擷取作業,並傳回 E_PENDING ,以指出結果會以非同步方式傳回。 通知必須用來從函式探索網路提供者擷取函式實例。

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 functiondiscoveryapi.h
Dll FunDisc.dll

另請參閱

函式探索查詢

IFunctionInstanceCollectionQuery