diff options
18 files changed, 416 insertions, 126 deletions
diff --git a/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java b/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java index 73d185340b..8c3576ac79 100644 --- a/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java +++ b/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/HPSFException.java b/src/java/org/apache/poi/hpsf/HPSFException.java index 7461fef9ea..2856579ac2 100644 --- a/src/java/org/apache/poi/hpsf/HPSFException.java +++ b/src/java/org/apache/poi/hpsf/HPSFException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/HPSFRuntimeException.java b/src/java/org/apache/poi/hpsf/HPSFRuntimeException.java index c84b2e50f3..12bce3be02 100644 --- a/src/java/org/apache/poi/hpsf/HPSFRuntimeException.java +++ b/src/java/org/apache/poi/hpsf/HPSFRuntimeException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/MarkUnsupportedException.java b/src/java/org/apache/poi/hpsf/MarkUnsupportedException.java index 7dc153e7d3..9695053d00 100644 --- a/src/java/org/apache/poi/hpsf/MarkUnsupportedException.java +++ b/src/java/org/apache/poi/hpsf/MarkUnsupportedException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/NoPropertySetStreamException.java b/src/java/org/apache/poi/hpsf/NoPropertySetStreamException.java index e52b3068c8..c1770897e1 100644 --- a/src/java/org/apache/poi/hpsf/NoPropertySetStreamException.java +++ b/src/java/org/apache/poi/hpsf/NoPropertySetStreamException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/NoSingleSectionException.java b/src/java/org/apache/poi/hpsf/NoSingleSectionException.java index d8c37a8526..7e97df7b4c 100644 --- a/src/java/org/apache/poi/hpsf/NoSingleSectionException.java +++ b/src/java/org/apache/poi/hpsf/NoSingleSectionException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/Property.java b/src/java/org/apache/poi/hpsf/Property.java index 20e149fd46..2826558028 100644 --- a/src/java/org/apache/poi/hpsf/Property.java +++ b/src/java/org/apache/poi/hpsf/Property.java @@ -89,6 +89,7 @@ import org.apache.poi.hpsf.littleendian.*; * @see Variant * * @author Rainer Klute (klute@rainer-klute.de) + * @author Drew Varner (Drew.Varner InAndAround sc.edu) * @version $Id$ * @since 2002-02-09 */ @@ -204,6 +205,23 @@ public class Property value = new String(src, first, last - first + 1); break; } + case Variant.VT_CF: + { + // the first four bytes in src, from + // src[offset] to src[offset + 3] contain + // the DWord for VT_CF, so skip it, we don't + // need it + + // truncate the length of the return array by + // a DWord length (4 bytes) + length = length - DWord.LENGTH; + + final byte[] v = new byte[length]; + for (int i = 0; i < length; i++) + v[i] = src[offset + i + DWord.LENGTH]; + value = v; + break; + } default: { final byte[] v = new byte[length]; diff --git a/src/java/org/apache/poi/hpsf/PropertySet.java b/src/java/org/apache/poi/hpsf/PropertySet.java index ad1a0cd000..b328993298 100644 --- a/src/java/org/apache/poi/hpsf/PropertySet.java +++ b/src/java/org/apache/poi/hpsf/PropertySet.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; @@ -385,7 +377,7 @@ public class PropertySet offset += ClassID.LENGTH; sectionCount = new DWord(src, offset).intValue(); offset += DWord.LENGTH; - + /* Read the sections, which are following the header. They * start with an array of section descriptions. Each one * consists of a format ID telling what the section contains diff --git a/src/java/org/apache/poi/hpsf/PropertySetFactory.java b/src/java/org/apache/poi/hpsf/PropertySetFactory.java index cc7a3e8bf9..10da676f6d 100644 --- a/src/java/org/apache/poi/hpsf/PropertySetFactory.java +++ b/src/java/org/apache/poi/hpsf/PropertySetFactory.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/Section.java b/src/java/org/apache/poi/hpsf/Section.java index 39c4b11dab..cc0c68230a 100644 --- a/src/java/org/apache/poi/hpsf/Section.java +++ b/src/java/org/apache/poi/hpsf/Section.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/SpecialPropertySet.java b/src/java/org/apache/poi/hpsf/SpecialPropertySet.java index 8044a1170c..0d92e6fdba 100644 --- a/src/java/org/apache/poi/hpsf/SpecialPropertySet.java +++ b/src/java/org/apache/poi/hpsf/SpecialPropertySet.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/SummaryInformation.java b/src/java/org/apache/poi/hpsf/SummaryInformation.java index 327046a6b3..78402fbe51 100644 --- a/src/java/org/apache/poi/hpsf/SummaryInformation.java +++ b/src/java/org/apache/poi/hpsf/SummaryInformation.java @@ -276,8 +276,6 @@ public class SummaryInformation extends SpecialPropertySet */ public byte[] getThumbnail() { - if (true) - throw new UnsupportedOperationException("FIXME"); return (byte[]) getProperty(PropertyIDMap.PID_THUMBNAIL); } diff --git a/src/java/org/apache/poi/hpsf/Thumbnail.java b/src/java/org/apache/poi/hpsf/Thumbnail.java new file mode 100644 index 0000000000..006d7d1665 --- /dev/null +++ b/src/java/org/apache/poi/hpsf/Thumbnail.java @@ -0,0 +1,369 @@ +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2000 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +package org.apache.poi.hpsf; + +import org.apache.poi.hpsf.littleendian.DWord; +/** + * <p>Class to manipulate data in the Clipboard Variant + * ({@link Variant#VT_CF VT_CF}) format.</p> + * + * @see SummaryInformation#getThumbnail() + * + * @author Drew Varner (Drew.Varner inOrAround sc.edu) + * @version $Id$ + * @since 2002-04-29 + */ +public class Thumbnail +{ + + + + /** + * <p>Offset in bytes where the Clipboard Format Tag + * starts in the <code>byte[]</code> returned by + * {@link SummaryInformation#getThumbnail()}</p> + */ + public static int OFFSET_CFTAG = 4; + + + + /** + * <p>Offset in bytes where the Clipboard Format + * starts in the <code>byte[]</code> returned by + * {@link SummaryInformation#getThumbnail()}</p> + * + * <p>This is only valid if the Clipboard Format Tag + * is {@link #CFTAG_WINDOWS} </p> + */ + public static int OFFSET_CF = 8; + + + + /** + * <p>Offset in bytes where the Windows Metafile + * (WMF) image data starts in the <code>byte[]</code> + * returned by {@link SummaryInformation#getThumbnail()}</p> + * + * <p>There is only WMF data at this point in the + * <code>byte[]</code> if the Clipboard Format Tag is + * {@link #CFTAG_WINDOWS} and the Clipboard Format is + * {@link #CF_METAFILEPICT}.</p> + * + * <p>Note: The <code>byte[]</code> that starts at + * <code>OFFSET_WMFDATA</code> and ends at + * <code>getThumbnail().length - 1</code> forms a + * complete WMF image. It can be saved to disk with a + * <code>.wmf</code> file type and read using a WMF-capable + * image viewer.</p> + */ + public static int OFFSET_WMFDATA = 20; + + + + /** + * <p>Clipboard Format Tag - Windows clipboard format</p> + * <p>A <code>DWORD</code> indicating a built-in Windows clipboard + * format value</p> + * + * <p>See: + * <a href="http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp" + * target="_blank"> + * http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp</a> + */ + public static int CFTAG_WINDOWS = -1; + + + + /** + * <p>Clipboard Format Tag - Macintosh clipboard format</p> + * <p>A <code>DWORD</code> indicating a Macintosh clipboard format value</p> + * + * <p>See: + * <a href="http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp" + * target="_blank"> + * http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp</a> + */ + public static int CFTAG_MACINTOSH = -2; + + + + /** + * <p>Clipboard Format Tag - Format ID</p> + * <p>A GUID containing a format identifier (FMTID). This is rarely used.</p> + * + * <p>See: + * <a href="http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp" + * target="_blank"> + * http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp</a> + */ + public static int CFTAG_FMTID = -3; + + + + /** + * <p>Clipboard Format Tag - No Data</p> + * <p>a <code>DWORD</code> indicating No data. This is rarely used.</p> + * + * <p>See: + * <a href="http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp" + * target="_blank"> + * http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_propset.asp</a> + */ + public static int CFTAG_NODATA = 0; + + + + /** + * <p>Clipboard Format - Windows metafile format. + * This is the recommended way to store thumbnails + * in Property Streams.</p> + * <p> <strong>Note:</strong> this is not the same + * format used in regular WMF images. The clipboard + * version of this format has an extra clipboard-specific + * header</p> + */ + public static int CF_METAFILEPICT = 3; + + + + /** + * <p>Clipboard Format - Device Independent Bitmap</p> + */ + public static int CF_DIB = 8; + + + + /** + * <p>Clipboard Format - Enhanced Windows metafile format</p> + */ + public static int CF_ENHMETAFILE = 14; + + + + /** + * <p>Clipboard Format - Bitmap</p> + * <p>Obsolete, See: + * <a href="msdn.microsoft.com/library/en-us/dnw98bk/html/clipboardoperations.asp + * target="_blank"> + * msdn.microsoft.com/library/en-us/dnw98bk/html/clipboardoperations.asp + * </a> + * </p> + */ + public static int CF_BITMAP = 2; + + + + /** + * <p> A <code>byte[]</code> to hold a thumbnail image in + * ({@link Variant#VT_CF VT_CF}) format. </p> + */ + private byte[] thumbnailData = null; + + + + /** + * <p>Default Constructor. If you use then one you'll have to add + * the thumbnail <code>byte[]</code> from {@link + * SummaryInformation#getThumbnail()} to do any useful + * manipulations, otherwise you'll get a + * <code>NullPointerException</code>.</p> + */ + public Thumbnail() + { + super(); + } + + + + /** + * <p></p> + */ + public Thumbnail(byte[] thumbnailData) + { + this.thumbnailData = thumbnailData; + } + + + + /** + * <p>Returns the thumbnail as a <code>byte[]</code> in + * {@link Variant#VT_CF VT_CF} format.</p> + * + * @see SummaryInformation#getThumbnail() + */ + public byte[] getThumbnail() { + return thumbnailData; + } + + + + /** + * <p>Sets the Thumbnail's underlying <code>byte[]</code> in + * {@link Variant#VT_CF VT_CF} format.</p> + * + * @see SummaryInformation#getThumbnail() + */ + public void setThumbnail(byte[] thumbnail) { + this.thumbnailData = thumbnail; + } + + + + /** + * <p>Returns an <code>int</code> representing the Clipboard + * Format Tag</p> + * <p>Possible return values are: + * <ul> + * <li>{@link #CFTAG_WINDOWS CFTAG_WINDOWS}</li> + * <li>{@link #CFTAG_MACINTOSH CFTAG_MACINTOSH}</li> + * <li>{@link #CFTAG_FMTID CFTAG_FMTID}</li> + * <li>{@link #CFTAG_NODATA CFTAG_NODATA}</li> + * </ul> + * </p> + * + * @return a flag indicating the Clipboard Format Tag + */ + public int getClipboardFormatTag() + { + DWord clipboardFormatTag = new DWord(getThumbnail(),OFFSET_CFTAG); + return clipboardFormatTag.intValue(); + } + + + + /** + * <p>Returns an <code>int</code> representing the Clipboard + * Format</p> + * + * <p>Will throw an exceptionif the Thumbnail's Clipboard + * Format Tag is not + * {@link Thumbnail#CFTAG_WINDOWS CFTAG_WINDOWS} + * </p> + * + * <p>Possible return values are: + * <ul> + * <li>{@link #CF_METAFILEPICT CF_METAFILEPICT}</li> + * <li>{@link #CF_DIB CF_DIB}</li> + * <li>{@link #CF_ENHMETAFILE CF_ENHMETAFILE}</li> + * <li>{@link #CF_BITMAP CF_BITMAP}</li> + * </ul> + * </p> + * + * @return a flag indicating the Clipboard Format + * + * @throws HPSFException if the Thumbnail isn't CFTAG_WINDOWS + * + */ + public int getClipboardFormat() throws HPSFException + { + if ( !(getClipboardFormatTag() == CFTAG_WINDOWS) ) + { + throw new HPSFException("Clipboard Format Tag of Thumbnail must " + + "be CFTAG_WINDOWS."); + } + + DWord clipboardFormat = new DWord(getThumbnail(),OFFSET_CF); + return clipboardFormat.intValue(); + } + + + + /** + * <p>Returns the Thumbnail as a <code>byte[]</code> + * of WMF data if the Thumbnail's Clipboard Format Tag + * is {@link #CFTAG_WINDOWS CFTAG_WINDOWS} + * and its Clipboard Format is + * {@link #CF_METAFILEPICT CF_METAFILEPICT}</p> + * + * <p>This <code>byte[]</code> is in the traditional WMF file, + * not the clipboard-specific version with special headers.</p> + * + * <p> See + * <a href="http://www.wvware.com/caolan/ora-wmf.html" + * target="_blank">http://www.wvware.com/caolan/ora-wmf.html</a> + * for more information on the WMF image format.</p> + * + * @throws HPSFException if the Thumbnail isn't CFTAG_WINDOWS + * and CF_METAFILEPICT + * + * @return a WMF image of the Thumbnail + */ + public byte[] getThumbnailAsWMF() throws HPSFException + { + if ( !(getClipboardFormatTag() == CFTAG_WINDOWS) ) + { + throw new HPSFException("Clipboard Format Tag of Thumbnail must " + + "be CFTAG_WINDOWS."); + } + if ( !(getClipboardFormat() == CF_METAFILEPICT) ) + { + throw new HPSFException("Clipboard Format of Thumbnail must " + + "be CF_METAFILEPICT."); + } + else + { + byte[] thumbnail = getThumbnail(); + int wmfImageLength = thumbnail.length - OFFSET_WMFDATA; + byte[] wmfImage = new byte[wmfImageLength]; + System.arraycopy(thumbnail, + OFFSET_WMFDATA, + wmfImage, + 0, + wmfImageLength); + return wmfImage; + } + } + +} diff --git a/src/java/org/apache/poi/hpsf/UnexpectedPropertySetTypeException.java b/src/java/org/apache/poi/hpsf/UnexpectedPropertySetTypeException.java index 1c297fb4d0..d9da7d8f42 100644 --- a/src/java/org/apache/poi/hpsf/UnexpectedPropertySetTypeException.java +++ b/src/java/org/apache/poi/hpsf/UnexpectedPropertySetTypeException.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/Util.java b/src/java/org/apache/poi/hpsf/Util.java index 9bcdba5d73..7ea6911cff 100644 --- a/src/java/org/apache/poi/hpsf/Util.java +++ b/src/java/org/apache/poi/hpsf/Util.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; diff --git a/src/java/org/apache/poi/hpsf/Variant.java b/src/java/org/apache/poi/hpsf/Variant.java index be17579fe1..29de83917d 100644 --- a/src/java/org/apache/poi/hpsf/Variant.java +++ b/src/java/org/apache/poi/hpsf/Variant.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf; @@ -307,9 +299,34 @@ public class Variant public final static int VT_CF = 71; /** - * <p>[P] A Class ID. <span style="background-color: - * #ffff00">How long is this? How is it to be - * interpreted?</span></p> + * <p>[P] A Class ID.</p> + * <p>It consists of a 32 bit unsigned integer indicating the size + * of the structure, a 32 bit signed integer indicating (Clipboard + * Format Tag) indicating the type of data that it contains, and + * then a byte array containing the data.</p> + * + * <p>The valid Clipboard Format Tags are: + * <ul> + * <li>{@link Thumbnail#CFTAG_WINDOWS}</li> + * <li>{@link Thumbnail#CFTAG_MACINTOSH}</li> + * <li>{@link Thumbnail#CFTAG_NODATA}</li> + * <li>{@link Thumbnail#CFTAG_FMTID}</li> + * </ul></p> + * + * <p> + * <pre>typedef struct tagCLIPDATA { + * // cbSize is the size of the buffer pointed to + * // by pClipData, plus sizeof(ulClipFmt) + * ULONG cbSize; + * long ulClipFmt; + * BYTE* pClipData; + * } CLIPDATA;</pre> + * See + * <a href="msdn.microsoft.com/library/en-us/com/stgrstrc_0uwk.asp" + * target="_blank"> + * msdn.microsoft.com/library/en-us/com/stgrstrc_0uwk.asp + * </a> + * </p> */ public final static int VT_CLSID = 72; diff --git a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java index 74ebbbe859..4c0ca18934 100644 --- a/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java +++ b/src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf.wellknown; diff --git a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java index d42df09bf3..ae90f9071d 100644 --- a/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java +++ b/src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java @@ -50,14 +50,6 @@ * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. -* -* Portions of this software are based upon public domain software -* originally written at the National Center for Supercomputing Applications, -* University of Illinois, Urbana-Champaign. - * - * Portions of this software are based upon public domain software - * originally written at the National Center for Supercomputing Applications, - * University of Illinois, Urbana-Champaign. */ package org.apache.poi.hpsf.wellknown; |