+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN//">
-<html>
- <head>
- <title>Structure of the byte[] returned by SummaryInformation's
- getThumbnailMethod()</title>
- </head>
-<body>
- <p>This is a rough HTML file that describes the structure of the byte[] returned by SummaryInformation's getThumbnailMethod() when it is implemented
-like this (simply remove the Exception it currently throws):</p>
- <p>
-
- /**
- * <p>Returns the stream's thumbnail (or <code>null</code>)</p>
- */
- public byte[] getThumbnail()
- {
- return (byte[]) getProperty(PropertyIDMap.PID_THUMBNAIL);
- }
- </p>
-
- <p>Assumptions:</p>
- <ul>
- <li><p>A Windows machine saved the info</p>
- </li>
- <li><p>the info is saved in the recommended METAFILE format (Clipboard metafile)</p>
- </li>
- </ul>
-
- <p>The standard WMF file byte array begins at position 24 of the array (beginning
-of WindowsMetaHeader struct) and ends with the end of the array.
-The first 24 bytes are Cliboard specific headers. (VT_CF - Variant Type
-Clipboard Format)</p>
-
- <address>Drew Varner, Drew.Varner -at- sc.edu</address>
-
- <table border="1">
- <tr>
- <td> </td>
- <td colspan="10">byte[] returned by SummaryInformation.getThumbnail()</td>
- </tr>
-
- <tr>
- <td>Sample Data</td>
- <td>71</td>
- <td>20660</td>
- <td>-1</td>
- <td>3</td>
- <td>8</td>
- <td>?</td>
- <td>?</td>
- <td>0</td>
- <td>1</td>
- <td>9</td>
- </tr>
-
- <tr>
- <td>Description</td>
-
- <td>
- <table>
- <tr>
- <td>VT_CF</td>
- </tr>
- <tr>
- <td>Variant Type - Clipbard Format</td>
- </tr>
- <tr>
- <td>VT_CF==17</td>
- </tr>
- <tr>
- <td>Pointer to a CLIPDATA structure</td>
- </tr>
- </table>
- </td>
- <td>
- <table>
- <tr>
- <td>Clipboard Size</td>
- </tr>
- <tr>
- <td>cbSize is the size of the buffer pointed to by pClipData, plus sizeof(ulClipFmt)</td>
- </tr>
- <tr>
- <td>cbSize</td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>cftag</td>
- </tr>
- <tr>
- <td>Clipboard Format Tag</td>
- </tr>
- <tr>
- <td>
- <ul>
- <li>-1L a built-in Windows® clipboard format value.</li>
- <li>-2L Macintosh clipboard format value.</li>
- <li>-3L A GUID containing a format identifier (FMTID).</li>
- <li>0L No data (rarely used)</li>
- </ul>
- </td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>Format ID</td>
- </tr>
- <tr>
- <td>If cftag is -1 then this is a DWord descibring the image format</td>
- </tr>
- <tr>
- <td>
- <ul>
- <li>3 CF_METAFILEPICT (Windows Metafile) (recommended)</li>
- <li>8 CF_DIB (Device Independent Bitmap)</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- Note: These formats are specific to Clipboard, and
- Clipboard-specific headers will follow
- </td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>mm</td>
- </tr>
- <tr>
- <td>Mapping Mode</td>
- </tr>
- <tr>
- <td>
- <table border=1>
- <tr>
- <th align=left>Value</th>
- <th align=left>Mapping Mode</th>
- </tr>
- <tr>
- <td>1</td>
- <td>Text</td>
- </tr>
- <tr>
- <td>2</td>
- <td>Low Metric</td>
- </tr>
- <tr>
- <td>3</td>
- <td>High Metric</td>
- </tr>
- <tr>
- <td>4</td>
- <td>Low English</td>
- </tr>
- <tr>
- <td>5</td>
- <td>High English</td>
- </tr>
- <tr>
- <td>6</td>
- <td>Twips</td>
- </tr>
- <tr>
- <td>7</td>
- <td>Isotropic</td>
- </tr>
- <tr>
- <td>8</td>
- <td>Anisotropic</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- Table from GFF Format Summary
- <a href="http://www.wvware.com/caolan/ora-wmf.html">
- http://www.wvware.com/caolan/ora-wmf.html
- </a>
- </td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>Width</td>
- </tr>
- <tr>
- <td>Width of the Metafile</td>
- </tr>
- </table>
- </td>
- <td>
- <table>
- <tr>
- <td>Height</td>
- </tr>
- <tr>
- <td>Height of the Metafile</td>
- </tr>
- </table>
- </td>
- <td>
- <table>
- <tr>
- <td>Handle</td>
- </tr>
- <tr>
- <td>Handle to the Metafile in Memory</td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>FileType</td>
- </tr>
- <tr>
- <td>
- <ul>
- <li>0=memory</li>
- <li>1=disk</li>
- </ul>
- </td>
- </tr>
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <td>HeaderSize </td>
- </tr>
- <tr>
- <td>
- HeaderSize contains the size of the metafile header in 16-bit WORDs.
- This value is always 9.
- </td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td>Width</td>
- <td>DWord</td>
- <td>Unsigned Long</td>
- <td>DWord (Long)</td>
- <td>DWord</td>
- <td>Word</td>
- <td>Word</td>
- <td>Word</td>
- <td>Word</td>
- <td>Word</td>
- <td>Word</td>
- </tr>
-
- <!-- Start of Row to describe extent of CLIPDATA -->
- <tr>
- <td> </td>
- <td> </td>
- <td colspan="9">CLIPDATA Struct</td>
- </tr>
- <!-- End of Row to describe extent of CLIPDATA -->
-
- <!-- Start of Row to describe extend of Clipboard16MetaHeader-->
- <tr>
- <td> </td>
- <td> </td>
- <td> </td>
- <td> </td>
- <td> </td>
- <td colspan="4">Clipboard16MetaHeader</td>
- <td colspan="2">WindowsMetaHeader</td>
- </tr>
- <!-- End of Row to describe extend of Clipboard16MetaHeader-->
- </table>
- <p>Infomation taken from http://msdn.microsoft.com and http://www.wvware.com/caolan/ora-wmf.html</p>
-</body>
-</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
+"../dtd/document-v11.dtd">
+<!-- $Id$ -->
+
+<document>
+ <header>
+ <title>HPSF THUMBNAIL HOW-TO</title>
+ <authors>
+ <person name="Drew Varner" email="Drew.Varner@-deleteThis-sc.edu" />
+ </authors>
+ </header>
+ <body>
+ <section title="The VT_CF Format">
+
+ <p>
+ Thumbnail information is stored as a VT_CF, or Thumbnail Variant.
+ The Thumbnail Variant is used to store various types of information
+ in a clipboard. The VT_CF can store information in formats for the
+ Macintosh or Windows clipboard.
+ </p>
+
+ <p>
+ There are many types of data that can be copied to the clipboard,
+ but the only types of information needed for thumbnail manipulation are
+ the image formats.
+ </p>
+
+ <p>The <code>VT_CF</code> structure looks like this:</p>
+
+ <table>
+ <tr>
+ <th>Element:</th>
+ <td>Clipboard Size</td>
+ <td>Clipboard Format Tag</td>
+ <td>Clipboard Data</td>
+ </tr>
+ <tr>
+ <th>Size:</th>
+ <td>32 bit unsigned integer (DWord)</td>
+ <td>32 bit signed integer (DWord)</td>
+ <td>variable length (byte array)</td>
+ </tr>
+ </table>
+
+ <p>
+ The Clipboard Size refers to the size (in bytes) of Clipboard Data
+ (variable size) plus the Clipboard Format (four bytes).
+ </p>
+
+ <p>Clipboard Format Tag has four possible values:</p>
+
+ <table>
+ <tr>
+ <th>Value</th>
+ <th>Identifier</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td><code>-1L</code></td>
+ <td><code>CFTAG_WINDOWS</code></td>
+ <td>a built-in Windows© clipboard format value</td>
+ </tr>
+ <tr>
+ <td><code>-2L</code></td>
+ <td><code>CFTAG_MACINTOSH</code></td>
+ <td>a Macintosh clipboard format value</td>
+ </tr>
+ <tr>
+ <td><code>-3L</code></td>
+ <td><code>CFTAG_FMTID</code></td>
+ <td>a format identifier (FMTID) This is rarely used.</td>
+ </tr>
+ <tr>
+ <td><code>0L</code></td>
+ <td><code>CFTAG_NODATA</code></td>
+ <td>No data This is rarely used.</td>
+ </tr>
+ </table>
+ </section>
+
+
+
+ <section title="Windows Clipboard Data">
+
+ <p>
+ Windows clipboard data has four image formats for thumbnails:
+ </p>
+
+ <table>
+ <tr>
+ <th>Value</th>
+ <th>Identifier</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>3</td>
+ <td><code>CF_METAFILEPICT</code></td>
+ <td>Windows metafile format - recommended</td>
+ </tr>
+ <tr>
+ <td>8</td>
+ <td><code>CF_DIB</code></td>
+ <td>Device Independent Bitmap</td>
+ </tr>
+ <tr>
+ <td>14</td>
+ <td><code>CF_ENHMETAFILE</code></td>
+ <td>Enhanced Windows metafile format</td>
+ </tr>
+ <tr>
+ <td>2</td>
+ <td><code>CF_BITMAP</code></td>
+ <td>Bitmap - Obsolete - Use <code>CF_DIB</code> instead</td>
+ </tr>
+ </table>
+
+ <section title="Windows Metafile Format">
+
+ <p>
+ The most common format for thumbnails on the Windows platform
+ is the Windows metafile format. The Clipboard places and extra
+ header in front of a the standard Windows Metafile Format data.
+ </p>
+
+ <p>
+ The Clipboard Data byte array looks like this when an image is
+ stored in Windows' Clipboard WMF format.
+ </p>
+
+ <table>
+ <tr>
+ <th>Identifier</th>
+ <td>CF_METAFILEPICT</td>
+ <td>mm</td>
+ <td>width</td>
+ <td>height</td>
+ <td>handle</td>
+ <td>WMF data</td>
+ </tr>
+ <tr>
+ <th>Size</th>
+ <td>32 bit unsigned int</td>
+ <td>16 bit unsigned(?) int</td>
+ <td>16 bit unsigned(?) int</td>
+ <td>16 bit unsigned(?) int</td>
+ <td>16 bit unsigned(?) int</td>
+ <td>byte array - variable length</td>
+ </tr>
+ <tr>
+ <th>Description</th>
+ <td>Clipboard WMF</td>
+ <td>Mapping Mode</td>
+ <td>Image Width</td>
+ <td>Image Height</td>
+ <td>handle to the WMF data array in memory, or 0</td>
+ <td>standard WMF byte stream</td>
+ </tr>
+ </table>
+ </section>
+
+
+
+ <section title="Device Independent Bitmap">
+ <p><strong>FIXME:</strong> Document Device Independent Bitmap format</p>
+ </section>
+ </section>
+
+
+
+ <section title="Macintosh Clipboard Data">
+ <p><strong>FIXME:</strong> Document Macintosh clipboard formats.</p>
+ </section>
+
+ </body>
+</document>