Aracılığıyla paylaş


Kabuk Panosu Biçimleri

Kabuk pano biçimleri, pano üzerinden aktarılan Shell verilerinin türünü tanımlamak için kullanılır. Çoğu Kabuk panosu biçimi, dosya adlarının listesi veya öğe tanımlayıcı listelerinin (PIDL' ler) işaretçileri gibi bir veri türünü tanımlar. Ancak, kaynak ve hedef arasındaki iletişim için bazı biçimler kullanılır. iyileştirilmiş taşıma ve delete_on_pastegibi Kabuk işlemlerini destekleyerek veri aktarımı işlemini hızlandırabilir. Kabuk verileri her zaman verileri nitelemek için daha genel bir yol olarak FORMATETC yapısı kullanan bir veri nesnesi bulunur. Yapının cfFormat üyesi, belirli veri öğesi için pano biçimine ayarlanır. Diğer üyeler, veri aktarım mekanizması gibi ek bilgiler sağlar. Veriler, stgmediumeşlik eden bir yapıda yer alır.

Not

Standart pano biçimi tanımlayıcıları XXXCF_biçimindedir. AnSI metin verilerini aktarmak için kullanılan CF_TEXT yaygın bir örnektir. Bu tanımlayıcılar önceden tanımlanmış değerlere sahiptir ve doğrudan FORMATETC yapıları ile kullanılabilir. CF_HDROPdışında, Kabuk biçimi tanımlayıcıları önceden tanımlı değildir. DragWindow dışında, XXXCFSTR_formuna sahiptirler. Bu değerleri önceden tanımlanmış biçimlerden ayırt etmek için genellikle biçimleri olarak adlandırılır. Ancak, önceden tanımlanmış biçimlerden farklı olarak, verileri aktarmak için kullanılabilmesi için önce hem kaynak hem de hedef tarafından kaydedilmesi gerekir. Kabuk biçimini kaydetmek için Shlobj.h üst bilgi dosyasını ekleyin ve CFSTR_XXX biçim tanımlayıcısını RegisterClipboardFormatgeçirin. Bu işlev geçerli bir pano biçimi değeri döndürür ve bu değer daha sonra FORMATETC yapısının cfFormat üyesi olarak kullanılabilir.

 

Shell pano biçimleri, nasıl kullanıldıklarına bağlı olarak burada üç grup halinde düzenlenir.

Dosya Sistemi Nesnelerini Aktarma Biçimleri

Bu biçimler bir veya daha fazla dosyayı veya diğer Shell nesnelerini aktarmak için kullanılır.

CF_HDROP

Bu pano biçimi, var olan bir dosya grubunun konumları aktarılırken kullanılır. Diğer Kabuk biçimlerinden farklı olarak önceden tanımlanmıştır, bu nedenle RegisterClipboardFormatçağrısı yapmanız gerekmez. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi, hGlobal üyesi olarak DROPFILES yapısına işaret eder.

DROPFILES yapısının pFiles üyesi, dosya adlarını içeren çift nullsonlandırılan karakter dizisine uzaklık içerir. Veri nesnesinden CF_HDROP biçimi ayıklarsanız, genel bellek nesnesinden tek tek dosya adlarını ayıklamak için DragQueryFile kullanabilirsiniz. Veri nesnesine yerleştirmek için CF_HDROP biçimi oluşturuyorsanız, dosya adı dizisini oluşturmanız gerekir.

Dosya adı dizisi, her biri bir dosyanın tam yolunu içeren ve sonlandırıcı NULL karakteri de dahil olmak üzere bir dizi dizeden oluşur. Diziyi sonlandırmak için son dizeye ek bir null karakteri eklenir. Örneğin, c:\temp1.txt ve c:\temp2.txt dosyaları aktarılıyorsa, karakter dizisi şöyle görünür:

c:\temp1.txt'\0'c:\temp2.txt'\0''\0'

Not

Bu örnekte, '\0' eklenmesi gereken değişmez karakterleri değil, null karakterini temsil etmek için kullanılır.

Nesne sürükle ve bırak işleminin bir parçası olarak panoya kopyalandıysa, DROPFILES yapısının pt üyesi, nesnenin bırakıldığı noktanın koordinatlarını içerir. İmleç koordinatlarını ayıklamak için DragQueryPoint kullanabilirsiniz.

Bu biçim bir veri nesnesinde mevcutsa, OLE sürükleme döngüsü OLE olmayan bırakma hedefleriyle WM_DROPFILES işlevselliğin simülasyonunu oluşturur. Uygulamanız bir Windows 3.1 sisteminde sürükle ve bırak işleminin kaynağıysa bu önemlidir.

CFSTR_FILECONTENTS

Bu biçim tanımlayıcısı, gerçekte nasıl depolandığına bakılmaksızın verileri bir dosyaymış gibi aktarmak için CFSTR_FILEDESCRIPTOR biçimiyle birlikte kullanılır. Veriler, bir dosyanın içeriğini temsil eden bir STGMEDIUM yapısından oluşur. Dosya normalde bir akış nesnesi olarak temsil edilir ve bu da dosyanın içeriğini belleğe yerleştirmek zorunda kalmamasını sağlar. Bu durumda, STGMEDIUM yapısının üyesi TYMED_ISTREAM olarak ayarlanır ve dosya IStream arabirimiyle temsil edilir. Dosya bir depolama veya genel bellek nesnesi de olabilir (TYMED_ISTORAGE veya TYMED_HGLOBAL). İlişkili CFSTR_FILEDESCRIPTOR biçimi, her dosya için dosyanın adını ve özniteliklerini belirten bir FILEDESCRIPTOR yapısı içerir.

Hedef, CFSTR_FILECONTENTS biçimiyle ilişkili verileri bir dosyaymış gibi ele alır. Hedef, verileri ayıklamak için IDataObject::GetData çağırdığında, FORMATETC yapısının lindex üyesini dosyanın FILEDESCRIPTOR yapısının CFSTR_FILEDESCRIPTOR biçiminde sıfır tabanlı dizine ayarlayarak belirli bir dosyayı belirtir. Hedef daha sonra verileri ayıklamak için döndürülen arabirim işaretçisini veya genel bellek tutamacını kullanır.

CFSTR_FILEDESCRIPTOR

Bu biçim tanımlayıcısı, verileri dosya grubu olarak aktarmak için CFSTR_FILECONTENTS biçimiyle birlikte kullanılır. Bu iki biçim, dosya sistemi dosyaları olarak depolanmayan Shell nesnelerini aktarmanın tercih edilen yoludur. Örneğin, her e-posta aslında bir veritabanında veri bloğu olarak depolanmış olsa bile, bu biçimler bir grup e-posta iletisini tek tek dosyalar olarak aktarmak için kullanılabilir. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi, gruptaki her dosya için bir FILEDESCRIPTOR yapısı içeren bir dizi tarafından izlenen bir FILEGROUPDESCRIPTOR yapısına işaret eder. Her FILEDESCRIPTOR yapısı için, dosyanın içeriğini içeren ayrı bir CFSTR_FILECONTENTS biçimi vardır. Belirli bir dosyanın CFSTR_FILECONTENTS biçimini tanımlamak için, FORMATETC yapısının lIndex değerini, dosyanın FILEDESCRIPTOR yapısının sıfır tabanlı dizinine ayarlayın.

CFSTR_FILEDESCRIPTOR biçimi genellikle verilerin nasıl depolandığına bakılmaksızın bir dosya grubu gibi aktarmak için kullanılır. Hedef açısından bakıldığında, her CFSTR_FILECONTENTS biçimi tek bir dosyayı temsil eder ve buna göre işlenir. Ancak, kaynak verileri istediği şekilde depolayabilir. CSFTR_FILECONTENTS biçimi tek bir dosyaya karşılık gelebilir, ancak örneğin, bir veritabanından veya metin belgesinden kaynak tarafından ayıklanan verileri de gösterebilir.

CFSTR_FILENAME

Bu biçim tanımlayıcısı tek bir dosyayı aktarmak için kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi, dosyanın tam dosya yolunu içeren tek bir nullsonlandırılan dizeye işaret ediyor. Bu biçimin yerini CF_HDROPalmıştır, ancak Windows 3.1 uygulamalarıyla geriye dönük uyumluluk için desteklenir.

CFSTR_FILENAMEMAP

Bu biçim tanımlayıcısı, CF_HDROP biçimdeki bir dosya grubu hem yeniden adlandırıldığında hem de aktarıldığında kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi çift nullsonlandırılan karakter dizisine işaret eder. Bu dizi, dosyaların eşlik eden CF_HDROP biçiminde listelendiği sırayla her dosya için yeni bir ad içerir. Karakter dizisinin biçimi, CF_HDROP tarafından aktarılan dosyaları listelemek için kullanılanla aynıdır.

CFSTR_MOUNTEDVOLUME

Bu biçim tanımlayıcısı, bağlı bir birimdeki yolu aktarmak için kullanılır. CF_HDROPbenzer, ancak yalnızca tek bir yol içerir ve birim bir klasöre bağlandığında yolu temsil etmek için gerekli olabilecek uzun yol dizelerini işleyebilir. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi, tam dosya yolunu içeren tek bir nullsonlandırılan dizeye işaret ediyor. Yol dizesi '\' karakteriyle bitmeli ve ardından null sonlandırılmalıdır.

Windows 2000'in öncesinde birimler yalnızca sürücü harflerine takılabilirdi. NTFS biçimli bir sürücüye sahip Windows 2000 ve üzeri sistemler için, birimleri boş klasörlere de bağlayabilirsiniz. Bu özellik, bir birimin sürücü harfine gerek kalmadan takılmasını sağlar. Bağlı birim FAT, FAT32, NTFS ve CDFS dahil olmak üzere şu anda desteklenen herhangi bir biçimi kullanabilir.

birözellik sayfası işleyicisi uygulayarak Bir Sürücü Özellikleri özellik sayfasına sayfalar ekleyebilirsiniz. Birim bir sürücü harfine bağlıysa, Shell yol bilgilerini CF_HDROP biçimiyle işleyiciye geçirir. Windows 2000 ve üzeri sistemlerde CF_HDROP biçimi, önceki sistemlerde olduğu gibi bir birim bir sürücü harfine bağlandığında kullanılır. Ancak, bir birim bir klasöre bağlıysa, CF_HDROP yerine CFSTR_MOUNTEDVOLUME biçim tanımlayıcısı kullanılır.

Birimleri bağlamak için yalnızca sürücü harfleri kullanılacaksa, yalnızca CF_HDROP kullanılır ve mevcut özellik sayfası işleyicileri önceki sistemlerde olduğu gibi çalışır. Ancak, işleyicinizin hem klasörlere hem de sürücü harflerine bağlanmış birimler için bir sayfa görüntülemesini istiyorsanız, işleyicinin hem CSFTR_MOUNTEDVOLUME hem de CF_HDROP biçimlerini anlayabilmesi gerekir.

CFSTR_SHELLIDLIST

Bu biçim tanımlayıcısı, mevcut bir veya daha fazla ad alanı nesnesinin konumları aktarılırken kullanılır. CF_HDROPile çok aynı şekilde kullanılır, ancak dosya sistemi yolları yerine PIDL'ler içerir. PIDL'lerin kullanılması, CFSTR_SHELLIDLIST biçiminin hem sanal nesneleri hem de dosya sistemi nesnelerini işlemesini sağlar. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi CIDA yapısına işaret etti.

CIDA yapısının aoffset üyesi, aktarılmakta olan her PIDL için ITEMIDLIST yapısının başına uzaklıkları içeren bir dizidir. Belirli bir PIDL'yi ayıklamak için önce dizinini belirleyin. Ardından, bu dizine karşılık gelen aoffset değerini CIDA yapısının adresine ekleyin.

aoffset ilk öğesi, üst klasörün tam PIDL'sine uzaklık içerir. Bu PIDL boşsa, üst klasör masaüstüdür. Dizinin kalan öğelerinin her biri aktarılacak PIDL'lerden birine uzaklık içerir. Bu PIDL'lerin tümü üst klasörün PIDL'sine göre belirlenir.

CIDA yapısından PIDL'leri almak için aşağıdaki iki makro kullanılabilir. birincisi yapıya bir işaretçi alır ve üst klasörün PIDL'sini alır. İkincisi, yapıya bir işaretçi alır ve sıfır tabanlı diziniyle tanımlanan diğer PIDL'lerden birini alır.

#define GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])

#define GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])

Not

Bu makrolar tarafından döndürülen değer, PIDL'in ITEMIDLIST yapısına yönelik bir işaretçidir. Bu yapıların uzunluğu farklılık gösterdiğinden, bitişi işaretleyen iki baytlık NULL ulaşana kadar ITEMIDLIST yapısının SHITEMID yapılarının her birinde ilerleyerek yapının sonunu belirlemeniz gerekir.

CFSTR_SHELLIDLISTOFFSET

Bu biçim tanımlayıcısı, CF_HDROP, CFSTR_SHELLIDLISTve CFSTR_FILECONTENTS gibi biçimlerle aktarımdan sonra bir nesne grubunun konumunu belirtmek için kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısından oluşur. Yapının hGlobal üyesi bir dizi POINT yapısına işaret eder. İlk yapı, grubu çevreleyen dikdörtgenin sol üst köşesinin ekran koordinatlarını piksel cinsinden belirtir. Yapıların geri kalanı, tek tek nesnelerin grubun konumuna göre konumlarını belirtir. Bunlar, nesneleri ilişkili biçimde listelemek için kullanılan sırada olmalıdır.

Sanal Nesneleri Aktarma Biçimleri

CFSTR_SHELLIDLIST biçimi hem dosya sistemini hem de sanal nesneleri aktarmak için kullanılabilir. Ancak, belirli sanal nesne türlerini aktarmak için çeşitli özel biçimler de vardır.

CFSTR_NETRESOURCES

Bu biçim tanımlayıcısı, etki alanı veya sunucu gibi ağ kaynakları aktarılırken kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi NRESARRAY yapısına işaret ediyor. Bu yapının nr üyesi, lpRemoteName üyesi ağ kaynağını tanımlayan nullsonlandırılan bir dize içeren NETRESOURCE yapısını gösterir. Bırakma hedefi, nesne üzerinde ağ işlemleri gerçekleştirmek için WNetAddConnectiongibi Windows Ağı (WNet) API işlevlerinden herhangi biriyle verileri kullanabilir.

CFSTR_PRINTERGROUP

Bu biçim tanımlayıcısı, yazıcıların kolay adları aktarılırken kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi, CF_HDROPile kullanılanla aynı biçimde bir dizeye işaret etti. Ancak DROPFILES yapısının pFiles üyesi, dosya yolları yerine yazıcıların bir veya daha fazla kolay adını içerir.

CFSTR_INETURL

Bu biçim tanımlayıcısı CFSTR_SHELLURL (kullanım dışı) öğesinin yerini alır. Uygulamanızın pano URL'lerini işlemesini istiyorsanız, CFSTR_SHELLURL yerine CFSTR_INETURL kullanın (kullanım dışı). Bu biçim, tek bir URL'nin en iyi pano gösterimini sağlar. UNICODE tanımlanmamışsa, uygulama URL'nin CF_TEXT/CFSTR_SHELLURL sürümünü alır. UNICODE tanımlanmışsa, uygulama URL'nin CF_UNICODE sürümünü alır.

CFSTR_SHELLURL (kullanım dışı)

Not

Bu biçim tanımlayıcısı kullanım dışı bırakıldı; yerine CFSTR_INETURL kullanın.

 

Kaynak ve Hedef Arasındaki İletişim Biçimleri

Bu biçim tanımlayıcıları kaynak ve hedef arasında iletişime izin verir. Biçimler verilere eşlik eder ve uygulamalara Shell nesnelerini içeren taşıma-kopyalama-yapıştırma veya sürükleyip bırakma işlemleri üzerinde daha fazla denetim sağlar.

CFSTR_INDRAGLOOP

Bu biçim tanımlayıcısı, veri nesnesi tarafından sürükle ve bırak döngüsünde olup olmadığını belirtmek için kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi bir DWORD değerine işaret etti. DWORD değeri sıfır değilse, veri nesnesi sürükle ve bırak döngüsü içindedir. Değer sıfır olarak ayarlanırsa, veri nesnesi sürükle ve bırak döngüsü içinde değildir.

Bazı bırakma hedefleri IDataObject::GetData çağırabilir ve nesne hala sürükle ve bırak döngüsü içindeyken verileri ayıklamaya çalışabilir. Bu tür her oluşum için nesneyi tam olarak işlemek, sürükleme imlecinin durmasına neden olabilir. Veri nesnesi CFSTR_INDRAGLOOPdestekliyorsa, hedef bunun yerine sürükle ve bırak döngüsünün durumunu denetlemek ve nesne bırakılana kadar yoğun bellek kullanan nesne işlemesini önlemek için bu biçimi kullanabilir. İşlenmesi yoğun bellek kullanan biçimler, FORMATETC numaralandırıcısına ve IDataObject::QueryGetDataçağrılarına eklenmelidir. Veri nesnesi CFSTR_INDRAGLOOP ayarlamazsa, değer sıfır olarak ayarlanmış gibi davranmalıdır.

CFSTR_LOGICALPERFORMEDDROPEFFECT

Sürüm 5.0.Bu biçim tanımlayıcısı, bir kabuk veri aktarımının sonucunu belirlemek için bir bırakma kaynağının veri nesnesinin IDataObject::GetData yöntemini çağırmasına olanak tanır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi, DROPEFFECT değeri içeren bir DWORD'e işaret eder.

CFSTR_PERFORMEDDROPEFFECT biçim tanımlayıcısı, hedefin veri nesnesine gerçekte hangi işlemin gerçekleştiğini belirtmesine izin vermek için tasarlanmıştır. Ancak Kabuk, mümkün olduğunda dosya sistemi nesneleri için iyileştirilmiş taşımaları kullanır. Bu durumda Shell normalde CFSTR_PERFORMEDDROPEFFECT değerini DROPEFFECT_NONE olarak ayarlar ve veri nesnesine özgün verilerin silindiğini gösterir. Bu nedenle, kaynak hangi işlemin gerçekleştiğini belirlemek için CFSTR_PERFORMEDDROPEFFECT değerini kullanamaz. Çoğu kaynağın bu bilgilere ihtiyacı olmasa da bazı özel durumlar vardır. Örneğin, iyileştirilmiş taşımalar bir kaynağın verileri silme gereksinimini ortadan kaldırsa da, kaynakların taşındığını veya kopyalandığını belirtmek için ilgili veritabanını güncelleştirmesi gerekebilir.

Bir kaynağın hangi işlemin gerçekleştiğini bilmesi gerekiyorsa, veri nesnesinin IDataObject::GetData yöntemini çağırabilir ve CFSTR_LOGICALPERFORMEDDROPEFFECT biçimini isteyebilir. Bu biçim temelde işlem tamamlandıktan sonra kullanıcının bakış açısından ne olduğunu yansıtır. Yeni bir dosya oluşturulursa ve özgün dosya silinirse, kullanıcı bir taşıma işlemi görür ve biçimin veri değeri DROPEFFECT_MOVE olarak ayarlanır. Özgün dosya hala oradaysa, kullanıcı bir kopyalama işlemi görür ve biçimin veri değeri DROPEFFECT_COPY olarak ayarlanır. Bir bağlantı oluşturulduysa, biçimin veri değeri DROPEFFECT_LINK.

CFSTR_PASTESUCCEEDED

Bu biçim tanımlayıcısı hedef tarafından veri nesnesine, IDataObject::SetData yöntemi aracılığıyla bir yapıştırmada silme işleminin başarılı olduğunu bildirmek için kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi, DROPEFFECT değeri içeren bir DWORD işaret eder. Bu biçim, veri nesnesine kesme işlemini tamamlaması ve gerekirse özgün verileri silmesi gerektiğini bildirmek için kullanılır. Daha fazla bilgi için bkz. Yapıştırma İşlemleri.

CFSTR_PERFORMEDDROPEFFECT

Bu biçim tanımlayıcısı, hedef tarafından veri aktarımının sonucunu IDataObject::SetData yöntemi aracılığıyla veri nesnesini bilgilendirmek için kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi, normal olarak DROPEFFECT_MOVE veya DROPEFFECT_COPY uygun DROPEFFECT değerine ayarlanmış bir DWORD işaret eder.

Bu biçim normalde bir işlemin sonucu, örneğin iyileştirilmiş taşıma veya yapıştırmada silme işlemi gibi bir taşıma veya kopyalama işlemi olduğunda kullanılır. Hedef için veri nesnesine gerçekte ne olduğunu söylemek için güvenilir bir yol sağlar. DoDragDrop tarafından döndürülen pdwEffect değeri, hangi işlemin gerçekleştiğini güvenilir bir şekilde belirtmediğinden ortaya çıkmıştır. CFSTR_PERFORMEDDROPEFFECT biçimi, iyileştirilmemiş bir taşımanın gerçekleştiğini belirtmenin güvenilir bir yoludur.

CFSTR_PREFERREDDROPEFFECT

Bu biçim tanımlayıcısı kaynak tarafından tercih edilen veri aktarımı yönteminin taşıma mı yoksa kopyalama mı olduğunu belirtmek için kullanılır. Bırakma hedefi, veri nesnesinin IDataObject::GetData yöntemini çağırarak bu biçimi istemektedir. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi bir DWORD değerine işaret etti. Bu değer, taşıma işlemi tercih edilirse DROPEFFECT_MOVE veya kopyalama işlemi tercih edilirse DROPEFFECT_COPY olarak ayarlanır.

Bu özellik, bir kaynağın taşıma veya kopyalama işlemini destekleyeebildiği durumlarda kullanılır. Tercihini hedefe iletmek için CFSTR_PREFERREDDROPEFFECT biçimini kullanır. Hedef isteği yerine getirmekle yükümlü olmadığından, hedef, veri nesnesine gerçekte hangi işlemin gerçekleştirildiğini bildirmek için kaynağın IDataObject::SetData yöntemini CFSTR_PERFORMEDDROPEFFECT biçimiyle çağırmalıdır.

yapıştırmada silme işlemiyle CFSTR_PREFERREDDROPFORMAT biçimi, kaynağın kesme mi yoksa kopyalama mı yaptığını hedefe bildirmek için kullanılır. Sürükleyip bırakma işlemiyle CFSTR_PREFERREDDROPFORMAT kullanarak Kabuğun eylemini belirtebilirsiniz. Bu biçim yoksa, Kabuk bağlama göre varsayılan bir eylem gerçekleştirir. Örneğin, bir kullanıcı dosyayı bir birimden sürükleyip başka bir birime bırakırsa, Shell'in varsayılan eylemi dosyayı kopyalamaktır. Veri nesnesine bir CFSTR_PREFERREDDROPFORMAT biçimi ekleyerek varsayılan eylemi geçersiz kılabilir ve Kabuk'a dosyayı kopyalamasını, taşımasını veya bağlamasını açıkça söyleyebilirsiniz. Kullanıcı doğru düğmeyle sürüklemeyi seçerse CFSTR_PREFERREDDROPFORMAT sürükle ve bırak kısayol menüsünde varsayılan komutu belirtir. Kullanıcı menüden diğer komutları seçebilir.

Microsoft Internet Explorer 4.0'den önce bir uygulama, FILEDESCRIPTOR yapısının dwFlags üyesinde FD_LINKUI ayarlayarak kısayol dosya türlerini aktardığını belirtti. Ardından hedeflerin, FD_LINKUI bayrağının ayarlandığını öğrenmek için IDataObject::GetData için zaman alıcı olabilecek bir çağrı kullanması gerekiyordu. Artık kısayolların aktarıldığını belirtmenin tercih edilen yolu, DROPEFFECT_LINK olarak ayarlanmış CFSTR_PREFERREDDROPEFFECT biçimini kullanmaktır. Ancak, eski sistemlerle geriye dönük uyumluluk için kaynakların FD_LINKUI bayrağını ayarlaması gerekir.

CFSTR_TARGETCLSID

Bu biçim tanımlayıcısı, clsid kaynağı sağlamak için bir hedef tarafından kullanılır. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıdır. Yapının hGlobal üyesi bırakma hedefinin CLSID GUID'sini gösterir.

Bu biçim öncelikli olarak nesnelerin Geri Dönüşüm Kutusu'na sürüklenerek silinmesine izin vermek için kullanılır. Geri Dönüşüm Kutusu'na bir nesne bırakıldığında, kaynağın IDataObject::SetData yöntemi, Geri Dönüşüm Kutusu'nun CLSID'sine (CLSID_RecycleBin) ayarlanmış bir CFSTR_TARGETCLSID biçimiyle çağrılır. Kaynak daha sonra özgün nesneyi silebilir.

CFSTR_UNTRUSTEDDRAGDROP

Bu biçim tanımlayıcısı, URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY bayrağıyla birlikte Internet Explorer'dan kaynaklanan sürükle ve bırak işlemlerinin engellenmesi veya istendiği bir mekanizma sağlamak için Windows Internet Explorer ve Windows Kabuğu tarafından kullanılır.

CFSTR_UNTRUSTEDDRAGDROP, veri nesnesinin güvenilir olmayan veriler içerebileceğini belirtmek için sürükle ve bırak işleminin kaynağı tarafından eklenir. Veriler, genel bellek nesnesi içeren bir STGMEDIUM yapısıyla temsil edilir. Yapının hGlobal üyesi, PUAF_ENFORCERESTRICTED bayrağını kullanarak IInternetSecurityManager::P rocessUrlAction yöntemi aracılığıyla ilke denetimine neden olmak için uygun bir URL Eylemi bayrağına ayarlanmış bir DWORD işaret eder.

DragWindow

Bu biçim, görsel bilgilerinin dinamik olarak güncelleştirilebilmesi için nesnenin sürükle görüntüsünü (pencere) tanımlamak için sürükle ve bırak işleminde kullanılır. Bir nesne bırakma hedefinin üzerine sürüklendiğinde, uygulama IDropTarget::D ragOver veya IDropSource::GiveFeedback yöntemine yanıt olarak DROPDESCRIPTION yapısını güncelleştirir. DROPDESCRIPTION, sürükleme penceresinin görseline uygulanacak süslemeyi gösteren yeni DROPIMAGETYPE değeriyle güncelleştirilir; örneğin, dosyanın taşınmak yerine kopyalandığını veya nesnenin bu konuma bırakılamayacağını gösteren bir gösterge. Ancak, nesne bir DDWM_UPDATEWINDOW iletisi alıncaya kadar görseller güncelleştirilmez. Bu biçim, alıcının DDWM_UPDATEWINDOW iletisini gönderene sürükleme penceresinin HWND sağlar.

Pano verileri TYMED_HGLOBALtüründedir. HWNDDWORD gösterimidir. Veriler, 64 bit Windows'ta kullanılmak üzere 64 bit HWND sağlamak üzere Basetsd.h'de tanımlanan ULongToHandle işlevine geçirilebilir.

Bu biçim Shlobj.h dosyasının eklenmesini gerektirmez.