home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
bbs
/
jet_conf
/
init.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-10
|
4KB
|
164 lines
/*
* INIT.C
*
* init-module of jet_conf.prg;
* initializes all parts of jet_conf.prg;
*
*/
/*--- includes ---*/
#include "import.h"
#include <NKCC.H>
#include <MGLOBAL.H>
#include <MYDIAL.H>
#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 für 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ß zurückgesetzt werden! [Taste]" );
getchar( );
Fehlerflag = -99;
}
return( Fehlerflag );
}