IEnumIDList::Next 方法 (shobjidl_core.h)

擷取列舉序列中的指定專案標識碼數目,並依擷取的項目數目將目前的位置往前移。

語法

HRESULT Next(
  [in]  ULONG         celt,
  [out] PITEMID_CHILD *rgelt,
  [out] ULONG         *pceltFetched
);

參數

[in] celt

類型: ULONG

rgelt 參數所參考陣列中的元素數目。

[out] rgelt

類型: LPITEMIDLIST*

接收項目識別碼之 ITEMIDLIST 指標陣列之指標的位址。 實作必須使用 CoTaskMemAlloc 來配置這些專案標識碼。 呼叫的應用程式負責使用 CoTaskMemFree 釋放項目識別碼。

陣列中傳回 的 ITEMIDLIST 結構相對於所列舉的 IShellFolder

[out] pceltFetched

類型: ULONG*

值的指標,這個值會接收在 rgelt 中實際傳回之專案標識子的計數。 計數可以小於 celt 參數中指定的值。 只有在 celt = 1 時,這個參數才能在專案上為 NULL,因為在此情況下,方法只能擷取一個 (S_OK) 或零個 (S_FALSE) 專案。

傳回值

類型: HRESULT

如果方法已成功擷取要求的 celt 元素,則傳回S_OK。 如果成功擷取要求專案的完整計數,這個方法只會傳回S_OK。

S_FALSE表示要求的專案比列舉中還多。 pceltFetched 參數所指向的值會指定擷取的實際項目數目。 請注意,如果沒有其他專案要擷取,此值將會是 0。

否則會傳回 COM 定義的錯誤值。

備註

如果這個方法傳回元件物件模型 (COM) 錯誤碼, (由 FAILED 宏) 決定,則 rgelt 陣列中沒有任何專案在結束時有效。 如果這個方法傳回成功程式代碼 (,例如S_OK或S_FALSE) ,則pceltFetched參數所指向的ULONG會決定 rgelt 陣列中有多少專案在結束時有效。

區別在 celt> 1 的情況下很重要。 例如,如果您傳遞 celt=10,而且只有 3 個元素左邊,*pceltFetched 將會是 3,而且方法會傳回S_FALSE表示您已到達檔案結尾。 三個擷取的項目會儲存到 rgelt 中,而且有效。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)
Dll Shell32.dll (4.0 版或更新版本)

另請參閱

IEnumIDList