📄 fmi.h
字号:
#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
#endif
/* End of file fmi.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -