IWbemObjectSink::Indicate 方法 (wbemcli.h)
Indicate方法是由來源呼叫以提供通知。 一般而言,WMI 會在用戶端執行 IWbemServices的其中一個非同步方法之後,呼叫此介面的用戶端實作。 在其他情況下,不同類型的提供者會呼叫 WMI 匯出的實作來傳遞事件。 因此,在某些情況下,用戶端程式代碼可能必須實作此介面,並在其他情況下使用不同的元件的實作。
將此介面和方法與 IWbemServices 介面的非同步方法搭配使用。
用戶端和提供者必須實作這個介面,才能接收通知,或執行 IWbemServices的非同步方法。 如需詳細資訊,請參閱 呼叫方法。
語法
HRESULT Indicate(
[in] long lObjectCount,
[in] IWbemClassObject **apObjArray
);
參數
[in] lObjectCount
下列指標陣列中的物件數目。
[in] apObjArray
IWbemClassObject介面的指標陣列。 陣列記憶體本身是唯讀的,而且是由 方法的呼叫端所擁有。 因為這是 in 參數,所以實作可以選擇在陣列中的任何物件指標上呼叫 IWbemClassObject::AddRef ,並在傳回之前先保留它,以根據 COM 規則傳回方法之後使用物件。 如果物件只用于 Indicate 呼叫的持續時間,則您不需要在每個物件指標上呼叫 AddRef 。
傳回值
這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT中包含的值。
備註
實作事件訂閱接收 (IWbemObjectSink 或 IWbemEventSink) 時,請勿從接收物件的 Indicate 方法內呼叫 WMI。 例如,從Indicate實作內呼叫IWbemServices::CancelAsyncCall可能會干擾 WMI 狀態。 若要取消事件訂閱,請設定旗標,並從另一個執行緒或物件呼叫 IWbemServices::CancelAsyncCall 。 對於與事件接收無關的實作,例如物件、列舉和查詢擷取,您可以回呼 WMI。
接收實作應該在 100 MSEC 內處理事件通知,因為傳遞事件通知的 WMI 執行緒無法在接收物件完成處理之前執行其他工作。 如果通知需要大量處理,接收可以使用內部佇列處理另一個執行緒來處理處理。
當事件提供者呼叫 Indicate 來提供事件時,呼叫可能會因為 WBEM_E_SERVER_TOO_BUSY而失敗。 提供者可以藉由重新引發事件來選擇回應此訊息。
規格需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wbemcli.h (包含 Wbemidl.h) |
程式庫 | Wbemuuid.lib |
Dll | Fastprox.dll |