/* connect.h */ /************************************************************************* * If defined, the following flags inhibit definition * of the indicated items. * * JUST COPY AND PASTE THE DEFINES THAT YOU NEED ************************************************************************* #define NOORDINALS TRUE #define NOPROTOTYPES TRUE #define NODLLPROTOTYPES TRUE #define NODCPROTOTYPES TRUE #define NOCONSTANTS TRUE #define NOCONNECTORS TRUE #define NOGLOBALS TRUE #define NO TRUE ************************************************************************* */ #ifndef MINCONSTR /* seh nova 005 */ #define MINCONSTR 64 /* seh nova 005 */ #endif #ifndef MINRESSTR #define MINRESSTR 32 /* seh nova 005 this must match dynacomm.h */ #endif #ifndef NOORDINALS /* define ordinal values for all exported functions */ #define ORD_GETDLLTYPE 959 #define ORD_GETCONNECTCAPS 962 #define ORD_SETPARAMETERS 800 #define ORD_GETEXTENDEDINFO 801 #define ORD_RESETCONNECTOR 802 #define ORD_EXITCONNECTOR 803 #define ORD_CONNECTCONNECTOR 804 #define ORD_READCONNECTOR 805 #define ORD_WRITECONNECTOR 806 #define ORD_COMMANDCONNECTOR 807 #define ORD_DISCONNECTCONNECTOR 808 #define ORD_SETUPCONNECTOR 809 #endif /* NOORDINALS */ #ifndef NOCONSTANTS /* constants defined here (listed by function that uses them */ /* GetDLLType */ #define GDT_SHOW_EGO TRUE #define GDT_QUIET FALSE #define DC_CONNECTOR 4257 /* GetConnectCaps, SetParameters */ #define SET_PARAMETERS 0x0001 #define SP_GETCAPS 0x0001 #define SP_QUIET 0x0000 #define SP_SHOW 0x0002 #define SP_GETDEFAULT 0x0004 #define SP_SETDEFAULT 0x0008 #ifdef ORGCODE #define SP_PARITY 0x0001 #define SP_BAUD 0x0002 #define SP_DATABITS 0x0004 #define SP_STOPBITS 0x0008 #define SP_HANDSHAKING 0x0010 #define SP_PARITY_CHECK 0x0020 #define SP_CARRIER_DETECT 0x0040 #endif /* available baud rates */ #define GP_AVAIL_BAUD 0x0002 /* values can be.... */ #ifdef ORGCODE #define BAUD_075 0x0001 #define BAUD_110 0x0002 #define BAUD_300 0x0004 #define BAUD_600 0x0008 #define BAUD_120 0x0010 #define BAUD_240 0x0020 #define BAUD_480 0x0040 #define BAUD_960 0x0080 #define BAUD_192 0x0100 #else #define BAUD_120 BAUD_1200 #define BAUD_240 BAUD_2400 #define BAUD_480 BAUD_4800 #define BAUD_960 BAUD_9600 #define BAUD_192 BAUD_19200 #endif #ifdef ORGCODE #define BAUD_USER 0x0200 #endif #define BAUD_ALL (BAUD_075+BAUD_110+BAUD_300+BAUD_600+BAUD_120+BAUD_240+BAUD_480+BAUD_960+BAUD_192+BAUD_USER) #define BAUD_OFFSET 0x1000 /* tge used for resources */ /* available data bits */ #define GP_AVAIL_DATABITS 0x0004 /* values can be.... */ #ifdef ORGCODE #define DATABITS_5 0x0001 #define DATABITS_6 0x0002 #define DATABITS_7 0x0004 #define DATABITS_8 0x0008 #endif #define DATABITS_ALL (DATABITS_5+DATABITS_6+DATABITS_7+DATABITS_8) #define DATABITS_OFFSET 0x2000 /* tge used for resources */ /* available stops bits */ #define GP_AVAIL_STOPBITS 0x0008 /* values can be.... */ #ifdef ORGCODE #define STOPBITS_10 0x0001 #define STOPBITS_15 0x0002 #define STOPBITS_20 0x0004 #endif #define STOPBITS_ALL (STOPBITS_10+STOPBITS_15+STOPBITS_20) #define STOPBITS_OFFSET 0x3000 /* tge used for resources */ /* available parity options */ #define GP_AVAIL_PARITY 0x0010 /* values can be ... */ #ifdef ORGCODE #define PARITY_NONE 0x0001 #define PARITY_ODD 0x0002 #define PARITY_EVEN 0x0004 #define PARITY_MARK 0x0008 #define PARITY_SPACE 0x0010 #endif #define PARITY_ALL (PARITY_NONE+PARITY_ODD+PARITY_EVEN+PARITY_MARK+PARITY_SPACE) #define PARITY_OFFSET 0x4000 /* tge used for resources */ /* available handshaking */ #define GP_AVAIL_HANDSHAKE 0x0020 /* values can be...*/ #define HANDSHAKE_XONXOFF 0x0001 #define HANDSHAKE_HARDWARE 0x0002 #define HANDSHAKE_NONE 0x0004 #define HANDSHAKE_ETXFLOW 0x0008 #define HANDSHAKE_ALL (HANDSHAKE_XONXOFF+HANDSHAKE_HARDWARE+HANDSHAKE_NONE+HANDSHAKE_ETXFLOW) #define HANDSHAKE_OFFSET 0x5000 /* tge used for resources */ /* misc. options */ #define GP_AVAIL_MISC 0x0040 /* values can be... */ #define MISC_CARRIER_DETECT 0x0001 #define MISC_PARITY_CHECK 0x0002 #define MISC_ALL (MISC_CARRIER_DETECT+MISC_PARITY_CHECK) #define MISC_NONE 0x0000 #define MISC_OFFSET 0x6000 /* tge used for resources */ /* GetExtendedInfo */ #define GI_STRSIZE 80 /* if GetExtendedInfo does not have extended info for what we want, it gives us this message */ #define GIN_NOINFO 0xffff /* else, the following stuff is used */ /* we send GetExtendedInfo this in parameter one and error code in param 2 */ #define GI_ERROR 0x0000 /* and GetExtended info returns this ... */ #define GIN_ERRWARNING 0x0000 #define GIN_ERRDLLCRASH 0x0001 #define GIN_ERRAPPCRASH 0x0002 #define GIN_ERRSYSCRASH 0x0003 #define GIN_ERRFATAL 0x0004 /* we send GetExtendedInfo this is param 1 */ #define GI_IDENTIFY 0x0001 /* and one of these in param 2 */ #define GI_DLLFILENAME 0x0000 /* put dll file name is param 3 */ #define GI_DLLNAME 0x0001 /* put dll name is param 3 (used in listbox) */ #define GI_CLIENTNAME 0x0002 /* put client name is param 3 */ #define GI_SERVERNAME 0x0003 /* put server name is param 3 */ #define GI_DLLVERSION 0x0004 /* put version # in param 3 */ #define GI_DLLINIFILENAME 0x0005 /* put ini filename in param 3 */ #define GI_SETUPBOX 0x0006 /* return TRUE if setup button should be enabled */ /* and GetExtended info returns this ... */ #define GI_OK TRUE /* connector read and write errors */ #define CONNECT_READ_ERROR 0xffff #define CONNECT_WRITE_ERROR (CONNECT_READ_ERROR) /* connector ini list error */ #define CONNECT_NO_CONNECTORS (-2) /* CommandConnector */ #define DLL_CMD_BREAK 0x0001 /* ConnectConnector */ #define STAT_CONNECTED 1 /* slc nova xxx */ #define STAT_NOT_CONNECTED 2 /* slc nova xxx */ #define STAT_WAIT_CONNECT 3 /* bjw nova 002 */ #define STAT_ERROR 4 /* bjw nova 002 */ /* control block constants */ #define TYPE_MODEM 0x0001 #define TYPE_NETWORK 0x0002 #define TYPE_PHYSICAL 0x0003 #endif /* NOCONSTANTS */ #ifndef NOCONNECTORS /* User Union (not to be mistaken with the AFL-CIO */ #define CCB_UNION_SIZE 512 /* seh/slc nova */ typedef union { BYTE Byte[CCB_UNION_SIZE]; WORD Word[CCB_UNION_SIZE / sizeof(WORD)]; LONG Long[CCB_UNION_SIZE / sizeof(LONG)]; PSTR Pstr[CCB_UNION_SIZE / sizeof(PSTR)]; LPSTR Lpstr[CCB_UNION_SIZE / sizeof(LPSTR)]; HANDLE Handle[CCB_UNION_SIZE / sizeof(HANDLE)]; } USER_UNION; /* Connector Control Block */ typedef struct { WORD wVersion; /* version number (always equals 100) */ HANDLE hConnectorInst; /* instance handle of connector DLL */ WORD wType; /* Type of connection (network, physical, ect...) */ WORD wStatus; /* Status (connected, not connected, ect... */ WPARAM wParamFlags; /* flags returned by GetConnectCaps(SET_PARAMETERS) */ WORD wBaudFlags; /* flags returned by GetConnectCaps(GP_AVAIL_BAUD) */ WORD wDataBitFlags; /* flags returned by GetConnectCaps(GP_AVAIL_DATABITS) */ WORD wStopBitFlags; /* flags returned by GetConnectCaps(GP_AVAIL_STOPBITS) */ WORD wParityFlags; /* flags returned by GetConnectCaps(GP_AVAIL_PARITY) */ WORD wHandshakeFlags; /* flags returned by GetConnectCaps(GP_AVAIL_HANDSHAKE) */ WORD wMiscFlags; /* flags returned by GetConnectCaps(GP_AVAIL_MISC) */ WORD wSpeed; /* currently set baud rate (actual value) */ /* seh nova 005 */ WORD wBaudSet; /* currently set baud rate (control id) */ WORD wDataBitSet; /* currently set data bits (control id) */ WORD wStopBitSet; /* currently set stop bits (control id) */ WORD wParitySet; /* currently set parity (control id) */ WORD wHandshakeSet; /* currently set handshaking (control id) */ WORD wMiscSet; /* currently set misc (bit flags) */ BYTE szPhoneNumber[MINRESSTR]; /* Phone Number to Dial */ BYTE szDLLFileName[MINRESSTR]; /* DOS filename for DLL */ BYTE szDLLName[MINRESSTR]; /* Name used in connectors listbox */ BYTE szClient[16]; /* client name (for network DLL use) */ BYTE szServer[64]; /* server name (for network DLL use) */ WORD wNetBiosLNum; /* slc nova NetBIOS Local Session Number */ WORD wNetBiosRNum; /* slc nova NetBIOS Remote Session Number */ WORD byPadChar; /* char used for blank padding */ WORD wReadBufferSize; /* size of read transfer buffer */ WORD wReadBufferRead; /* actual bytes read */ /* bjw nova 002 */ LPSTR lpReadBuffer; /* address of read transfer buffer */ HANDLE hReadBuffer; /* handle to read transfer buffer */ WORD wWriteBufferSize; /* size of write transfer buffer */ WORD wWriteBufferUsed; /* size of write transfer buffer used */ /* seh nova 005 */ LPSTR lpWriteBuffer; /* address of write transfer buffer */ HANDLE hWriteBuffer; /* handle to write transfer buffer */ LPSTR lpNCB; /* address of NetBIOS Control Block */ HANDLE hNCB; /* handle to NetBIOS Control Block */ LPSTR lpNCBWrite; /* address of NetBIOS Control Block */ HANDLE hNCBWrite; /* handle to NetBIOS Control Block */ LPSTR lpNCBRead; /* address of NetBIOS Control Block */ HANDLE hNCBRead; /* handle to NetBIOS Control Block */ WORD wTimeRemain; /* NetBIOS Listen Timeout */ BYTE configBuffer[32]; /* Saved in DCS file (for DLL use) */ USER_UNION User; /* DLL's are free to use this space in anyway that they would like to */ } CONNECTOR_CONTROL_BLOCK, *PCONNECTOR_CONTROL_BLOCK, FAR *LPCONNECTOR_CONTROL_BLOCK; /* connector array structure */ typedef struct { WORD wNumOfChannels; /* number of opened channels */ WORD wTopChannel; /* if a session window is the top window, */ /* then this is it's index into CCB array */ HANDLE hCCBArray; LPCONNECTOR_CONTROL_BLOCK lpCCB[1]; /* array of CCB's (dynamically allocated) */ } CONNECTORS, *PCONNECTORS, FAR *LPCONNECTORS; #endif /* NOCONNECTORS */ #ifndef NOGLOBALS HANDLE ghConnectors; /* global handle to connector data struct */ HANDLE ghCCB; /* global handle CONNECTOR_CONTROL_BLOCK */ LPCONNECTORS xglpConnectors; /* not used anymore - long pointer to connector data structure */ HANDLE ghWorkConnector; /* handle for temporary connector work (settings) */ BYTE gszWork[MINCONSTR]; /* slc nova xxx */ #endif /* NOGLOBALS */ #ifndef NOPROTOTYPES /* exported functions prototypes */ #ifndef NODLLPROTOTYPES /* Connect DLL's */ WORD APIENTRY GetDLLType(HWND, BOOL); WORD APIENTRY GetConnectCaps(WORD); WORD APIENTRY SetParameters(WORD, LPCONNECTOR_CONTROL_BLOCK); WORD APIENTRY GetExtendedInfo(WORD, WORD, LPSTR); WORD APIENTRY ResetConnector(HWND, LPCONNECTOR_CONTROL_BLOCK, BOOL); WORD APIENTRY ExitConnector(HWND, LPCONNECTOR_CONTROL_BLOCK, BOOL); WORD APIENTRY ConnectConnector(HWND, LPCONNECTOR_CONTROL_BLOCK, BOOL); WORD APIENTRY ReadConnector(LPCONNECTOR_CONTROL_BLOCK); WORD APIENTRY WriteConnector(LPCONNECTOR_CONTROL_BLOCK); WORD APIENTRY CommandConnector(HWND, LPCONNECTOR_CONTROL_BLOCK, WORD, LONG); WORD APIENTRY DisconnectConnector(HANDLE, LPCONNECTOR_CONTROL_BLOCK); #endif /* NODLLPROTOTYPES */ #ifndef NODCPROTOTYPES /* DynaComm */ BOOL initConnectors(BOOL); VOID addConnectorList(HWND, WORD); /* slc nova 031 */ HANDLE loadConnector(HWND, HANDLE, LPSTR, BOOL); /* slc nova 031 */ WORD getConnectorCaps(LPCONNECTOR_CONTROL_BLOCK); /* slc nova 031 */ WORD setConnectorSettings(HWND, HANDLE, BOOL); WORD getConnectorSettings(LPCONNECTOR_CONTROL_BLOCK, BOOL); /* slc nova 031 */ WORD DLL_ResetConnector(HANDLE, BOOL); /* slc nova 031 */ WORD DLL_SetupConnector(HANDLE, BOOL); /* slc nova 031 */ WORD DLL_ExitConnector(HANDLE, recTrmParams *); WORD DLL_ConnectConnector(HANDLE, BOOL); /* slc nova 031 */ WORD DLL_ReadConnector(HANDLE); /* slc nova 031 */ WORD DLL_WriteConnector(HANDLE); /* slc nova 031 */ WORD DLL_CommandConnector(HANDLE, LPCONNECTOR_CONTROL_BLOCK, WORD, LONG); WORD DLL_DisconnectConnector(HANDLE hCCB); /* slc nova 031 seh nova 005 */ WORD DLL_modemSendBreak(HANDLE, INT); WORD DLL_ConnectBytes(HANDLE); /* slc nova 031 */ WORD getConnectType(HANDLE hConnector, HANDLE hCCB); /* seh nova 005 */ VOID ccbFromTrmParams(LPCONNECTOR_CONTROL_BLOCK, recTrmParams *); VOID ccbToTrmParams(recTrmParams *, LPCONNECTOR_CONTROL_BLOCK); BOOL DLL_HasSetupBox(HANDLE hConnector); /* seh nova 006 */ WORD putCCB_BAUDITM(WORD); /* slc nova xxx */ WORD putCCB_BAUD(WORD); WORD putCCB_DATABITS(WORD); WORD putCCB_PARITY(WORD); WORD putCCB_STOPBITS(WORD); WORD putCCB_FLOWCTRL(WORD); WORD putCCB_MISCSET(WORD, WORD); #endif /* NODCPROTOTYPES */ #endif /* NOPROTOTYPES */ /* taken from dcrc.h bjw nova 002 */ #ifdef NEED_DCRC /* bjw gold 027 - the evil warning! */ /***************************************************************************** * B I G - T I M E , W A R N I N G !, W A R N I N G !, W A R N I N G ! * * WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! * * If any of the folling ID's change (and you better have a good reason!) * make sure and change the corresponding ID's in any DLL that uses them and * recompile DynaComm and ALL connector DLL's. * If you really have to change one of these items, DynaComm will no longer * be compatible with earlier settings files or connector DLL's. * I WARNED YOU! * ******************************************************************************/ #define ITMSETUP 3 /* seh nova 005 */ #define IDDBCOMM 7 #define ITMBD110 11 #define ITMBD300 12 #define ITMBD600 13 /* mbbx 2.00: support 600 baud */ #define ITMBD120 14 #define ITMBD240 15 #define ITMBD480 16 #define ITMBD960 17 #define ITMBD192 18 #define ITMDATA4 21 /* not used */ #define ITMDATA5 22 #define ITMDATA6 23 #define ITMDATA7 24 #define ITMDATA8 25 #define ITMSTOP1 31 #define ITMSTOP5 32 #define ITMSTOP2 33 #define ITMNOPARITY 41 #define ITMODDPARITY 42 #define ITMEVENPARITY 43 #define ITMMARKPARITY 44 #define ITMSPACEPARITY 45 #define ITMXONFLOW 51 #define ITMHARDFLOW 52 #define ITMNOFLOW 53 #define ITMETXFLOW 54 /* jtfx 2.01.75 ... */ #define ITMCONNECTOR 61 #define ITMPARITY 91 #define ITMCARRIER 92 #endif /* NEED_DCRC */ /* WINCIM typedef's */ typedef CONNECTOR_CONTROL_BLOCK CCB; typedef CCB FAR * LPCCB;