The Clipboard: 2.3 Transfer Data Structures: Transfer Data Structures

Up: GEOS SDK TechDocs | Up | Prev: 2.2 ClipboardItemFormatInfo | Next: 2.4 Clipboard Item Formats

Two structures are used with specific routines when dealing with the transfer mechanisms. The ClipboardQueryArgs structure is returned by ClipboardQueryItem() , and the ClipboardRequestArgs structure is returned by ClipboardRequestItemFormat() . Both routines are used during a Paste operation, and both structures are shown in ClipboardQueryArgs and ClipboardRequestArgs .

Note that the CQA_header field is of type TransferBlockID . This type is a dword made up of two word-sized components: a VM file handle and a VM block handle. The three macros listed after ClipboardQueryArgs and ClipboardRequestArgs can be used to create the TransferBlockID argument and extract either of the components from the whole.

Code Display 7-3 ClipboardQueryArgs and ClipboardRequestArgs

/* ClipboardQueryArgs is filled by ClipboardQueryItem(), which is called when
 * determining whether a transfer item exists. */
typedef struct {
    word		CQA_numFormats;		/* the total number of formats available */
    optr		CQA_owner;		/* the optr of the originating object */
    TransferBlockID CQA_header;				/* The combined VM file handle and VM block
				 * handle of the block containing the
				 * ClipboardItemHeader */
} ClipboardQueryArgs;
/* ClipboardRequestArgs is filled by ClipboardRequestItemFormat(), which is called
 * when the application wants to retrieve the current transfer item. */
typedef struct {
    VMFileHandle		CRA_file;		/* The VM file handle of the transfer file */
    VMChain		CRA_data;		/* The handle of the VM chain containing the
				 * transfer item */
    word		CRA_extra1;		/* an extra word of data */
    word		CRA_extra2;		/* another extra word of data */
} ClipboardRequestArgs;

Up: GEOS SDK TechDocs | Up | Prev: 2.2 ClipboardItemFormatInfo | Next: 2.4 Clipboard Item Formats