// Program name: cfreader.h // Programmed by: Anthony Barbachan // Programmed in: C++ (Turbo C++ 3.0 Compatable) // Purpose: Header file for the CabinetFile object. (reads, extracts from cabs) // Version: 1.00 // Last modified on: 12/12/1998 // Version: 2.00 // Last modification date: 10/18/1999 // Changes: Replaced code with new classes' code. #ifndef __CFREADER_H__ #define __CFREADER_H__ #include #include #include #include #include #include //////////////////////////////////////////////////////////////////////////////// class cabinet_reader : public cabinet_header { protected: static void splitpath(const char* path, char* &dir, char* &file); static int createpath(const char* path); static int setdosfiletime(int handle, cabinet_file_header& fileinfo); static int restoreattributes(const char * fname, cabinet_file_header& fileinfo); protected: dynamic_array folder_array; dynamic_array file_array; ifstream cabfile; public: cabinet_reader() {} ~cabinet_reader() {} int open(const char* fname); void close(void); long find_file(const char* fname); int extract(cabinet_file_header& file); int extract(const char* fname); cabinet_folder_header& folder(size_t f) { return folder_array[f]; } cabinet_file_header& file(size_t f) { return file_array[f]; } }; //////////////////////////////////////////////////////////////////////////////// #endif