BinaryClipGet

Reads the contents of the Windows clipboard into a binary buffer.

Syntax:

BinaryClipGet( handle, format )

Parameters:

(i) handle: handle of buffer.

(i) format: format of clipboard data.

Returns:

(i) bytes-read: returns the number of bytes read from the clipboard.

 

Note: 0 in the first parameter of BinaryClipGet returns the size of buffer needed for a subsequent BinaryAlloc, but doesn't attempt to place the contents of clipboard into a buffer.

The following is a list of possible clipboard formats. Note that some of them may not be supported, because the clipboard contains a pointer or handle to external data instead of the data itself.

 

Value

Meaning

1

F_TEXT

2

F_BITMAP (not supported)

3

F_METAFILEPICT

4

F_SYLK

5

F_DIF

6

CF_TIFF

7

CF_OEMTEXT

8

CF_DIB

9

CF_PALETTE

10

CF_PENDATA

11

CF_RIFF

12

CF_WAVE

13

CF_UNICODETEXT

14

CF_ENHMETAFILE

15

CF_HDROP

16

CF_LOCALE

128

CF_OWNERDISPLAY

129

CF_DSPTEXT

130

CF_DSPBITMAP

131

CF_DSPMETAFILEPICT

142

CF_DSPENHMETAFILE

 

Example:


;Takes a bitmap snapshot of the screen and pastes it to the clipboard.
Snapshot(0)
;returns the size of buffer needed for a subsequent BinaryAlloc,
;but doesn't attempt to place the contents of clipboard into a buffer
size=BinaryClipGet(0,8)
;allocates a data buffer
bb=BinaryAlloc(size)
;read file format type CF_DIB
BinaryClipGet(bb,8)
; need to add first 14 bytes to make it
; a BMP file format
bmpdatasize=14
bb2=BinaryAlloc(size + bmpdatasize)
;The characters identifying the bitmap.'BM'
BinaryPokeStr(bb2, 0, "BM")
;Complete file size in bytes.
BinaryPoke4(bb2,2,size + bmpdatasize)
;Reserved
BinaryPoke4(bb2,6,0)
;Data offset
headersize=BinaryPeek4(bb,0)
dataoffset = headersize + bmpdatasize
BinaryPoke4(bb2,10,dataoffset)
BinaryCopy(bb2,bmpdatasize,bb,0,size)
BinaryWrite(bb2,"c:\temp\screenshot.bmp")
BinaryFree(bb)
BinaryFree(bb2)
Message("All","Done")
See Also:

Binary Operations, BinaryAlloc, BinaryWrite, BinaryFree, BinaryClipPut, ClipGet, ClipGetEx