]> source.dussan.org Git - poi.git/commitdiff
Thumbnail docs.
authorRainer Klute <klute@apache.org>
Thu, 2 May 2002 08:00:40 +0000 (08:00 +0000)
committerRainer Klute <klute@apache.org>
Thu, 2 May 2002 08:00:40 +0000 (08:00 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352581 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/xdocs/hpsf/book.xml
src/documentation/xdocs/hpsf/how-to.xml
src/documentation/xdocs/hpsf/thumbnail.html [deleted file]
src/documentation/xdocs/hpsf/thumbnails.xml [new file with mode: 0644]

index 2b5cad7d5298e5390728bb3e221485c0af9cb538..529baed75a148bf540093c99956d56ce466ed62d 100644 (file)
@@ -11,6 +11,7 @@
   <menu label="HPSF">
     <menu-item label="Overview" href="index.html"/>
     <menu-item label="How To" href="how-to.html"/>
+    <menu-item label="Thumbnails" href="thumbnails.html"/>
     <menu-item label="Internals" href="internals.html"/>
     <menu-item label="To Do" href="todo.html"/>
   </menu>
index 195e8c78ff264fe13d1efd59dad0764dcc4d8f6d..bdb49d044c619a84c69d625452bc808fd3264681 100644 (file)
      </li>
    </ol>
 
+   <p>Please note that there is separate document on <link
+     href="thumbnails.html">thumbnails</link>!</p>
+
+
+
    <anchor id="sec1" />
    <section title="Reading Standard Properties">
 
diff --git a/src/documentation/xdocs/hpsf/thumbnail.html b/src/documentation/xdocs/hpsf/thumbnail.html
deleted file mode 100644 (file)
index bb0264b..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-<!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>
-
-   /**
-     * &lt;p&gt;Returns the stream's thumbnail (or &lt;code&gt;null&lt;/code&gt;)&lt;/p&gt;
-     */
-    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>&nbsp;</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&reg; 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&nbsp;CF_METAFILEPICT (Windows Metafile) (recommended)</li>
-                                                               <li>8&nbsp;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>&nbsp;</td>
-                       <td>&nbsp;</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>&nbsp;</td>
-                       <td>&nbsp;</td>
-                       <td>&nbsp;</td>
-                       <td>&nbsp;</td>
-                       <td>&nbsp;</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>
diff --git a/src/documentation/xdocs/hpsf/thumbnails.xml b/src/documentation/xdocs/hpsf/thumbnails.xml
new file mode 100644 (file)
index 0000000..5e80945
--- /dev/null
@@ -0,0 +1,176 @@
+<?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&copy; 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>