Clipboard

The clipboard is used as a way of copying data within an application or between applications.

structure Clipboard :
  sig
    datatype ClipboardFormat =
        CF_NONE | CF_TEXT | CF_BITMAP | CF_METAFILEPICT | CF_SYLK | CF_DIF | CF_TIFF |
        CF_OEMTEXT | CF_DIB | CF_PALETTE | CF_PENDATA | CF_RIFF | CF_WAVE | CF_UNICODETEXT |
        CF_ENHMETAFILE | CF_OWNERDISPLAY | CF_DSPTEXT | CF_DSPBITMAP | CF_DSPMETAFILEPICT |
        CF_DSPENHMETAFILE | CF_PRIVATE of int | CF_GDIOBJ of int | CF_REGISTERED of int |
        CF_HDROP | CF_LOCALE

    type HBITMAP and HPALETTE and HWND and HDROP

    datatype CLIPHANDLE =
        CH_NONE |
        CH_TEXT of string |
        CH_BITMAP of HBITMAP |
        CH_METAFILEPICT of Metafile.METAFILEPICT |
        CH_SYLK of Word8Vector.vector |
        CH_DIF of Word8Vector.vector |
        CH_TIFF of Word8Vector.vector |
        CH_OEMTEXT of string |
        CH_DIB of Word8Vector.vector |
        CH_PALETTE of HPALETTE |
        CH_PENDATA of Word8Vector.vector |
        CH_RIFF of Word8Vector.vector |
        CH_WAVE of Word8Vector.vector |
        CH_UNICODETEXT of Word8Vector.vector |
        CH_ENHMETAFILE of Metafile.HENHMETAFILE |
        CH_OWNERDISPLAY of Word8Vector.vector |
        CH_DSPTEXT of Word8Vector.vector |
        CH_DSPBITMAP of Word8Vector.vector |
        CH_DSPMETAFILEPICT of Word8Vector.vector |
        CH_DSPENHMETAFILE of Word8Vector.vector |
        CH_PRIVATE of int * Word8Vector.vector |
        CH_GDIOBJ of int * Word8Vector.vector |
        CH_REGISTERED of int * Word8Vector.vector |
        CH_HDROP of HDROP |
        CH_LOCALE of Word8Vector.vector

    val ChangeClipboardChain : HWND * HWND -> bool
    val CloseClipboard : unit -> unit
    val CountClipboardFormats : unit -> int
    val EmptyClipboard : unit -> unit
    val EnumClipboardFormats : ClipboardFormat -> ClipboardFormat
    val GetClipboardData : ClipboardFormat -> CLIPHANDLE
    val GetClipboardFormatName : ClipboardFormat -> string
    val GetClipboardOwner : unit -> HWND
    val GetClipboardViewer : unit -> HWND
    val GetOpenClipboardWindow : unit -> HWND
    val GetPriorityClipboardFormat : ClipboardFormat list -> ClipboardFormat option
    val IsClipboardFormatAvailable : ClipboardFormat -> bool
    val OpenClipboard : HWND option -> unit
    val RegisterClipboardFormat : string -> ClipboardFormat
    val SetClipboardData : CLIPHANDLE -> unit
    val SetClipboardViewer : HWND -> HWND
  end

datatype ClipboardFormat
represents the various kinds of information which can be stored on the clipboard.  As well as the formats defined in Windows the ML interface defines four extra formats.   CF_NONE is used when no format is specified.  CF_PRIVATE, CF_GDIOBJ and CF_REGISTERED are used for clipboard formats in the private range, GDI object range and registered format range. 

datatype CLIPHANDLE
is used when extracting information from the clipboard or setting the clipboard contents.