home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 March / CMCD0304.ISO / Software / Freeware / Programare / nullsoft / nsis20.exe / Contrib / System / Source / Plugin.h < prev    next >
C/C++ Source or Header  |  2002-10-31  |  2KB  |  67 lines

  1. #pragma once
  2.  
  3. typedef struct _stack_t {
  4.   struct _stack_t *next;
  5.   char text[1]; // this should be the length of string_size
  6. } stack_t;
  7.  
  8. enum
  9. {
  10. INST_0,         // $0
  11. INST_1,         // $1
  12. INST_2,         // $2
  13. INST_3,         // $3
  14. INST_4,         // $4
  15. INST_5,         // $5
  16. INST_6,         // $6
  17. INST_7,         // $7
  18. INST_8,         // $8
  19. INST_9,         // $9
  20. INST_R0,        // $R0
  21. INST_R1,        // $R1
  22. INST_R2,        // $R2
  23. INST_R3,        // $R3
  24. INST_R4,        // $R4
  25. INST_R5,        // $R5
  26. INST_R6,        // $R6
  27. INST_R7,        // $R7
  28. INST_R8,        // $R8
  29. INST_R9,        // $R9
  30. INST_CMDLINE,   // $CMDLINE
  31. INST_INSTDIR,   // $INSTDIR
  32. INST_OUTDIR,    // $OUTDIR
  33. INST_EXEDIR,    // $EXEDIR
  34. INST_LANG,      // $LANGUAGE
  35. __INST_LAST
  36. };
  37.  
  38. #define PLUGINFUNCTION(name) void __declspec(dllexport) name(HWND hwndParent, int string_size, char *variables, stack_t **stacktop) { \
  39. /*  g_hwndParent=hwndParent; */\
  40.   g_stringsize=string_size; \
  41.   g_stacktop=stacktop; \
  42.   g_variables=variables; 
  43. #define PLUGINFUNCTIONEND }
  44.  
  45. #define PLUGINFUNCTIONSHORT(name) void __declspec(dllexport) name(HWND hwndParent, int string_size, char *variables, stack_t **stacktop) { \
  46.   g_stringsize=string_size; \
  47.   g_stacktop=stacktop; 
  48.  
  49. extern char *AllocStr(char *str);
  50. extern void myitoa64(__int64 i, char *buffer);
  51. extern char *AllocString();
  52. extern char *getuservariable(int varnum);
  53. extern char *setuservariable(int varnum, char *var);
  54. extern char* popstring();  // NULL - stack empty
  55. extern char* pushstring(char *str);
  56. extern __int64 myatoi(char *s);
  57. extern int popint();  // -1 -> stack empty
  58. extern void pushint(int value);
  59.  
  60. extern HANDLE GlobalCopy(HANDLE Old);
  61. extern char *copymem(char *output, char *input, int size);
  62.  
  63. extern HWND g_hwndParent;
  64. extern int g_stringsize;
  65. extern stack_t **g_stacktop;
  66. extern char *g_variables;
  67.