Click here to Skip to main content
15,886,137 members
Articles / Desktop Programming / MFC

Multi platform plug-in development made easy!

Rate me:
Please Sign up or sign in to vote.
4.04/5 (25 votes)
7 Mar 20065 min read 100.9K   1.9K   63  
How to use and develop plug-ins for multiple platforms.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>SPL Library: spl_plugininfo.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>spl_plugininfo.h</h1><a href="spl__plugininfo_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 
00028 <span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
00033 <span class="comment"></span><span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
00034 
00035 <span class="preprocessor">#ifndef         __SPL_PLUGININFO_H__</span>
00036 <span class="preprocessor"></span><span class="preprocessor">#define         __SPL_PLUGININFO_H__</span>
00037 <span class="preprocessor"></span>
00038 <span class="preprocessor">#ifndef         __SPL_TYPEDEFS_H__</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#include        "<a class="code" href="spl__typedefs_8h.html">spl_typedefs.h</a>"</span>
00040 <span class="preprocessor">#endif</span>
00041 <span class="preprocessor"></span>
00042 <span class="preprocessor">#ifndef         __SPL_PLATFORM_H__</span>
00043 <span class="preprocessor"></span><span class="preprocessor">#include        "<a class="code" href="spl__platform_8h.html">spl_platform.h</a>"</span>
00044 <span class="preprocessor">#endif</span>
00045 <span class="preprocessor"></span>
00046 <span class="preprocessor">#ifndef         __SPL_MUTEX_H__</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#include        "<a class="code" href="spl__mutex_8h.html">spl_mutex.h</a>"</span>
00048 <span class="preprocessor">#endif</span>
00049 <span class="preprocessor"></span>
00050 <span class="preprocessor">#ifndef         _MAP_</span>
00051 <span class="preprocessor"></span><span class="preprocessor">#include        &lt;map&gt;</span>
00052 <span class="preprocessor">#endif</span>
00053 <span class="preprocessor"></span>
00054 <span class="preprocessor">#ifndef         _STRING_</span>
00055 <span class="preprocessor"></span><span class="preprocessor">#include        &lt;string&gt;</span>
00056 <span class="preprocessor">#endif</span>
00057 <span class="preprocessor"></span>
00058 <span class="preprocessor">#if SPL_PLATFORM == SPL_PLATFORM_WIN32</span>
00059 <span class="preprocessor"></span><span class="preprocessor">        #if             defined ( SPL_MAKE_DLL )</span>
00060 <span class="preprocessor"></span><span class="preprocessor">                #define SPL_API         __declspec( dllexport )</span>
00061 <span class="preprocessor"></span><span class="preprocessor">        #elif   defined ( SPL_USE_DLL )</span>
00062 <span class="preprocessor"></span><span class="preprocessor">                #define SPL_API         __declspec( dllimport )</span>
00063 <span class="preprocessor"></span><span class="preprocessor">        #else </span>
00064 <span class="preprocessor"></span><span class="preprocessor">                #define SPL_API </span>
00065 <span class="preprocessor"></span><span class="preprocessor">        #endif</span>
00066 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00067"></a><a class="code" href="spl__plugininfo_8h.html#a0">00067</a> <span class="preprocessor"></span><span class="preprocessor">        #define SPL_API </span>
00068 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00069 <span class="preprocessor"></span>
00070 <span class="keyword">using</span> <span class="keyword">namespace </span>std;
00071 
00072 <span class="keyword">namespace </span>SPL {
00073 
00074 
00075 <span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
00078 <span class="comment"></span><span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
<a name="l00079"></a><a class="code" href="classSPL_1_1slcPluginInfo.html">00079</a> <span class="keyword">class </span><a class="code" href="classSPL_1_1slcPluginInfo.html">slcPluginInfo</a> : <span class="keyword">public</span> <a class="code" href="classSPL_1_1slcMutex.html">slcMutex</a>
00080 {
00081         <span class="comment">//</span>
00082         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00083         <span class="comment">//**************************************************     STRUCTURES     *************************************************</span>
00084         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00085         <span class="comment">//</span>
00086 <span class="keyword">public</span>:
00087 
00088         <span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
00091 <span class="comment"></span>        <span class="comment">//---------------------------------------------------------------------------------------------------------------------------</span>
<a name="l00092"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#w3">00092</a>         <span class="keyword">enum</span> <a class="code" href="classSPL_1_1slcPluginInfo.html#w3">sleFunction</a>
00093         {
00094                 <a class="code" href="classSPL_1_1slcPluginInfo.html#w3w0">sleFunction_Init</a> = 0,
00095                 <a class="code" href="classSPL_1_1slcPluginInfo.html#w3w1">sleFunction_Run</a>,
00096                 <a class="code" href="classSPL_1_1slcPluginInfo.html#w3w2">sleFunction_Shutdown</a>
00097         };
00098 
00099         <span class="comment">//</span>
00100         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00101         <span class="comment">//***********************************************     CON/DESTRUCTION     ***********************************************</span>
00102         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00103         <span class="comment">//</span>
00104 <span class="keyword">public</span>:
00105 
00106         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00108 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00109         <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a0">slcPluginInfo</a>( <span class="keywordtype">void</span> );
00110 
00111         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00113 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00114         <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a0">slcPluginInfo</a>( <span class="keyword">const</span> slcPluginInfo&amp; a_pluginInfo );
00115 
00116         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00118 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00119         <span class="keyword">virtual</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a2">~slcPluginInfo</a>( <span class="keywordtype">void</span> );
00120 
00121         <span class="comment">//</span>
00122         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00123         <span class="comment">//************************************************     MODIFICATION     *************************************************</span>
00124         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00125         <span class="comment">//</span>
00126 <span class="keyword">public</span>:
00127 
00128         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00130 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00131         <span class="keywordtype">void</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a3">Clear</a>( <span class="keywordtype">void</span> ); 
00132 
00133         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00137 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00138         <span class="keywordtype">long</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a4">GetArgCount</a>( sleFunction a_enuFunc );
00139 
00140         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00145 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00146         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a5">GetArgDescription</a>( sleFunction a_enuFunc, <span class="keyword">const</span> <span class="keywordtype">long</span> a_lIndex );
00147 
00148         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00153 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00154         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a6">GetArgName</a>( sleFunction a_enuFunc, <span class="keyword">const</span> <span class="keywordtype">long</span> a_lIndex );
00155 
00156         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00159 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00160         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a7">GetName</a>( <span class="keywordtype">void</span> );
00161 
00162         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00165 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00166         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a8">GetVendor</a>( <span class="keywordtype">void</span> );
00167 
00168         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00171 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00172         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a9">GetInfo</a>( <span class="keywordtype">void</span> );
00173 
00174         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00177 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00178         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a10">GetDescription</a>( <span class="keywordtype">void</span> );
00179 
00180         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00183 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00184         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a11">GetHomepage</a>( <span class="keywordtype">void</span> );
00185 
00186         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00189 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00190         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a12">GetEmail</a>( <span class="keywordtype">void</span> );
00191 
00192         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00195 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00196         <span class="keywordtype">long</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a13">GetMajorVersion</a>( <span class="keywordtype">void</span> );
00197 
00198         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00201 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00202         <span class="keywordtype">long</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a14">GetMinorVersion</a>( <span class="keywordtype">void</span> );
00203 
00204         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00207 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00208         <span class="keywordtype">long</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a15">GetBuildVersion</a>( <span class="keywordtype">void</span> );
00209 
00210         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00213 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00214         string <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a16">GetUUID</a>( <span class="keywordtype">void</span> );
00215 
00216         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00221 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00222         <span class="keywordtype">bool</span> <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a17">HasPublicArgs</a>( <span class="keywordtype">void</span> );
00223 
00224         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00228 <span class="comment"></span>        <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00229         slcPluginInfo <a class="code" href="spl__mutex_8h.html#a1">SPL_API</a> <a class="code" href="classSPL_1_1slcPluginInfo.html#a18">operator=</a>( <span class="keyword">const</span> slcPluginInfo&amp; a_pluginInfo );
00230 
00231         <span class="comment">//</span>
00232         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00233         <span class="comment">//*************************************************     ATTRIBUTES     **************************************************</span>
00234         <span class="comment">//-----------------------------------------------------------------------------------------------------------------------</span>
00235         <span class="comment">//</span>
00236 <span class="keyword">protected</span>:
00237 
<a name="l00238"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p0">00238</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p0">m_strName</a>;                              <span class="comment">// The plugin's name.</span>
<a name="l00239"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p1">00239</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p1">m_strVendor</a>;                    <span class="comment">// The plugin's vendor.</span>
<a name="l00240"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p2">00240</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p2">m_strInfo</a>;                              <span class="comment">// The plugin's information string.</span>
<a name="l00241"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p3">00241</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p3">m_strDescription</a>;               <span class="comment">// The plugin's description.</span>
<a name="l00242"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p4">00242</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p4">m_strHomepage</a>;                  <span class="comment">// The vendor's homepage.</span>
<a name="l00243"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p5">00243</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p5">m_strEmail</a>;                             <span class="comment">// The vendor's e-mail address.</span>
<a name="l00244"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p6">00244</a>         <span class="keywordtype">long</span>                                                    <a class="code" href="classSPL_1_1slcPluginInfo.html#p6">m_lMajor</a>;                               <span class="comment">// The plugin's major version (e.g. 1.xx)</span>
<a name="l00245"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p7">00245</a>         <span class="keywordtype">long</span>                                                    <a class="code" href="classSPL_1_1slcPluginInfo.html#p7">m_lMinor</a>;                               <span class="comment">// The plugin's minor version (e.g. x.12)</span>
<a name="l00246"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p8">00246</a>         <span class="keywordtype">long</span>                                                    <a class="code" href="classSPL_1_1slcPluginInfo.html#p8">m_lBuild</a>;                               <span class="comment">// The plugin's build version.</span>
<a name="l00247"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p9">00247</a>         string                                                  <a class="code" href="classSPL_1_1slcPluginInfo.html#p9">m_strUUID</a>;                              <span class="comment">// The plugin's UUID.</span>
<a name="l00248"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p10">00248</a>         <span class="keywordtype">bool</span>                                                    <a class="code" href="classSPL_1_1slcPluginInfo.html#p10">m_bPuplicArgInfos</a>;              <span class="comment">// The plugin's argument infos flag.    </span>
00249 
<a name="l00250"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p11">00250</a>         map&lt; long, string &gt;                             <a class="code" href="classSPL_1_1slcPluginInfo.html#p11">m_mapInitArgs</a>;                  <span class="comment">// Map for holding the plugin initialize arguments and their description.</span>
<a name="l00251"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p12">00251</a>         map&lt; long, string &gt;                             <a class="code" href="classSPL_1_1slcPluginInfo.html#p12">m_mapShutdownArgs</a>;              <span class="comment">// Map for holding the plugin shutdown arguments and their description.</span>
<a name="l00252"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p13">00252</a>         map&lt; long, string &gt;                             <a class="code" href="classSPL_1_1slcPluginInfo.html#p13">m_mapRunArgs</a>;                   <span class="comment">// Map for holding the plugin run arguments and their description.</span>
<a name="l00253"></a><a class="code" href="classSPL_1_1slcPluginInfo.html#p14">00253</a>         map&lt; long, string &gt;::iterator   <a class="code" href="classSPL_1_1slcPluginInfo.html#p14">itmapArgs</a>;                              <span class="comment">// The map's iterator.</span>
00254 };
00255 
00256 
00257 } <span class="comment">// End of namespace SPL</span>
00258 
00259 <span class="preprocessor">#endif  //      __SPL_PLUGININFO_H__</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun May 9 15:01:04 2004 for SPL Library by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.6 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Germany Germany
I was born in 1982 near Stuttgart / Germany and began my first steps in programming computers at the age of only nine years on an old Commodore CBM 7072. In 2002 I finished my education as IT specialist for software engineering and did my civillian service afterwards. Currently I'm working as leader of the software division in a bigger company located in south west Germany, mainly on software development and research projects for multimedia terminals and user recognition/verification systems.

Comments and Discussions