共用方式為


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

類型: 無效**

當這個方法成功傳回時,包含 riid 中要求的 IDataObject 介面指標。

返回值

類型:HRESULT

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

備註

此函式通常會在實作方法 IShellFolder::GetUIObjectOf 時呼叫。 當要求介面標識碼 IID_IDataObject 的介面指標時 (使用參數 riid) ,實作者可以在回應中使用 SHCreateDataObject 建立之物件上傳回介面指標。

此函式支援 CFSTR_SHELLIDLIST (也稱為 HIDA) 剪貼簿格式,而且也透過 IDataObject::SetData 對任意剪貼簿格式提供一般支援。 如需剪貼簿格式的詳細資訊,請參閱 殼層剪貼簿格式。

新的資料物件旨在用於拖放等操作,其中資料以給定格式儲存在剪貼簿中。

建議您使用 Objbase.h 中定義的 IID_PPV_ARGS 巨集來封裝 riidppv 參數。 此巨集會根據 ppv 值所指向的介面提供正確的 IID,這可消除 riid 中可能造成非預期結果的編碼錯誤。

需求

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

另請參閱

CIDLData_CreateFromIDArray