Most apps that utilize specific formats utilize a function of the clipboard
API that allows the registering of private clipboard formats. In doing so
the calling app provides a custom name that the clipboard format is to be
known, and the RegisterClipboardFormat function returns an app-specific
value representing the key to access data in that format. The value will be
between &HC000 and &HFFFF&.
The EnumClipboardFormats API provides a means for any app to enumerate the
data formats currently available on the clipboard.
The types of data VB can access are called "standard clipboard formats" that
Windows maintains for use by any/all apps, if desired. In API parlance they
are known as CF_ (clipboard format) CF_BITMAP, CB_TEXT, etc corresponding to
VB's clipboard constants. But these are but a minor subset of the standard
clipboard data formats Windows makes available ...
CF_BITMAP A handle to a bitmap (HBITMAP).
CF_DIB A memory object containing a BITMAPINFO structure followed by
the bitmap bits.
CF_DIBV5 Windows 2000/XP: A memory object containing a BITMAPV5HEADER
structure followed by the bitmap color space information and the bitmap
bits.
CF_DIF Software Arts' Data Interchange Format.
CF_DSPBITMAP Bitmap display format associated with a private format.
The hMem parameter must be a handle to data that can be displayed in bitmap
format in lieu of the privately formatted data.
CF_DSPENHMETAFILE Enhanced metafile display format associated with a
private format. The hMem parameter must be a handle to data that can be
displayed in enhanced metafile format in lieu of the privately formatted
data.
CF_DSPMETAFILEPICT Metafile-picture display format associated with a
private format. The hMem parameter must be a handle to data that can be
displayed in metafile-picture format in lieu of the privately formatted
data.
CF_DSPTEXT Text display format associated with a private format. The
hMem parameter must be a handle to data that can be displayed in text format
in lieu of the privately formatted data.
CF_ENHMETAFILE A handle to an enhanced metafile (HENHMETAFILE).
CF_GDIOBJFIRST through CF_GDIOBJLAST Range of integer values for
application-defined Microsoft Windows Graphics Device Interface (GDI) object
clipboard formats. Handles associated with clipboard formats in this range
are not automatically deleted using the GlobalFree function when the
clipboard is emptied. Also, when using values in this range, the hMem
parameter is not a handle to a GDI object, but is a handle allocated by the
GlobalAlloc function with the GMEM_MOVEABLE flag.
CF_HDROP A handle to type HDROP that identifies a list of files. An
application can retrieve information about the files by passing the handle
to the DragQueryFile functions.
CF_LOCALE The data is a handle to the locale identifier associated
with text in the clipboard. When you close the clipboard, if it contains
CF_TEXT data but no CF_LOCALE data, the system automatically sets the
CF_LOCALE format to the current input language. You can use the CF_LOCALE
format to associate a different locale with the clipboard text.
An application that pastes text from the clipboard can retrieve this
format to determine which character set was used to generate the text.
Note that the clipboard does not support plain text in multiple
character sets. To achieve this, use a formatted text data type such as Rich
Text Format (RTF) instead.
Windows NT/2000/XP: The system uses the code page associated with
CF_LOCALE to implicitly convert from CF_TEXT to CF_UNICODETEXT. Therefore,
the correct code page table is used for the conversion.
CF_METAFILEPICT Handle to a metafile picture format as defined by the
METAFILEPICT structure. When passing a CF_METAFILEPICT handle by means of
Dynamic Data Exchange (DDE), the application responsible for deleting hMem
should also free the metafile referred to by the CF_METAFILEPICT handle.
CF_OEMTEXT Text format containing characters in the OEM character set.
Each line ends with a carriage return/linefeed (CR-LF) combination. A null
character signals the end of the data.
CF_OWNERDISPLAY Owner-display format. The clipboard owner must display
and update the clipboard viewer window, and receive the WM_ASKCBFORMATNAME,
WM_HSCROLLCLIPBOARD, WM_PAINTCLIPBOARD, WM_SIZECLIPBOARD, and
WM_VSCROLLCLIPBOARD messages. The hMem parameter must be NULL.
CF_PALETTE Handle to a color palette. Whenever an application places
data in the clipboard that depends on or assumes a color palette, it should
place the palette on the clipboard as well.
If the clipboard contains data in the CF_PALETTE (logical color
palette) format, the application should use the SelectPalette and
RealizePalette functions to realize (compare) any other data in the
clipboard against that logical palette.
When displaying clipboard data, the clipboard always uses as its
current palette any object on the clipboard that is in the CF_PALETTE
format.
CF_PENDATA Data for the pen extensions to the Microsoft Windows for
Pen Computing.
CF_PRIVATEFIRST through CF_PRIVATELAST Range of integer values for
private clipboard formats. Handles associated with private clipboard formats
are not freed automatically; the clipboard owner must free such handles,
typically in response to the WM_DESTROYCLIPBOARD message.
CF_RIFF Represents audio data more complex than can be represented in
a CF_WAVE standard wave format.
CF_SYLK Microsoft Symbolic Link (SYLK) format.
CF_TEXT Text format. Each line ends with a carriage return/linefeed
(CR-LF) combination. A null character signals the end of the data. Use this
format for ANSI text.
CF_WAVE Represents audio data in one of the standard wave formats,
such as 11 kHz or 22 kHz Pulse Code Modulation (PCM).
CF_TIFF Tagged-image file format.
CF_UNICODETEXT Windows NT/2000/XP: Unicode text format. Each line ends
with a carriage return/linefeed (CR-LF) combination. A null character
signals the end of the data.
In order to use any of the non-VB-provided 'standard' formats, you must use
the Clipboard APIs. The ability to access private clipboard formats is
limited, from what I can see. So while it may be possible to determine
through the EnumClipboardFormats API that there is a private InDesign format
on registered, accessing it may not be as straightforward, if at all
possible. The reason you can get the data in raw text mode is that Windows
provides a means for automatic data conversion to some of the standard
clipboard formats.
I believe there is a clipboard demo at
www.mvps.org/vb/
--
Randy Birch
MS MVP Visual Basic
http://vbnet.mvps.org/
"LG" <lg@noreply.com> wrote in message
news:l8*****************@news-server.bigpond.net.au...
: Just have a question with regards to the clipboard, and how to read what
: other applications (Adobe InDesignCS) place in the clipboard.
:
: I am currently in the process of creating a booklet from a database, and I
: need the data to be laid out in a tabular format, and set out in a
specific
: way. At the current point in time, I am copy/pasting the raw text from the
: database into a table layout in InDesign. What I was thinking is that if I
: could somehow find out exactly what data is placed into clipboard when I
: copy the table (in InDesign) then I can write an app to output the data
(and
: whatever else goes into making a clipboard copy of an InDesign table) to a
: text file in that format. So, in theory, I can just copy the contents of
the
: text file, and paste it into InDesign, which would then create the table
and
: the contents.
:
: However... Using, Clipboard.GetData and Clipboard.GetText, it seems that
: only the text portion of the copied table is, well, copied. No formatting,
: no table data, or anything other than the straight text.
:
: My question is, is InDesign storing the format of the data (in this case
the
: format that tells InDesign that the data in clipboard is a table) in
another
: place that is not included in the Clipboard method, and if so, is it
: possible to retrieve the formatting data.
:
: I hope this makes sence to everyone :P
:
: Thanks in advance
: G
:
: