Bagikan melalui


Fungsi SHCreateDataObject (shlobj_core.h)

Membuat objek data dalam folder induk.

Sintaks

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
);

Parameter

[in, optional] pidlFolder

Jenis: PCIDLIST_ABSOLUTE

Penunjuk ke ITEMIDLIST (PIDL) dari folder induk yang berisi objek data.

[in] cidl

Jenis: UINT

Jumlah objek file atau subfolder yang ditentukan dalam parameter apidl .

[in, optional] apidl

Jenis: PCUITEMID_CHILD_ARRAY

Array pointer ke struktur ITEMIDLIST konstan, yang masing-masing secara unik mengidentifikasi objek file atau subfolder relatif terhadap folder induk. Setiap daftar pengidentifikasi item harus berisi tepat satu struktur SHITEMID diikuti dengan nol yang mengakhiri.

[in, optional] pdtInner

Jenis: IDataObject*

Penunjuk ke antarmuka IDataObject. Parameter ini bisa NULL. Tentukan pdtInner hanya jika objek data yang dibuat perlu mendukung format clipboard FORMATETC tambahan di luar format default yang ditetapkan saat pembuatan. Atau, berikan dukungan untuk mengisi objek data yang dibuat menggunakan format clipboard non-default dengan memanggil metode IDataObject::SetData dan menentukan format dalam struktur FORMATETC yang diteruskan dalam parameter pFormatetc.

[in] riid

Jenis: REFIID

Referensi ke IID antarmuka untuk diambil melalui ppv. Ini harus IID_IDataObject.

[out] ppv

Jenis: void**

Ketika metode ini berhasil dikembalikan, berisi penunjuk antarmuka IDataObject yang diminta dalam riid.

Nilai kembali

Jenis: HRESULT

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Fungsi ini biasanya dipanggil saat menerapkan metode IShellFolder::GetUIObjectOf. Ketika penunjuk antarmuka ID antarmuka IID_IDataObject diminta (menggunakan parameter riid), pelaksana dapat mengembalikan penunjuk antarmuka pada objek yang dibuat dengan SHCreateDataObject sebagai respons.

Fungsi ini mendukung format clipboard CFSTR_SHELLIDLIST (juga dikenal sebagai HIDA) dan juga memiliki dukungan generik untuk format clipboard arbitrer melalui IDataObject::SetData. Untuk informasi selengkapnya tentang format clipboard, lihat Format Clipboard Shell.

Objek data baru dimaksudkan untuk digunakan dalam operasi seperti seret dan letakkan, di mana data disimpan di clipboard dengan format tertentu.

Kami menyarankan agar Anda menggunakan makro IID_PPV_ARGS , yang ditentukan dalam Objbase.h, untuk mengemas parameter riid dan ppv . Makro ini menyediakan IID yang benar berdasarkan antarmuka yang ditunjukkan oleh nilai dalam ppv, yang menghilangkan kemungkinan kesalahan pengkodian dalam riid yang dapat menyebabkan hasil yang tidak terduga.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header shlobj_core.h (termasuk Shlobj.h)
DLL Shell32.dll
Set API ext-ms-win-shell-shell32-l1-2-2 (diperkenalkan dalam Windows 10, versi 10.0.14393)

Lihat juga

CIDLData_CreateFromIDArray