SWbemObject.SubclassesAsync_ 方法

SWbemObject的 SubclassesAsync_方法會以非同步方式提供目前 物件的子類別,這必須是類別。

如需此語法的說明,請參閱 腳本 API 的檔慣例

語法

SWbemObject.SubclassesAsync_( _
  ByVal objWbemSink, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

參數

objWbemSink [in]

必要。 以非同步方式接收物件的物件接收。

iFlags [in, optional]

決定呼叫列舉的詳細程度。 此參數可以接受下列值。

wbemQueryFlagDeep (0 (0x0) )

強制遞迴列舉衍生自指定父類別的所有子類別。 列舉中不會傳回父類別本身。

wbemQueryFlagShallow (1 (0x1) )

此參數的預設值。 它會強制列舉只包含指定父類別的立即子類別。

wbemFlagSendStatus (128 (0x80) )

導致非同步呼叫將狀態更新傳送至物件接收的 SWbemSink.OnProgress 事件處理常式。

wbemFlagDontSendStatus (0 (0x0) )

防止非同步呼叫將狀態更新傳送至物件接收的 OnProgress 事件處理常式。

wbemFlagUseAmendedQualifiers (131072 (0x20000) )

讓 WMI 使用基類定義傳回類別增修條款資料。 如需修改限定詞的詳細資訊,請參閱 當地語系化 WMI 類別資訊

objWbemNamedValueSet [in, optional]

一般而言,這是未定義的。 否則,這是 SWbemNamedValueSet 物件,其元素代表服務要求的提供者可以使用的內容資訊。 支援或需要這類資訊的提供者必須記載已辨識的值名稱、值的資料類型、允許的值和語意。

objWbemAsyncCoNtext [in, optional]

這是 SWbemNamedValueSet 物件,會傳回物件接收,以識別原始非同步呼叫的來源。 當您使用相同的物件接收進行多個非同步呼叫時,請使用此參數。 若要使用此參數,請建立 SWbemNamedValueSet 物件,並使用 SWbemNamedValueSet.Add 方法來新增可識別您進行之非同步呼叫的值。 這個 SWbemNamedValueSet 物件會傳回至物件接收,而且可以使用 SWbemNamedValueSet.Item 方法擷取呼叫的來源。 如需詳細資訊,請參閱 呼叫方法

傳回值

這個方法不會傳回值。 如果成功,接收會收到每個實例的 OnObjectReady 事件。 最後一個實例之後,物件接收會收到 OnCompleted 事件。

錯誤碼

完成 SubclassesAsync_ 方法之後, Err 物件可能會包含下列清單中的其中一個錯誤碼。

wbemErrAccessDenied - 2147749891 (0x80041003)

目前的使用者沒有許可權可檢視呼叫所傳回的一或多個類別。

wbemErrFailed - 2147749889 (0x80041001)

未指定的錯誤。

wbemErrInvalidClass - 2147749904 (0x80041010)

指定的類別不存在。

wbemErrInvalidParameter - 2147749896 (0x80041008)

指定了不正確參數。

wbemErrOutOfMemory - 2147749894 (0x80041006)

記憶體不足,無法完成作業。

備註

此呼叫會立即傳回。 要求的物件和狀態會透過傳遞至 objWbemSink中指定的接收回呼傳回給呼叫端。 若要在抵達時處理每個物件,請建立 objWbemSinkOnObjectReady 事件副程式。 傳回所有物件之後,您可以在 objWbemSink實作中執行最終處理。OnCompleted 事件。

非同步回呼可讓未驗證的使用者將資料提供給接收。 這對您的腳本和應用程式造成安全性風險。 若要消除風險,請使用半同步通訊或同步通訊。 如需詳細資訊,請參閱 呼叫方法

建議腳本使用 objWbemAsyncCoNtext 參數來驗證呼叫的來源。

如果目前物件沒有子類別,傳回的集合就不會有零個元素。 SubclassesAsync_方法僅適用于類別物件。

規格需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
標頭
Wbemdisp.h
類型程式庫
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemObject
IID
IID_ISWbemObject

另請參閱

SWbemObject

SWbemObjectSet

SWbemRefreshableItem