<html> <head> <title>MAPIClientLibraries 0.9 API Documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"/> <link href="apidocs.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="website"> <div class="header"></div> <div id="middle_side"> <div id="right_side_home"> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#define-members">Defines</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <h1>libmapi/lzfu.c File Reference</h1> </div> </div> <div class="contents"> <p>Compressed RTF related functions. <a href="#_details">More...</a></p> <code>#include <<a class="el" href="libmapi_8h.html">libmapi/libmapi.h</a>></code><br/> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#a432684604ccad411f83ecc0dc820d6cd">LE16_CPU</a>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#ad8104c8dac0bb93194fd2f454b480a48">LE32_CPU</a>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#af418fd9436a135b4b71e4f218d3735b3">LZFU_COMPRESSED</a> 0x75465a4c</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#ade07314d23ce2c0feeaeac8cfc8b91bf">LZFU_DICTLENGTH</a> 0x1000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#a884a89f1903bb15c255bdcbb54ae235b">LZFU_HEADERLENGTH</a> 0x10</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#a194bf7d5f259677a93c10ee75125f824">LZFU_INITDICT</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#aec03dab615c42dcf554c32fcf16642b3">LZFU_INITLENGTH</a> 207</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#af2f5b18c49cd225c2ccacab341ad044e">LZFU_UNCOMPRESSED</a> 0x414c454d</td></tr> <tr><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct _lzfuheader </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#ab4c1f0adcff2050d25a579c999ea8d84">lzfuheader</a></td></tr> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#aeaa0ca06836beb49822da4320465efa0">uncompress_rtf</a> (TALLOC_CTX *mem_ctx, uint8_t *rtfcomp, uint32_t in_size, DATA_BLOB *rtf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS </td><td class="memItemRight" valign="bottom"><a class="el" href="lzfu_8c.html#ac3398d6eb3eea86d47ff109874fcefb6">WrapCompressedRTFStream</a> (<a class="el" href="structmapi__object.html">mapi_object_t</a> *obj_stream, DATA_BLOB *rtf)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Compressed RTF related functions. </p> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a432684604ccad411f83ecc0dc820d6cd"></a><!-- doxytag: member="lzfu.c::LE16_CPU" ref="a432684604ccad411f83ecc0dc820d6cd" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LE16_CPU</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">x = ((((x) & 0xff00) >> 8) | \ (((x) & 0x00ff) << 8)); </pre></div> </div> </div> <a class="anchor" id="ad8104c8dac0bb93194fd2f454b480a48"></a><!-- doxytag: member="lzfu.c::LE32_CPU" ref="ad8104c8dac0bb93194fd2f454b480a48" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LE32_CPU</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">x</td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">x = ((((x) & 0xff000000) >> 24) | \ (((x) & 0x00ff0000) >> 8 ) | \ (((x) & 0x0000ff00) << 8 ) | \ (((x) & 0x000000ff) << 24)); </pre></div> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="af418fd9436a135b4b71e4f218d3735b3"></a><!-- doxytag: member="lzfu.c::LZFU_COMPRESSED" ref="af418fd9436a135b4b71e4f218d3735b3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_COMPRESSED 0x75465a4c</td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="ade07314d23ce2c0feeaeac8cfc8b91bf"></a><!-- doxytag: member="lzfu.c::LZFU_DICTLENGTH" ref="ade07314d23ce2c0feeaeac8cfc8b91bf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_DICTLENGTH 0x1000</td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="a884a89f1903bb15c255bdcbb54ae235b"></a><!-- doxytag: member="lzfu.c::LZFU_HEADERLENGTH" ref="a884a89f1903bb15c255bdcbb54ae235b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_HEADERLENGTH 0x10</td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="a194bf7d5f259677a93c10ee75125f824"></a><!-- doxytag: member="lzfu.c::LZFU_INITDICT" ref="a194bf7d5f259677a93c10ee75125f824" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_INITDICT</td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="stringliteral">"{\\rtf1\\ansi\\mac\\deff0\\deftab720{\\fonttbl;}"</span> \ <span class="stringliteral">"{\\f0\\fnil \\froman \\fswiss \\fmodern \\fscrip"</span> \ <span class="stringliteral">"t \\fdecor MS Sans SerifSymbolArialTimes Ne"</span> \ <span class="stringliteral">"w RomanCourier{\\colortbl\\red0\\green0\\blue0"</span> \ <span class="stringliteral">"\r\n\\par \\pard\\plain\\f0\\fs20\\b\\i\\u\\tab"</span> \ <span class="stringliteral">"\\tx"</span> </pre></div> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="aec03dab615c42dcf554c32fcf16642b3"></a><!-- doxytag: member="lzfu.c::LZFU_INITLENGTH" ref="aec03dab615c42dcf554c32fcf16642b3" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_INITLENGTH 207</td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <a class="anchor" id="af2f5b18c49cd225c2ccacab341ad044e"></a><!-- doxytag: member="lzfu.c::LZFU_UNCOMPRESSED" ref="af2f5b18c49cd225c2ccacab341ad044e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define LZFU_UNCOMPRESSED 0x414c454d</td> </tr> </table> </div> <div class="memdoc"> <p>Referenced by <a class="el" href="proto_8h.html#a1e3d884ee2f96f82f7b50ff2448b7152">uncompress_rtf()</a>.</p> </div> </div> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="ab4c1f0adcff2050d25a579c999ea8d84"></a><!-- doxytag: member="lzfu.c::lzfuheader" ref="ab4c1f0adcff2050d25a579c999ea8d84" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _lzfuheader <a class="el" href="lzfu_8c.html#ab4c1f0adcff2050d25a579c999ea8d84">lzfuheader</a></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="aeaa0ca06836beb49822da4320465efa0"></a><!-- doxytag: member="lzfu.c::uncompress_rtf" ref="aeaa0ca06836beb49822da4320465efa0" args="(TALLOC_CTX *mem_ctx, uint8_t *rtfcomp, uint32_t in_size, DATA_BLOB *rtf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">_PUBLIC_ enum MAPISTATUS uncompress_rtf </td> <td>(</td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint8_t * </td> <td class="paramname"> <em>rtfcomp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>in_size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">DATA_BLOB * </td> <td class="paramname"> <em>rtf</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>References <a class="el" href="lzfu_8c.html#ad8104c8dac0bb93194fd2f454b480a48">LE32_CPU</a>, <a class="el" href="lzfu_8c.html#af418fd9436a135b4b71e4f218d3735b3">LZFU_COMPRESSED</a>, <a class="el" href="lzfu_8c.html#ade07314d23ce2c0feeaeac8cfc8b91bf">LZFU_DICTLENGTH</a>, <a class="el" href="lzfu_8c.html#a884a89f1903bb15c255bdcbb54ae235b">LZFU_HEADERLENGTH</a>, <a class="el" href="lzfu_8c.html#a194bf7d5f259677a93c10ee75125f824">LZFU_INITDICT</a>, <a class="el" href="lzfu_8c.html#aec03dab615c42dcf554c32fcf16642b3">LZFU_INITLENGTH</a>, <a class="el" href="lzfu_8c.html#af2f5b18c49cd225c2ccacab341ad044e">LZFU_UNCOMPRESSED</a>, and <a class="el" href="mapicode_8h.html#a7a4b9d7d8598946434a984fdb461eddb">OPENCHANGE_RETVAL_ERR</a>.</p> <p>Referenced by <a class="el" href="proto_8h.html#a4b8479efbbc1fff738126b9fa6a2f791">WrapCompressedRTFStream()</a>.</p> </div> </div> <a class="anchor" id="ac3398d6eb3eea86d47ff109874fcefb6"></a><!-- doxytag: member="lzfu.c::WrapCompressedRTFStream" ref="ac3398d6eb3eea86d47ff109874fcefb6" args="(mapi_object_t *obj_stream, DATA_BLOB *rtf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">_PUBLIC_ enum MAPISTATUS WrapCompressedRTFStream </td> <td>(</td> <td class="paramtype"><a class="el" href="structmapi__object.html">mapi_object_t</a> * </td> <td class="paramname"> <em>obj_stream</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">DATA_BLOB * </td> <td class="paramname"> <em>rtf</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>creates a DATA_BLOB in uncompressed Rich Text Format (RTF) from the compressed format used in the PR_RTF_COMPRESSED property opened in the stream.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>obj_stream</em> </td><td>stream object with RTF stream content </td></tr> <tr><td valign="top"></td><td valign="top"><em>rtf</em> </td><td>the output blob with uncompressed content</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error. Possible MAPI error codes are:<ul> <li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li> <li>MAPI_E_INVALID_PARAMETER: obj_stream is not a valid pointer</li> <li>MAPI_E_CORRUPT_DATA: a problem was encountered while decompressing the RTF compressed data</li> <li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li> </ul> </dd></dl> <dl class="note"><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#a8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code.</dd> <dd> rtf->data needs to be freed with MAPIFreeBuffer</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="proto_8h.html#a2be8f10c82ffcf8070e105f1a0d8c998">OpenStream</a> </dd></dl> <p>References <a class="el" href="IUnknown_8c.html#a8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a>, <a class="el" href="cdo__mapi_8c.html#aa3c2b68912988f290961037c76478495">global_mapi_ctx</a>, <a class="el" href="structmapi__ctx.html#ada2a491501fdb736ced986fec5ffedc2">mapi_ctx::mem_ctx</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="IStream_8c.html#a8e1a787eb5909c9e4792ec994409abd6">ReadStream()</a>, and <a class="el" href="lzfu_8c.html#aeaa0ca06836beb49822da4320465efa0">uncompress_rtf()</a>.</p> </div> </div> </div> </div> <br/> <table style="clear:both; margin: 0.5em auto; width:80%; text-align: center; background-color:#f8f8f8; border:2px solid #e0e0e0; padding:5px;"> <tr> <td> <img alt="Creative Commons License" src="CC_SomeRightsReserved.png" width="90" height="30" border="0" /><br /> <img alt="Creative Commons Attribution icon" src="24px-Cc-by_white.svg.png" width="24" height="24" border="0" /> <img alt="Creative Commons Share Alike icon" src="24px-Cc-sa_white.svg.png" width="24" height="24" border="0" /> </td> <td> <i><strong class="selflink">This content</strong> is licensed under the Creative Commons<br /> Attribution ShareAlike License v. 3.0:<br /> <a href="http://creativecommons.org/licenses/by-sa/3.0/" class="external free" title="http://creativecommons.org/licenses/by-sa/3.0/" rel="nofollow">http://creativecommons.org/licenses/by-sa/3.0/</a></i> </td></tr></table> <br/> </div> </div> </body> </html>