#ifndef _TAPDEF
#define _TAPDEF
//
// TAP.H
//
// TAP
// File Transfer Data Sharing
// Shared Header
// Revision 1.10
//
// 12/28/94 First created
// 4/24/95 Structures aligned with DWORDS
// Dynamic extension lists added
//
// #DEFINE for INI Application name
#define TAP_INI_APPNAME "TAP Applications"
// DEFINEs for iFlags of TAPINFO
#define TAP_EMERGENCY_CLOSE 0x0001 // Upon receiving this message the file must be immediately closed
#define TAP_CANCEL 0x0002 // File transfer cancelled, file being transferred is aborted
#define TAP_EOF 0x0004 // End of file, file being transferred is now complete
#define TAP_BOF 0x0008 // Begin of file, this is the first information about a new file
#define TAP_EOB 0x0010 // End of batch, transfer is now complete, Application should close pipe *
#define TAP_NEW_SIZE 0x0020 // Set when the current file size has changed
#define TAP_VERSION 0x4000 // Version packet
#define TAP_ACKNOWLEDGE 0x8000 // Set to indicate that acknowledgement is requested
//
// * This flag means the pipe should be closed because no more files
// will be transferred
// DEFINEs for file size
#define TAP_SIZE_UNKNOWN -1 // File size will be -1 if unknown
typedef union _TAPPACKET {
// This structure is used for TAP_EMERGENCY_CLOSE, TAP_EOF, TAP_EOB, and TAP_ACKNOWLEDGE
struct {
USHORT cb; // Number of bytes in the structure
USHORT usFlags; // Flags, [ TAP_EMERGENCY_CLOSE, TAP_EOF, TAP_EOB, TAP_ACKNOWLEDGE ]
} flagPacket;
// This structure is used for TAP_NEW_SIZE
struct {
USHORT cb; // Number of bytes in the structure
USHORT usFlags; // Flags, TAP_NEW_SIZE | [ TAP_EMERGENCY_CLOSE, TAP_EOF, TAP_EOB, TAP_ACKNOWLEDGE, ]
LONG lCurrentFileSize; // Partial current size of the file
LONG lCompleteFileSize; // Size the file will be when complete (-1 if unknown)
} newSizePacket;
// This structure is used for TAP_BOF
struct {
USHORT cb; // Number of bytes in the structure
USHORT usFlags; // Flags, TAP_BOF | [ TAP_ACKNOWLEDGE, ]
LONG lCurrentFileSize; // Partial current size of the file
LONG lCompleteFileSize; // Size the file will be when complete (-1 if unknown)
USHORT usFileNameLength; // Length of file name string
UCHAR szFileName[1]; // Fully qualified file name
} beginFilePacket;
// This structure is used for TAP_VERSION
struct {
USHORT cb; // Number of bytes in the structure
USHORT usFlags; // Flags, TAP_VERSION | [ TAP_ACKNOWLEDGE, ]
USHORT usVersionLength; // Length of version string
UCHAR szVersion[1]; // Version string
} versionPacket;
} TAPPACKET, *PTAPPACKET;
typedef struct _EXTENSIONLIST
{
ULONG cb; // Number of bytes in the structure
UCHAR szExtension[1]; // Extension handled by this application (of variable size)
// Here, a size of 1 is used to compensate for the NULL
// terminator.
} EXTENSIONLIST, *PEXTENSIONLIST;
typedef struct _TAPAPPENTRY
{
ULONG cb; // Number of bytes in this structure,
// including following EXTENSIONLISTs
UCHAR szDescription[256]; // Description of this TAP application
UCHAR szProgram[CCHMAXPATH]; // Fully qualified path and executable
UCHAR szParams[84]; // Command line parameters
ULONG ulExtensions; // Number of EXTENSIONLISTs that follow
// Extensions handled by this application
// will follow in memory
} TAPAPPENTRY, *PTAPAPPENTRY;
#endif