從資料物件建立 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_HDROP 和 CFSTR_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 中引進) |