IWbemClassObject::GetNames 方法 (wbemcli.h)
IWbemClassObject::GetNames方法會擷取 物件中屬性的名稱。 此外,視使用者提供的選取準則而定,它可以擷取屬性的所有或子集。 然後,您可以針對每個名稱使用 IWbemClassObject::Get 來存取這些屬性。 這個方法也可以傳回 系統屬性。
語法
HRESULT GetNames(
[in] LPCWSTR wszQualifierName,
[in] long lFlags,
[in] VARIANT *pQualifierVal,
[out] SAFEARRAY **pNames
);
參數
[in] wszQualifierName
可為 Null的參數。 如果不是 Null,它必須指向有效的 LPCWSTR ,指定做為篩選準則一部分運作的限定詞名稱。 這會以唯讀方式處理。 如需詳細資訊,請參閱<備註>。
[in] lFlags
如需詳細資訊,請參閱<備註>。
[in] pQualifierVal
可為 Null的參數。 如果不是 Null,它必須指向初始化為篩選值的有效 VARIANT 結構。 這個 VARIANT 是由 方法當做唯讀處理。 因此,呼叫端必須視需要呼叫 VariantClear 。 如需詳細資訊,請參閱<備註>。
[out] pNames
不可為 Null的參數,但在進入時,此參數必須指向 Null。 一律會配置新的 SAFEARRAY 結構,並將指標設定為指向它。 傳回的陣列可以有 0 個專案,但一律會在 傳回WBEM_S_NO_ERROR 時配置。 發生錯誤時,不會傳回新的 SAFEARRAY 結構。
傳回值
這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT中包含的值。 如需一般 HRESULT 值,請參閱 系統錯誤碼。
備註
傳回的名稱是由旗標和參數的組合所控制。 例如,可以指定所有屬性的所有名稱,或只能指定索引鍵屬性等等。 主要篩選是在 lFlags 參數中指定;其他參數會根據它而有所不同。
旗標值是位欄位,而且可以合併。 下列每個群組中的一個旗標可以與其他群組中的旗標結合。 群組內的旗標值互斥。
群組 1 旗標 | 描述 |
---|---|
WBEM_FLAG_ALWAYS | 傳回所有屬性名稱。 不會使用 strQualifierName 和 pQualifierVal 參數。 |
WBEM_FLAG_ONLY_IF_TRUE | 只傳回參數 strQualifierName所指定名稱限定詞的屬性。 如果使用此旗標,您必須指定 strQualifierName。 |
WBEM_FLAG_ONLY_IF_FALSE | 只傳回沒有 參數 strQualifierName所指定名稱限定詞的屬性。 如果使用此旗標,您必須指定 strQualifierName。 |
WBEM_FLAG_ONLY_IF_IDENTICAL | 只傳回具有參數QualifierName所指定名稱限定詞的屬性,而且其值也與pQualifierVal所指向之VARIANT結構所指定的值相同。 如果使用這個旗標,您必須同時指定 QualifierName 和 pQualifierVal。 |
群組 2 旗標 | 描述 |
---|---|
WBEM_FLAG_KEYS_ONLY | 只傳回定義索引鍵的屬性或屬性名稱。 |
WBEM_FLAG_REFS_ONLY | 只傳回屬於物件參考的屬性名稱。 |
群組 3 旗標 | 描述 |
---|---|
WBEM_FLAG_LOCAL_ONLY | 只傳回屬於衍生最多類別的屬性名稱。 從父類別或父類別中排除屬性。 |
WBEM_FLAG_PROPAGATED_ONLY | 只傳回屬於父類別或父類別的屬性名稱。 |
WBEM_FLAG_SYSTEM_ONLY | 只傳回 系統屬性。 |
WBEM_FLAG_NONSYSTEM_ONLY | 只傳回不是系統屬性的屬性名稱。 |
如果屬性不符合指定的篩選準則,則不會傳回空白清單的錯誤。
如需使用BSTR值的SAFEARRAY結構的詳細資訊,請參閱擷取 WMI 實例的一部分。
規格需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wbemcli.h (包含 Wbemidl.h) |
程式庫 | WbemUuid.lib |
Dll | CIMWin32.dll;Esscli.dll;Fastprox.dll;FrameDyn.dll;FrameDynOS.dll;Krnlprov.dll;Ncprov.dll;Wbemcore.dll;Wbemess.dll;Wmipiprt.dll |