SHCreateDataObject 函式 (shlobj_core.h)
在父資料夾中建立資料物件。
語法
SHSTDAPI SHCreateDataObject(
[in, optional] PCIDLIST_ABSOLUTE pidlFolder,
[in] UINT cidl,
[in, optional] PCUITEMID_CHILD_ARRAY apidl,
[in, optional] IDataObject *pdtInner,
[in] REFIID riid,
[out] void **ppv
);
參數
[in, optional] pidlFolder
類型: PCIDLIST_ABSOLUTE
包含數據物件的父資料夾之 ITEMIDLIST (PIDL) 指標。
[in] cidl
類型: UINT
apidl 參數中指定的檔案物件或子資料夾數目。
[in, optional] apidl
類型: PCUITEMID_CHILD_ARRAY
常數 ITEMIDLIST 結構的指標數位列,每個結構都會唯一識別相對於父資料夾的檔案物件或子資料夾。 每個專案標識碼清單必須只包含一個 SHITEMID 結構,後面接著終止零。
[in, optional] pdtInner
類型: IDataObject*
介面 IDataObject 的指標。 此參數可以是 Null。 只有在建立的數據物件需要支援其他 FORMATETC 剪貼簿格式以外的預設格式時,才指定 pdtInner。 或者,呼叫 IDataObject::SetData 方法,並在參數 pFormatetc 中傳遞的 FORMATETC 結構中指定格式,以支援使用非預設剪貼簿格式填入已建立的數據物件。
[in] riid
類型: REFIID
要透過 ppv 擷取之介面 IID 的參考。 這必須IID_IDataObject。
[out] ppv
類型: void**
當這個方法成功傳回時,包含riid中要求的IDataObject介面指標。
傳回值
類型: HRESULT
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
實作 方法 IShellFolder::GetUIObjectOf 時,通常會呼叫此函式。 使用參數 riid) (要求介面標識碼的介面指標IID_IDataObject時,實作者可以在回應中使用 SHCreateDataObject 建立的物件上傳回介面指標。
此函式支援 CFSTR_SHELLIDLIST (也稱為HIDA) 剪貼簿格式,也支援透過 IDataObject::SetData的任意剪貼簿格式。 如需剪貼簿格式的詳細資訊,請參閱Shell剪貼簿格式。
新的數據物件旨在用於拖放等作業,其中數據會儲存在具有指定格式的剪貼簿中。
建議您使用在 Objbase.h 中定義的 IID_PPV_ARGS 宏來封裝 riid 和 ppv 參數。 此宏會根據 ppv 中值所指向的介面提供正確的 IID,這可消除 riid 中可能導致非預期結果的編碼錯誤的可能性。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shlobj_core.h (包含 Shlobj.h) |
Dll | Shell32.dll |
API 集合 | ext-ms-win-shell32-l1-2-2 (於 Windows 10 10.0.14393 版) |