<HTML>
	<HEAD>
    	<TITLE>Adobe ExtendScript Toolkit</TITLE>
		<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
		<LINK HREF="adobe.css" REL="stylesheet" TYPE="text/css">
        <LINK HREF="tabs.css" REL="stylesheet" TYPE="text/css">
 	</HEAD>
	<BODY> 
    <div class="header"><a href="http://www.adobe.com"><img src="adobelogo.jpg" alt="http://www.adobe.com"></a>&nbsp;<b>ExtendScript ToolKit</b></div>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="classes.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_5be92307e70993ba7c9562e7f46c3ede.html">source</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_a6802e25b2f20290ae9f506d4f5816f2.html">samplelib</a>
  </div>
</div>
<div class="contents">
<h1>SampleLib.cpp File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
The sample shows how to implement an external object and to extend the JavaScript DOM, showing in particular how to use the object-oriented interface. 
<p>
The sample demonstrates the two mechansisms for extending the JavaScript DOM, the direct interface and the indirect (object-oriented) interface. <p>
Direct Interface: <br>
This enables you to expose methods of your shared library as a method in the JavaScript environment. This allows you to pass simple data types back to JavaScript from the External Object such as Strings, booleans, integers and scripts. <p>
For information on how to call the individual methods from JavaScript, see the comments for each methods or see the loadSampleLib.jsx script file that accompanies this sample. <p>
Indirect Interface: <br>
This enables you to create new classes of objects in JavaScript with properties and methods. Your Shared Library is called when these methods or properties are used in in JavaScript.<p>
If you are working with an installed (Release) build of Adobe Bridge CS3, then we recommend you choose the Release configuration of the shared library when testing the SampleLib. You can modify the shared library (Debug or Release) that is loaded in the loadSampleLib.jsx file itself. <p>
See the JavaScript Tools Guide for more information on the direct interface and indirect (object-oriented) interface.<p>
See <a class="el" href="SoSharedLibDefs_8h.html">SoSharedLibDefs.h</a> for error codes and return types<p>
See <a class="el" href="SoCClient_8h.html">SoCClient.h</a> for the indirect (object-oriented) interface<p>
See sampleprojects for information on how to build the library<p>
See installing for information on how to install and use the library 
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmyData__s.html">myData_s</a></td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="structmyData__s.html">myData_s</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#4a5e2dee5ca9c40547fd1e6627adc24b">myData_t</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structmyData__s.html">myData_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#fd19edcf9641948c585616ad2ed51402">myData_p</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#8b648c73524ab596218d8007f6ada4a1">unused</a> (void *x)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#36ff5e776334ef4bec95467c1741afe5">ESGetVersion</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the version number of the library.  <a href="#36ff5e776334ef4bec95467c1741afe5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#0c33129e27194e75f524e0377b193c98">ESInitialize</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the library and return function signatures.  <a href="#0c33129e27194e75f524e0377b193c98"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#6e39f5e23590d5062cca4c254655805d">ESTerminate</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminate the library.  <a href="#6e39f5e23590d5062cca4c254655805d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#48218396a64d7d9fbfe3ea242c4c0ba4">ESFreeMem</a> (void *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free any string memory which has been returned as function result.  <a href="#48218396a64d7d9fbfe3ea242c4c0ba4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#c4015c228d089387c436c9e669a5026f">ESMallocMem</a> (size_t nBytes)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate some memory.  <a href="#c4015c228d089387c436c9e669a5026f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#1032c4a4e24c3c455b4bc7d2a3b24cfc">setVersion</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change the version number by setting the global "version".  <a href="#1032c4a4e24c3c455b4bc7d2a3b24cfc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#cb755604d334a6cb84ffb8951be1fd1b">stringize</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Helper function to "Stringize" each argument.  <a href="#cb755604d334a6cb84ffb8951be1fd1b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#34cf3b5efa09f92d71f21d91bf6e67d8">createObject</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes arguments with a known type (because there is a signature for it).  <a href="#34cf3b5efa09f92d71f21d91bf6e67d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#cc4d8cc25f6221ed2323e4ba5babf765">createArray</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#61bffd076c1fd602fafa8a7240dddb35">paramAny</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes an argument of any type.  <a href="#61bffd076c1fd602fafa8a7240dddb35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#563302cc1e150a3a46f26d84cf95d151">paramBool</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes a boolean argument.  <a href="#563302cc1e150a3a46f26d84cf95d151"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#9ad0a8d2284a30fc47dd44d4dd6e9e22">paramUInt32</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes an unsigned integer argument.  <a href="#9ad0a8d2284a30fc47dd44d4dd6e9e22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#8a9dea28228aa8ccc13946fbc37dc9d6">paramInt32</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes a signed integer argument.  <a href="#8a9dea28228aa8ccc13946fbc37dc9d6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#9530e98b08760fc9554e43d552536b18">paramFloat64</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes an 64 bit floating point argument.  <a href="#9530e98b08760fc9554e43d552536b18"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#d668de9a2f803fab20cdd1924a4507aa">paramString</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that takes a string argument.  <a href="#d668de9a2f803fab20cdd1924a4507aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#7508218b1b73c7daca4bb6226fa2196d">built</a> (<a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, long argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Example of a function that returns a string.  <a href="#7508218b1b73c7daca4bb6226fa2196d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#e8e1da3a68908ad8b38e54150b908c86">objectInitialize</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, int argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called whenever a ne object is constructed.  <a href="#e8e1da3a68908ad8b38e54150b908c86"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#9daa87ac5f1a5a5df998b63ba68c8f7e">objectGet</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, <a class="el" href="structSoCClientName__s.html">SoCClientName</a> *name, <a class="el" href="structTaggedData__s.html">TaggedData</a> *pResult)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the value of a property of this object.  <a href="#9daa87ac5f1a5a5df998b63ba68c8f7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#8c8ab813db9ebe5545ae47e6fbc7b230">objectPut</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, <a class="el" href="structSoCClientName__s.html">SoCClientName</a> *name, <a class="el" href="structTaggedData__s.html">TaggedData</a> *pValue)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a value of a property of this object.  <a href="#8c8ab813db9ebe5545ae47e6fbc7b230"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#67965dceb36d673dfeb5cb5e8d0a1a42">objectCall</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, <a class="el" href="structSoCClientName__s.html">SoCClientName</a> *name, int argc, <a class="el" href="structTaggedData__s.html">TaggedData</a> *argv, <a class="el" href="structTaggedData__s.html">TaggedData</a> *pResult)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calls a method of this object.  <a href="#67965dceb36d673dfeb5cb5e8d0a1a42"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#be1ac5d491cdb7dec934ef782ab72a0d">objectToString</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, <a class="el" href="structTaggedData__s.html">TaggedData</a> *pResult)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not used in this sample.  <a href="#be1ac5d491cdb7dec934ef782ab72a0d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#9ae96e6dbfd75be6aadb8a64b3e30f85">objectValueOf</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject, <a class="el" href="structTaggedData__s.html">TaggedData</a> *pResult)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Not used in this sample.  <a href="#9ae96e6dbfd75be6aadb8a64b3e30f85"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#35f943e1ec2cd9bb8164a2d1344437cc">objectFinalize</a> (<a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a> hObject)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calls when the object is released from memory.  <a href="#35f943e1ec2cd9bb8164a2d1344437cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">SAMPLIB int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#4a7ac1fef8e1373539946f54c0432fdf">ESClientInterface</a> (<a class="el" href="SoCClient_8h.html#4c49b0a04e8ee497a92fa158f4742688">SoCClient_e</a> kReason, <a class="el" href="structSoServerInterface__s.html">SoServerInterface</a> *pServer, <a class="el" href="SoCClient_8h.html#a619bb8ff37693bef699310570b4b416">SoHServer</a> hServer)</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#154bc877ef95d477dbc5a1b3f745e9c9">libraryVersionNumber</a> = 1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the version number, and can be modified by <a class="el" href="SampleLib_8cpp.html#1032c4a4e24c3c455b4bc7d2a3b24cfc" title="Change the version number by setting the global &quot;version&quot;.">setVersion()</a>.  <a href="#154bc877ef95d477dbc5a1b3f745e9c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#f9f12bbf45996588ab7f384a4b32f019">signatures</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">String string that contains the signatures of every ESFunction defined here, used to support the JavaScript reflection interface.  <a href="#f9f12bbf45996588ab7f384a4b32f019"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSoObjectInterface__s.html">SoObjectInterface</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#7af7536097617906d57c965fa7f30770">gpObjectInterface</a> = NULL</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array of function pointers to communiate use of the new class.  <a href="#7af7536097617906d57c965fa7f30770"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSoServerInterface__s.html">SoServerInterface</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#a19ec219dc2de18b7576bc7a2497c960">gpServer</a> = NULL</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Structure of function pointers which enable the client to call JavaScript.  <a href="#a19ec219dc2de18b7576bc7a2497c960"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="SoCClient_8h.html#a619bb8ff37693bef699310570b4b416">SoHServer</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#5ef381dae1ced83d5401aa89f2fc12da">ghServer</a> = NULL</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The server object.  <a href="#5ef381dae1ced83d5401aa89f2fc12da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#658eb4f890a3161f8eb8fe479ee04601">ME</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Counter for instances created.  <a href="#658eb4f890a3161f8eb8fe479ee04601"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structSoObjectInterface__s.html">SoObjectInterface</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="SampleLib_8cpp.html#251eacc2b2c1d7ff87b3cc380ca8f975">objectInterface</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Array of SoObjectInterface.  <a href="#251eacc2b2c1d7ff87b3cc380ca8f975"></a><br></td></tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="fd19edcf9641948c585616ad2ed51402"></a><!-- doxytag: member="SampleLib.cpp::myData_p" ref="fd19edcf9641948c585616ad2ed51402" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmyData__s.html">myData_t</a>* <a class="el" href="structmyData__s.html">myData_p</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="4a5e2dee5ca9c40547fd1e6627adc24b"></a><!-- doxytag: member="SampleLib.cpp::myData_t" ref="4a5e2dee5ca9c40547fd1e6627adc24b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structmyData__s.html">myData_s</a> <a class="el" href="structmyData__s.html">myData_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="7508218b1b73c7daca4bb6226fa2196d"></a><!-- doxytag: member="SampleLib.cpp::built" ref="7508218b1b73c7daca4bb6226fa2196d" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long built           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that returns a string. 
<p>
If memory has not been allocated correctly then returns an out of memory error.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00093">unused()</a>.</p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00683">objectGet()</a>.</p>

</div>
</div><p>
<a class="anchor" name="cc4d8cc25f6221ed2323e4ba5babf765"></a><!-- doxytag: member="SampleLib.cpp::createArray" ref="cc4d8cc25f6221ed2323e4ba5babf765" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long createArray           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, <a class="el" href="SampleLib_8cpp-source.html#l00188">stringize()</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="34cf3b5efa09f92d71f21d91bf6e67d8"></a><!-- doxytag: member="SampleLib.cpp::createObject" ref="34cf3b5efa09f92d71f21d91bf6e67d8" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long createObject           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes arguments with a known type (because there is a signature for it). 
<p>
Returns a script that creates a small JavaScript object containing one property. Argument 1 contains the name of the property, argument 2 contains the value. Return a script that creates an object: "({ 'name':'value' })".<p>
If the arguments are not correct then a bad argument error code is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, <a class="el" href="SampleLib_8cpp-source.html#l00188">stringize()</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="4a7ac1fef8e1373539946f54c0432fdf"></a><!-- doxytag: member="SampleLib.cpp::ESClientInterface" ref="4a7ac1fef8e1373539946f54c0432fdf" args="(SoCClient_e kReason, SoServerInterface *pServer, SoHServer hServer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB int ESClientInterface           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#4c49b0a04e8ee497a92fa158f4742688">SoCClient_e</a>&nbsp;</td>
          <td class="paramname"> <em>kReason</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structSoServerInterface__s.html">SoServerInterface</a> *&nbsp;</td>
          <td class="paramname"> <em>pServer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#a619bb8ff37693bef699310570b4b416">SoHServer</a>&nbsp;</td>
          <td class="paramname"> <em>hServer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>References <a class="el" href="SoCClient_8h-source.html#l00203">SoServerInterface_s::addClass</a>, <a class="el" href="SampleLib_8cpp-source.html#l00597">ghServer</a>, <a class="el" href="SoCClient_8h-source.html#l00235">kSoCClient_init</a>, <a class="el" href="SoCClient_8h-source.html#l00236">kSoCClient_term</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00602">ME</a>.</p>

</div>
</div><p>
<a class="anchor" name="48218396a64d7d9fbfe3ea242c4c0ba4"></a><!-- doxytag: member="SampleLib.cpp::ESFreeMem" ref="48218396a64d7d9fbfe3ea242c4c0ba4" args="(void *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB void ESFreeMem           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free any string memory which has been returned as function result. 
<p>
JavaScipt calls this function to release the memory associated with the string. Used for the direct interface.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>*p</em>&nbsp;</td><td>Pointer to the string </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="36ff5e776334ef4bec95467c1741afe5"></a><!-- doxytag: member="SampleLib.cpp::ESGetVersion" ref="36ff5e776334ef4bec95467c1741afe5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long ESGetVersion           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the version number of the library. 
<p>
ExtendScript publishes this number as the version property of the object created by new ExternalObject. Used by the direct interface. 
<p>References <a class="el" href="SampleLib_8cpp-source.html#l00069">libraryVersionNumber</a>.</p>

</div>
</div><p>
<a class="anchor" name="0c33129e27194e75f524e0377b193c98"></a><!-- doxytag: member="SampleLib.cpp::ESInitialize" ref="0c33129e27194e75f524e0377b193c98" args="(TaggedData *argv, long argc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB char* ESInitialize           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the library and return function signatures. 
<p>
These signatures have no effect on the arguments that can be passed to the functions. They are used by JavaScript to cast the arguments, and to populate the reflection interface. 
<p>References <a class="el" href="SampleLib_8cpp-source.html#l00077">signatures</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00093">unused()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c4015c228d089387c436c9e669a5026f"></a><!-- doxytag: member="SampleLib.cpp::ESMallocMem" ref="c4015c228d089387c436c9e669a5026f" args="(size_t nBytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB void* ESMallocMem           </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>nBytes</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate some memory. 
<p>
Used for the object interface.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nBytes</em>&nbsp;</td><td>The amount of space to allocate </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the allocated space </dd></dl>

</div>
</div><p>
<a class="anchor" name="6e39f5e23590d5062cca4c254655805d"></a><!-- doxytag: member="SampleLib.cpp::ESTerminate" ref="6e39f5e23590d5062cca4c254655805d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB void ESTerminate           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Terminate the library. 
<p>
Does any necessary clean up that is needed. 
</div>
</div><p>
<a class="anchor" name="67965dceb36d673dfeb5cb5e8d0a1a42"></a><!-- doxytag: member="SampleLib.cpp::objectCall" ref="67965dceb36d673dfeb5cb5e8d0a1a42" args="(SoHObject hObject, SoCClientName *name, int argc, TaggedData *argv, TaggedData *pResult)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectCall           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structSoCClientName__s.html">SoCClientName</a> *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>pResult</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calls a method of this object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hObject</em>&nbsp;</td><td>- The reference for this instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>- The name of the method to call </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>- The argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pResult</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00092">TaggedData_s::fltval</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, <a class="el" href="SoCClient_8h-source.html#l00083">SoCClientName_s::name_sig</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00093">unused()</a>.</p>

</div>
</div><p>
<a class="anchor" name="35f943e1ec2cd9bb8164a2d1344437cc"></a><!-- doxytag: member="SampleLib.cpp::objectFinalize" ref="35f943e1ec2cd9bb8164a2d1344437cc" args="(SoHObject hObject)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectFinalize           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Calls when the object is released from memory. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hObject</em>&nbsp;</td><td>- The reference for this instance </td></tr>
  </table>
</dl>

<p>References <a class="el" href="SoCClient_8h-source.html#l00214">SoServerInterface_s::getClientData</a>, and <a class="el" href="SoCClient_8h-source.html#l00213">SoServerInterface_s::setClientData</a>.</p>

</div>
</div><p>
<a class="anchor" name="9daa87ac5f1a5a5df998b63ba68c8f7e"></a><!-- doxytag: member="SampleLib.cpp::objectGet" ref="9daa87ac5f1a5a5df998b63ba68c8f7e" args="(SoHObject hObject, SoCClientName *name, TaggedData *pResult)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectGet           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structSoCClientName__s.html">SoCClientName</a> *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>pResult</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the value of a property of this object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hObject</em>&nbsp;</td><td>- The reference for this instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>- The name of the property </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pResult</em>&nbsp;</td><td>- Pointer to the result being returned to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="SampleLib_8cpp-source.html#l00554">built()</a>, <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00092">TaggedData_s::fltval</a>, <a class="el" href="SoCClient_8h-source.html#l00214">SoServerInterface_s::getClientData</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, <a class="el" href="SoCClient_8h-source.html#l00083">SoCClientName_s::name_sig</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="e8e1da3a68908ad8b38e54150b908c86"></a><!-- doxytag: member="SampleLib.cpp::objectInitialize" ref="e8e1da3a68908ad8b38e54150b908c86" args="(SoHObject hObject, int argc, TaggedData *argv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectInitialize           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called whenever a ne object is constructed. 
<p>
<div class="fragment"><pre class="fragment">    var myObj = <span class="keyword">new</span> SampleObject(param1);
</pre></div><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hObject</em>&nbsp;</td><td>- The reference for this instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>- The argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The arguments passed in the constructor </td></tr>
  </table>
</dl>

<p>References <a class="el" href="SampleLib_8cpp-source.html#l00606">myData_s::a</a>, <a class="el" href="SoCClient_8h-source.html#l00206">SoServerInterface_s::addMethods</a>, <a class="el" href="SoCClient_8h-source.html#l00208">SoServerInterface_s::addProperties</a>, <a class="el" href="SampleLib_8cpp-source.html#l00607">myData_s::b</a>, <a class="el" href="SampleLib_8cpp-source.html#l00602">ME</a>, <a class="el" href="SampleLib_8cpp-source.html#l00608">myData_s::me</a>, <a class="el" href="SoCClient_8h-source.html#l00213">SoServerInterface_s::setClientData</a>, <a class="el" href="SoCClient_8h-source.html#l00217">SoServerInterface_s::taggedDataInit</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00093">unused()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8c8ab813db9ebe5545ae47e6fbc7b230"></a><!-- doxytag: member="SampleLib.cpp::objectPut" ref="8c8ab813db9ebe5545ae47e6fbc7b230" args="(SoHObject hObject, SoCClientName *name, TaggedData *pValue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectPut           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structSoCClientName__s.html">SoCClientName</a> *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>pValue</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a value of a property of this object. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hObject</em>&nbsp;</td><td>- The reference for this instance </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>- The name of the property to update </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pValue</em>&nbsp;</td><td>- A pointer to the value to write to the property </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoCClient_8h-source.html#l00214">SoServerInterface_s::getClientData</a>, <a class="el" href="SoCClient_8h-source.html#l00083">SoCClientName_s::name_sig</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>.</p>

</div>
</div><p>
<a class="anchor" name="be1ac5d491cdb7dec934ef782ab72a0d"></a><!-- doxytag: member="SampleLib.cpp::objectToString" ref="be1ac5d491cdb7dec934ef782ab72a0d" args="(SoHObject hObject, TaggedData *pResult)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectToString           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>pResult</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Not used in this sample. 
<p>
To implement, change from NULL to objectToString in array of SoObjectInterface.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="SampleLib_8cpp.html#251eacc2b2c1d7ff87b3cc380ca8f975" title="Array of SoObjectInterface.">objectInterface</a> </dd></dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoCClient_8h-source.html#l00214">SoServerInterface_s::getClientData</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="9ae96e6dbfd75be6aadb8a64b3e30f85"></a><!-- doxytag: member="SampleLib.cpp::objectValueOf" ref="9ae96e6dbfd75be6aadb8a64b3e30f85" args="(SoHObject hObject, TaggedData *pResult)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoSharedLibDefs_8h.html#3178af0dedc49deb1d48445d92549c05">ESerror_t</a> objectValueOf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="SoCClient_8h.html#6ea71c6a9089fe1aee2f8b6165226900">SoHObject</a>&nbsp;</td>
          <td class="paramname"> <em>hObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>pResult</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Not used in this sample. 
<p>
To implement, change from NULL to objectToString in array of SoObjectInterface.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="SampleLib_8cpp.html#251eacc2b2c1d7ff87b3cc380ca8f975" title="Array of SoObjectInterface.">objectInterface</a> </dd></dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoCClient_8h-source.html#l00214">SoServerInterface_s::getClientData</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="61bffd076c1fd602fafa8a7240dddb35"></a><!-- doxytag: member="SampleLib.cpp::paramAny" ref="61bffd076c1fd602fafa8a7240dddb35" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramAny           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes an argument of any type. 
<p>
If the arguments are not correct then a bad argument error code is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>- the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00092">TaggedData_s::fltval</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="563302cc1e150a3a46f26d84cf95d151"></a><!-- doxytag: member="SampleLib.cpp::paramBool" ref="563302cc1e150a3a46f26d84cf95d151" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramBool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes a boolean argument. 
<p>
If the arguments are not correct then a bad argument error code is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="9530e98b08760fc9554e43d552536b18"></a><!-- doxytag: member="SampleLib.cpp::paramFloat64" ref="9530e98b08760fc9554e43d552536b18" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramFloat64           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes an 64 bit floating point argument. 
<p>
If the correct number of argument are not passed then a bad argument error code is returned. If the argument is not of the correct type then a data mismatch error is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00092">TaggedData_s::fltval</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="8a9dea28228aa8ccc13946fbc37dc9d6"></a><!-- doxytag: member="SampleLib.cpp::paramInt32" ref="8a9dea28228aa8ccc13946fbc37dc9d6" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramInt32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes a signed integer argument. 
<p>
If the correct number of argument are not passed then a bad argument error code is returned. If the argument is not of the correct type then a data mismatch error is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>- The argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="d668de9a2f803fab20cdd1924a4507aa"></a><!-- doxytag: member="SampleLib.cpp::paramString" ref="d668de9a2f803fab20cdd1924a4507aa" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramString           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes a string argument. 
<p>
If the correct number of argument are not passed then a bad argument error code is returned. If the argument is not of the correct type then a data mismatch error is returned. If memory has not been allocated correctly then returns an out of memory error.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="9ad0a8d2284a30fc47dd44d4dd6e9e22"></a><!-- doxytag: member="SampleLib.cpp::paramUInt32" ref="9ad0a8d2284a30fc47dd44d4dd6e9e22" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long paramUInt32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Example of a function that takes an unsigned integer argument. 
<p>
If the correct number of argument are not passed then a bad argument error code is returned. If the argument is not of the correct type then a data mismatch error is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

</div>
</div><p>
<a class="anchor" name="1032c4a4e24c3c455b4bc7d2a3b24cfc"></a><!-- doxytag: member="SampleLib.cpp::setVersion" ref="1032c4a4e24c3c455b4bc7d2a3b24cfc" args="(TaggedData *argv, long argc, TaggedData *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SAMPLIB long setVersion           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Change the version number by setting the global "version". 
<p>
<div class="fragment"><pre class="fragment"> myObj.setVersion(2);
</pre></div> <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>- The JavaScript argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>the argument count </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>- The return value to be passed back to JavaScript </td></tr>
  </table>
</dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00069">libraryVersionNumber</a>.</p>

</div>
</div><p>
<a class="anchor" name="cb755604d334a6cb84ffb8951be1fd1b"></a><!-- doxytag: member="SampleLib.cpp::stringize" ref="cb755604d334a6cb84ffb8951be1fd1b" args="(TaggedData *p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* stringize           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structTaggedData__s.html">TaggedData</a> *&nbsp;</td>
          <td class="paramname"> <em>p</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Helper function to "Stringize" each argument. 
<p>
If the argument is not a string, convert it to a string. If it is a string, escape all quotes in the string with a backslash and quote the entire string.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Pointer to a TaggedData </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return a dynamic buffer containing the string. </dd></dl>

<p>References <a class="el" href="structTaggedData__s.html#f36ffdc07d3c488226962c3fcef9bf5e">TaggedData_s::data</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00091">TaggedData_s::intval</a>, <a class="el" href="SoSharedLibDefs_8h-source.html#l00093">TaggedData_s::string</a>, and <a class="el" href="SoSharedLibDefs_8h-source.html#l00096">TaggedData_s::type</a>.</p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00283">createArray()</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00250">createObject()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8b648c73524ab596218d8007f6ada4a1"></a><!-- doxytag: member="SampleLib.cpp::unused" ref="8b648c73524ab596218d8007f6ada4a1" args="(void *x)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* unused           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>x</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00554">built()</a>, <a class="el" href="SampleLib_8cpp-source.html#l00114">ESInitialize()</a>, <a class="el" href="SampleLib_8cpp-source.html#l00760">objectCall()</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00634">objectInitialize()</a>.</p>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="5ef381dae1ced83d5401aa89f2fc12da"></a><!-- doxytag: member="SampleLib.cpp::ghServer" ref="5ef381dae1ced83d5401aa89f2fc12da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="SoCClient_8h.html#a619bb8ff37693bef699310570b4b416">SoHServer</a> <a class="el" href="SampleLib_8cpp.html#5ef381dae1ced83d5401aa89f2fc12da">ghServer</a> = NULL          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The server object. 
<p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00878">ESClientInterface()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7af7536097617906d57c965fa7f30770"></a><!-- doxytag: member="SampleLib.cpp::gpObjectInterface" ref="7af7536097617906d57c965fa7f30770" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSoObjectInterface__s.html">SoObjectInterface</a>* <a class="el" href="SampleLib_8cpp.html#7af7536097617906d57c965fa7f30770">gpObjectInterface</a> = NULL          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Array of function pointers to communiate use of the new class. 
<p>

</div>
</div><p>
<a class="anchor" name="a19ec219dc2de18b7576bc7a2497c960"></a><!-- doxytag: member="SampleLib.cpp::gpServer" ref="a19ec219dc2de18b7576bc7a2497c960" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSoServerInterface__s.html">SoServerInterface</a>* <a class="el" href="SampleLib_8cpp.html#a19ec219dc2de18b7576bc7a2497c960">gpServer</a> = NULL          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Structure of function pointers which enable the client to call JavaScript. 
<p>

</div>
</div><p>
<a class="anchor" name="154bc877ef95d477dbc5a1b3f745e9c9"></a><!-- doxytag: member="SampleLib.cpp::libraryVersionNumber" ref="154bc877ef95d477dbc5a1b3f745e9c9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="SampleLib_8cpp.html#154bc877ef95d477dbc5a1b3f745e9c9">libraryVersionNumber</a> = 1<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is the version number, and can be modified by <a class="el" href="SampleLib_8cpp.html#1032c4a4e24c3c455b4bc7d2a3b24cfc" title="Change the version number by setting the global &quot;version&quot;.">setVersion()</a>. 
<p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00102">ESGetVersion()</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00169">setVersion()</a>.</p>

</div>
</div><p>
<a class="anchor" name="658eb4f890a3161f8eb8fe479ee04601"></a><!-- doxytag: member="SampleLib.cpp::ME" ref="658eb4f890a3161f8eb8fe479ee04601" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="SampleLib_8cpp.html#658eb4f890a3161f8eb8fe479ee04601">ME</a> = 0          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Counter for instances created. 
<p>

<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00878">ESClientInterface()</a>, and <a class="el" href="SampleLib_8cpp-source.html#l00634">objectInitialize()</a>.</p>

</div>
</div><p>
<a class="anchor" name="251eacc2b2c1d7ff87b3cc380ca8f975"></a><!-- doxytag: member="SampleLib.cpp::objectInterface" ref="251eacc2b2c1d7ff87b3cc380ca8f975" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structSoObjectInterface__s.html">SoObjectInterface</a> <a class="el" href="SampleLib_8cpp.html#251eacc2b2c1d7ff87b3cc380ca8f975">objectInterface</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">
{  <a class="code" href="SampleLib_8cpp.html#e8e1da3a68908ad8b38e54150b908c86" title="Called whenever a ne object is constructed.">objectInitialize</a>
,  <a class="code" href="SampleLib_8cpp.html#8c8ab813db9ebe5545ae47e6fbc7b230" title="Sets a value of a property of this object.">objectPut</a>
,  <a class="code" href="SampleLib_8cpp.html#9daa87ac5f1a5a5df998b63ba68c8f7e" title="Retrieves the value of a property of this object.">objectGet</a>
,  <a class="code" href="SampleLib_8cpp.html#67965dceb36d673dfeb5cb5e8d0a1a42" title="Calls a method of this object.">objectCall</a>
,  NULL  
,  NULL  
,  <a class="code" href="SampleLib_8cpp.html#35f943e1ec2cd9bb8164a2d1344437cc" title="Calls when the object is released from memory.">objectFinalize</a>
}
</pre></div>Array of SoObjectInterface. 
<p>
Provides the interface which is used by JavaScript to communicate the use of the object 
</div>
</div><p>
<a class="anchor" name="f9f12bbf45996588ab7f384a4b32f019"></a><!-- doxytag: member="SampleLib.cpp::signatures" ref="f9f12bbf45996588ab7f384a4b32f019" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="SampleLib_8cpp.html#f9f12bbf45996588ab7f384a4b32f019">signatures</a><code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">
    <span class="stringliteral">"setVersion_d,"</span>         
    <span class="stringliteral">"createObject_ss,"</span>  
    <span class="stringliteral">"createArray,"</span>          
    <span class="stringliteral">"paramAny_a,"</span>               
    <span class="stringliteral">"paramString_s,"</span>        
    <span class="stringliteral">"paramBool_b,"</span>          
    <span class="stringliteral">"paramUInt32_u,"</span>        
    <span class="stringliteral">"paramInt32_d,"</span>         
    <span class="stringliteral">"paramFloat64_f"</span>        
    <span class="stringliteral">"built"</span>
</pre></div>String string that contains the signatures of every ESFunction defined here, used to support the JavaScript reflection interface. 
<p>
Note that this is a single comma-separated values string, concatenated by the compiler. 
<p>Referenced by <a class="el" href="SampleLib_8cpp-source.html#l00114">ESInitialize()</a>.</p>

</div>
</div><p>
</div>
<p><img src="1ptrans.gif" /><p>
<p><img src="1ptrans.gif"  /></p>
<p><img src="asn.gif" width="114" height="45" border="0" alt="Adobe Solutions Network">Copyright&#169; 2008 Adobe Systems Incorporated. All rights reserved.</p>
<p>
    	<a href="http://www.adobe.com/misc/copyright.html">Terms of Use</a>&nbsp;
        <a href="http://www.adobe.com/misc/privacy.html">Online Privacy Policy</a>&nbsp;
        <a href="http://access.adobe.com">Adobe and accessibility</a>&nbsp;
        <a href="http://www.adobe.com/aboutadobe/antipiracy/main.html">Avoid software piracy</a>&nbsp;
        <a href="http://www.adobe.com/misc/agreement.html">Permissions and Trademarks</a>
</p>
</body>
</html>
