Format Papan Klip Shell
Format clipboard shell digunakan untuk mengidentifikasi jenis data Shell yang ditransfer melalui clipboard. Sebagian besar format clipboard Shell mengidentifikasi jenis data, seperti daftar nama file atau penunjuk ke daftar pengidentifikasi item (PIDL). Namun, beberapa format digunakan untuk komunikasi antara sumber dan target. Mereka dapat mempercepat proses transfer data dengan mendukung operasi Shell seperti pemindahan dan delete_on_paste yang dioptimalkan. Data shell selalu terkandung dalam objek data yang menggunakan struktur FORMATETC sebagai cara yang lebih umum untuk mencirikan data. Anggota cfFormat struktur diatur ke format clipboard untuk item data tertentu. Anggota lain memberikan informasi tambahan, seperti mekanisme transfer data. Data terkandung dalam struktur STGMEDIUM yang menyertainya.
Catatan
Pengidentifikasi format clipboard standar memiliki formulir CF_XXX. Contoh umumnya adalah CF_TEXT, yang digunakan untuk mentransfer data teks ANSI. Pengidentifikasi ini memiliki nilai yang telah ditentukan sebelumnya dan dapat digunakan langsung dengan struktur FORMATETC . Dengan pengecualian CF_HDROP, pengidentifikasi format Shell tidak ditentukan sebelumnya. Dengan pengecualian DragWindow, mereka memiliki formulir CFSTR_XXX. Untuk membedakan nilai-nilai ini dari format yang telah ditentukan sebelumnya, nilai tersebut sering disebut sebagai format sederhana. Namun, tidak seperti format yang telah ditentukan sebelumnya, format tersebut harus didaftarkan oleh sumber dan target sebelum dapat digunakan untuk mentransfer data. Untuk mendaftarkan format Shell, sertakan file header Shlobj.h dan teruskan pengidentifikasi format CFSTR_XXX ke RegisterClipboardFormat. Fungsi ini mengembalikan nilai format clipboard yang valid, yang kemudian dapat digunakan sebagai anggota cfFormat dari struktur FORMATETC .
Format clipboard Shell diatur di sini menjadi tiga grup, berdasarkan bagaimana mereka digunakan.
- Format untuk Mentransfer Objek Sistem File
- Format untuk Mentransfer Objek Virtual
- Format untuk Komunikasi Antara Sumber dan Target
Format untuk Mentransfer Objek Sistem File
Format ini digunakan untuk mentransfer satu atau beberapa file atau objek Shell lainnya.
- CF_HDROP
- CFSTR_FILECONTENTS
- CFSTR_FILEDESCRIPTOR
- CFSTR_FILENAME
- CFSTR_FILENAMEMAP
- CFSTR_MOUNTEDVOLUME
- CFSTR_SHELLIDLIST
- CFSTR_SHELLIDLISTOFFSET
CF_HDROP
Format papan klip ini digunakan saat mentransfer lokasi dari sekelompok file yang ada. Tidak seperti format Shell lainnya, format tersebut telah ditentukan sebelumnya, jadi tidak perlu memanggil RegisterClipboardFormat. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke struktur DROPFILES sebagai anggota hGlobal-nya .
Anggota pFiles dari struktur DROPFILES berisi offset ke array karakter ganda yang dihentikan null yang berisi nama file. Jika Anda mengekstrak format CF_HDROP dari objek data, Anda dapat menggunakan DragQueryFile untuk mengekstrak nama file individual dari objek memori global. Jika Anda membuat format CF_HDROP untuk ditempatkan di objek data, Anda harus membuat array nama file.
Array nama file terdiri dari serangkaian string, masing-masing berisi jalur satu file yang sepenuhnya memenuhi syarat, termasuk karakter NULL yang mengakhiri. Karakter null tambahan ditambahkan ke string akhir untuk mengakhiri array. Misalnya, jika file c:\temp1.txt dan c:\temp2.txt sedang ditransfer, array karakter terlihat seperti ini:
c:\temp1.txt'\0'c:\temp2.txt'\0''\0'
Catatan
Dalam contoh ini, '\0' digunakan untuk mewakili karakter null , bukan karakter harfiah yang harus disertakan.
Jika objek disalin ke clipboard sebagai bagian dari operasi seret dan letakkan, anggota pt struktur DROPFILES berisi koordinat titik tempat objek dihilangkan. Anda bisa menggunakan DragQueryPoint untuk mengekstrak koordinat kursor.
Jika format ini ada dalam objek data, perulangan seret OLE mensimulasikan fungsionalitas WM_DROPFILES dengan target penurunan non-OLE. Ini penting jika aplikasi Anda adalah sumber operasi seret dan letakkan pada sistem Windows 3.1.
CFSTR_FILECONTENTS
Pengidentifikasi format ini digunakan dengan format CFSTR_FILEDESCRIPTOR untuk mentransfer data seolah-olah itu adalah file, terlepas dari bagaimana sebenarnya disimpan. Data terdiri dari struktur STGMEDIUM yang mewakili konten satu file. File biasanya direpresentasikan sebagai objek stream, yang menghindari harus menempatkan konten file dalam memori. Dalam hal ini, anggota yang ditiru dari struktur STGMEDIUM diatur ke TYMED_ISTREAM, dan file diwakili oleh antarmuka IStream . File juga dapat menjadi objek penyimpanan atau memori global (TYMED_ISTORAGE atau TYMED_HGLOBAL). Format CFSTR_FILEDESCRIPTOR terkait berisi struktur FILEDESCRIPTOR untuk setiap file yang menentukan nama dan atribut file.
Target memperlakukan data yang terkait dengan format CFSTR_FILECONTENTS seolah-olah itu adalah file. Ketika target memanggil IDataObject::GetData untuk mengekstrak data, target menentukan file tertentu dengan mengatur anggota lindex struktur FORMATETC ke indeks berbasis nol dari struktur FILEDESCRIPTOR file dalam format CFSTR_FILEDESCRIPTOR yang menyertainya. Target kemudian menggunakan penunjuk antarmuka yang dikembalikan atau handel memori global untuk mengekstrak data.
CFSTR_FILEDESCRIPTOR
Pengidentifikasi format ini digunakan dengan format CFSTR_FILECONTENTS untuk mentransfer data sebagai grup file. Kedua format ini adalah cara yang lebih disukai untuk mentransfer objek Shell yang tidak disimpan sebagai file sistem file. Misalnya, format ini dapat digunakan untuk mentransfer sekelompok pesan email sebagai file individual, meskipun setiap email benar-benar disimpan sebagai blok data dalam database. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke struktur FILEGROUPDESCRIPTOR yang diikuti oleh array yang berisi satu struktur FILEDESCRIPTOR untuk setiap file dalam grup. Untuk setiap struktur FILEDESCRIPTOR , ada format CFSTR_FILECONTENTS terpisah yang berisi konten file. Untuk mengidentifikasi format CFSTR_FILECONTENTS file tertentu, atur nilai lIndex struktur FORMATETC ke indeks berbasis nol dari struktur FILEDESCRIPTOR file.
Format CFSTR_FILEDESCRIPTOR umumnya digunakan untuk mentransfer data seolah-olah itu adalah sekelompok file, terlepas dari bagaimana sebenarnya disimpan. Dari perspektif target, setiap format CFSTR_FILECONTENTS mewakili satu file dan diperlakukan sesuai. Namun, sumber dapat menyimpan data dengan cara apa pun yang dipilihnya. Meskipun format CSFTR_FILECONTENTS mungkin sesuai dengan satu file, itu juga bisa, misalnya, mewakili data yang diekstrak oleh sumber dari database atau dokumen teks.
CFSTR_FILENAME
Pengidentifikasi format ini digunakan untuk mentransfer satu file. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke satu string yang dihentikan null yang berisi jalur file file yang sepenuhnya memenuhi syarat. Format ini telah digantikan oleh CF_HDROP, tetapi didukung untuk kompatibilitas mundur dengan aplikasi Windows 3.1.
CFSTR_FILENAMEMAP
Pengidentifikasi format ini digunakan ketika sekelompok file dalam format CF_HDROP diganti namanya serta ditransfer. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke array karakter ganda yang dihentikan null. Array ini berisi nama baru untuk setiap file, dalam urutan yang sama dengan file yang tercantum dalam format CF_HDROP yang menyertainya. Format array karakter sama dengan yang digunakan oleh CF_HDROP untuk mencantumkan file yang ditransfer.
CFSTR_MOUNTEDVOLUME
Pengidentifikasi format ini digunakan untuk mentransfer jalur pada volume yang dipasang. Ini mirip dengan CF_HDROP, tetapi hanya berisi satu jalur dan dapat menangani string jalur yang lebih panjang yang mungkin diperlukan untuk mewakili jalur ketika volume dipasang pada folder. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke satu string yang dihentikan null yang berisi jalur file yang sepenuhnya memenuhi syarat. String jalur harus diakhapi dengan karakter '\', diikuti dengan NULL yang mengakhiri.
Sebelum Windows 2000, volume hanya dapat dipasang pada huruf kandar. Untuk sistem Windows 2000 dan yang lebih baru dengan drive berformat NTFS, Anda juga dapat memasang volume pada folder kosong. Fitur ini memungkinkan volume dipasang tanpa mengambil huruf kandar. Volume yang dipasang dapat menggunakan format yang saat ini didukung, termasuk FAT, FAT32, NTFS, dan CDFS.
Anda dapat menambahkan halaman ke lembar properti Properti Drive dengan menerapkan handler lembar properti. Jika volume dipasang pada huruf kandar, Shell meneruskan informasi jalur ke handler dengan format CF_HDROP . Dengan sistem Windows 2000 dan yang lebih baru, format CF_HDROP digunakan ketika volume dipasang pada huruf drive, sama seperti sistem sebelumnya. Namun, jika volume dipasang pada folder, pengidentifikasi format CFSTR_MOUNTEDVOLUME digunakan alih-alih CF_HDROP.
Jika hanya huruf kandar yang akan digunakan untuk memasang volume, hanya CF_HDROP yang akan digunakan, dan penangan lembar properti yang ada akan berfungsi seperti yang dilakukan dengan sistem sebelumnya. Namun, jika Anda ingin handler menampilkan halaman untuk volume yang dipasang pada folder serta huruf drive, handler harus dapat memahami format CSFTR_MOUNTEDVOLUME dan CF_HDROP.
CFSTR_SHELLIDLIST
Pengidentifikasi format ini digunakan saat mentransfer lokasi satu atau beberapa objek namespace yang ada. Ini digunakan dengan cara yang sama seperti CF_HDROP, tetapi berisi PIDL alih-alih jalur sistem file. Menggunakan PIDL memungkinkan format CFSTR_SHELLIDLIST untuk menangani objek virtual serta objek sistem file. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke struktur CIDA .
Anggota aoffset struktur CIDA adalah array yang berisi offset ke awal struktur ITEMIDLIST untuk setiap PIDL yang sedang ditransfer. Untuk mengekstrak PIDL tertentu, pertama-tama tentukan indeksnya. Kemudian, tambahkan nilai aoffset yang sesuai dengan indeks tersebut ke alamat struktur CIDA .
Elemen pertama aoffset berisi offset ke PIDL yang sepenuhnya memenuhi syarat dari folder induk. Jika PIDL ini kosong, folder induk adalah desktop. Masing-masing elemen array yang tersisa berisi offset ke salah satu PIDL yang akan ditransfer. Semua PIDL ini relatif terhadap PIDL folder induk.
Dua makro berikut dapat digunakan untuk mengambil PIDL dari struktur CIDA . Yang pertama mengambil pointer ke struktur dan mengambil PIDL dari folder induk. Yang kedua mengambil pointer ke struktur dan mengambil salah satu PIDL lainnya, yang diidentifikasi oleh indeks berbasis nol.
#define GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
#define GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])
Catatan
Nilai yang dikembalikan oleh makro ini adalah penunjuk ke struktur ITEMIDLIST PIDL. Karena struktur ini bervariasi panjangnya, Anda harus menentukan akhir struktur dengan menelusuri setiap struktur SHITEMID struktur ITEMIDLIST sampai Anda mencapai NULL dua byte yang menandai akhir.
CFSTR_SHELLIDLISTOFFSET
Pengidentifikasi format ini digunakan dengan format seperti CF_HDROP, CFSTR_SHELLIDLIST, dan CFSTR_FILECONTENTS untuk menentukan posisi sekelompok objek setelah transfer. Data terdiri dari struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke array struktur POINT . Struktur pertama menentukan koordinat layar, dalam piksel, dari sudut kiri atas persegi panjang yang mengapit grup. Sisa struktur menentukan lokasi objek individu relatif terhadap posisi grup. Mereka harus dalam urutan yang sama seperti yang digunakan untuk mencantumkan objek dalam format terkait.
Format untuk Mentransfer Objek Virtual
Format CFSTR_SHELLIDLIST dapat digunakan untuk mentransfer sistem file dan objek virtual. Namun, ada juga beberapa format khusus untuk mentransfer jenis objek virtual tertentu.
CFSTR_NETRESOURCES
Pengidentifikasi format ini digunakan saat mentransfer sumber daya jaringan, seperti domain atau server. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke struktur NRESARRAY . Anggota nr dari struktur tersebut menunjukkan struktur NETRESOURCE yang anggota lpRemoteName-nya berisi string null-terminated yang mengidentifikasi sumber daya jaringan. Target penghilangan kemudian dapat menggunakan data dengan salah satu fungsi API Windows Networking (WNet), seperti WNetAddConnection, untuk melakukan operasi jaringan pada objek.
CFSTR_PRINTERGROUP
Pengidentifikasi format ini digunakan ketika mentransfer nama printer yang mudah diingat. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke string dalam format yang sama seperti yang digunakan dengan CF_HDROP. Namun, anggota pFiles dari struktur DROPFILES berisi satu atau beberapa nama printer yang mudah diingat alih-alih jalur file.
CFSTR_INETURL
Pengidentifikasi format ini menggantikan CFSTR_SHELLURL (tidak digunakan lagi). Jika Anda ingin aplikasi Memanipulasi URL clipboard, gunakan CFSTR_INETURL alih-alih CFSTR_SHELLURL (tidak digunakan lagi). Format ini memberikan representasi clipboard terbaik dari satu URL. Jika UNICODE tidak ditentukan, aplikasi mengambil url versi CF_TEXT/CFSTR_SHELLURL. Jika UNICODE ditentukan, aplikasi mengambil url versi CF_UNICODE.
CFSTR_SHELLURL (tidak digunakan lagi)
Catatan
Pengidentifikasi format ini tidak digunakan lagi; gunakan CFSTR_INETURL sebagai gantinya.
Format untuk Komunikasi Antara Sumber dan Target
Pengidentifikasi format ini memungkinkan komunikasi antara sumber dan target. Format menyertai data dan memberi aplikasi tingkat kontrol yang lebih besar atas operasi move-copy-paste atau drag-and-drop yang melibatkan objek Shell.
- CFSTR_INDRAGLOOP
- CFSTR_LOGICALPERFORMEDDROPEFFECT
- CFSTR_PASTESUCCEEDED
- CFSTR_PERFORMEDDROPEFFECT
- CFSTR_PREFERREDDROPEFFECT
- CFSTR_TARGETCLSID
- CFSTR_UNTRUSTEDDRAGDROP
- SeretWindow
CFSTR_INDRAGLOOP
Pengidentifikasi format ini digunakan oleh objek data untuk menunjukkan apakah itu dalam perulangan seret dan letakkan. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke nilai DWORD . Jika nilai DWORD bukan nol, objek data berada dalam perulangan seret dan letakkan. Jika nilai diatur ke nol, objek data tidak berada dalam perulangan seret dan letakkan.
Beberapa target penurunan mungkin memanggil IDataObject::GetData dan mencoba mengekstrak data saat objek masih berada dalam perulangan seret dan letakkan. Merender objek sepenuhnya untuk setiap kejadian tersebut dapat menyebabkan kursor seret terhenti. Jika objek data mendukung CFSTR_INDRAGLOOP, target dapat menggunakan format tersebut untuk memeriksa status perulangan seret dan letakkan dan menghindari penyajian intensif memori objek sampai benar-benar dihilangkan. Format yang intensif memori untuk dirender masih harus disertakan dalam enumerator FORMATETC dan dalam panggilan ke IDataObject::QueryGetData. Jika objek data tidak diatur CFSTR_INDRAGLOOP, objek harus bertindak seolah-olah nilai diatur ke nol.
CFSTR_LOGICALPERFORMEDDROPEFFECT
Versi 5.0. Pengidentifikasi format ini memungkinkan sumber penghilangan untuk memanggil metode IDataObject::GetData objek data untuk menentukan hasil transfer data Shell. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke DWORD yang berisi nilai DROPEFFECT .
Pengidentifikasi format CFSTR_PERFORMEDDROPEFFECT dimaksudkan untuk memungkinkan target menunjukkan ke objek data operasi apa yang sebenarnya terjadi. Namun, Shell menggunakan pemindahan yang dioptimalkan untuk objek sistem file jika memungkinkan. Dalam hal ini, Shell biasanya mengatur nilai CFSTR_PERFORMEDDROPEFFECT ke DROPEFFECT_NONE, untuk menunjukkan ke objek data bahwa data asli telah dihapus. Dengan demikian, sumber tidak dapat menggunakan nilai CFSTR_PERFORMEDDROPEFFECT untuk menentukan operasi mana yang telah berlangsung. Meskipun sebagian besar sumber tidak memerlukan informasi ini, ada beberapa pengecualian. Misalnya, meskipun pemindahan yang dioptimalkan menghilangkan kebutuhan sumber untuk menghapus data apa pun, sumber mungkin masih perlu memperbarui database terkait untuk menunjukkan bahwa file telah dipindahkan atau disalin.
Jika sumber perlu mengetahui operasi mana yang berlangsung, sumber dapat memanggil metode IDataObject::GetData objek data dan meminta format CFSTR_LOGICALPERFORMEDDROPEFFECT. Format ini pada dasarnya mencerminkan apa yang terjadi dari sudut pandang pengguna setelah operasi selesai. Jika file baru dibuat dan file asli dihapus, pengguna akan melihat operasi pemindahan dan nilai data format diatur ke DROPEFFECT_MOVE. Jika file asli masih ada, pengguna melihat operasi salin dan nilai data format diatur ke DROPEFFECT_COPY. Jika tautan dibuat, nilai data format akan DROPEFFECT_LINK.
CFSTR_PASTESUCCEEDED
Pengidentifikasi format ini digunakan oleh target untuk menginformasikan objek data, melalui metode IDataObject::SetData , bahwa operasi delete-on-paste berhasil. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke DWORD yang berisi nilai DROPEFFECT . Format ini digunakan untuk memberi tahu objek data bahwa objek data harus menyelesaikan operasi potong dan menghapus data asli, jika perlu. Untuk informasi selengkapnya, lihat Operasi Hapus-saat-Tempel.
CFSTR_PERFORMEDDROPEFFECT
Pengidentifikasi format ini digunakan oleh target untuk menginformasikan objek data melalui metode IDataObject::SetData dari hasil transfer data. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke DWORD yang diatur ke nilai DROPEFFECT yang sesuai, biasanya DROPEFFECT_MOVE atau DROPEFFECT_COPY.
Format ini biasanya digunakan ketika hasil operasi dapat dipindahkan atau disalin, seperti dalam operasi pemindahan atau hapus-saat-tempel yang dioptimalkan. Ini menyediakan cara yang dapat diandalkan bagi target untuk memberi tahu objek data apa yang sebenarnya terjadi. Ini diperkenalkan karena nilai pdwEffect yang dikembalikan oleh DoDragDrop tidak dengan andal menunjukkan operasi mana yang telah berlangsung. Format CFSTR_PERFORMEDDROPEFFECT adalah cara yang dapat diandalkan untuk menunjukkan bahwa langkah yang tidak optimal telah terjadi.
CFSTR_PREFERREDDROPEFFECT
Pengidentifikasi format ini digunakan oleh sumber untuk menentukan apakah metode transfer data pilihannya dipindahkan atau disalin. Target drop meminta format ini dengan memanggil metode IDataObject::GetData objek data. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke nilai DWORD . Nilai ini diatur ke DROPEFFECT_MOVE jika operasi pemindahan lebih disukai atau DROPEFFECT_COPY jika operasi salin lebih disukai.
Fitur ini digunakan ketika sumber dapat mendukung operasi pemindahan atau penyalinan. Ini menggunakan format CFSTR_PREFERREDDROPEFFECT untuk mengomunikasikan preferensinya ke target. Karena target tidak berkewajiban untuk mematuhi permintaan, target harus memanggil metode IDataObject::SetData sumber dengan format CFSTR_PERFORMEDDROPEFFECT untuk memberi tahu objek data operasi mana yang benar-benar dilakukan.
Dengan operasi delete-on-paste , format CFSTR_PREFERREDDROPFORMAT digunakan untuk memberi tahu target apakah sumber melakukan pemotongan atau penyalinan. Dengan operasi seret dan letakkan, Anda dapat menggunakan CFSTR_PREFERREDDROPFORMAT untuk menentukan tindakan Shell. Jika format ini tidak ada, Shell melakukan tindakan default, berdasarkan konteks. Misalnya, jika pengguna menyeret file dari satu volume dan meletakkannya pada volume lain, tindakan default Shell adalah menyalin file. Dengan menyertakan format CFSTR_PREFERREDDROPFORMAT dalam objek data, Anda dapat mengambil alih tindakan default dan secara eksplisit memberi tahu Shell untuk menyalin, memindahkan, atau menautkan file. Jika pengguna memilih untuk menyeret dengan tombol kanan, CFSTR_PREFERREDDROPFORMAT menentukan perintah default pada menu pintasan seret dan letakkan . Pengguna masih bebas memilih perintah lain pada menu.
Sebelum Microsoft Internet Explorer 4.0, aplikasi menunjukkan bahwa aplikasi mentransfer jenis file pintasan dengan mengatur FD_LINKUI di anggota dwFlags dari struktur FILEDESCRIPTOR . Target kemudian harus menggunakan panggilan yang berpotensi memakan waktu ke IDataObject::GetData untuk mengetahui apakah bendera FD_LINKUI ditetapkan. Sekarang, cara yang disukai untuk menunjukkan bahwa pintasan sedang ditransfer adalah dengan menggunakan format CFSTR_PREFERREDDROPEFFECT diatur ke DROPEFFECT_LINK. Namun, untuk kompatibilitas mundur dengan sistem yang lebih lama, sumber masih harus mengatur bendera FD_LINKUI.
CFSTR_TARGETCLSID
Pengidentifikasi format ini digunakan oleh target untuk memberikan CLSID-nya ke sumbernya. Data adalah struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke GUID CLSID dari target penurunan.
Format ini digunakan terutama untuk memungkinkan objek dihapus dengan menyeretnya ke Keranjang Sampah. Saat objek dihilangkan di Keranjang Sampah, metode IDataObject::SetData sumber dipanggil dengan format CFSTR_TARGETCLSID diatur ke CLSID Keranjang Sampah (CLSID_RecycleBin). Sumber kemudian dapat menghapus objek asli.
CFSTR_UNTRUSTEDDRAGDROP
Pengidentifikasi format ini digunakan oleh Windows Internet Explorer dan Windows Shell untuk menyediakan mekanisme untuk memblokir atau meminta operasi seret dan letakkan yang berasal dari Internet Explorer bersama dengan bendera URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY .
CFSTR_UNTRUSTEDDRAGDROP ditambahkan oleh sumber operasi seret dan letakkan untuk menentukan bahwa objek data mungkin berisi data yang tidak dapat dipercaya. Data diwakili oleh struktur STGMEDIUM yang berisi objek memori global. Anggota hGlobal struktur menunjuk ke DWORD yang diatur ke bendera Tindakan URL yang sesuai untuk menyebabkan pemeriksaan kebijakan melalui metode IInternetSecurityManager::P rocessUrlAction , menggunakan bendera PUAF_ENFORCERESTRICTED .
SeretWindow
Format ini digunakan dalam operasi seret dan letakkan untuk mengidentifikasi gambar seret (jendela) objek sehingga informasi visualnya dapat diperbarui secara dinamis. Saat objek diseret ke target penghilangan, aplikasi memperbarui struktur DROPDESCRIPTION-nya sebagai respons terhadap metode IDropTarget::D ragOver atau IDropSource::GiveFeedback . DROPDESCRIPTION diperbarui dengan nilai DROPIMAGETYPE baru yang menunjukkan dekorasi yang akan diterapkan ke visual jendela seret; misalnya, indikasi bahwa file sedang disalin daripada dipindahkan atau bahwa objek tidak dapat dihilangkan ke lokasi tersebut. Namun, sampai objek menerima pesan DDWM_UPDATEWINDOW , visual tidak diperbarui. Format ini menyediakan HWND jendela seret penerima ke pengirim pesan DDWM_UPDATEWINDOW .
Data clipboard berjenis TYMED_HGLOBAL. Ini adalah representasi DWORD dari HWND. Data dapat diteruskan ke fungsi ULongToHandle , yang ditentukan dalam Basetsd.h, untuk menyediakan HWND 64-bit untuk digunakan pada Windows 64-bit.
Format ini tidak memerlukan penyertaan Shlobj.h.