/* File: D:\WACKER\xfer\xfer.hh (Created: 16-Dec-1993) * * Copyright 1994 by Hilgraeve Inc. -- Monroe, MI * All rights reserved * * $Revision: 2 $ * $Date: 7/12/02 8:12a $ */ #define FULL_HUNKS(n, s) ((n) / (s)) #define PART_HUNKS(n, s) ((long)(n) == 0L ? 0L : ((long)(n) - 1L) / (long)(s) + 1L) /* XMODEM and YMODEM specific functions and data structures */ struct stXandYmodemParams { /* nSize MUST BE THE FIRST ITEM */ int nSize; /* the size of this data block */ #define XP_ECP_AUTOMATIC 1 #define XP_ECP_CRC 2 #define XP_ECP_CHECKSUM 3 int nErrCheckType; /* XMODEM - what type of error check */ int nPacketWait; /* 1 to 60 seconds */ int nByteWait; /* 1 to 60 seconds */ int nNumRetries; /* 1 - 25 retries */ }; typedef struct stXandYmodemParams XFR_XY_PARAMS; extern int xfrInitializeXandYmodem(const HSESSION hSession, VOID **ppData); extern BOOL CALLBACK XandYmodemParamsDlg(HWND hDlg, UINT wMsg, WPARAM wPar, LPARAM lPar); extern int xfrModifyXmodem(const HSESSION hSession, const HWND hwnd, VOID *pData); extern int xfrModifyYmodem(const HSESSION hSession, const HWND hwnd, VOID *pData); /* ZMODEM specific functions and data structures */ struct stZmodemParams { /* nSize MUST BE THE FIRST ITEM */ int nSize; /* the size of this data block */ int nAutostartOK; /* TRUE if we allow autostarts */ int nFileExists; /* defines follow */ #define ZP_FE_SENDER 1 /* Follow sender A/O options */ #define ZP_FE_DLG 2 /* Follow dialog box options */ int nCrashRecRecv; /* defines follow */ #define ZP_CRR_NEG 1 /* Negotiate */ #define ZP_CRR_NEVER 2 /* Never recover */ #define ZP_CRR_ALWAYS 3 /* Always recover */ int nOverwriteOpt; /* defines follow */ #define ZP_OO_NONE 1 /* None */ #define ZP_OO_N_L 2 /* Newer or longer */ #define ZP_OO_CRC 3 /* CRC differs */ #define ZP_OO_APPEND 4 /* Append to file */ #define ZP_OO_ALWAYS 5 /* Overwrite always */ #define ZP_OO_NEWER 6 /* Newer */ #define ZP_OO_L_D 7 /* Length or date differ */ #define ZP_OO_NEVER 8 /* Never overwrite */ int nCrashRecSend; /* defines follow */ #define ZP_CRS_NEG 1 /* Negotiate */ #define ZP_CRS_ONCE 2 /* One time */ #define ZP_CRS_ALWAYS 3 /* Always */ int nXferMthd; /* defines follow */ #define ZP_XM_STREAM 1 /* Streaming mode */ #define ZP_XM_WINDOW 2 /* Windowed mode */ int nWinSize; /* Window size 1K to 32K */ /* TODO: check and document the format */ #if defined(UPPER_FEATURES) int nBlkSize; /* Block size 32 - 1024 bytes */ /* TODO: check and document the format */ #endif // defined(UPPER_FEATURES) int nCrcType; /* defines follow */ #define ZP_CRC_16 1 #define ZP_CRC_32 2 int nRetryWait; /* integer between 5 and 100 seconds */ int nEolConvert; /* EOL conversion TRUE or FALSE */ int nEscCtrlCodes; /* escape control codes, T or F */ }; typedef struct stZmodemParams XFR_Z_PARAMS; extern int xfrInitializeZmodem(const HSESSION hSession, int nProtocol, VOID **ppData); extern BOOL CALLBACK ZmodemParamsDlg(HWND hDlg, UINT wMsg, WPARAM wPar, LPARAM lPar); extern int xfrModifyZmodem(const HSESSION hSession, const HWND hwnd, VOID *pData); /* HyperProtocol specific functions and data structures */ struct stHyperProtocolParams { /* nSize MUST BE THE FIRST ITEM */ int nSize; /* the size of this data block */ #define HP_CT_CHECKSUM 1 #define HP_CT_CRC 2 int nCheckType; /* the check type */ int nBlockSize; /* 128 - 16384 bytes */ int nResyncTimeout; /* 3-60 seconds */ }; typedef struct stHyperProtocolParams XFR_HP_PARAMS; extern int xfrInitializeHyperProtocol(const HSESSION hSession, VOID **ppData); extern BOOL CALLBACK HyperProtocolParamsDlg(HWND hDlg, UINT wMsg, WPARAM wPar, LPARAM lPar); extern int xfrModifyHyperProtocol(const HSESSION hSession, const HWND hwnd, VOID *pData); /* Kermit specific functions and data structures */ struct stKermitParams { /* nSize MUST BE THE FIRST ITEM */ int nSize; /* the size of this data block */ int nBytesPerPacket; /* you can guess */ int nSecondsWaitPacket; int nErrorCheckSize; int nRetryCount; int nPacketStartChar; int nPacketEndChar; int nNumberPadChars; int nPadChar; }; typedef struct stKermitParams XFR_KR_PARAMS; extern int xfrInitializeKermit(const HSESSION hSession, VOID **ppData); extern BOOL CALLBACK KermitParamsDlg(HWND hDlg, UINT wMsg, WPARAM wPar, LPARAM lPar); extern int xfrModifyKermit(const HSESSION hSession, const HWND hwnd, VOID *pData); /* Generic functions */ extern int xfrInitializeParams(const HSESSION hSession, const int nProtocol, VOID **ppData); extern int xfrModifyParams(const HSESSION hSession, const int nProtocol, const HWND hwnd, VOID *pData);