This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/fmi.h

733 lines
33 KiB
C

/* fmi.h */
/*
* (C) Copyright Data Connection Limited 1989-1992.
* (C) Copyright Microsoft Corporation 1991.
* All Rights Reserved.
*/
#ifndef FMIH_INCLUDED
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define FMIH_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#ifdef WIN32_SUPPORT
#pragma pack(1)
#endif
/*****************************************************************************/
/* The following type definitions are in os2def.h so are not needed in OS/2 */
/*****************************************************************************/
#if (defined(DOS_SUPPORT) || defined(MSWIN_SUPPORT))
#define CHAR char /* ch */
typedef unsigned char UCHAR; /* uch */
typedef unsigned short USHORT; /* us */
typedef unsigned long ULONG; /* ul */
#endif
/*****************************************************************************/
/* Type definitions for message fields */
/*****************************************************************************/
typedef signed short INTEGER;
/*****************************************************************************/
/* Macro to convert integer fields other than STARTD and ENDD, SRCI */
/* and DESTI to In-line format */
/*****************************************************************************/
#ifndef WIN32_SUPPORT
#define DOFLIP(X) ((INTEGER)((((X) & 0xff) << 8) | (((X) >> 8) & 0xff)))
#else
#ifndef ROTL
#ifndef _CRTAPI1
unsigned int _rotl(unsigned int, int);
#else
unsigned int _CRTAPI1 _rotl(unsigned int, int);
#endif
#define ROTL
#endif
#pragma intrinsic(_rotl)
#define DOFLIP(X) ((INTEGER)_rotl(((unsigned short)(X))*(unsigned long)0x00010001, 8))
#endif
#define DONTFLIP(X) (X)
#ifdef NON_INTEL_BYTE_ORDER
#define PFLIPI(X) DONTFLIP(X)
#define PANTIFLIPI(X) DOFLIP(X)
#else
#define PFLIPI(X) DOFLIP(X)
#define PANTIFLIPI(X) DONTFLIP(X)
#endif
/*****************************************************************************/
/* Element offset and length definitions */
/*****************************************************************************/
#define SBCBELT1 1
#define SBCBELT3 13
#define SNANBEDA 268 /* LENGTH OF BUFFER ELEMENT */
/*****************************************************************************/
/* MESSAGE TYPE DECLARATIONS - ELEMENT OPTIONS */
/*****************************************************************************/
typedef
#define RHASENSE 0
#define DATAONLY 1
signed char ELTDATAT;
typedef CHAR SNCHARRU[SNANBEDA]; /* LENGTH OF ELT */
/*****************************************************************************/
/* MAIN DEFINITION OF MESSAGE ELEMENT */
/*****************************************************************************/
/**STRUCT+********************************************************************/
/* Structure: BUFELT */
/* */
/* Description: Main definition of SNAPS Buffer Element */
/*****************************************************************************/
#ifdef WIN32_SUPPORT
#define PTRBFELT struct bufelt *
#else
#define PTRBFELT struct bufelt far *
#endif
typedef struct bufelt{
PTRBFELT elteptr; /* Pointer to next element in buffer*/
INTEGER startd; /* Offset (from 1) of start of data */
INTEGER endd; /* Offset (from 1) of last data byte*/
CHAR trpad;
/*ELTDATAT*/union {
/*RHASENSE*/struct {unsigned char rhpad[8];
signed long BBUFF0V;
INTEGER BBUFF0W;
INTEGER BBUFF0X;}BBUFF0T;
/*DATAONLY*/struct {SNCHARRU BBUFF0Z;
}BBUFF0Y;
}BBUFF0S;}
#define rh BBUFF0S.BBUFF0T.BBUFF0V /* The RH bytes themselves */
#define sense1 BBUFF0S.BBUFF0T.BBUFF0W /* Sense data 1 in negative response*/
#define sense2 BBUFF0S.BBUFF0T.BBUFF0X /* Sense data 2 in negative response*/
#define dataru BBUFF0S.BBUFF0Y.BBUFF0Z /* The data bytes themselves */
#define lccpad BBUFF0S.BBUFF0Y.BBUFF1A /* Pad */
BUFELT;
/*****************************************************************************/
/* OPEN MESSAGE TYPE DECLARATIONS */
/*****************************************************************************/
typedef struct tpophdr{ /* OPEN MESSAGE HEADER */
CHAR openqual;
#define REQU 1
#define RSPOK 2
#define RSPERR 3
#define CONFOK 4
#define CONFERR 5
CHAR opentype;
#define SSCPSEC 1
#define LUSEC 2
#define SBPUSEC 3
CHAR appltype; /* INTERFACE ID - X'02' FOR FMI */
CHAR opluno; /* INTERFACE USER NUMBER */
INTEGER opresid; /* INTERFACE USER ID */
union {
struct {INTEGER B03;
INTEGER B04;
CHAR B05;
CHAR B06;}B02;
struct {INTEGER B08;
INTEGER B09;}B07;
}B01;}
#define icreditr B01.B02.B03
#define icredits B01.B02.B04
#define opninfo1 B01.B02.B05
#define opnpad1 B01.B02.B06
#define operr1 B01.B07.B08
#define operr2 B01.B07.B09
TPOPHDR;
/*****************************************************************************/
/* Open (SSCP) opnpad1 values */
/*****************************************************************************/
#define OPEN_TEST 0 /* DON'T FORCE A CONNECTION ACTIVE */
#define OPEN_FORCE 1 /* FORCE A CONNECTION ACTIVE */
/*****************************************************************************/
/* Constants for operr2 field in Open(SSCP) Error Responses */
/*****************************************************************************/
#define CSRENOSR 0 /* NO SERVERS FOUND */
#define CSRESERV 1 /* SERVICE NOT PRESENT AT LOCALITY */
#define CSRECNFG 2 /* CONFIGURATION MISMATCH */
#define CSRECBSH 3 /* CONTROL BLOCK/RESOURCE SHORTAGE */
#define CSREFORM 4 /* FORMAT/PROTOCOL ERROR */
/*****************************************************************************/
/* LINK TYPE DEFINITIONS FOR OPEN (SSCP) RESPONSE IN DATARU[38] */
/*****************************************************************************/
#define CESLINK 3 /* SDLC LINK */
#define CESX25 4 /* X.25 LINK */
#define CESDFT 10 /* DFT LINK */
#define CESTR 11 /* TOKEN RING LINK */
#define CESTCPIP 30 /* TCP/IP LINK */
#define CESRELAY 31 /* FRAME RELAY LINK */
#define CESCHANL 32 /* CHANNEL LINK */
#define CESISDN 33 /* ISDN LINK */
#define CESETHER 34 /* ETHERNET 802.2 LINK */
/*****************************************************************************/
/* BIND Table Index Values for the Open PLU response (in element) */
/*****************************************************************************/
#define BIND_TABLE_INDEX_PRT 1
#define BIND_TABLE_INDEX_CRT 2
/*****************************************************************************/
/* CLOSE MESSAGE TYPE DECLARATIONS */
/*****************************************************************************/
typedef struct tpclhdr{ /* CLOSE MESSAGE HEADER */
CHAR closqual; /* Same values as openqual */
CHAR clstype; /* Same values as opentype */
CHAR clsctl; /* For Close(PLU) only */
#define CLNORMAL 1
#define CLBIND 2
#define CLCFAERR 3
#define CLPUINAC 4
#define CLLUINAC 5
#define CLLNKERR 6
#define CLBFSHRT 7
#define CLRCVCHK 8
#define CLSLUTRM 9
CHAR clspad1;
INTEGER clspad2;
INTEGER clserr1;
INTEGER clserr2;
}TPCLHDR;
/*****************************************************************************/
/* STATUS-ACKNOWLEDGE MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstahdr{ /* STATUS ACK MESSAGE HEADER */
CHAR akstat;
#define ACK 1
CHAR akqual;
#define ACKPOS 2
#define ACKNEG1 3
#define ACKNEG2 4
INTEGER akmsgkey;
union {
INTEGER XXXXX01;
struct {
CHAR XXXXX02;
CHAR XXXXX03;
} XXXXX04;
} XXXXX05;
INTEGER aknumb1;
INTEGER aknumb2;
INTEGER akseqno;
#define akmsgtim XXXXX05.XXXXX01
#define akflags1 XXXXX05.XXXXX04.XXXXX02 /* Same values as fhflags1 below */
/* Reserved for ACKNEG2 */
#define akflags2 XXXXX05.XXXXX04.XXXXX03 /* Same values as fhflags2 below */
/* Crit/Non-Crit fail for ACKNEG2*/
}TPSTAHDR;
/*****************************************************************************/
/* STATUS-ERROR MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstehdr{ /* STATUS ERROR MESSAGE HEADER */
CHAR errstat;
#define STERROR 3
CHAR errpad1;
INTEGER errpad2;
INTEGER errpad3;
INTEGER errcode1;
INTEGER errcode2;
}TPSTEHDR;
/*****************************************************************************/
/* STATUS-CONTROL MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstchdr{ /* STATUS CONTROL MESSAGE HEADER */
CHAR ctlstat;
#define STCNTRL 2
CHAR ctlqual;
#define CTLREQU 1
/* #define ACKPOS 2 */
/* #define ACKNEG1 3 */
/* #define ACKNEG2 4 */
CHAR ctltype;
#define CCLEAR 1
#define CSDT 2
#define CRQR 3
#define CSTSN 4
#define CCANCEL 16
#define CLUSTAT 17
#define CSIGNAL 18
#define CRSHUTD 19
#define CBID 20
#define CCHASE 21
#define CSHUTC 22
#define CSHUTD 23
#define CRTR 24
#define CQC 32
#define CQEC 33
#define CRELQ 34
CHAR ctlack; /* Same values as fhackrqd below */
CHAR ctlflag1; /* Same values as fhflags1 below */
CHAR ctlflag2; /* Same values as fhflags2 below */
INTEGER ctlnumb1;
INTEGER ctlnumb2;
INTEGER ctlmsgk;
}TPSTCHDR;
/*****************************************************************************/
/* STATUS-RESOURCE MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstrhdr{ /* STATUS RESOURCE MESSAGE HEADER */
CHAR resstat;
#define STRESRCE 4
CHAR respad;
INTEGER rescred;
}TPSTRHDR;
/*****************************************************************************/
/* STATUS-SESSION MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstshdr{ /* STATUS SESSION MESSAGE HEADER */
CHAR sessstat;
#define STSESSN 5
CHAR sesspad;
INTEGER sesscode;
#define STNOSESS 1 /* X'01' (NO SESSION) */
#define STLINERR 2 /* X'02' (LINK ERROR) */
#define STPUACT 3 /* X'03' (PU ACTIVE) */
#define STPUREAC 4 /* X'04' (PU RE-ACTIVATED) */
#define STLUACT 5 /* X'05' (LU ACTIVE) */
#define STLUREAC 6 /* X'06' (LU RE-ACTIVATED) */
#define STBETB 7 /* BETB STATUS-SESSION CODE */
INTEGER sessqual;
/* #define STPUACT 3 X'03' (PU ACTIVE) */
/* #define STPUREAC 4 X'04' (PU RE-ACTIVATED) */
#define STPUINAC 16 /* X'10' (PU INACTIVE) */
#define STLUINAC 17 /* X'11' (LU INACTIVE) */
}TPSTSHDR;
/*****************************************************************************/
/* STATUS-RTM MESSAGE TYPE DECLARATION */
/*****************************************************************************/
typedef struct tpstmhdr{ /* STATUS RTM MESSAGE HEADER */
CHAR rtmstat;
#define STRTM 6
CHAR strbndry; /* set boundaries flag */
CHAR strcount; /* set counters flag */
CHAR strtmdef; /* rtm definition */
CHAR strtmact; /* rtm active flag */
CHAR strtmdsp; /* local display active flag */
}TPSTMHDR;
/*****************************************************************************/
/* STATUS VARIANT TYPES */
/*****************************************************************************/
typedef struct tpashdr{ /* APPLSTATUS MESSAGE HEADER */
union {
struct {TPSTAHDR B0G;}B0F; /* Status-Ack variant */
struct {TPSTCHDR B0I;}B0H; /* Status-Control variant */
struct {TPSTEHDR B0K;}B0J; /* Status-Error variant */
struct {TPSTRHDR B0M;}B0L; /* Status-Resource variant*/
struct {TPSTSHDR B0O;}B0N; /* Status-Session variant */
struct {TPSTMHDR X1E;}X1D; /* Status-RTM variant */
}B0E;}
#define stackhdr B0E.B0F.B0G
#define stctlhdr B0E.B0H.B0I
#define sterrhdr B0E.B0J.B0K
#define streshdr B0E.B0L.B0M
#define stseshdr B0E.B0N.B0O
#define strtmhdr B0E.X1D.X1E
TPASHDR;
/*****************************************************************************/
/* FMI APPLDATA HERE */
/*****************************************************************************/
typedef struct tpfmihdr{ /* FMI DATA MESSAGE HEADER */
CHAR fhackrqd;
#define NOACKREQ 0
#define ACKREQ 1
CHAR fhpad1;
INTEGER fhmsgkey;
CHAR fhflags1; /* BIT SIGNIFICANT */
#define AF_FMH 0x80
#define AF_BC 0x40
#define AF_EC 0x20
#define AF_COMM 0x10
#define AF_BB 0x08
#define AF_EB 0x04
#define AF_CD 0x02
#define AF_SD 0x01
CHAR fhflags2; /* BIT SIGNIFICANT */
#define AF_CODE 0x80
#define AF_ENCR 0x40
#define AF_ENPD 0x20
#define AF_QRI 0x10
#define AF_CEI 0x08
#define AF_BBIU 0x04
#define AF_EBIU 0x02
#define AF_RBI 0x01
INTEGER fhpad2;
INTEGER fhpad3;
INTEGER fhseqno;
}TPFMIHDR;
/*****************************************************************************/
/* MAIN DEFINITION OF MESSAGE HEADER */
/*****************************************************************************/
#ifdef WIN32_SUPPORT
#define PTRBFHDR struct bufhdr *
#else
#define PTRBFHDR struct bufhdr far *
#endif
typedef struct bufhdr{
PTRBFHDR nxtqptr;
PTRBFELT hdreptr;
CHAR numelts;
CHAR msgtype;
#define OPENMSG 1
#define CLOSEMSG 2
#define DATAFMI 32
#define STATFMI 33
CHAR srcl;
CHAR srcp;
#define S3PROD 18 /* 3270 Partner number */
INTEGER srci;
CHAR destl;
CHAR destp;
INTEGER desti;
union {
struct {TPOPHDR B1C;}B1B;
struct {TPCLHDR B1E;}B1D;
struct {TPFMIHDR B1K;}B1J;
struct {TPASHDR B1M;}B1L;
}B0Y;}
#define ophdr B0Y.B1B.B1C
#define clhdr B0Y.B1D.B1E
#define dfhdr B0Y.B1J.B1K
#define sfhdr B0Y.B1L.B1M
BUFHDR;
/*****************************************************************************/
/* RETURN CONSTANTS FOR SBPURCV */
/*****************************************************************************/
#define CSUNORES 0 /* NO RESULT */
#define CSUMSGRT 1 /* MESSAGE RETURNED */
#define CSUPTHER 2 /* PATH ERROR */
#define CSUTERM 3 /* TERMINATE */
#define CSUBUFSH 4 /* BUFFER SHORTAGE */
/*****************************************************************************/
/* PROCTYPE AND SERVTYPE PARAMETERS FOR SBPUINIT */
/*****************************************************************************/
#define CLIENT 2 /* client entry */
#define CES3270 2 /* SNAP-3270 */
/*****************************************************************************/
/* DL-Base return Values */
/*****************************************************************************/
#ifndef NO_ERROR
#define NO_ERROR 0
#endif
#define CEDINNOMSG 0 /* status = no message or status */
#define CEDINMSG 1 /* status = got message */
#define CEDINLLN 2 /* status = lost locality */
/* values for SBPUINIT only */
#define DMBASE 550 /* Base level for Com Manager errors */
#define DMLTABF (DMBASE + 5) /* L-table full */
#define DMMNWGI (DMBASE + 12) /* NetWkstaGetInfo call failed */
#define DMDSTFL (DMBASE + 13) /* Service table full */
#define DMMPIPF (DMBASE + 17) /* Make pipe call failed */
#define DMCOMNM (DMBASE + 32) /* No name found for this service */
#define DMCOMDUP (DMBASE + 46) /* Duplicate COMNAME for service */
#define DMNOTLOG (DMBASE + 48) /* User not logged on */
#define DMCFGOPN (DMBASE + 66) /* Failed to open the config file */
#define DMCFREAD (DMBASE + 68) /* Error reading config file */
#define DMNONAP (DMBASE + 75) /* NAP not up when starting service */
#define WINBASE 950 /* Base level for Windows-only errors */
#define DMMAXAPP (WINBASE+3) /* Exceeded max # of concurrent apps */
/*****************************************************************************/
/* Dmod/DL-Base entry points */
/*****************************************************************************/
#ifdef MSWIN_SUPPORT
#ifndef APIENTRY
#define APIENTRY WINAPI
#endif
#endif
#ifdef OS2_SUPPORT
extern USHORT APIENTRY sbpuinit (HSEM FAR *, USHORT, USHORT, UCHAR FAR *);
extern USHORT APIENTRY sbpurcv (PTRBFHDR FAR *, INTEGER FAR*);
#endif
#ifdef WIN32_SUPPORT
extern USHORT WINAPI sbpuinit (HANDLE *, USHORT, USHORT, UCHAR *);
extern USHORT WINAPI sbpurcv (PTRBFHDR *, INTEGER *);
#endif
#ifdef MSWIN_SUPPORT
extern USHORT WINAPI sbpuinit (USHORT, USHORT, UCHAR FAR *);
#endif
#ifdef DOS_SUPPORT
extern USHORT APIENTRY sbpuinit (HSEM FAR *, USHORT, USHORT);
#endif
#ifndef WIN32_SUPPORT
extern USHORT APIENTRY sbpurcvx (BUFHDR FAR * FAR *, INTEGER, INTEGER);
extern VOID APIENTRY sbpusend (PTRBFHDR);
extern VOID APIENTRY sbputerm (VOID);
#else
extern USHORT WINAPI sbpurcvx (BUFHDR * *, INTEGER, INTEGER);
extern VOID WINAPI sbpusend (PTRBFHDR);
extern VOID WINAPI sbputerm (VOID);
#endif
#ifdef OS2_SUPPORT
extern USHORT APIENTRY sepdrout(USHORT (APIENTRY *) (BUFHDR far *, USHORT, USHORT));
#endif
#ifdef WIN32_SUPPORT
extern ULONG WINAPI sepdrout(ULONG (WINAPI *) (BUFHDR *, USHORT, USHORT));
#endif
#ifdef MSWIN_SUPPORT
extern USHORT WINAPI sepwrout(USHORT (WINAPI *) (BUFHDR far *, USHORT, USHORT));
#endif
#ifdef DOS_SUPPORT
extern USHORT APIENTRY sepdrout(USHORT (APIENTRY *) (BUFHDR far *, USHORT, USHORT));
#endif
/*****************************************************************************/
/* Buffer pool access routines */
/*****************************************************************************/
#ifndef WIN32_SUPPORT
extern PTRBFHDR APIENTRY sepdbubl (USHORT);
extern VOID APIENTRY sepdburl (PTRBFHDR);
extern VOID APIENTRY sbpibegt (PTRBFELT FAR *);
extern VOID APIENTRY sbpiberl (PTRBFELT FAR *);
extern VOID APIENTRY sepdchnk (USHORT FAR *, USHORT FAR *);
#else
extern PTRBFHDR WINAPI sepdbubl (USHORT);
extern VOID WINAPI sepdburl (PTRBFHDR);
extern VOID WINAPI sbpibegt (PTRBFELT *);
extern VOID WINAPI sbpiberl (PTRBFELT *);
extern VOID WINAPI sepdchnk (USHORT *, USHORT *);
#endif
/*****************************************************************************/
/* Structures for the 3270 user record. */
/*****************************************************************************/
#define CERT3270 0x0002 /* 3270 user record type */
#define CECWKHAC 8 /* Length of Host Access Name */
#define CECWKUNM 20 /* Length of 3270 user name */
#define CECWKREM 25 /* Length of record remark */
#define CE3MASMX 10 /* Max number of 3270 sessions */
typedef struct tecwrksd
{
UCHAR cwshost[CECWKHAC + 1]; /* LU/Pool name accessed */
USHORT cwsestyp; /* Session type (M2, M3, M4, M5, printer) */
#define CERTMOD2 0 /* 24x80 */
#define CERTMOD3 1 /* 32x80 */
#define CERTMOD4 2 /* 43x80 */
#define CERTMOD5 3 /* 27x132 */
#define CERTPRNT 4 /* Host printer */
USHORT cwsmodov; /* Has the user got override permission? */
USHORT cwspad; /* 2 bytes of padding */
} TECWRKSD;
typedef struct tecwrkus
{
USHORT cwlen; /* Length of record */
USHORT cwtype; /* Type of record */
UCHAR cwname[CECWKUNM + 1]; /* User name */
UCHAR cwremark[CECWKREM + 1]; /* Comment field */
UCHAR cwstylef[9]; /* Initial style file name - no extnsn */
USHORT cwvewrtm; /* Can user view RTM info ? */
USHORT cwalert; /* Has user got ALERT permission ? */
USHORT cwchghan; /* Can change LU/Pool name accessed ? */
USHORT cwmaxses; /* Maximum number of active sessions 1-10 */
USHORT cwnumrec; /* Number of sessions for user */
TECWRKSD cwsesdat[CE3MASMX]; /* Session information records */
USHORT cwmodisf; /* Permission to modify initial style */
USHORT cwpad; /* 2 bytes of padding */
USHORT cwnumrmp; /* Number of LUs/Pools in remap list */
TECWRKSD cwremap[1]; /* LU/Pool Remap list */
} TECWRKUS;
/*****************************************************************************/
/* Structures for the diagnostics record. */
/*****************************************************************************/
#define CERTDIAG 0x0001 /* Diagnostics record type */
#define CECNUMAL 20 /* Max number of ALERTs configurable */
#define CECALRNM 52 /* Length of ALERT description 52 (arr sz)*/
#define CECALRNA 34 /* Actual length of ALERT desc is 34 */
#define CECALRPR 32 /* Length of parameter description */
#define CECONAME 8 /* Length of connection name */
#define CESTRLEN 128 /* Length of a string + 1 */
#define CECCNLEN 15 /* Length of a computer name */
typedef struct tedalert
{
UCHAR dalrtnam[CECALRNM + 1]; /* Description of the ALERT number */
UCHAR daparam1[CECALRPR + 1]; /* Description of parameter 1 */
UCHAR daparam2[CECALRPR + 1]; /* Description of parameter 2 */
UCHAR daparam3[CECALRPR + 1]; /* Description of parameter 3 */
} TEDALERT;
typedef struct tediagns
{
USHORT dilen; /* Length of record */
USHORT ditype; /* Type of record */
UCHAR dinetmgt[CECONAME + 1]; /* Network Management Connection name */
USHORT disrtmco; /* Send RTM data at counter overflow */
USHORT disrtmub; /* Send RTM data at UNBIND */
USHORT diwruldr; /* RTM timers run until: */
#define CERTWRIT 0 /* 0 - first data reaches screen */
#define CERTUNLK 1 /* 1 - host unlocks keyboard */
#define CERTDIRE 2 /* 2 - host lets user send */
USHORT dirtmth1; /* RTM threshold #1 */
USHORT dirtmth2; /* RTM threshold #2 */
USHORT dirtmth3; /* RTM threshold #3 */
USHORT dirtmth4; /* RTM threshold #4 */
TEDALERT dialerts[CECNUMAL]; /* ALERT description records */
UCHAR diaudit[CESTRLEN]; /* Audit log filename */
UCHAR dierror[CESTRLEN]; /* Error log filename */
USHORT diaudlev; /* Default audit level */
/* 0 - level 6 */
/* 1 - level 8 */
/* 2 - level 10 */
UCHAR dipad[CECCNLEN + 1]; /* 16 bytes of padding */
} TEDIAGNS;
/*****************************************************************************/
/* Routine to access config information */
/*****************************************************************************/
#ifndef WIN32_SUPPORT
USHORT APIENTRY sepdcrec(UCHAR FAR *, USHORT, USHORT FAR * );
#else
USHORT WINAPI sepdcrec(UCHAR *, USHORT, USHORT * );
#endif
/*****************************************************************************/
/* Return codes from sepdcrec */
/*****************************************************************************/
#define NOCSSRVR 1 /* No config server available */
#define NODGNREC 2 /* Diagnostics record not found */
#define NOUSRREC 3 /* No user record found for this user */
#define BUF2SMAL 4 /* Buffer too small */
#define NONOS 5 /* Network not started */
#define NOTLOGON 6 /* User not logged on to network */
#define READERR 7 /* File read error */
#define NONAP 8 /* NAP not started */
#define MAXAPP 9 /* Max # of client apps reached */
#define ERROR_SERVER 14 /* Error on the server end of the RPC */
#define ERROR_LOCAL_FAILURE 15 /* Error on the local end of the RPC */
/*****************************************************************************/
/* Structure of version information block */
/*****************************************************************************/
typedef struct cs_info {
unsigned short length; /* length of this struct (bytes) */
/* (supplied parameter) */
unsigned char major_ver; /* CS major ver CS1.1->1, CS2.0->2 */
unsigned char minor_ver; /* CS minor ver CS1.1->10 (dec) */
unsigned char config_share[80]; /* name of share point of current */
/* config file = default location for */
/* style file \\box\share\ (null */
/* terminated) */
unsigned short nos; /* NOS that the LAN is running */
#define Workstation 0
#define LANMan 1 /* Also LAN Server, unless we can differentiate */
#define NetWare 2
} CS_INFO;
/*****************************************************************************/
/* Routine to get version information */
/*****************************************************************************/
#ifndef WIN32_SUPPORT
USHORT APIENTRY sepdgetinfo(struct cs_info far * );
#else
USHORT WINAPI sepdgetinfo(struct cs_info * );
#endif
/*****************************************************************************/
/* Additional return code from sepdgetinfo. */
/*****************************************************************************/
#define BADLNGTH 2
/*****************************************************************************/
/* Function definition for fmistrings dll entry point */
/*****************************************************************************/
int WINAPI GetFmiReturnCode (UINT,UINT,UINT,unsigned char FAR * );
/*****************************************************************************/
/* typedef for casting proc address return from GetProcAddress */
/*****************************************************************************/
typedef int (FAR WINAPI * PGETFMISTR)(UINT, UINT, UINT, char FAR *);
/*****************************************************************************/
/* Macro for creating the first parameter for the GetFmiReturnCode call when */
/* using the error code and qualifier off a FMI status message. */
/*****************************************************************************/
#define FMISTAT_TO_INT(code, qual) ((INTEGER) (((code >> 8) << 8) | (qual >> 8)))
#ifdef WIN32_SUPPORT
#pragma pack()
#endif
#ifdef __cplusplus
}
#endif
#pragma option pop /*P_O_Pop*/
#endif
/* End of file fmi.h */