/* * INIT.C * * init-module of jet_conf.prg; * initializes all parts of jet_conf.prg; * */ /*--- includes ---*/ #include "import.h" #include #include #include #include "misc.h" #include "resource.h" #include "listbox.h" #include "lists.h" #include "export.h" #include "init.h" #include "special.h" /*--- defines ---*/ /*--- types ---*/ /*--- variables ---*/ LOCAL WORD AES_ok, MYD_ok, RSC_ok, Fehlerflag; LOCAL WORD work_in[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 }; /*--- prototypes ---*/ /*--- functions ---*/ /**----------------------------------------------------------------------------- ** Funktionsname: GLOBAL WORD prog_init( VOID ) ** -> nichts ** <- -1, falls Fehler aufgetreten ist, sonst 0. ** ** Die Funktion meldet das Programm bei Betriebssystem an und ruft alle ** weiteren Initialisierungsroutinen des Programms auf. **/ GLOBAL WORD prog_init( VOID ) { WORD nkc_version; AES_ok = MYD_ok = RSC_ok = -1; Fehlerflag = 0; get_tos( &tos ); /* TOS-Version holen */ /* NKCC installieren: */ nkc_version = nkc_init( NKI_NO200HZ, 0 ); nkc_set( 0 ); /* kein spezielles NKCC-Key-Handling setzen */ /* Applikation beim Betriebssystem anmelden: */ AES_ok = appl_init( ); if( AES_ok < 0 ) { puts( "\nApplikation konnte nicht beim Betriebssystem angemeldet werden! [Return]" ); getchar( ); Fehlerflag = -1; return( -1 ); } /* MyDials installieren: */ MYD_ok = dial_init( Malloc, Mfree, 0L, 0L, 0L ); if( MYD_ok == 0 ) { MYD_ok = -1; form_alert( 1, "[3][| MyDials | konnten nicht initialisiert | werden! ][ Ende ]" ); Fehlerflag = -2; return( -1 ); } /* Erfragen der aktuellen physikalischen Workstation: */ phys_handle = graf_handle( &gl_wbox, &gl_hbox, &gl_wattr, &gl_hattr ); vdi_handle = phys_handle; /* Virtuelle Workstation ”ffnen: */ v_opnvwk( work_in, &vdi_handle, work_out ); if( vdi_handle == 0 ) { form_alert( 1, "[3][| VDI-Workstation | konnte nicht ge”ffnet | werden!][ Ende ]" ); Fehlerflag = -3; return( -1 ); } /* aktuelle Zeichenbreite und -h”he erfragen: */ vqt_attributes( vdi_handle, attrib ); /* RECT des Arbeitsbereiches des Desktops bestimmen: */ wind_get( 0, WF_WORKXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h ); /* Initialisierung der Resourcen: */ RSC_ok = rsc_init( nkc_version ); if( RSC_ok == -1 ) { dial_alert( NULL, "[3][| Resource-Datei konnte | nicht geladen werden! ][ [Ende ]", 1, 0, 0 ); Fehlerflag = -4; return( -1 ); } /* Speicher fr Links reservieren: */ links = (LINK_STRUCT *) malloc( MAX_LINKS * sizeof( LINK_STRUCT ) ); if( !links ) { dial_alert( NULL, "[3][| Zuwenig Speicher! ][ [Ende ]", 1, 0, 0 ); Fehlerflag = -5; return( -1 ); } /* Listboxen initialisieren: */ init_lists( ); return( 0 ); } /**----------------------------------------------------------------------------- ** Funktionsname: GLOBAL WORD prog_exit( VOID ) ** -> nichts ** <- Fehlernummer, falls Fehler aufgetreten ist. ** ** Die Funktion meldet das Programm bei Betriebssystem ab. **/ GLOBAL WORD prog_exit( VOID ) { WORD ok; /* freigeben des Speichers: */ if( links ) free( links ); /* entfernen der Resourcen: */ if( RSC_ok != -1 ) rsc_exit( ); /* schliežen der virtuellen Workstation: */ if( vdi_handle != 0 ) v_clsvwk( vdi_handle ); /* MyDials abmelden: */ if( MYD_ok != -1 ) dial_exit( ); /* AES-Anwendung abmelden: */ if( AES_ok != -1 ) appl_exit( ); /* NKCC entfernen */ ok = nkc_exit( ); if( ok == 1 ) { puts( "\nDefekte XBRA-Struktur. Rechner muž zurckgesetzt werden! [Taste]" ); getchar( ); Fehlerflag = -99; } return( Fehlerflag ); }