共用方式為


SHCreateShellItemArrayFromDataObject 函式 (shobjidl_core.h)

從資料物件建立 Shell 專案陣列物件。

語法

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

參數

[in] pdo

類型: IDataObject*

IDataObject 介面的指標。

[in] riid

類型: REFIID

所需介面 ID 的參考。

[out] ppv

類型: 無效**

當這個方法傳回時,包含 riid 中要求的介面指標。 這通常是 IShellItemArray

返回值

類型:HRESULT

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

此函式適用於實作 IShellExtInit 的 Shell 延伸模組,並將資料物件傳遞至 IShellExtInit::Initialize 方法;例如,操作功能表處理常式。

此 API 可讓您將資料物件轉換成處理常式可以使用的 Shell 專案。 建議處理常式使用 Shell 專案陣列,而不是剪貼簿格式,例如 CF_HDROPCFSTR_SHELLIDLIST (也稱為 HIDA) ,因為它會導致更簡單的程式代碼,並允許一些效能改善。

產生的 shell 項目陣列會保留來源資料物件的參考。 因此,該資料物件必須在殼層專案陣列的存留期內保持有效。 值得注意的是,傳遞至 IDropTarget 方法的資料物件在卸除作業完成之後不再有效。

需求

Requirement 價值觀
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
Header shobjidl_core.h(包括 Shobjidl.h)
Library OneCore.Lib
DLL Shell32.dll
API 集 ext-ms-win-shell-shell32-l1-2-2 (Windows 10 版本 10.0.14393 中引進)