home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / bbs / jet_conf / init.c < prev    next >
C/C++ Source or Header  |  1993-05-10  |  4KB  |  164 lines

  1. /*
  2.  * INIT.C
  3.  *
  4.  * init-module of jet_conf.prg;
  5.  * initializes all parts of jet_conf.prg;
  6.  *
  7.  */
  8.  
  9. /*--- includes              ---*/
  10.  
  11. #include "import.h"
  12. #include <NKCC.H>
  13. #include <MGLOBAL.H>
  14. #include <MYDIAL.H>
  15. #include "misc.h"
  16. #include "resource.h"
  17. #include "listbox.h"
  18. #include "lists.h"
  19.  
  20. #include "export.h"
  21. #include "init.h"
  22. #include "special.h"
  23.  
  24. /*--- defines               ---*/
  25.  
  26. /*--- types                 ---*/
  27.  
  28. /*--- variables             ---*/
  29.  
  30. LOCAL WORD  AES_ok, MYD_ok, RSC_ok, Fehlerflag;
  31. LOCAL WORD  work_in[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 };
  32.  
  33. /*--- prototypes            ---*/
  34.  
  35. /*--- functions             ---*/
  36.  
  37. /**-----------------------------------------------------------------------------
  38.  ** Funktionsname:    GLOBAL WORD prog_init( VOID )
  39.  **        ->    nichts
  40.  **        <-    -1, falls Fehler aufgetreten ist, sonst 0.
  41.  **
  42.  ** Die Funktion meldet das Programm bei Betriebssystem an und ruft alle
  43.  ** weiteren Initialisierungsroutinen des Programms auf.
  44.  **/
  45. GLOBAL WORD prog_init( VOID )
  46. {
  47.     WORD nkc_version;
  48.     
  49.     AES_ok = MYD_ok = RSC_ok = -1;
  50.     Fehlerflag = 0;
  51.  
  52.     get_tos( &tos );                            /* TOS-Version holen */
  53.  
  54.     /* NKCC installieren: */
  55.     nkc_version = nkc_init( NKI_NO200HZ, 0 );
  56.     nkc_set( 0 );         /* kein spezielles NKCC-Key-Handling setzen */
  57.  
  58.     /* Applikation beim Betriebssystem anmelden: */
  59.     AES_ok = appl_init( );
  60.     if( AES_ok < 0 )
  61.     {
  62.         puts( "\nApplikation konnte nicht beim Betriebssystem angemeldet werden! [Return]" );
  63.         getchar( );
  64.         Fehlerflag = -1;
  65.         return( -1 );
  66.     }
  67.  
  68.     /* MyDials installieren: */
  69.     MYD_ok = dial_init( Malloc, Mfree, 0L, 0L, 0L );
  70.     if( MYD_ok == 0 )
  71.     {
  72.         MYD_ok = -1;
  73.         form_alert( 1, "[3][| MyDials | konnten nicht initialisiert | werden! ][ Ende ]" );
  74.         Fehlerflag = -2;
  75.         return( -1 );
  76.     }
  77.  
  78.     /* Erfragen der aktuellen physikalischen Workstation: */
  79.     phys_handle = graf_handle( &gl_wbox, &gl_hbox, &gl_wattr, &gl_hattr );
  80.     vdi_handle  = phys_handle;
  81.  
  82.     /* Virtuelle Workstation öffnen: */
  83.     v_opnvwk( work_in, &vdi_handle, work_out );
  84.     if( vdi_handle == 0 )
  85.     {
  86.         form_alert( 1, "[3][| VDI-Workstation | konnte nicht geöffnet | werden!][ Ende ]" );
  87.         Fehlerflag = -3;
  88.         return( -1 );
  89.     }
  90.  
  91.     /* aktuelle Zeichenbreite und -höhe erfragen: */
  92.     vqt_attributes( vdi_handle, attrib );
  93.  
  94.     /* RECT des Arbeitsbereiches des Desktops bestimmen: */
  95.     wind_get( 0, WF_WORKXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h );
  96.  
  97.     /* Initialisierung der Resourcen: */
  98.     RSC_ok = rsc_init( nkc_version );
  99.     if( RSC_ok == -1 )
  100.     {
  101.         dial_alert( NULL, "[3][| Resource-Datei konnte | nicht geladen werden! ][ [Ende ]", 1, 0, 0 );
  102.         Fehlerflag = -4;
  103.         return( -1 );
  104.     }
  105.     
  106.     /* Speicher für Links reservieren: */
  107.     links = (LINK_STRUCT *) malloc( MAX_LINKS * sizeof( LINK_STRUCT ) );
  108.  
  109.     if( !links    )
  110.     {
  111.         dial_alert( NULL, "[3][| Zuwenig Speicher! ][ [Ende ]", 1, 0, 0 );
  112.         Fehlerflag = -5;
  113.         return( -1 );
  114.     }
  115.     
  116.     /* Listboxen initialisieren: */
  117.     init_lists( );
  118.     
  119.     return( 0 );
  120. }
  121.  
  122. /**-----------------------------------------------------------------------------
  123.  ** Funktionsname:    GLOBAL WORD prog_exit( VOID )
  124.  **        ->    nichts
  125.  **        <-    Fehlernummer, falls Fehler aufgetreten ist.
  126.  **
  127.  ** Die Funktion meldet das Programm bei Betriebssystem ab.
  128.  **/
  129. GLOBAL WORD prog_exit( VOID )
  130. {
  131.     WORD ok;
  132.  
  133.     /* freigeben des Speichers: */
  134.     if( links )
  135.         free( links );
  136.  
  137.     /* entfernen der Resourcen: */
  138.     if( RSC_ok != -1 )
  139.         rsc_exit( );
  140.     
  141.     /* schließen der virtuellen Workstation: */
  142.     if( vdi_handle != 0 )
  143.         v_clsvwk( vdi_handle );
  144.  
  145.     /* MyDials abmelden: */
  146.     if( MYD_ok != -1 )
  147.         dial_exit( );
  148.  
  149.     /* AES-Anwendung abmelden: */
  150.     if( AES_ok != -1 )
  151.         appl_exit( );
  152.  
  153.     /* NKCC entfernen    */
  154.     ok = nkc_exit( );
  155.     if( ok == 1 )
  156.     {
  157.         puts( "\nDefekte XBRA-Struktur. Rechner muß zurückgesetzt werden! [Taste]" );
  158.         getchar( );
  159.         Fehlerflag = -99;
  160.     }
  161.  
  162.     return( Fehlerflag );
  163. }
  164.