home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 December / PCWorld_2001-12_cd.bin / Software / Topware / Hackman / _SETUP.1 / SPlugin.cpp < prev    next >
C/C++ Source or Header  |  2000-07-09  |  6KB  |  234 lines

  1. /****************************************************************************************
  2.  *Simple Plugin - coded by Jegrede the Black.
  3.  *                Please send all bug reports to shuriken13@hotmail.com.
  4.  *                
  5.  ****************************************************************************************/
  6.  
  7. #include <windows.h>
  8. #include <ole2.h>
  9. #include "pinfo.h"        //for SPLUGININFO
  10. #include "splugin.h"    //for other crap...
  11.  
  12.  
  13. /*****DEFINES******************/
  14. #define EXECWVARIABLES    1
  15. #define ABOUTBOX        1
  16. #define CONFIGUREMENU    1
  17. #define LANGUAGEPACK    1
  18. /*****DEFINES******************/
  19.  
  20. #if LANGUAGEPACK
  21.     #include "lpack.h"
  22.     #include "ltables.h"
  23.     #include "language.cpp"
  24. #endif
  25.  
  26. #if EXECWVARIABLES    
  27.     #include "varbinds.h"
  28.     #include "utils.h"
  29. #endif
  30.  
  31.  
  32. //*****PUBLIC VARIABLES
  33.     const LPSTR PluginName="Simple Plugin";
  34. #if LANGUAGEPACK
  35.     const int nLangTables=3;
  36.     int cLanguage=0;
  37.     CLANGUAGEPACK cLanguages[nLangTables];
  38. #endif
  39. //*****PUBLIC VARIABLES
  40.  
  41. /***********************************[CODE FOR LANGUAGE TRANSLATION]******************************/
  42. #if LANGUAGEPACK
  43.     LPSTR _TL(LPSTR a)
  44.     {    return (cLanguage==0?a:cLanguages[cLanguage].Translate(a));
  45.     }
  46.  
  47. #else
  48.     
  49.     LPSTR _TL(LPSTR a)
  50.     {return a;
  51.     }
  52.  
  53. #endif
  54. /***********************************[CODE FOR LANGUAGE TRANSLATION]******************************/
  55.  
  56.  
  57.  
  58.  
  59.  
  60. /***********************************[CODE FOR PLUGIN INITIALIZATION]*****************************/
  61. SPLUGINTYPE _stdcall InitializePlugin(void)
  62. {
  63.  
  64. #if LANGUAGEPACK
  65.     cLanguages[0]= CLANGUAGEPACK(deflang,numentries);
  66.     cLanguages[1]= CLANGUAGEPACK(newlang,numentries);
  67.     cLanguages[2]= CLANGUAGEPACK(hicklang,numentries);
  68. #endif
  69.     
  70.     SPLUGINTYPE thisPlugin;
  71.     thisPlugin.pname = _TL("Simple Plugin");        //the name fo the plugin
  72.     thisPlugin.pType = _TL("dev");            //not used by DLL Deity _yet_
  73.     thisPlugin.pVersion = 1.6;                        //the plugin's version
  74.     thisPlugin.verHackman.hVersion  = 5.4;            //Hackman high version (5.0▀4)
  75.     thisPlugin.verHackman.lVersion = 5.4;            //Hackman low version (v5.0▀4)
  76.     thisPlugin.verDLLdeity.hVersion =.6;            //▀5.0    DLL Deity high version
  77.     thisPlugin.verDLLdeity.lVersion =.6;            //▀3.0    DLL Deity low version
  78.     thisPlugin.fname = "SPlugin.dll";                //the DLL's name
  79.     thisPlugin.lExtra = ABOUT+                    //about box
  80.                         EXECWITHVARIABLES+        //variables passed to ExecutePlugin() fucntion
  81.                         CONFIGURE+                //configure menu
  82.                         LANGUAGEPACKSUPPORT;    //language pack support
  83.     
  84.  
  85. return thisPlugin;
  86. //variable creation and initialization should go here.
  87. }
  88. /***********************************[CODE FOR PLUGIN INITIALIZATION]*****************************/
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. /***********************************[CODE FOR PLUGIN EXECUTION]**********************************/
  99. #if EXECWVARIABLES
  100.     
  101.     void _stdcall ExecutePlugin(CVARBINDS *pBinds)    
  102.     //declaration for a ExecutePlugin() w/variables 
  103.     {typedef void (_stdcall*DDEType)(BSTR);
  104.         MessageBox(0,_TL("Execute Plugin w/ Variables has been called!"),_TL(PluginName),0);
  105.         
  106.  
  107.         //get variables that Hackman registered
  108.     //    LPSTR    curfile=pBinds->GetString("HM_CURRENTFILE"),
  109.     //            lpBuff=pBinds->GetString("HM_CURRENTSELECTION");
  110.  
  111.     //    long selsize=pBinds->GetLong("HM_SELECTIONSIZE"),
  112.     //         selstart=pBinds->GetLong("HM_SELECTIONSTART");
  113.         long cposition = pBinds->GetLong("HM_CURSORPOSITION");
  114.         
  115.  
  116.     //    DDEType defunc= DDEType(pBinds->GetFunc("HM_DDECOMMAND"));
  117.     //    DDEType(SysAllocString(OLESTR("WOW!")));
  118.  
  119.     //    DLLMain(0,0,0,0);
  120.     }
  121.  
  122. #else
  123.  
  124.     void _stdcall ExecutePlugin()        
  125.     //***declaration for a no parameter ExecutePlugin() function
  126.     {//TODO: insert code that actually does something.    
  127.         MessageBox(0,_TL("Execute Plugin has been called."),_TL(PluginName),0);
  128.     }
  129.  
  130. #endif
  131. /***********************************[CODE FOR PLUGIN EXECUTION]**********************************/
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. /***********************************[CODE FOR PLUGIN TERMINATION]********************************/
  141.  
  142.     
  143. void _stdcall TerminatePlugin(void)
  144. {
  145. //no messy cleanup, just a Message box.
  146.     MessageBox(0,_TL("Terminate Plugin has been called."),_TL(PluginName),0);
  147. //clean up code goes here
  148. }
  149.  
  150.  
  151. /***********************************[CODE FOR PLUGIN TERMINATION]********************************/
  152.  
  153.  
  154.  
  155.  
  156. /***********************************[CODE FOR ABOUT BOX]*****************************************/
  157. #if ABOUTBOX
  158.     
  159.     void _stdcall AboutPlugin(void)
  160.     {
  161.         MessageBox(0,_TL("Simple Plugin\nVersion:1.6\nCoded by Jegrede the Black."),_TL("Simple Plugin About Box"),0);
  162.     //about box should go here
  163.     }
  164.  
  165. #endif
  166. /***********************************[CODE FOR ABOUT BOX]*****************************************/
  167.  
  168.  
  169.  
  170.  
  171.  
  172. /***********************************[CODE FOR CONFIGURATION MENU]********************************/
  173. #if CONFIGUREMENU
  174.  
  175.     void _stdcall ConfigurePlugin(void)
  176.     {
  177.         MessageBox(0,_TL("Configure Plugin has been called."),_TL(PluginName),0);
  178.     //configure messsages/menu should go here
  179.     }
  180. #endif
  181. /***********************************[CODE FOR CONFIGURATION MENU]********************************/
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. /***********************************[CODE FOR LANGUAGE PACK SUPPORT]*****************************/
  189. #if LANGUAGEPACK
  190.     bool _stdcall ChangePluginLanguage(LPSTR lang)
  191.     {int i,sizealloc=0;
  192.         if(!strcmp(lang,"REQUEST_PLUGIN_LANGUAGES_BECAUSE_I_WANT_THEM"))
  193.         {
  194.             for(i=0;i<nLangTables;i++)
  195.                 sizealloc+=strlen(cLanguages[i].GetPackData()->language)+1; 
  196.  
  197.             LPSTR xlangs;
  198.                             
  199.             xlangs=cLanguages[0].GetPackData()->language;
  200.             
  201.             for(i=1;i<nLangTables;i++)
  202.             {
  203.                 xlangs=UTIL_StrCombine(xlangs,"|");
  204.                 xlangs=UTIL_StrCombine(xlangs,cLanguages[i].GetPackData()->language);
  205.             }
  206.         UTIL_CopyThis(xlangs,lang);
  207.         
  208.  
  209.         return true;
  210.         }
  211.         else
  212.         {
  213.             for(i=0;i<nLangTables;i++)
  214.             {
  215.                 if(!strcmp(cLanguages[i].GetPackData()->language,lang))
  216.                 {
  217.                     cLanguage=i;
  218.                 return true;
  219.                 }
  220.             }
  221.         return false;
  222.         }
  223.     }
  224.  
  225. #else
  226.     
  227.     bool _stdcall ChangePluginLanguage(LPSTR lang)
  228.     {
  229.         MessageBox(0,"Language Packs are NOT supported in this module","ERROR",0);
  230.      return false;
  231.     }
  232.  
  233. #endif
  234. /***********************************[CODE FOR LANGUAGE PACK SUPPORT]*****************************/