Modified: poi/site/publish/components/hpsf/index.html URL: http://svn.apache.org/viewvc/poi/site/publish/components/hpsf/index.html?rev=1836244&r1=1836243&r2=1836244&view=diff ============================================================================== --- poi/site/publish/components/hpsf/index.html (original) +++ poi/site/publish/components/hpsf/index.html Wed Jul 18 23:27:21 2018 @@ -1,144 +1,298 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<!--*** This is a generated file. Do not edit. ***--> -<link rel="stylesheet" href="../skin/tigris.css" type="text/css"> -<link rel="stylesheet" href="../skin/mysite.css" type="text/css"> -<link rel="stylesheet" href="../skin/site.css" type="text/css"> -<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.9"> +<meta name="Forrest-skin-name" content="pelt"> <title>Apache POI - HPSF - Java API for Microsoft Format Document Properties</title> +<link type="text/css" href="../../skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet"> +<link type="text/css" href="../../skin/profile.css" rel="stylesheet"> +<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="../../images/favicon.ico"> </head> -<body bgcolor="white" class="composite"> -<!--================= start Banner ==================--> -<div id="banner"> -<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> -<tbody> -<tr> -<!--================= start Group Logo ==================--> -<td width="50%" align="left"> -<div class="groupLogo"> -<a href="https://www.apache.org"><img border="0" class="logoImage" alt="The Apache Software Foundation" src="../resources/images/asf_logo.png"></a> -</div> -</td> -<!--================= end Group Logo ==================--> -<!--================= start Project Logo ==================--><td width="50%" align="right"> -<div align="right" class="projectLogo"> -<a href="https://donate.apache.org/"><img border="0" class="logoImage" alt="Support Apache" src="../resources/images/support-asf.png" width="120" height="120" title="Your donation helps The Apache Software Foundation ensure its community-driven software remains available to billions of users at absolutely no cost."></a><a href="https://poi.apache.org/"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/pb-poi.png" width="120" height="120" title="Apache POI - the Java API for Microsoft Documents"></a> -</div> -</td> -<!--================= end Project Logo ==================--> -</tr> -</tbody> -</table> -</div> -<!--================= end Banner ==================--> -<!--================= start Main ==================--> -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> -<tbody> -<!--================= start Status ==================--> -<tr class="status"> -<td> -<!--================= start BreadCrumb ==================--><a href="https://www.apache.org/">Apache</a> | <a href="https://poi.apache.org/">POI</a><a href=""></a> -<!--================= end BreadCrumb ==================--></td><td id="tabs"> -<!--================= start Tabs ==================--> -<div class="tab"> -<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> -function printit() { -if (window.print) { - window.print() ; -} else { - var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; -document.body.insertAdjacentHTML('beforeEnd', WebBrowser); - WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; -} -} -</script><script language="Javascript" type="text/javascript"> -var NS = (navigator.appName == "Netscape"); -var VERSION = parseInt(navigator.appVersion); -if (VERSION > 3) { - document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); -} -</script> -</div> -<!--================= end Tabs ==================--> -</td> -</tr> -</tbody> -</table> -<!--================= end Status ==================--> -<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> -<tbody> -<tr valign="top"> -<!--================= start Menu ==================--> -<td id="leftcol"> -<div id="navcolumn"> -<div class="menuBar"> -<div class="menu"> -<span class="menuLabel">Apache POI</span> -<div class="menuItem"> -<a href="../index.html">Top</a> -</div> -</div> -<div class="menu"> -<span class="menuLabel">HPSF</span> -<div class="menuItem"> -<span class="menuSelected">Overview</span> -</div> -<div class="menuItem"> -<a href="how-to.html">How To</a> -</div> -<div class="menuItem"> -<a href="thumbnails.html">Thumbnails</a> -</div> -<div class="menuItem"> -<a href="internals.html">Internals</a> -</div> -<div class="menuItem"> -<a href="todo.html">To Do</a> -</div> -</div> -<center> -<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png"></a> -</center> -</div> -</div> -<form target="_blank" action="https://www.google.com/search" method="get"> -<table summary="search" border="0" cellspacing="0" cellpadding="0"> -<tr> -<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"> - Search Apache POI<br> -<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> -</tr> -</table> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="https://www.apache.org">Apache Software Foundation</a> > <a href="https://poi.apache.org">Apache POI</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="https://www.apache.org"><img class="logoImage" alt="Apache Software Foundation" src="../../images/group-logo.png" title="The Apache Software Foundation is a cornerstone of the modern Open Source software ecosystem – supporting some of the most widely used and important software solutions powering today's Internet economy."></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="https://poi.apache.org"><img class="logoImage" alt="Apache POI" src="../../images/project-logo.png" title="Apache POI is well-known in the Java field as a library for reading and writing Microsoft Office file formats, such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both the older (OLE2) and new (OOXML - Office Open XML) formats."></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="poi.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> </form> -</td> -<!--================= end Menu ==================--> -<!--================= start Content ==================--><td> -<div id="bodycol"> -<div class="app"> -<div align="center"> +</div> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="../../index.html">Home</a> +</li> +<li> +<a class="unselected" href="../../help/index.html">Help</a> +</li> +<li class="current"> +<a class="selected" href="../../components/index.html">Component APIs</a> +</li> +<li> +<a class="unselected" href="../../devel/index.html">Getting Involved</a> +</li> +</ul> +<!--+ + |end Tabs + +--> +</div> +</div> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Component APIs</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="../../components/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../apidocs/index.html">Javadocs</a> +</div> +<div onclick="SwitchMenu('menu_1.1.3', '../../skin/')" id="menu_1.1.3Title" class="menutitle">Excel (HSSF/XSSF)</div> +<div id="menu_1.1.3" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/spreadsheet/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/quick-guide.html">Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/how-to.html">HOWTO</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/converting.html">HSSF to SS Converting</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/formula.html">Formula Support</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/eval.html">Formula Evaluation</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/eval-devguide.html">Eval Dev Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/examples.html">Examples</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/use-case.html">Use Case</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/diagrams.html">Pictorial Docs</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/limitations.html">Limitations</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/user-defined-functions.html">User Defined Functions</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/excelant.html">ExcelAnt Tests</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/hacking-hssf.html">Hacking HSSF</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/record-generator.html">Record Generator</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/chart.html">Charts</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.4', '../../skin/')" id="menu_1.1.4Title" class="menutitle">PowerPoint (HSLF/XSLF)</div> +<div id="menu_1.1.4" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/slideshow/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/quick-guide.html">Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/how-to-shapes.html">HSLF Cookbook</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/xslf-cookbook.html">XSLF Cookbook</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/ppt-file-format.html">PPT File Format</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" class="menutitle">Word (HWPF/XWPF)</div> +<div id="menu_1.1.5" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/document/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/document/quick-guide.html">HWPF Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/document/quick-guide-xwpf.html">XWPF Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/document/docoverview.html">HWPF Format</a> +</div> +<div class="menuitem"> +<a href="../../components/document/projectplan.html">HWPF Project plan</a> +</div> +</div> +<div class="menuitem"> +<a href="../../components/hsmf/index.html">Outlook (HSMF)</a> +</div> +<div class="menuitem"> +<a href="../../components/diagram/index.html">Visio (HDGF+XDGF)</a> +</div> +<div onclick="SwitchMenu('menu_1.1.8', '../../skin/')" id="menu_1.1.8Title" class="menutitle">Publisher (HPBF)</div> +<div id="menu_1.1.8" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/hpbf/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/hpbf/file-format.html">File Format</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.9', '../../skin/')" id="menu_1.1.9Title" class="menutitle">OLE2 Filesystem (POIFS)</div> +<div id="menu_1.1.9" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/poifs/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/how-to.html">How To</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/embeded.html">Embedded Documents</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/fileformat.html">File System Documentation</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/usecases.html">Use Cases</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/design.html">Design</a> +</div> +</div> +<div onclick="SwitchMenu('menu_selected_1.1.10', '../../skin/')" id="menu_selected_1.1.10Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">OLE2 Document Props (HPSF)</div> +<div id="menu_selected_1.1.10" class="selectedmenuitemgroup" style="display: block;"> +<div class="menupage"> +<div class="menupagetitle">Overview</div> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/how-to.html">How To</a> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/thumbnails.html">Thumbnails</a> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/internals.html">Internals</a> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/todo.html">To Do</a> +</div> +</div> +<div class="menuitem"> +<a href="../../components/hmef/index.html">TNEF (HMEF) for winmail.dat</a> +</div> +<div class="menuitem"> +<a href="../../components/oxml4j/index.html">OpenXML4J (OOXML)</a> +</div> +<div class="menuitem"> +<a href="../../components/logging.html">Logging framework</a> +</div> +</div> +<div id="credit"> +<hr> +<a href="https://www.apache.org/events/current-event.html"><img border="0" title="Apache Event" alt="Apache Event - logo" src="http://www.apache.org/events/current-event-125x125.png" style="width: 125px;height: 125px;"></a> +</div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"> +<a href="https://donate.apache.org/"><img border="0" title="Support Apache" alt="Support Apache - logo" src="../../images/support-asf.png" style="width: 125px;height: 125px;"></a> +</div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> <h1>Apache POI - HPSF - Java API for Microsoft Format Document Properties</h1> -</div> -<div class="h3"> - - +<h3>Overview</h3> +<div id="front-matter"></div> <a name="Overview"></a> -<div class="h3"> -<h3>Overview<a title="Permanent link" class="headerlink" href="#Overview">#</a> -</h3> -</div> - - +<h2 class="boxed">Overview</h2> +<div class="section"> <p>Microsoft applications like "Word", "Excel" or "Powerpoint" let the user describe a document by properties like "title", "category" and so on. The application itself adds further information: last author, creation date @@ -146,66 +300,50 @@ if (VERSION > 3) { streams</strong>. A property set stream is a separate document within a <a href="../poifs/index.html">POI filesystem</a>. HPSF is POI's pure-Java implementation to read and write property sets.</p> - - <p>The <a href="how-to.html">HPSF HOWTO</a> describes what a Java application should do to read a property set using HPSF, how to retrieve the information it needs, and how to write properties into the document.</p> - - <p>HPSF supports OLE2 property set streams in general, and is not limited to the special case of document properties in the Microsoft Office files mentioned above. The <a href="internals.html">HPSF description</a> describes the internal structure of property set streams. A separate document explains the internal of <a href="thumbnails.html">thumbnail images</a>.</p> - - - -<div id="authors" align="right">by Rainer Klute</div> -</div> </div> + +<p align="right"> +<font size="-2">by Rainer Klute</font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> </div> -</td> -<!--================= end Content ==================--> -</tr> -</tbody> -</table> -<!--================= end Main ==================--> -<!--================= start Footer ==================--> <div id="footer"> -<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> -<tbody> -<tr> -<!--================= start Copyright ==================--> -<td colspan="2"> -<div align="center"> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> +</div> <div class="copyright"> - Copyright © 2002-2018 The Apache Software Foundation. All rights reserved.<br> - Apache, Apache POI, and the Apache POI logo are registered trademarks or - trademarks of The Apache Software Foundation in the U.S. and/or other countries. - </div> -</div> -</td> -<!--================= end Copyright ==================--> -</tr> -<tr> -<td align="left"> -<!--================= start Host ==================--> -<!--================= end Host ==================--></td><td align="right"> -<!--================= start Credits ==================--> -<div align="right"> -<div class="credit"> -<a href="http://validator.w3.org/check/referer"><img width="88" height="31" alt="Valid HTML 4.01!" src="../skin/images/valid-html401.png" class="logoImage"></a><a href="http://jigsaw.w3.org/css-validator/"><img width="88" height="31" alt="Valid CSS!" src="../skin/images/vcss.png" class="logoImage"></a><a href="https://forrest.apache.org/"><img border="0" class="logoImage" alt="Built with Apache Forrest" src="../skin/images/built-with-forrest-button.png" width="88" height="31"></a> -</div> -</div> -<!--================= end Credits ==================--> -</td> -</tr> -</tbody> -</table> + Copyright © + 2001-2018 <a href="https://www.apache.org/">The Apache Software Foundation</a> +</div> +<div id="logos"> +<a href="http://validator.w3.org/check/referer"><img style="height: 31px; width: 88px;" title="Valid HTML 4.01!" alt="Valid HTML 4.01!" src="../../skin/images/valid-html401.png" class="logoImage"></a><a href="http://jigsaw.w3.org/css-validator/check/referer"><img style="height: 31px; width: 88px;" title="Valid CSS!" alt="Valid CSS!" src="../../skin/images/vcss.png" class="logoImage"></a> +</div> +<div id="feedback"> + Send feedback about the website to: + <a id="feedbackto" href="mailto:[email protected]?subject=Feedback%C2%A0components/hpsf/index.html">[email protected]</a> +</div> +<!--+ + |end bottomstrip + +--> </div> -<!--================= end Footer ==================--> </body> </html>
Modified: poi/site/publish/components/hpsf/internals.html URL: http://svn.apache.org/viewvc/poi/site/publish/components/hpsf/internals.html?rev=1836244&r1=1836243&r2=1836244&view=diff ============================================================================== --- poi/site/publish/components/hpsf/internals.html (original) +++ poi/site/publish/components/hpsf/internals.html Wed Jul 18 23:27:21 2018 @@ -1,157 +1,294 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<!--*** This is a generated file. Do not edit. ***--> -<link rel="stylesheet" href="../skin/tigris.css" type="text/css"> -<link rel="stylesheet" href="../skin/mysite.css" type="text/css"> -<link rel="stylesheet" href="../skin/site.css" type="text/css"> -<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css"> +<meta content="Apache Forrest" name="Generator"> +<meta name="Forrest-version" content="0.9"> +<meta name="Forrest-skin-name" content="pelt"> <title>Apache POI - HPSF Internals</title> +<link type="text/css" href="../../skin/basic.css" rel="stylesheet"> +<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet"> +<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet"> +<link type="text/css" href="../../skin/profile.css" rel="stylesheet"> +<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script> +<link rel="shortcut icon" href="../../images/favicon.ico"> </head> -<body bgcolor="white" class="composite"> -<!--================= start Banner ==================--> -<div id="banner"> -<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0"> -<tbody> -<tr> -<!--================= start Group Logo ==================--> -<td width="50%" align="left"> -<div class="groupLogo"> -<a href="https://www.apache.org"><img border="0" class="logoImage" alt="The Apache Software Foundation" src="../resources/images/asf_logo.png"></a> +<body onload="init()"> +<script type="text/javascript">ndeSetTextSize();</script> +<div id="top"> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> +<a href="https://www.apache.org">Apache Software Foundation</a> > <a href="https://poi.apache.org">Apache POI</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script> +</div> +<!--+ + |header + +--> +<div class="header"> +<!--+ + |start group logo + +--> +<div class="grouplogo"> +<a href="https://www.apache.org"><img class="logoImage" alt="Apache Software Foundation" src="../../images/group-logo.png" title="The Apache Software Foundation is a cornerstone of the modern Open Source software ecosystem – supporting some of the most widely used and important software solutions powering today's Internet economy."></a> +</div> +<!--+ + |end group logo + +--> +<!--+ + |start Project Logo + +--> +<div class="projectlogo"> +<a href="https://poi.apache.org"><img class="logoImage" alt="Apache POI" src="../../images/project-logo.png" title="Apache POI is well-known in the Java field as a library for reading and writing Microsoft Office file formats, such as Excel, PowerPoint, Word, Visio, Publisher and Outlook. It supports both the older (OLE2) and new (OOXML - Office Open XML) formats."></a> +</div> +<!--+ + |end Project Logo + +--> +<!--+ + |start Search + +--> +<div class="searchbox"> +<form action="http://www.google.com/search" method="get" class="roundtopsmall"> +<input value="poi.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google"> + <input name="Search" value="Search" type="submit"> +</form> </div> -</td> -<!--================= end Group Logo ==================--> -<!--================= start Project Logo ==================--><td width="50%" align="right"> -<div align="right" class="projectLogo"> -<a href="https://donate.apache.org/"><img border="0" class="logoImage" alt="Support Apache" src="../resources/images/support-asf.png" width="120" height="120" title="Your donation helps The Apache Software Foundation ensure its community-driven software remains available to billions of users at absolutely no cost."></a><a href="https://poi.apache.org/"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/pb-poi.png" width="120" height="120" title="Apache POI - the Java API for Microsoft Documents"></a> +<!--+ + |end search + +--> +<!--+ + |start Tabs + +--> +<ul id="tabs"> +<li> +<a class="unselected" href="../../index.html">Home</a> +</li> +<li> +<a class="unselected" href="../../help/index.html">Help</a> +</li> +<li class="current"> +<a class="selected" href="../../components/index.html">Component APIs</a> +</li> +<li> +<a class="unselected" href="../../devel/index.html">Getting Involved</a> +</li> +</ul> +<!--+ + |end Tabs + +--> </div> -</td> -<!--================= end Project Logo ==================--> -</tr> -</tbody> -</table> </div> -<!--================= end Banner ==================--> -<!--================= start Main ==================--> -<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs"> -<tbody> -<!--================= start Status ==================--> -<tr class="status"> -<td> -<!--================= start BreadCrumb ==================--><a href="https://www.apache.org/">Apache</a> | <a href="https://poi.apache.org/">POI</a><a href=""></a> -<!--================= end BreadCrumb ==================--></td><td id="tabs"> -<!--================= start Tabs ==================--> -<div class="tab"> -<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript"> -function printit() { -if (window.print) { - window.print() ; -} else { - var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; -document.body.insertAdjacentHTML('beforeEnd', WebBrowser); - WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; -} -} -</script><script language="Javascript" type="text/javascript"> -var NS = (navigator.appName == "Netscape"); -var VERSION = parseInt(navigator.appVersion); -if (VERSION > 3) { - document.write(' <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>'); -} -</script> +<div id="main"> +<div id="publishedStrip"> +<!--+ + |start Subtabs + +--> +<div id="level2tabs"></div> +<!--+ + |end Endtabs + +--> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> </div> -<!--================= end Tabs ==================--> -</td> -</tr> -</tbody> -</table> -<!--================= end Status ==================--> -<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0"> -<tbody> -<tr valign="top"> -<!--================= start Menu ==================--> -<td id="leftcol"> -<div id="navcolumn"> -<div class="menuBar"> -<div class="menu"> -<span class="menuLabel">Apache POI</span> - -<div class="menuItem"> -<a href="../index.html">Top</a> +<!--+ + |breadtrail + +--> +<div class="breadtrail"> + + + </div> +<!--+ + |start Menu, mainarea + +--> +<!--+ + |start Menu + +--> +<div id="menu"> +<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Component APIs</div> +<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="../../components/index.html">Overview</a> </div> - +<div class="menuitem"> +<a href="../../apidocs/index.html">Javadocs</a> </div> -<div class="menu"> -<span class="menuLabel">HPSF</span> - -<div class="menuItem"> -<a href="index.html">Overview</a> +<div onclick="SwitchMenu('menu_1.1.3', '../../skin/')" id="menu_1.1.3Title" class="menutitle">Excel (HSSF/XSSF)</div> +<div id="menu_1.1.3" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/spreadsheet/index.html">Overview</a> </div> - -<div class="menuItem"> -<a href="how-to.html">How To</a> +<div class="menuitem"> +<a href="../../components/spreadsheet/quick-guide.html">Quick Guide</a> </div> - -<div class="menuItem"> -<a href="thumbnails.html">Thumbnails</a> +<div class="menuitem"> +<a href="../../components/spreadsheet/how-to.html">HOWTO</a> </div> - -<div class="menuItem"> -<span class="menuSelected">Internals</span> +<div class="menuitem"> +<a href="../../components/spreadsheet/converting.html">HSSF to SS Converting</a> </div> - -<div class="menuItem"> -<a href="todo.html">To Do</a> +<div class="menuitem"> +<a href="../../components/spreadsheet/formula.html">Formula Support</a> </div> - +<div class="menuitem"> +<a href="../../components/spreadsheet/eval.html">Formula Evaluation</a> </div> -<center> -<a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-125x125.png"></a> -</center> +<div class="menuitem"> +<a href="../../components/spreadsheet/eval-devguide.html">Eval Dev Guide</a> </div> +<div class="menuitem"> +<a href="../../components/spreadsheet/examples.html">Examples</a> </div> -<form target="_blank" action="https://www.google.com/search" method="get"> -<table summary="search" border="0" cellspacing="0" cellpadding="0"> -<tr> -<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"> - Search Apache POI<br> -<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td> -</tr> -<tr> -<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td> -</tr> -</table> -</form> -</td> -<!--================= end Menu ==================--> -<!--================= start Content ==================--><td> -<div id="bodycol"> -<div class="app"> -<div align="center"> -<h1>Apache POI - HPSF Internals</h1> +<div class="menuitem"> +<a href="../../components/spreadsheet/use-case.html">Use Case</a> </div> -<div class="h3"> - - - -<a name="HPSF+Internals"></a> -<div class="h3"> -<h3>HPSF Internals<a title="Permanent link" class="headerlink" href="#HPSF+Internals">#</a> -</h3> +<div class="menuitem"> +<a href="../../components/spreadsheet/diagrams.html">Pictorial Docs</a> </div> - - -<a name="Introduction"></a> -<div class="h4"> -<h4>Introduction<a title="Permanent link" class="headerlink" href="#Introduction">#</a> -</h4> +<div class="menuitem"> +<a href="../../components/spreadsheet/limitations.html">Limitations</a> </div> - +<div class="menuitem"> +<a href="../../components/spreadsheet/user-defined-functions.html">User Defined Functions</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/excelant.html">ExcelAnt Tests</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/hacking-hssf.html">Hacking HSSF</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/record-generator.html">Record Generator</a> +</div> +<div class="menuitem"> +<a href="../../components/spreadsheet/chart.html">Charts</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.4', '../../skin/')" id="menu_1.1.4Title" class="menutitle">PowerPoint (HSLF/XSLF)</div> +<div id="menu_1.1.4" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/slideshow/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/quick-guide.html">Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/how-to-shapes.html">HSLF Cookbook</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/xslf-cookbook.html">XSLF Cookbook</a> +</div> +<div class="menuitem"> +<a href="../../components/slideshow/ppt-file-format.html">PPT File Format</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.5', '../../skin/')" id="menu_1.1.5Title" class="menutitle">Word (HWPF/XWPF)</div> +<div id="menu_1.1.5" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/document/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/document/quick-guide.html">HWPF Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/document/quick-guide-xwpf.html">XWPF Quick Guide</a> +</div> +<div class="menuitem"> +<a href="../../components/document/docoverview.html">HWPF Format</a> +</div> +<div class="menuitem"> +<a href="../../components/document/projectplan.html">HWPF Project plan</a> +</div> +</div> +<div class="menuitem"> +<a href="../../components/hsmf/index.html">Outlook (HSMF)</a> +</div> +<div class="menuitem"> +<a href="../../components/diagram/index.html">Visio (HDGF+XDGF)</a> +</div> +<div onclick="SwitchMenu('menu_1.1.8', '../../skin/')" id="menu_1.1.8Title" class="menutitle">Publisher (HPBF)</div> +<div id="menu_1.1.8" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/hpbf/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/hpbf/file-format.html">File Format</a> +</div> +</div> +<div onclick="SwitchMenu('menu_1.1.9', '../../skin/')" id="menu_1.1.9Title" class="menutitle">OLE2 Filesystem (POIFS)</div> +<div id="menu_1.1.9" class="menuitemgroup"> +<div class="menuitem"> +<a href="../../components/poifs/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/how-to.html">How To</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/embeded.html">Embedded Documents</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/fileformat.html">File System Documentation</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/usecases.html">Use Cases</a> +</div> +<div class="menuitem"> +<a href="../../components/poifs/design.html">Design</a> +</div> +</div> +<div onclick="SwitchMenu('menu_selected_1.1.10', '../../skin/')" id="menu_selected_1.1.10Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">OLE2 Document Props (HPSF)</div> +<div id="menu_selected_1.1.10" class="selectedmenuitemgroup" style="display: block;"> +<div class="menuitem"> +<a href="../../components/hpsf/index.html">Overview</a> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/how-to.html">How To</a> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/thumbnails.html">Thumbnails</a> +</div> +<div class="menupage"> +<div class="menupagetitle">Internals</div> +</div> +<div class="menuitem"> +<a href="../../components/hpsf/todo.html">To Do</a> +</div> +</div> +<div class="menuitem"> +<a href="../../components/hmef/index.html">TNEF (HMEF) for winmail.dat</a> +</div> +<div class="menuitem"> +<a href="../../components/oxml4j/index.html">OpenXML4J (OOXML)</a> +</div> +<div class="menuitem"> +<a href="../../components/logging.html">Logging framework</a> +</div> +</div> +<div id="credit"></div> +<div id="roundbottom"> +<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div> +<!--+ + |alternative credits + +--> +<div id="credit2"> +<a href="https://donate.apache.org/"><img border="0" title="Support Apache" alt="Support Apache - logo" src="../../images/support-asf.png" style="width: 125px;height: 125px;"></a> +</div> +</div> +<!--+ + |end Menu + +--> +<!--+ + |start content + +--> +<div id="content"> +<h1>Apache POI - HPSF Internals</h1> +<div id="front-matter"></div> +<a name="HPSF+Internals"></a> +<h2 class="boxed">HPSF Internals</h2> +<div class="section"> +<a name="Introduction"></a> +<h3 class="boxed">Introduction</h3> <p>A Microsoft Office document is internally organized like a filesystem with directory and files. Microsoft calls these files <strong>streams</strong>. A document can have properties attached to it, @@ -160,8 +297,6 @@ if (VERSION > 3) { stream with a special format. Usually this stream's name is <span class="codefrag">\005SummaryInformation</span>, where <span class="codefrag">\005</span> represents the character with a decimal value of 5.</p> - - <p>A single piece of information in the stream is called a <strong>property</strong>, for example the document title. Each property has an integral <strong>ID</strong> (e.g. 2 for title), a @@ -169,15 +304,11 @@ if (VERSION > 3) { <strong>value</strong> (what this is should be obvious). A stream containing properties is called a <strong>property set stream</strong>.</p> - - <p>This document describes the internal structure of a property set stream, i.e. the <strong>HPSF</strong>. It does not describe how a Microsoft Office document is organized internally and how to retrieve a stream from it. See the <a href="../poifs/index.html">POIFS documentation</a> for that kind of stuff.</p> - - <p>The HPSF is not only used in the Summary Information stream in the top-level document of a Microsoft Office document. Often there is also a property set stream named @@ -185,18 +316,8 @@ if (VERSION > 3) { Embedded documents may have their own property set streams. You cannot tell by a stream's name whether it is a property set stream or not. Instead you have to open the stream and look at its bytes.</p> - - - - - <a name="Data+Types"></a> -<div class="h4"> -<h4>Data Types<a title="Permanent link" class="headerlink" href="#Data+Types">#</a> -</h4> -</div> - - +<h3 class="boxed">Data Types</h3> <p>Before delving into the details of the property set stream format we have to have a short look at data types. Integral values are stored in the so-called <strong>little endian</strong> format. In this format the bytes @@ -207,16 +328,12 @@ if (VERSION > 3) { format. In the little endian format, however, this order is reversed and the low-value byte comes first: 0x3412. </p> - - <p>The following table gives an overview about some important data types:</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Name</th> <th colspan="1" rowspan="1">Length</th> @@ -226,7 +343,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><strong>Bytes</strong></td> <td colspan="1" rowspan="1">1 byte</td> @@ -236,7 +353,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"><strong>Word</strong></td> <td colspan="1" rowspan="1">2 bytes</td> @@ -246,7 +363,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"><strong>DWord</strong></td> <td colspan="1" rowspan="1">4 bytes</td> @@ -256,7 +373,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"><strong>ClassID</strong> <br> @@ -273,7 +390,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1"></td> @@ -290,21 +407,9 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="HPSF+Overview"></a> -<div class="h4"> -<h4>HPSF Overview<a title="Permanent link" class="headerlink" href="#HPSF+Overview">#</a> -</h4> -</div> - - +<h3 class="boxed">HPSF Overview</h3> <p>A property set stream consists of three main parts:</p> - - <ol> <li>The <strong>header</strong> and</li> @@ -312,25 +417,13 @@ if (VERSION > 3) { <li>the <strong>section(s)</strong> containing the properties.</li> </ol> - - - - - <a name="The+Header"></a> -<div class="h4"> -<h4>The Header<a title="Permanent link" class="headerlink" href="#The+Header">#</a> -</h4> -</div> - - +<h3 class="boxed">The Header</h3> <p>The first bytes in a property set stream is the <strong>header</strong>. It has a fixed length and looks like this:</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Offset</th> <th colspan="1" rowspan="1">Type</th> @@ -340,7 +433,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0</td> <td colspan="1" rowspan="1">Word</td> @@ -351,7 +444,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">2</td> <td colspan="1" rowspan="1">Word</td> @@ -361,7 +454,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">4</td> <td colspan="1" rowspan="1">DWord</td> @@ -377,7 +470,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">8</td> <td colspan="1" rowspan="1">ClassID</td> @@ -388,7 +481,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">24</td> <td colspan="1" rowspan="1">DWord</td> @@ -402,28 +495,16 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="Section+List"></a> -<div class="h4"> -<h4>Section List<a title="Permanent link" class="headerlink" href="#Section+List">#</a> -</h4> -</div> - - +<h3 class="boxed">Section List</h3> <p>Following the header is the section list. This is an array of pairs each consisting of a section format ID and an offset. This array has as many pairs of ClassID and and DWord fields as the section count field in the header says. The Summary Information stream contains a single section, the Document Summary Information stream contains two.</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Type</th> <th colspan="1" rowspan="1">Contents</th> @@ -432,7 +513,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">ClassID</td> <td colspan="1" rowspan="1">Section format ID</td> @@ -447,7 +528,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">DWord</td> <td colspan="1" rowspan="1">Offset</td> @@ -457,7 +538,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">ClassID</td> <td colspan="1" rowspan="1">Section format ID</td> @@ -466,7 +547,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">DWord</td> <td colspan="1" rowspan="1">Offset</td> @@ -475,7 +556,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">...</td> <td colspan="1" rowspan="1">...</td> @@ -484,27 +565,15 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="Section"></a> -<div class="h4"> -<h4>Section<a title="Permanent link" class="headerlink" href="#Section">#</a> -</h4> -</div> - - +<h3 class="boxed">Section</h3> <p>A section is divided into three parts: the section header (with the section length and the number of properties in the section), the properties list (with type and offset of each property), and the properties themselves. Here are the details:</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1"> </th> <th colspan="1" rowspan="1">Type</th> @@ -514,7 +583,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">Section header</td> @@ -525,7 +594,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1">DWord</td> @@ -535,7 +604,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">Properties list</td> @@ -550,7 +619,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1">DWord</td> @@ -561,7 +630,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1">...</td> @@ -571,7 +640,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">Properties</td> @@ -585,7 +654,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1"><em>Field length depends on the property type @@ -604,7 +673,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1"></td> <td colspan="1" rowspan="1">...</td> @@ -614,26 +683,13 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="Property+IDs"></a> -<div class="h4"> -<h4>Property IDs<a title="Permanent link" class="headerlink" href="#Property+IDs">#</a> -</h4> -</div> - -<a name="property_ids"></a> - - +<h3 class="boxed">Property IDs</h3> +<a name="property_ids" id="property_ids"></a> <p>As seen above, a section holds a property list: an array with property IDs and offsets. The property ID gives each property a meaning. For example, in the Summary Information stream the property ID 2 says that this property is the document's title.</p> - - <p>If you want to know a property ID's meaning, it is not sufficient to know the ID itself. You must also know the <strong>section format ID</strong>. For example, in the Document Summary @@ -642,46 +698,31 @@ if (VERSION > 3) { not part of the section. Thus if you have only a section without the stream it is in, you cannot make any sense of the properties because you do not know what they mean.</p> - - <p>So each section format ID has its own name space of property IDs. Microsoft defined some "well-known" property IDs for the Summary Information and the Document Summary Information streams. You can extend them by your own additional IDs. This will be described below.</p> - - <a name="Property+IDs+in+The+Summary+Information+Stream"></a> -<div class="h2"> -<h2>Property IDs in The Summary Information Stream<a title="Permanent link" class="headerlink" href="#Property+IDs+in+The+Summary+Information+Stream">#</a> -</h2> -</div> - - +<h4>Property IDs in The Summary Information Stream</h4> <p>The Summary Information stream has a single section with a section format ID of <span class="codefrag">0xF29F85E04FF91068AB9108002B27B3D9</span>. The following table defines the meaning of its property IDs. Each row associates a property ID with a <em>name</em> and an <em>ID string</em>. (The property <em>type</em> is just for informational purposes given here. As we have seen above, the type is always given along with the value.)</p> - - <p>The property <em>name</em> is a readable string which could be displayed to the user. However, this string is useful only for users who understand English. The property name does not help with other languages.</p> - - <p>The property <em>ID string</em> is about the same but looks more technically and is nothing a user should bother with. You could the ID string and map it to an appropriate display string in a particular language. Of course you could do that with the property ID as well and with less overhead, but people (including software developers) tend to be better in remembering symbolic constants than remembering numbers.</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Property ID</th> <th colspan="1" rowspan="1">Property Name</th> @@ -690,7 +731,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">2</td> <td colspan="1" rowspan="1">Title</td> @@ -699,7 +740,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">3</td> <td colspan="1" rowspan="1">Subject</td> @@ -708,7 +749,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">4</td> <td colspan="1" rowspan="1">Author</td> @@ -717,7 +758,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">5</td> <td colspan="1" rowspan="1">Keywords</td> @@ -726,7 +767,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">6</td> <td colspan="1" rowspan="1">Comments</td> @@ -735,7 +776,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">7</td> <td colspan="1" rowspan="1">Template</td> @@ -744,7 +785,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">8</td> <td colspan="1" rowspan="1">Last Saved By</td> @@ -753,7 +794,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">9</td> <td colspan="1" rowspan="1">Revision Number</td> @@ -762,7 +803,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">10</td> <td colspan="1" rowspan="1">Total Editing Time</td> @@ -771,7 +812,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">11</td> <td colspan="1" rowspan="1">Last Printed</td> @@ -780,7 +821,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">12</td> <td colspan="1" rowspan="1">Create Time/Date</td> @@ -789,7 +830,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">13</td> <td colspan="1" rowspan="1">Last Saved Time/Date</td> @@ -798,7 +839,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">14</td> <td colspan="1" rowspan="1">Number of Pages</td> @@ -807,7 +848,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">15</td> <td colspan="1" rowspan="1">Number of Words</td> @@ -816,7 +857,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">16</td> <td colspan="1" rowspan="1">Number of Characters</td> @@ -825,7 +866,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">17</td> <td colspan="1" rowspan="1">Thumbnail</td> @@ -834,7 +875,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">18</td> <td colspan="1" rowspan="1">Name of Creating Application</td> @@ -843,7 +884,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">19</td> <td colspan="1" rowspan="1">Security</td> @@ -853,27 +894,15 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="Property+IDs+in+The+Document+Summary+Information+Stream"></a> -<div class="h2"> -<h2>Property IDs in The Document Summary Information Stream<a title="Permanent link" class="headerlink" href="#Property+IDs+in+The+Document+Summary+Information+Stream">#</a> -</h2> -</div> - - +<h4>Property IDs in The Document Summary Information Stream</h4> <p>The Document Summary Information stream has two sections with a section format ID of <span class="codefrag">0xD5CDD5022E9C101B939708002B2CF9AE</span> for the first one. The following table defines the meaning of the property IDs in the first section. See the preceding section for interpreting the table.</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Property ID</th> <th colspan="1" rowspan="1">Property name</th> @@ -883,7 +912,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0</td> <td colspan="1" rowspan="1">Dictionary</td> @@ -892,7 +921,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">1</td> <td colspan="1" rowspan="1">Code page</td> @@ -901,7 +930,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">2</td> <td colspan="1" rowspan="1">Category</td> @@ -910,7 +939,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">3</td> <td colspan="1" rowspan="1">PresentationTarget</td> @@ -919,7 +948,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">4</td> <td colspan="1" rowspan="1">Bytes</td> @@ -928,7 +957,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">5</td> <td colspan="1" rowspan="1">Lines</td> @@ -937,7 +966,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">6</td> <td colspan="1" rowspan="1">Paragraphs</td> @@ -946,7 +975,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">7</td> <td colspan="1" rowspan="1">Slides</td> @@ -955,7 +984,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">8</td> <td colspan="1" rowspan="1">Notes</td> @@ -964,7 +993,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">9</td> <td colspan="1" rowspan="1">HiddenSlides</td> @@ -973,7 +1002,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">10</td> <td colspan="1" rowspan="1">MMClips</td> @@ -982,7 +1011,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">11</td> <td colspan="1" rowspan="1">ScaleCrop</td> @@ -991,7 +1020,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">12</td> <td colspan="1" rowspan="1">HeadingPairs</td> @@ -1000,7 +1029,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">13</td> <td colspan="1" rowspan="1">TitlesofParts</td> @@ -1009,7 +1038,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">14</td> <td colspan="1" rowspan="1">Manager</td> @@ -1018,7 +1047,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">15</td> <td colspan="1" rowspan="1">Company</td> @@ -1027,7 +1056,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">16</td> <td colspan="1" rowspan="1">LinksUpTo Date</td> @@ -1037,37 +1066,21 @@ if (VERSION > 3) { </tr> </table> - - - - - - <a name="Property+Types"></a> -<div class="h4"> -<h4>Property Types<a title="Permanent link" class="headerlink" href="#Property+Types">#</a> -</h4> -</div> - -<a name="property_types"></a> - - +<h3 class="boxed">Property Types</h3> +<a name="property_types" id="property_types"></a> <p>A property consists of a DWord <em>type field</em> followed by the property value. The property type is an integer value and tells how the data byte following it are to be interpreted. In the Microsoft world it is also known as the <em>variant</em>.</p> - - <p>The <em>Usage</em> column says where a variant type may occur. Not all of them are allowed in a property set but just those marked with a [P]. <strong>[V]</strong> - may appear in a VARIANT, <strong>[T]</strong> - may appear in a TYPEDESC, <strong>[P]</strong> - may appear in an OLE property set, <strong>[S]</strong> - may appear in a Safe Array.</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Variant ID</th> <th colspan="1" rowspan="1">Variant Type</th> @@ -1076,7 +1089,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0</td> <td colspan="1" rowspan="1">VT_EMPTY</td> @@ -1085,7 +1098,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">1</td> <td colspan="1" rowspan="1">VT_NULL</td> @@ -1094,7 +1107,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">2</td> <td colspan="1" rowspan="1">VT_I2</td> @@ -1103,7 +1116,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">3</td> <td colspan="1" rowspan="1">VT_I4</td> @@ -1112,7 +1125,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">4</td> <td colspan="1" rowspan="1">VT_R4</td> @@ -1121,7 +1134,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">5</td> <td colspan="1" rowspan="1">VT_R8</td> @@ -1130,7 +1143,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">6</td> <td colspan="1" rowspan="1">VT_CY</td> @@ -1139,7 +1152,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">7</td> <td colspan="1" rowspan="1">VT_DATE</td> @@ -1148,7 +1161,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">8</td> <td colspan="1" rowspan="1">VT_BSTR</td> @@ -1157,7 +1170,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">9</td> <td colspan="1" rowspan="1">VT_DISPATCH</td> @@ -1166,7 +1179,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">10</td> <td colspan="1" rowspan="1">VT_ERROR</td> @@ -1175,7 +1188,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">11</td> <td colspan="1" rowspan="1">VT_BOOL</td> @@ -1184,7 +1197,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">12</td> <td colspan="1" rowspan="1">VT_VARIANT</td> @@ -1193,7 +1206,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">13</td> <td colspan="1" rowspan="1">VT_UNKNOWN</td> @@ -1202,7 +1215,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">14</td> <td colspan="1" rowspan="1">VT_DECIMAL</td> @@ -1211,7 +1224,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">16</td> <td colspan="1" rowspan="1">VT_I1</td> @@ -1220,7 +1233,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">17</td> <td colspan="1" rowspan="1">VT_UI1</td> @@ -1229,7 +1242,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">18</td> <td colspan="1" rowspan="1">VT_UI2</td> @@ -1238,7 +1251,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">19</td> <td colspan="1" rowspan="1">VT_UI4</td> @@ -1247,7 +1260,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">20</td> <td colspan="1" rowspan="1">VT_I8</td> @@ -1256,7 +1269,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">21</td> <td colspan="1" rowspan="1">VT_UI8</td> @@ -1265,7 +1278,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">22</td> <td colspan="1" rowspan="1">VT_INT</td> @@ -1274,7 +1287,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">23</td> <td colspan="1" rowspan="1">VT_UINT</td> @@ -1283,7 +1296,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">24</td> <td colspan="1" rowspan="1">VT_VOID</td> @@ -1292,7 +1305,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">25</td> <td colspan="1" rowspan="1">VT_HRESULT</td> @@ -1301,7 +1314,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">26</td> <td colspan="1" rowspan="1">VT_PTR</td> @@ -1310,7 +1323,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">27</td> <td colspan="1" rowspan="1">VT_SAFEARRAY</td> @@ -1319,7 +1332,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">28</td> <td colspan="1" rowspan="1">VT_CARRAY</td> @@ -1328,7 +1341,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">29</td> <td colspan="1" rowspan="1">VT_USERDEFINED</td> @@ -1337,7 +1350,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">30</td> <td colspan="1" rowspan="1">VT_LPSTR</td> @@ -1346,7 +1359,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">31</td> <td colspan="1" rowspan="1">VT_LPWSTR</td> @@ -1355,7 +1368,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">64</td> <td colspan="1" rowspan="1">VT_FILETIME</td> @@ -1364,7 +1377,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">65</td> <td colspan="1" rowspan="1">VT_BLOB</td> @@ -1373,7 +1386,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">66</td> <td colspan="1" rowspan="1">VT_STREAM</td> @@ -1382,7 +1395,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">67</td> <td colspan="1" rowspan="1">VT_STORAGE</td> @@ -1391,7 +1404,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">68</td> <td colspan="1" rowspan="1">VT_STREAMED_OBJECT</td> @@ -1400,7 +1413,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">69</td> <td colspan="1" rowspan="1">VT_STORED_OBJECT</td> @@ -1409,7 +1422,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">70</td> <td colspan="1" rowspan="1">VT_BLOB_OBJECT</td> @@ -1418,7 +1431,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">71</td> <td colspan="1" rowspan="1">VT_CF</td> @@ -1427,7 +1440,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">72</td> <td colspan="1" rowspan="1">VT_CLSID</td> @@ -1436,7 +1449,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0x1000</td> <td colspan="1" rowspan="1">VT_VECTOR</td> @@ -1445,7 +1458,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">0x2000</td> <td colspan="1" rowspan="1">VT_ARRAY</td> @@ -1454,7 +1467,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0x4000</td> <td colspan="1" rowspan="1">VT_BYREF</td> @@ -1463,7 +1476,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">0x8000</td> <td colspan="1" rowspan="1">VT_RESERVED</td> @@ -1476,7 +1489,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0xFFFF</td> <td colspan="1" rowspan="1">VT_ILLEGAL</td> @@ -1489,7 +1502,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">0xFFF</td> <td colspan="1" rowspan="1">VT_ILLEGALMASKED</td> @@ -1502,7 +1515,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">0xFFF</td> <td colspan="1" rowspan="1">VT_TYPEMASK</td> @@ -1516,30 +1529,15 @@ if (VERSION > 3) { </tr> </table> - - - - - <a name="The+Dictionary"></a> -<div class="h4"> -<h4>The Dictionary<a title="Permanent link" class="headerlink" href="#The+Dictionary">#</a> -</h4> -</div> - - - +<h3 class="boxed">The Dictionary</h3> <p>What a dictionary is good for is explained in the <a href="how-to.html">HPSF HOW-TO</a>. This chapter explains how it is organized internally.</p> - - <p>The dictionary has a simple header consisting of a single UInt value. It tells how many entries the dictionary comprises:</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Name</th> <th colspan="1" rowspan="1">Data type</th> @@ -1547,7 +1545,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">nrEntries</td> <th colspan="1" rowspan="1">UInt</th> @@ -1556,14 +1554,10 @@ if (VERSION > 3) { </tr> </table> - - <p>The dictionary entries follow the header. Each one looks like this:</p> - - <table class="ForrestTable" cellspacing="1" cellpadding="4"> -<tr class="b"> +<tr> <th colspan="1" rowspan="1">Name</th> <td colspan="1" rowspan="1">Data type</td> @@ -1571,7 +1565,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">key</td> <td colspan="1" rowspan="1">UInt</td> @@ -1579,7 +1573,7 @@ if (VERSION > 3) { </tr> -<tr class="b"> +<tr> <td colspan="1" rowspan="1">length</td> <td colspan="1" rowspan="1">UInt</td> @@ -1587,7 +1581,7 @@ if (VERSION > 3) { </tr> -<tr class="a"> +<tr> <td colspan="1" rowspan="1">value</td> <td colspan="1" rowspan="1">String</td> @@ -1596,28 +1590,14 @@ if (VERSION > 3) { </tr> </table> - - <p>The entries are not aligned, i.e. each one follows its predecessor without any gap or fill characters.</p> - - - - - <a name="References"></a> -<div class="h4"> -<h4>References<a title="Permanent link" class="headerlink" href="#References">#</a> -</h4> -</div> - - +<h3 class="boxed">References</h3> <p>In order to assemble the HPSF description I used information publically available on the Internet only. The references given below have been very helpful. If you have any amendments or corrections, please let us know! Thank you!</p> - - <ol> @@ -1658,51 +1638,37 @@ if (VERSION > 3) { <li>This documentation origins from the <a href="http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html">HPSF description</a> available at <a href="http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html">http://www.rainer-klute.de/~klute/Software/poibrowser/doc/HPSF-Description.html</a>.</li> </ol> - - - - -<div id="authors" align="right">by Rainer Klute</div> -</div> </div> + +<p align="right"> +<font size="-2">by Rainer Klute</font> +</p> +</div> +<!--+ + |end content + +--> +<div class="clearboth"> </div> </div> -</td> -<!--================= end Content ==================--> -</tr> -</tbody> -</table> -<!--================= end Main ==================--> -<!--================= start Footer ==================--> <div id="footer"> -<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0"> -<tbody> -<tr> -<!--================= start Copyright ==================--> -<td colspan="2"> -<div align="center"> -<div class="copyright"> - Copyright © 2002-2018 The Apache Software Foundation. All rights reserved.<br> - Apache, Apache POI, and the Apache POI logo are registered trademarks or - trademarks of The Apache Software Foundation in the U.S. and/or other countries. - </div> +<!--+ + |start bottomstrip + +--> +<div class="lastmodified"> +<script type="text/javascript"><!-- +document.write("Last Published: " + document.lastModified); +// --></script> </div> -</td> -<!--================= end Copyright ==================--> -</tr> -<tr> -<td align="left"> -<!--================= start Host ==================--> -<!--================= end Host ==================--></td><td align="right"> -<!--================= start Credits ==================--> -<div align="right"> -<div class="credit"></div> +<div class="copyright"> + Copyright © + 2001-2018 <a href="https://www.apache.org/">The Apache Software Foundation</a> </div> -<!--================= end Credits ==================--> -</td> -</tr> -</tbody> -</table> +<div id="feedback"> + Send feedback about the website to: + <a id="feedbackto" href="mailto:[email protected]?subject=Feedback%C2%A0components/hpsf/internals.html">[email protected]</a> +</div> +<!--+ + |end bottomstrip + +--> </div> -<!--================= end Footer ==================--> </body> </html> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
