A Rendszerhéj vágólapformátumai

A Rendszerhéj vágólap formátumai a vágólapon keresztül továbbított Shell-adatok típusának azonosítására szolgálnak. A Legtöbb Shell-vágólapformátum azonosítja az adatok típusát, például a fájlnevek listáját vagy az elemazonosító-listákra mutató mutatókat . Egyes formátumok azonban a forrás és a cél közötti kommunikációhoz használhatók. Felgyorsíthatják az adatátviteli folyamatot a Shell-műveletek támogatásával, például az optimalizált áthelyezéssel és delete_on_paste. A rendszerhéjadatok mindig olyan adatobjektumokban találhatók, amelyek a FORMATETC-struktúrát használják az adatok általánosabb jellemzésére. A struktúra cfFormat tagja az adott adatelem vágólapformátumára van állítva. A többi tag további információkat nyújt, például az adatátviteli mechanizmust. Az adatok egy kapcsolódó STGMEDIUM-struktúrában találhatók.

Megjegyzés:

A normál vágólapformátum-azonosítók CF_XXX formátumúak. Gyakori példa a CF_TEXT, amelyet ansi szöveges adatok átvitelére használnak. Ezek az azonosítók előre definiált értékekkel rendelkeznek, és közvetlenül a FORMATETC-struktúrákkal használhatók. A CF_HDROP kivételével a Rendszerhéj formátumazonosítói nincsenek előre definiálva. A DragWindow kivételével az űrlap CFSTR_XXX. Ha meg szeretné különböztetni ezeket az értékeket az előre definiált formátumoktól, gyakran egyszerűen formátumnak is nevezik őket. Az előre definiált formátumokkal ellentétben azonban a forrásnak és a célnak is regisztrálnia kell őket az adatok átviteléhez. A Shell-formátum regisztrálásához adja meg a Shlobj.h fejlécfájlt, és adja át a CFSTR_XXXformátumazonosítót a RegisterClipboardFormat fájlnak. Ez a függvény egy érvényes vágólapformátum-értéket ad vissza, amely aztán a FORMATETC-struktúracfFormat tagjaként használható.

 

A Rendszerhéj vágólap formátumai itt három csoportba vannak rendezve a használatuk alapján.

Fájlrendszerobjektumok átvitelének formátumai

Ezek a formátumok egy vagy több fájl vagy más Shell-objektum átvitelére szolgálnak.

CF_HDROP

Ez a vágólapformátum a meglévő fájlok egy csoportjának helyeinek átvitelére szolgál. A többi Shell-formátumtól eltérően előre definiált, így nem kell meghívni a RegisterClipboardFormatot. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja egy DROPFILES-struktúrára mutat , mint annak hGlobal tagjára.

A DROPFILES-struktúra pFiles-tagja a fájlneveket tartalmazó dupla null értékű karaktertömb eltolását tartalmazza. Ha CF_HDROP formátumot nyer ki egy adatobjektumból, a DragQueryFile használatával kinyerheti az egyes fájlneveket a globális memóriaobjektumból. Ha CF_HDROP formátumot hoz létre egy adatobjektumban való helyhez, létre kell hoznia a fájlnévtömböt.

A fájlnévtömb sztringek sorozatából áll, amelyek mindegyike egy fájl teljes elérési útját tartalmazza, beleértve a végződő NULL karaktert is. A tömb leállításához egy további null karakter van hozzáfűzve az utolsó sztringhez. Ha például a c:\temp1.txt és a c:\temp2.txt fájl átvitele folyamatban van, a karaktertömb a következőképpen néz ki:

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

Megjegyzés:

Ebben a példában a "\0" a null karaktert jelöli, nem pedig a belefoglalandó literális karaktereket.

Ha az objektumot egy húzási művelet részeként másolták a vágólapra, a DROPFILES-struktúrapt tagja tartalmazza annak a pontnak a koordinátáit, ahol az objektum el lett dobva. A DragQueryPoint használatával kinyerheti a kurzor koordinátáit.

Ha ez a formátum egy adatobjektumban található, az OLE húzási ciklus WM_DROPFILES funkciót szimulál nem OLE-es célokkal. Ez akkor fontos, ha az alkalmazás egy Windows 3.1-es rendszeren végzett húzási művelet forrása.

CFSTR_FILECONTENTS

Ez a formátumazonosító a CFSTR_FILEDESCRIPTOR formátummal úgy továbbítja az adatokat, mintha fájl lenne, függetlenül attól, hogy valójában hogyan tárolják őket. Az adatok egy STGMEDIUM-struktúrából állnak, amely egy fájl tartalmát jelöli. A fájl általában streamobjektumként van ábrázolva, így nem kell a fájl tartalmát a memóriába helyeznie. Ebben az esetben az STGMEDIUM-struktúratipált tagja TYMED_ISTREAM, a fájlt pedig egy IStream-felület jelöli. A fájl lehet tároló vagy globális memóriaobjektum is (TYMED_ISTORAGE vagy TYMED_HGLOBAL). A társított CFSTR_FILEDESCRIPTOR formátum minden fájlhoz tartalmaz egy FILEDESCRIPTOR struktúrát, amely meghatározza a fájl nevét és attribútumait.

A cél úgy kezeli a CFSTR_FILECONTENTS formátumhoz társított adatokat, mintha fájl lenne. Amikor a cél meghívja az IDataObject::GetData parancsot az adatok kinyerésére, egy adott fájlt határoz meg úgy, hogy a FORMATETC-struktúralindex tagját a fájl FILEDESCRIPTOR szerkezetének nulla alapú indexére állítja a hozzá tartozó CFSTR_FILEDESCRIPTOR formátumban. A cél ezután a visszaadott felületmutatót vagy a globális memóriakezelőt használja az adatok kinyeréséhez.

CFSTR_FILEDESCRIPTOR

Ez a formátumazonosító a CFSTR_FILECONTENTS formátummal használható az adatok fájlcsoportként való átviteléhez. Ez a két formátum az előnyben részesített módszer a nem fájlrendszerfájlként tárolt Shell-objektumok átvitelére. Ezek a formátumok például az e-mailek egy csoportjának egyedi fájlként való átvitelére használhatók, annak ellenére, hogy az egyes e-mailek valójában adatblokkként vannak tárolva az adatbázisban. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja egy FILEGROUPDESCRIPTOR struktúrára mutat, amelyet egy tömb követ, amely egy FILEDESCRIPTOR struktúrát tartalmaz a csoport egyes fájlaihoz. Minden EGYES FILEDESCRIPTOR-struktúrához külön CFSTR_FILECONTENTS formátum tartozik, amely tartalmazza a fájl tartalmát. Egy adott fájl CFSTR_FILECONTENTS formátumának azonosításához állítsa a FORMATETC-struktúralIndex értékét a fájl FILEDESCRIPTOR szerkezetének nullaalapú indexére.

A CFSTR_FILEDESCRIPTOR formátumot gyakran használják az adatok átvitelére, mintha fájlok csoportját használták volna, függetlenül attól, hogy valójában hogyan tárolják őket. A cél szempontjából minden CFSTR_FILECONTENTS formátum egyetlen fájlt jelöl, és ennek megfelelően lesz kezelve. A forrás azonban tetszőleges módon tárolhatja az adatokat. Bár egy CSFTR_FILECONTENTS formátum egyetlen fájlnak felelhet meg, a forrás által egy adatbázisból vagy szöveges dokumentumból kinyert adatokat is jelölhet.

CFSTR_FILENAME

Ez a formátumazonosító egyetlen fájl átvitelére szolgál. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja egyetlen null értékű sztringre mutat, amely a fájl teljes fájlelérési útját tartalmazza. Ezt a formátumot felváltotta a CF_HDROP, de támogatja a Windows 3.1-alkalmazásokkal való visszamenőleges kompatibilitást.

CFSTR_FILENAMEMAP

Ez a formátumazonosító akkor használatos, ha CF_HDROP formátumú fájlok egy csoportját átnevezik és átviszik. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja egy dupla null értékű karaktertömbre mutat. Ez a tömb minden fájlhoz új nevet tartalmaz, ugyanabban a sorrendben, mint a fájlok a mellékelt CF_HDROP formátumban. A karaktertömb formátuma megegyezik a CF_HDROP által az átvitt fájlok listázásához használt formátummal.

CFSTR_MOUNTEDVOLUME

Ez a formátumazonosító egy csatlakoztatott kötet elérési útjának átvitelére szolgál. Hasonló a CF_HDROP, de csak egyetlen elérési utat tartalmaz, és képes kezelni azokat a hosszabb elérésiút-sztringeket, amelyekre szükség lehet az elérési út megjelenítéséhez, amikor a kötet egy mappára van csatlakoztatva. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja egyetlen null értékű sztringre mutat, amely a teljes fájl elérési útját tartalmazza. Az elérésiút-sztringnek "\" karakterrel kell végződnie, amelyet a null értékű kifejezés követ.

2000 Windows előtt a kötetek csak meghajtóbetűjelekre csatlakoztathatók. Ntfs formátumú meghajtóval rendelkező Windows 2000-ben és újabb rendszerekben köteteket is csatlakoztathat üres mappákhoz. Ez a funkció lehetővé teszi a kötet csatlakoztatását meghajtóbetűjel nélkül. A csatlakoztatott kötet bármilyen jelenleg támogatott formátumot használhat, beleértve a FAT, FAT32, NTFS és CDFS formátumot.

Egy tulajdonságlapkezelő implementálásával oldalakat adhat hozzá a Meghajtó tulajdonságai tulajdonságlaphoz. Ha a kötet meghajtóbetűjelre van csatlakoztatva, a Rendszerhéj a CF_HDROP formátummal továbbítja az elérési út adatait a kezelőnek. A Windows 2000-ben és újabb rendszerekben a CF_HDROP formátumot akkor használják, ha egy kötet meghajtóbetűjelre van csatlakoztatva, ugyanúgy, mint a korábbi rendszerek esetében. Ha azonban egy kötet egy mappára van csatlakoztatva, a CFSTR_MOUNTEDVOLUME formátumazonosítót használja a rendszer a CF_HDROP helyett.

Ha csak meghajtóbetűjeleket használ a kötetek csatlakoztatásához, csak CF_HDROP fog használni, és a meglévő tulajdonságlapkezelők ugyanúgy működnek, mint a korábbi rendszerekben. Ha azonban azt szeretné, hogy a kezelő megjelenítse a mappákra és meghajtóbetűjelekre csatlakoztatott kötetek lapját, a kezelőnek képesnek kell lennie a CSFTR_MOUNTEDVOLUME és CF_HDROP formátumok megértésére.

CFSTR_SHELLIDLIST

Ez a formátumazonosító egy vagy több meglévő névtérobjektum helyének átviteléhez használatos. Ugyanúgy használják, mint a CF_HDROP, de a fájlrendszer elérési útjai helyett PIDL-eket tartalmaz. A PIDL-ek használatával a CFSTR_SHELLIDLIST formátum képes kezelni a virtuális objektumokat és a fájlrendszer-objektumokat. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy CIDA-struktúrára mutat.

A CIDA-struktúraaoffset tagja egy tömb, amely eltolásokat tartalmaz az itemIDLIST struktúra elejéhez minden átvitt PIDL-hez. Egy adott PIDL kinyeréséhez először határozza meg az indexét. Ezután adja hozzá az indexnek megfelelő aoffset értéket a CIDA-struktúra címéhez.

Az aoffset első eleme egy szülőmappa teljes piDL-jének eltolását tartalmazza. Ha ez a PIDL üres, a szülőmappa az asztal. A tömb többi eleme eltolást tartalmaz az átvitt PIDL-ek egyikéhez. Ezek a PIDL-ek a szülőmappa PIDL-éhez vannak viszonyítva.

Az alábbi két makró használható a PIDL-ek CIDA-struktúrából való lekéréséhez. Az első mutatót visz a struktúrára, és lekéri a szülőmappa PIDL-ját. A második a struktúra mutatóját veszi fel, és lekéri a nulla alapú index által azonosított többi PIDL egyikét.

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

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

Megjegyzés:

A makrók által visszaadott érték a PIDL ITEMIDLIST struktúrájára mutató mutató. Mivel ezek a struktúrák hossza eltérő, a szerkezet végét úgy kell meghatároznia, hogy végigjárja az ITEMIDLIST-struktúraSHITEMID-struktúráját , amíg el nem éri a végét jelző két bájtos NULL értéket.

CFSTR_SHELLIDLISTOFFSET

Ez a formátumazonosító olyan formátumokkal használható, mint a CF_HDROP, a CFSTR_SHELLIDLIST és a CFSTR_FILECONTENTS az átvitelt követően egy objektumcsoport pozíciójának megadásához. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúrából állnak. A struktúra hGlobal tagja pontstruktúrák tömbére mutat. Az első struktúra a csoportot tartalmazó téglalap bal felső sarkának képpontban megadott képernyőkoordinátáit adja meg. A struktúrák fennmaradó része határozza meg az egyes objektumok helyét a csoport helyzetéhez viszonyítva. Az objektumoknak ugyanabban a sorrendben kell lenniük, mint a társított formátumú objektumok listázásához.

Formátumok virtuális objektumok átviteléhez

A CFSTR_SHELLIDLIST formátum a fájlrendszer és a virtuális objektumok átvitelére is használható. Azonban számos speciális formátum is létezik bizonyos típusú virtuális objektumok átviteléhez.

CFSTR_NETRESOURCES

Ezt a formátumazonosítót használják hálózati erőforrások, például tartomány vagy kiszolgáló átvitelekor. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy NRESARRAY-struktúrára mutat. A struktúra nr tagja egy NETRESOURCE-struktúrát jelöl, amelynek lpRemoteName tagja egy null értékű sztringet tartalmaz, amely azonosítja a hálózati erőforrást. A drop target ezután az adatokat a Windows Hálózatkezelés (WNet) API-függvényekkel( például WNetAddConnection használhatja az objektum hálózati műveleteinek végrehajtásához.

CFSTR_PRINTERGROUP

Ez a formátumazonosító a nyomtatók felhasználóbarát nevének átviteléhez használatos. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy olyan sztringre mutat, amelynek formátuma megegyezik a CF_HDROP. A DROPFILES-struktúrapFiles tagja azonban fájlelérési útvonalak helyett egy vagy több felhasználóbarát nyomtatónevet tartalmaz.

CFSTR_INETURL

Ez a formátumazonosító felváltja a CFSTR_SHELLURL (elavult). Ha azt szeretné, hogy az alkalmazás manipulálja a vágólap URL-címeit, CFSTR_SHELLURL helyett használja a CFSTR_INETURL (elavult). Ez a formátum egyetlen URL-cím legjobb vágólap-ábrázolását biztosítja. Ha a UNICODE nincs definiálva, az alkalmazás lekéri az URL-cím CF_TEXT/CFSTR_SHELLURL verzióját. Ha UNICODE van definiálva, az alkalmazás lekéri az URL CF_UNICODE verzióját.

CFSTR_SHELLURL (elavult)

Megjegyzés:

Ez a formátumazonosító elavult; helyett használja CFSTR_INETURL.

 

Formátumok a forrás és a cél közötti kommunikációhoz

Ezek a formátumazonosítók lehetővé teszik a forrás és a cél közötti kommunikációt. A formátumok kísérik az adatokat, és nagyobb mértékben szabályozják az alkalmazások számára a Shell-objektumokat érintő áthelyezési-másolási-beillesztési vagy húzási műveleteket.

CFSTR_INDRAGLOOP

Ezt a formátumazonosítót egy adatobjektum használja annak jelzésére, hogy húzási ciklusban van-e. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy DWORD-értékre mutat. Ha a DWORD értéke nem nulla, az adatobjektum egy húzási cikluson belül van. Ha az érték nullára van állítva, az adatobjektum nem húzási cikluson belül van.

Egyes dobási célok meghívhatják az IDataObject::GetData parancsot, és megpróbálhatnak adatokat kinyerni, miközben az objektum még a húzási ciklusban van. Ha az objektumot minden ilyen előforduláshoz teljes mértékben rendereli, az a húzási kurzor elakadását okozhatja. Ha az adatobjektum támogatja a CFSTR_INDRAGLOOP, a cél ehelyett ezt a formátumot használhatja a húzási hurok állapotának ellenőrzésére, és elkerülheti az objektum memóriaigényes renderelését, amíg el nem veti azt. A renderelhető memóriaigényű formátumokat továbbra is tartalmaznia kell a FORMATETC enumerátorban és az IDataObject::QueryGetData hívásaiban. Ha az adatobjektum nem állítja be a CFSTR_INDRAGLOOP, úgy kell viselkednie, mintha az érték nulla lenne.

CFSTR_LOGICALPERFORMEDDROPEFFECT

5.0-s verzió.Ez a formátumazonosító lehetővé teszi, hogy egy drop-forrás meghívja az adatobjektum IDataObject::GetData metódusát a Shell-adatátvitel eredményének meghatározásához. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy DROPEFFECT értéket tartalmazó DWORD-ra mutat.

A CFSTR_PERFORMEDDROPEFFECT formátumazonosító lehetővé teszi, hogy a cél jelezze az adatobjektumnak, hogy valójában milyen művelet történt. A Rendszerhéj azonban optimalizált áthelyezéseket használ a fájlrendszer-objektumokhoz, amikor csak lehetséges. Ebben az esetben a Shell általában a CFSTR_PERFORMEDDROPEFFECT értéket DROPEFFECT_NONE értékre állítja, hogy jelezze az adatobjektumnak, hogy az eredeti adatokat törölték. Így a forrás nem használhatja a CFSTR_PERFORMEDDROPEFFECT értéket annak meghatározására, hogy melyik műveletet hajtották végre. Bár a legtöbb forrásnak nincs szüksége ezekre az információkra, vannak kivételek. Annak ellenére, hogy az optimalizált lépések kiküszöbölik az adatok törlésének szükségességét, előfordulhat, hogy a forrásnak frissítenie kell egy kapcsolódó adatbázist, hogy jelezze a fájlok áthelyezését vagy másolását.

Ha egy forrásnak tudnia kell, hogy melyik művelet történt, meghívhatja az adatobjektum IDataObject::GetData metódusát, és kérheti a CFSTR_LOGICALPERFORMEDDROPEFFECT formátumot. Ez a formátum lényegében azt tükrözi, hogy mi történik a felhasználó szempontjából a művelet befejezése után. Ha létrejön egy új fájl, és az eredeti fájl törlődik, a felhasználó egy áthelyezési műveletet lát, és a formátum adatértéke DROPEFFECT_MOVE. Ha az eredeti fájl még mindig ott van, a felhasználó egy másolási műveletet lát, és a formátum adatértéke DROPEFFECT_COPY. Ha létrejött egy hivatkozás, a formátum adatértéke DROPEFFECT_LINK lesz.

CFSTR_PASTESUCCEEDED

Ezt a formátumazonosítót használja a cél az adatobjektum IDataObject::SetData metóduson keresztül történő értesítésére, amely szerint a beillesztés utáni törlési művelet sikeres volt. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy DROPEFFECT értéket tartalmazó DWORD-ra mutat. Ez a formátum arra szolgál, hogy értesítse az adatobjektumot arról, hogy végre kell hajtania a kivágási műveletet, és szükség esetén törölnie kell az eredeti adatokat. További információ: Delete-on-Paste Operations.

CFSTR_PERFORMEDDROPEFFECT

Ezt a formátumazonosítót használja a cél az adatobjektum IDataObject::SetData metódusának az adatátvitel eredményéről való tájékoztatására. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy, a megfelelő DROPEFFECT értékre állított DWORD-halmazra mutat, általában DROPEFFECT_MOVE vagy DROPEFFECT_COPY.

Ez a formátum általában akkor használatos, ha egy művelet eredménye áthelyezhető vagy másolható, például optimalizált áthelyezési vagy beillesztési művelet esetén. Megbízható módot biztosít a cél számára, hogy elmondja az adatobjektumnak, hogy valójában mi történt. Azért vezették be, mert a DoDragDrop által visszaadott pdwEffect értéke nem jelzi megbízhatóan, hogy melyik művelet történt. A CFSTR_PERFORMEDDROPEFFECT formátum jelzi, hogy nem optimális lépés történt.

CFSTR_PREFERREDDROPEFFECT

A forrás ezt a formátumazonosítót használja annak meghatározására, hogy az adatátvitel elsődleges módja az áthelyezés, a másolás vagy a csatolás. A drop target ezt a formátumot az adatobjektum IDataObject::GetData metódusának meghívásával kéri le. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja egy DWORD-értékre mutat. Ez az érték az áthelyezési művelet előnyben részesítése esetén DROPEFFECT_MOVE értékre van állítva, DROPEFFECT_COPY a másolási művelet előnyben részesítése esetén, illetve hivatkozási művelet esetén DROPEFFECT_LINK.

Ez a funkció akkor használható, ha egy forrás támogatja az áthelyezési vagy másolási műveletet. A CFSTR_PREFERREDDROPEFFECT formátumot használja a célhoz való előnyben részesítéséhez. Mivel a célnak nincs kötelezve a kérés teljesítésére, a célnak meg kell hívnia a forrás IDataObject::SetData metódusát CFSTR_PERFORMEDDROPEFFECT formátumban, hogy elmondja az adatobjektumnak, hogy melyik műveletet hajtották végre ténylegesen.

A beillesztés utáni törlési művelettel a CFSTR_PREFERREDDROPEFFECT formátum jelzi a célnak, hogy a forrás kivágást vagy másolást végzett-e. Húzási művelettel CFSTR_PREFERREDDROPEFFECT formátummal adhatja meg a Shell műveletet. Ha ez a formátum nem jelenik meg, a Rendszerhéj egy alapértelmezett műveletet hajt végre a környezet alapján. Ha például egy felhasználó húz egy fájlt egy kötetről, és egy másik kötetre dobja, a Shell alapértelmezett művelete a fájl másolása. Ha CFSTR_PREFERREDDROPEFFECT formátumot is beszed az adatobjektumba, felülbírálhatja az alapértelmezett műveletet, és explicit módon megadhatja a Rendszerhéjnak, hogy másolja, helyezze át vagy csatolja a fájlt. Ha a felhasználó a jobb gombbal húz, CFSTR_PREFERREDDROPEFFECT formátum adja meg az alapértelmezett parancsot a húzási helyi menüben. A felhasználó továbbra is szabadon választhat más parancsokat a menüben.

A 4.0-s Microsoft Internet Explorer előtt egy alkalmazás jelezte, hogy a parancsikonfájl-típusokat a dwFlagsFILEDESCRIPTOR struktúrájának FD_LINKUI beállításával vonta át. A céloknak ezután egy potenciálisan időigényes hívást kellett használniuk az IDataObject::GetData parancshoz, hogy megtudják, be van-e állítva a FD_LINKUI jelző. A parancsikonok átvitelének elsődleges módja a CFSTR_PREFERREDDROPEFFECT formátum DROPEFFECT_LINK. A régebbi rendszerekkel való visszamenőleges kompatibilitás érdekében azonban a forrásoknak továbbra is be kell állítaniuk a FD_LINKUI jelzőt.

CFSTR_TARGETCLSID

Ezt a formátumazonosítót a cél használja a CLSID forrásnak való megadásához. Az adatok egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra . A struktúra hGlobal tagja a dobási cél CLSID GUID azonosítójára mutat.

Ez a formátum elsősorban az objektumok törlésének engedélyezésére szolgál a Lomtárba húzással. Amikor egy objektumot elvet a Lomtárba, a rendszer meghívja a forrás IDataObject::SetData metódusát egy CFSTR_TARGETCLSID formátummal, amely a Lomtár CLSID-jének (CLSID_RecycleBin) van beállítva. A forrás ezután törölheti az eredeti objektumot.

CFSTR_UNTRUSTEDDRAGDROP

Ezt a formátumazonosítót használja a Windows Internet Explorer és a Windows Shell egy olyan mechanizmus biztosítására, amellyel letilthatja vagy kérheti a Internet Explorer-ból származó húzási műveleteket a URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY jelzővel együtt.

CFSTR_UNTRUSTEDDRAGDROP egy húzási művelet forrása adja hozzá, hogy az adatobjektum nem megbízható adatokat tartalmazzon. Az adatokat egy globális memóriaobjektumot tartalmazó STGMEDIUM-struktúra képviseli. A struktúra hGlobal tagja egy megfelelő URL-műveletjelölőre mutató DWORD-halmazra mutat, amely szabályzat-ellenőrzést okoz az IInternetSecurityManager::P rocessUrlAction metóduson keresztül, a PUAF_ENFORCERESTRICTED jelző használatával.

DragWindow

Ez a formátum húzással azonosítja az objektum húzási képét (ablakát), hogy a vizualizáció adatai dinamikusan frissíthetők legyenek. Amikor egy objektumot áthúz egy drop target fölé, az alkalmazás frissíti a DROPDESCRIPTION struktúráját az IDropTarget::D ragOver vagy IDropSource::GiveFeedback metódusra válaszul. A DROPDESCRIPTION egy új DROPIMAGETYPE értékkel frissül, amely a húzási ablak vizualizációjára alkalmazni kívánt dekorációt jelzi; például annak jelzése, hogy a fájl átmásolása folyamatban van az áthelyezés helyett, vagy hogy az objektum nem helyezhető el erre a helyre. Amíg azonban az objektum nem kap DDWM_UPDATEWINDOW üzenetet, a vizualizációk nem frissülnek. Ez a formátum biztosítja a címzett húzási ablakának HWND-ját a DDWM_UPDATEWINDOW üzenet feladójának.

A vágólap adatai TYMED_HGLOBAL típusúak. Ez egy HWNDDWORD-ábrázolása. Az adatok továbbíthatók a Basetsd.h-ban definiált ULongToHandle függvénynek, hogy 64 bites HWND 64 bites Windows.

Ez a formátum nem igényli a Shlobj.h felvételét.