home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 532.lha / NLDaemon / Source / NL-Setup.c < prev    next >
C/C++ Source or Header  |  1991-07-09  |  3KB  |  113 lines

  1. /*
  2.  *  NL-Daemon   A program to force old programs to use NL gadget imagery.
  3.  *
  4.  *              Copyright 1989 by Davide P. Cervone.
  5.  *  You may use this code, provided this copyright notice is kept intact.
  6.  */
  7.  
  8. #include "NL-Handler.h"
  9.  
  10.  
  11. struct IntuitionBase *IntuitionBase = NULL;
  12. struct SysBase *SysBase;
  13.  
  14.  
  15. /*
  16.  *  These are the assembly code stubs that replace the Intuition Library
  17.  *  vectors.  Thes stubs in turn call the C-language routines that actually
  18.  *  do the work.
  19.  */
  20.  
  21. extern void aOpenWindow();
  22. extern void aSetMenuStrip();
  23. extern void aOpenScreen();
  24.  
  25. /*
  26.  *  These are used by the assembly stubs to call the original routines when
  27.  *  needed.  They also are used to replace the Intution vectors when 
  28.  *  NL-Daemon exits.
  29.  */
  30.  
  31. long OldOpenWindow;
  32. long OldSetMenuStrip;
  33. long OldOpenScreen;
  34.  
  35. /*
  36.  *  This routine is used to retro-fit existing windows and screens.
  37.  */
  38.  
  39. extern void cOpenWindow();
  40. extern void cOpenScreen();
  41.  
  42. /*
  43.  *  These are the structures that need to be passed to the loader
  44.  *  so that it can clean up after NL-Handler is removed
  45.  */
  46.  
  47. extern struct Image CloseImage;
  48. extern struct Image UpFrontImage;
  49. extern struct Image DownBackImage;
  50. extern struct Image SizeImage;
  51. extern struct Image ZoomImage;
  52.  
  53. extern struct Image LR_CloseImage;
  54. extern struct Image LR_UpFrontImage;
  55. extern struct Image LR_DownBackImage;
  56. extern struct Image LR_SizeImage;
  57. extern struct Image LR_ZoomImage;
  58.  
  59. static struct NL_HandlerInfo NL_HandlerData =
  60. {
  61.    {                                            /* the MsgPort is pre-setup */
  62.       {NULL,NULL, NT_MSGPORT, 0, PORTNAME},     /*  to include the name and */
  63.       PA_IGNORE, 0, NULL,                       /*  type so that it can just */
  64.       {NULL,NULL,NULL, 0,0}                     /*  be added to the port list */
  65.    },                                           /*  so it can be found later */
  66.    MAJVERS,MINVERS, MINLOADVER,
  67.    NULL,
  68.    &IntuitionBase,
  69.    &SysBase,
  70.    
  71.    &aOpenWindow,
  72.    &aSetMenuStrip,
  73.    &aOpenScreen,
  74.    &OldOpenWindow,
  75.    &OldSetMenuStrip,
  76.    &OldOpenScreen,
  77.    
  78.    &cOpenWindow,
  79.    &cOpenScreen,
  80.  
  81.    &CloseImage,
  82.    &UpFrontImage,
  83.    &DownBackImage,
  84.    &SizeImage,
  85.    &ZoomImage,
  86.  
  87.    &LR_CloseImage,
  88.    &LR_UpFrontImage,
  89.    &LR_DownBackImage,
  90.    &LR_SizeImage,
  91.    &LR_ZoomImage,
  92.    
  93.    0,
  94. };
  95.  
  96.  
  97. /*
  98.  *  Setup()
  99.  *
  100.  *  This routine MUST be linked into the NL-Handler executable 
  101.  *  as the first routine, so that the loader can find it.
  102.  *  It should check the version number for compatibility with the loader,
  103.  *  and should return NULL for an error, or the pointer to the shared
  104.  *  data structure if everything is OK.
  105.  */
  106.  
  107. struct NL_HandlerInfo *Setup(version)
  108. int version;
  109. {
  110.    if (version < MINLOADVER) return(NULL);
  111.    return(&NL_HandlerData);
  112. }
  113.