IEnumWbemClassObject::Next 方法 (wbemcli.h)
使用 IEnumWbemClassObject::Next 方法來取得從列舉中目前位置開始的一或多個物件。 此方法會將列舉中的目前位置前移 uCount 物件,以便後續呼叫傳回後續的物件。
語法
HRESULT Next(
[in] long lTimeout,
[in] ULONG uCount,
[out] IWbemClassObject **apObjects,
[out] ULONG *puReturned
);
參數
[in] lTimeout
指定呼叫在傳回之前封鎖的最大時間量,以毫秒為單位。 如果您使用常數 WBEM_INFINITE (0xFFFFFFFF) ,則呼叫會封鎖直到物件可用為止。 如果您使用值 0 (WBEM_NO_WAIT) ,則呼叫會立即傳回,不論是否有任何物件可用。
[in] uCount
要求的物件數目。
[out] apObjects
足夠記憶體的指標,可保存 uCount 所指定的 IWbemClassObject 介面指標數目。 呼叫端必須提供此記憶體。 此參數不可為 NULL。 當不再需要時,呼叫端必須在每個收到的介面指標上呼叫 Release 。
[out] puReturned
ULONG 的指標,該 ULONG 會接收傳回的物件數目。 此數位可以小於 uCount 中所要求的數位。 此指標不可為 NULL。
傳回值
Next 方法會傳回 HRESULT,指出方法呼叫的狀態。 下列清單列出 HRESULT 中包含的值。
備註
如果網路問題造成您遺失與 Windows 管理的遠端連線,您可能會看到傳回 COM 特定的錯誤碼。 發生錯誤時,您可以呼叫 COM 函式 GetErrorInfo 以取得更多錯誤資訊。
如果要求多個物件,而且傳回要求的物件數目,函式會 傳回WBEM_S_NO_ERROR。 如果可用的物件數目小於所要求的物件數目,而且列舉已完成,則會傳回這些物件,而且函式會 傳回WBEM_S_FALSE。
如果列舉尚未完成,則呼叫會等候物件可用到指定的逾時。如果列舉在物件可用之前逾時,函式會 傳回WBEM_S_TIMEDOUT。
範例
如需在 C++ 和 WMI 中進行查詢的擴充討論和範例,請參閱 在 CodeProject 上以 C++ 製作 WMI 查詢 。
在下列程式代碼中,要求多個物件:HRESULT ProcessEnum( IEnumWbemClassObject* pEnum )
{
HRESULT hRes = WBEM_S_NO_ERROR;
// Final Next will return WBEM_S_FALSE
while ( WBEM_S_NO_ERROR == hRes )
{
ULONG uReturned;
IWbemClassObject* apObj[10];
hRes = pEnum->Next( WBEM_INFINITE, 10, apObj, &uReturned );
if ( SUCCEEDED( hRes ) )
{
// Do something with the objects.
//ProcessObjects( uReturned, apObj );
for ( ULONG n = 0; n < uReturned; n++ )
{
apObj[n]->Release();
}
} // If Enum succeeded...
} // While Enum is returning objects...
return hRes;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wbemcli.h (包含 Wbemidl.h) |
程式庫 | Wbemuuid.lib |
Dll | Fastprox.dll |