You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.6 KiB
102 lines
2.6 KiB
#ifndef _CDL_H_
|
|
#define _CDL_H_
|
|
|
|
// #define USE_BINDHOST 1
|
|
|
|
|
|
// CDL.h
|
|
// Code Downloader header file
|
|
//
|
|
// Read "class descriptions" first for understanding how the
|
|
// code downloader works.
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*** ERF - Error structure
|
|
*
|
|
* This structure returns error information from FCI/FDI. The caller should
|
|
* not modify this structure.
|
|
*/
|
|
typedef struct {
|
|
int erfOper; // FCI/FDI error code -- see FDIERROR_XXX
|
|
// and FCIERR_XXX equates for details.
|
|
|
|
int erfType; // Optional error value filled in by FCI/FDI.
|
|
// For FCI, this is usually the C run-time
|
|
// *errno* value.
|
|
|
|
BOOL fError; // TRUE => error present
|
|
} ERF; /* erf */
|
|
typedef ERF FAR *PERF; /* perf */
|
|
|
|
|
|
// buffer size for downloads in CBSC::m_cbuffer
|
|
#define BUFFERMAX 2048
|
|
|
|
// File Name List
|
|
//
|
|
// used as pFilesToExtract to track files in the CAB we need extracted
|
|
//
|
|
// or a pFileList in PSESSION
|
|
//
|
|
// We keep track of all files that are in a cabinet
|
|
// keeping their names in a list and when the download
|
|
// is complete we use this list to delete temp files
|
|
|
|
struct sFNAME {
|
|
LPSTR pszFilename;
|
|
struct sFNAME *pNextName;
|
|
DWORD status; /* out */
|
|
};
|
|
|
|
typedef struct sFNAME FNAME;
|
|
typedef FNAME *PFNAME;
|
|
|
|
// SFNAME.status: success is 0 or non-zero error code in extraction
|
|
#define SFNAME_INIT 1
|
|
#define SFNAME_EXTRACTED 0
|
|
|
|
// FILE extentions we know about
|
|
typedef enum {
|
|
FILEXTN_NONE,
|
|
FILEXTN_UNKNOWN,
|
|
FILEXTN_CAB,
|
|
FILEXTN_DLL,
|
|
FILEXTN_OCX,
|
|
FILEXTN_INF,
|
|
FILEXTN_EXE,
|
|
} FILEXTN;
|
|
|
|
|
|
//
|
|
// Master State Information for File Extraction: used by extract.c
|
|
//
|
|
|
|
typedef struct {
|
|
UINT cbCabSize;
|
|
ERF erf;
|
|
PFNAME pFileList; // List of Files in CAB
|
|
UINT cFiles;
|
|
DWORD flags; // flags: see below for list
|
|
char achLocation[MAX_PATH]; // Dest Dir
|
|
char achFile[MAX_PATH]; // Current File
|
|
char achCabPath[MAX_PATH]; // Current Path to cabs
|
|
PFNAME pFilesToExtract; // files to extract;null=enumerate only
|
|
|
|
} SESSION, *PSESSION;
|
|
|
|
typedef enum {
|
|
SESSION_FLAG_NONE = 0x0,
|
|
SESSION_FLAG_ENUMERATE = 0x1,
|
|
SESSION_FLAG_EXTRACT_ALL = 0x2,
|
|
SESSION_FLAG_EXTRACTED_ALL = 0x4
|
|
} SESSION_FLAGS;
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif // _CDL_H_
|