Leaked source code of windows server 2003
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.
|
|
#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_
|