Not sure what you want to achieve, but maybe this will help:
Code: Select all
#NoEnv
MsgBox, 0, Clipboard Test, Please copy a file
MsgBox, 0, File Standard, % EnumClipboardFormats() ; standard formats
MsgBox, 0, File All, % EnumClipboardFormats(False) ; all formats
Clipboard := "1111"
MsgBox, 0, Text Standard, % EnumClipboardFormats() ; standard formats
MsgBox, 0, Text All, % EnumClipboardFormats(False) ; all formats
ExitApp
EnumClipboardFormats(StandardOnly := True) {
; Clipboard Reference -> msdn.microsoft.com/en-us/library/ff468801(v=vs.85).aspx
Static CF := {1: "TEXT", 2: "BITMAP", 3: "METAFILEPICT", 4: "SYLK", 5: "DIF", 6: "TIFF", 7: "OEMTEXT", 8: "DIB"
, 9: "PALETTE", 10: "PENDATA", 11: "RIFF", 12: "WAVE", 13: "UNICODETEXT", 14: "ENHMETAFILE", 15: "HDROP"
, 16: "LOCALE", 17: "DIBV5", 0x80: "OWNERDISPLAY", 0x81: "DSPTEXT", 0x82: "DSPBITMAP"
, 0x83: "DSPMETAFILEPICT", 0x8E: "DSPBITMAP"}
Formats := ""
If DllCall("User32.dll\OpenClipboard", "Ptr", 0, "UInt") {
ClipFormat := 0
While (ClipFormat := DllCall("User32.dll\EnumClipboardFormats", "UInt", ClipFormat, "UInt")) {
If (StandardOnly)
Formats .= CF.HasKey(ClipFormat) ? CF[ClipFormat] . "`n" : ""
Else If CF.HasKey(ClipFormat)
Formats .= CF[ClipFormat] . "`n"
Else If (ClipFormat >= 0x0200) && (ClipFormat <= 0x02FF)
Formats .= ClipFormat . " (PRIVATE)`n"
Else If (ClipFormat >= 0x0300) && (ClipFormat <= 0x03FF)
Formats .= ClipFormat . " (GDIOBJ)`n"
Else If (ClipFormat >= 0xC000) {
VarSetCapacity(FormatName, 512, 0)
DllCall("User32.dll\GetClipboardFormatName", "UInt", ClipFormat, "Str", FormatName, "Int", 256)
Formats .= (FormatName ? FormatName : ClipFormat . " (UNKNOWN)") . "`n"
}
Else
Formats .= ClipFormat . " unknown`n"
}
DllCall("User32.dll\CloseClipboard")
}
Return RTrim(Formats, "`n")
}