Articles Windows Clipboard Formats by Jochen Arndt

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,439
Credits
574
Windows Clipboard Formats
Jochen Arndt - 07/Mar/2018
[SHOWTOGROUPS=4,20]
An overview of clipboard and Drag & Drop object formats.

Introduction
This reference gives you an overview of standard and common clipboard formats with links to the data structures.

Definitions

The following type definitions are used in the below tables:
  • ANSI textNull terminated ANSI or multi byte string.
  • Unicode textNull terminated Unicode (UTF-16LE) string.
  • ANSI / Unicode text listList of null terminated strings followed by a NULL character (double NULL terminated).
  • ASCII / ANSI textASCII 7-bit text by definition but ANSI 8-bit text may be supported.
  • DWORD (BOOL)DWORD value representing a boolean value (true if not zero).

Links indicate the destination in brackets. For MSDN links in the tables the indication is omitted.

Standard Clipboard Formats

The Для просмотра ссылки Войди или Зарегистрируйся use numeric IDs defined in WinUser.h. All non-standard formats must be registered using a unique format name.

Format IdentifierData TypeDescription
CF_TEXT (1)ANSI textText.
CF_BITMAP (2)HBITMAPHandle to a bitmap (GDI object).
CF_METAFILEPICT (3)Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся picture.
CF_SYLK (4)ANSI textMicrosoft Для просмотра ссылки Войди или Зарегистрируйся.
CF_DIF (5)ASCII textSoftware Arts Для просмотра ссылки Войди или Зарегистрируйся.
CF_TIFF (6)Для просмотра ссылки Войди или ЗарегистрируйсяTIFF image.
CF_OEMTEXT (7)8-Bit DOS textText.
CF_DIB (8)Для просмотра ссылки Войди или ЗарегистрируйсяStructure followed by bitmap bits.
CF_PALETTE (9)HPALETTEHandle to a color palette (GDI object).
CF_PENDATA (10)-Windows 3.1 pen extension data.
CF_RIFF (11)Для просмотра ссылки Войди или ЗарегистрируйсяResource Interchange File Format (RIFF) audio.
CF_WAVE (12)WAVEWAVE audio.
CF_UNICODETEXT (13)Unicode textText.
CF_ENHMETAFILE (14)HENHMETAFILEДля просмотра ссылки Войди или Зарегистрируйся handle.
CF_HDROP (15)Для просмотра ссылки Войди или ЗарегистрируйсяList of file names.
CF_LOCALE (16)DWORD (Для просмотра ссылки Войди или Зарегистрируйся)LCID for CF_TEXT to CF_UNICODE conversion.
CF_DIBV5 (17)Для просмотра ссылки Войди или ЗарегистрируйсяStructure followed by bitmap bits
CF_DSPTEXT (0x0081)ANSI textText.
CF_DSPBITMAP (0x0082)HBITMAPHandle to a bitmap (GDI object)
CF_DSPMETAFILEPICT (0x0083)Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся picture.
CF_DSPENHMETAFILE (0x008E)HENHMETAFILEДля просмотра ссылки Войди или Зарегистрируйся handle.

Shell Clipboard Formats

The Для просмотра ссылки Войди или Зарегистрируйся are used to transfer shell objects via clipboard and Drag & Drop.

For most of them there is a definition for the format name in the header file shlobj.h:

DefinitionFormat Name
CFSTR_SHELLIDLISTShell IDList Array
CFSTR_SHELLIDLISTOFFSETShell Object Offsets
CFSTR_NETRESOURCESNet Resource
CFSTR_FILEDESCRIPTORAFileGroupDescriptor
CFSTR_FILEDESCRIPTORWFileGroupDescriptorW
CFSTR_FILECONTENTSFileContents
CFSTR_FILENAMEAFileName
CFSTR_FILENAMEWFileNameW
CFSTR_PRINTERGROUPPrinterFriendlyName
CFSTR_FILENAMEMAPAFileNameMap
CFSTR_FILENAMEMAPWFileNameMapW
CFSTR_SHELLURLUniformResourceLocator
CFSTR_INETURLAUniformResourceLocator
CFSTR_INETURLWUniformResourceLocatorW
CFSTR_PREFERREDDROPEFFECTPreferred DropEffect
CFSTR_PERFORMEDDROPEFFECTPerformed DropEffect
CFSTR_PASTESUCCEEDEDPaste Succeeded
CFSTR_INDRAGLOOPInShellDragLoop
CFSTR_DRAGCONTEXTDragContext
CFSTR_MOUNTEDVOLUMEMountedVolume
CFSTR_PERSISTEDDATAOBJECTPersistedDataObject
CFSTR_TARGETCLSIDTargetCLSID
CFSTR_LOGICALPERFORMEDDROPEFFECTLogical Performed DropEffect
CFSTR_AUTOPLAY_SHELLIDLISTSAutoplay Enumerated IDList Array
CFSTR_UNTRUSTEDDRAGDROPUntrustedDragDrop
CFSTR_FILE_ATTRIBUTES_ARRAYFile Attributes Array
CFSTR_INVOKECOMMAND_DROPPARAMInvokeCommand DropParam
CFSTR_SHELLDROPHANDLERDropHandlerCLSID
CFSTR_DROPDESCRIPTIONDropDescription


Format NameData TypeDescription
AsyncFlagDWORD (BOOL)Perform insert/paste operation in the background. Used by Explorer to avoid blocking the current instance.
Для просмотра ссылки Войди или ЗарегистрируйсяBinaryFile content.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяArray of Для просмотра ссылки Войди или Зарегистрируйсяs.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяArray of Для просмотра ссылки Войди или Зарегистрируйсяs.
Для просмотра ссылки Войди или ЗарегистрируйсяANSI textSingle file name in short (8.3) format.
Для просмотра ссылки Войди или ЗарегистрируйсяUnicode textSingle file name.
Для просмотра ссылки Войди или ЗарегистрируйсяANSI text listList of file names when renaming.
Для просмотра ссылки Войди или ЗарегистрируйсяUnicode text listList of file names when renaming.
Для просмотра ссылки Войди или ЗарегистрируйсяUnicode textPath for mounted volume.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяArray of PIDL (pointer to Для просмотра ссылки Войди или Зарегистрируйся) offsets.
Autoplay Enumerated IDList ArrayДля просмотра ссылки Войди или ЗарегистрируйсяArray of PIDL (pointer to Для просмотра ссылки Войди или Зарегистрируйся) offsets.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся[]Array of points.
File Attributes ArrayДля просмотра ссылки Войди или ЗарегистрируйсяArray of file attributes.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяArray of Для просмотра ссылки Войди или Зарегистрируйся structures.
Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или ЗарегистрируйсяList of printer names.
Для просмотра ссылки Войди или ЗарегистрируйсяANSI textURL
Для просмотра ссылки Войди или ЗарегистрируйсяUnicode textURL


[/SHOWTOGROUPS]
 

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,439
Credits
574
[SHOWTOGROUPS=4,20]
Drag & Drop Related Formats

These formats are used with Drag & Drop. Most of them are not documented.

Format NameData TypeDescription
ComputedImageDWORD?
DisableDragTextDWORD (BOOL)?
DragContextIStreamUsed internally by the Windows drag/drop helpers.
DragImageBitsДля просмотра ссылки Войди или ЗарегистрируйсяDrag image bitmap.
DragSourceHelperFlagsDWORDValue passed to Для просмотра ссылки Войди или Зарегистрируйся.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (HWND)The window handle of the drag image window.
DropDescriptionДля просмотра ссылки Войди или ЗарегистрируйсяAero drag cursor type and text.
DropHandlerCLSIDCLSID Для просмотра ссылки Войди или ЗарегистрируйсяCLSID GUID of the drop handler.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (BOOL)Nonzero when within a drag-and-drop loop.
InvokeCommand DropParamUnicode text?
IsComputingImageDWORD (BOOL)?
IsShowingLayeredDWORD (BOOL)Nonzero when a drop target shows the drag image.
IsShowingTextDWORD (BOOL)Nonzero when a drop target requests update of Aero cursor.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (Для просмотра ссылки Войди или ЗарегистрируйсяLogically performed drop effect with optimized moves.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (Для просмотра ссылки Войди или Зарегистрируйся)Set by target when delete-on-paste operation succeeded.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (Для просмотра ссылки Войди или Зарегистрируйся)Performed drop effect set by the target.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORD (Для просмотра ссылки Войди или Зарегистрируйся)Preferred drop effect set by source. Used also with clipboard.
Для просмотра ссылки Войди или ЗарегистрируйсяCLSID Для просмотра ссылки Войди или ЗарегистрируйсяCLSID GUID of the drop target.
Для просмотра ссылки Войди или ЗарегистрируйсяDWORDДля просмотра ссылки Войди или Зарегистрируйся.
UsingDefaultDragImageDWORD (BOOL)Nonzero when the drag image is a system default image.

OLE Formats

Format NameData TypeDescription
LinkANSI text listOLE 1.0 link.
NativeBinaryOLE 1.0 data.
ObjectLinkANSI text listOLE 1.0 link.
OwnerLinkANSI text listOLE 1.0 link.
Data ObjectBinaryOLE 2.0 data.
Embedded ObjectBinaryOLE 2.0 data.
Object DescriptorДля просмотра ссылки Войди или ЗарегистрируйсяOLE 2.0 User interface information.
Link Source DescriptorДля просмотра ссылки Войди или ЗарегистрируйсяOLE 2.0 User interface information.
Link SourceДля просмотра ссылки Войди или ЗарегистрируйсяOLE 2.0. Followed by document class ID.
HyperlinkДля просмотра ссылки Войди или ЗарегистрируйсяMethods to enable a hyperlink to navigate to its target.

Common Application Clipboard Formats

Many applications use the file extension or the Для просмотра ссылки Войди или Зарегистрируйся as format name and pass data using the corresponding file format.

The format names are case-insensitive but is is common practice to use all lower case for MIME types, all upper case for file extensions and Pascal case (upper case for first letter of each word) for descriptive names.

Clipboard and drop target applications that should be able to receive such formats should register all commonly used format name variations.

The header file UrlMon.h contains some definitions for MIME types (see Для просмотра ссылки Войди или Зарегистрируйся).

Common Text Formats

Format NameData TypeDescription
text/plainASCII / ANSI textSee also CF_TEXT.
Для просмотра ссылки Войди или ЗарегистрируйсяUTF-8 textMicrosoft specific HTML clipboard format.
text/htmlTextДля просмотра ссылки Войди или Зарегистрируйся file content. The encoding is defined by BOM and HTML headers.
HTML (Hyper Text Markup Language)TextSee text/html.
text/csvASCII / ANSI textДля просмотра ссылки Войди или Зарегистрируйся file content.
CSVASCII / ANSI textSee text/csv.
text/richtextASCII / ANSI textДля просмотра ссылки Войди или Зарегистрируйся
Rich Text FormatASCII / ANSI textSee above.
Rich Text Format Without ObjectsASCII / ANSI textSee above.
RichEdit Text and ObjectsASCII / ANSI textSee above.
RTF As TextASCII / ANSI textSee above.
text/uri-listASCII textДля просмотра ссылки Войди или Зарегистрируйся.

Common Image Formats

Format NameData TypeDescription
image/bmpДля просмотра ссылки Войди или ЗарегистрируйсяFile header followed by info header (see CF_DIB and CF_DIBV5) and bitmap data.
BMPДля просмотра ссылки Войди или ЗарегистрируйсяSee image/bmp.
image/gifBinaryДля просмотра ссылки Войди или Зарегистрируйся file content.
GIFBinarySee image/gif.
image/jpegBinaryДля просмотра ссылки Войди или Зарегистрируйся file content.
JPEGBinarySee image/jpeg.
JPGBinarySee image/jpeg.
image/pngBinaryДля просмотра ссылки Войди или Зарегистрируйся file content.
PNGBinarySee image/png.
image/tiffBinaryДля просмотра ссылки Войди или Зарегистрируйся file content. See also CF_TIFF.

Points of Interest
My article Для просмотра ссылки Войди или Зарегистрируйся contains a demo application that can be used to show the objects actually on the clipboard (clipboard viewer) and the drag objects when dropping on an info list.

References
History
  • 2016-04-08 Initial version.
  • 2016-04-14 Minor text changings, added links to GUID and URL moniker formats.
  • 2016-04-18 Splitted and re-arranged tables, added some OLE formats, added text/richtext, corrected enhanced meta file type.
  • 2016-06-21 Added formats text/uri-list, image/bmp, BMP; added link to W3C clipboard API
  • 2017-06-22 Added AsyncFlag format and that Preferred DropEffect also used with clipboard.
  • 2018-03-08 Fixed wrong FileContents description.

License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL).


[/SHOWTOGROUPS]
 
Последнее редактирование: