714dd74636
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
207 lines
6.9 KiB
C++
Executable File
207 lines
6.9 KiB
C++
Executable File
/*
|
|
* ALSIMPLE.H
|
|
*
|
|
* Header file for ArchiveLib 2.0
|
|
*
|
|
* Copyright (c) 1996 Greenleaf Software, Inc.
|
|
* All Rights Reserved
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* This header file contains the definitions for the C/C++
|
|
* simplified interface. This interface consists of eight
|
|
* functions and a structure definition, all of which are
|
|
* found here. The idea is that this interface lets you
|
|
* manipulate PKZip archives containing files with little
|
|
* or not knowledge about the depths of ArchiveLib.
|
|
*
|
|
* CLASS DEFINITIONS:
|
|
*
|
|
* ALZipDir : A description of a single entry in an ZIP
|
|
* file. Some of the simplified interface
|
|
* functions use an array of ALZipDir entries
|
|
* to describe an archive.
|
|
*
|
|
* ALSimpleMonitor : The monitor used by the simplified interface
|
|
* functions. However, you don't have to know
|
|
* anything about this monitor class, its use
|
|
* is hidden.
|
|
*
|
|
* FUNCTIONS
|
|
*
|
|
* ALFreeDir()
|
|
* ALReadDir()
|
|
* ALWriteDir()
|
|
* ALSetName()
|
|
* ALSetComment()
|
|
* ALCreate()
|
|
* ALAppend()
|
|
* ALExtract()
|
|
* ALDelete()
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* February 14, 1996 2.0A : First release
|
|
*/
|
|
|
|
#if !defined( _ALSIMPLE_H )
|
|
#define _ALSIMPLE_H
|
|
|
|
#include "aldefs.h"
|
|
#include "monitor.h"
|
|
|
|
struct AL_CLASS_TYPE ALZipDir {
|
|
char AL_DLL_FAR *name; /* These two members are allocated using */
|
|
char AL_DLL_FAR *comment; /* new char[]. Let the library take care */
|
|
/* of allocation and deletion. */
|
|
long compressed_size;
|
|
long compressed_position;
|
|
long size;
|
|
long crc;
|
|
short int mark;
|
|
short int month;
|
|
short int date;
|
|
short int year;
|
|
short int hour;
|
|
short int minute;
|
|
short int second;
|
|
unsigned char r;
|
|
unsigned char a;
|
|
unsigned char s;
|
|
unsigned char h;
|
|
unsigned char d;
|
|
unsigned char level;
|
|
};
|
|
|
|
typedef void (AL_DLL_FAR * CALLBACK_FN )( const char AL_DLL_FAR *file_name,
|
|
int file_ratio,
|
|
int job_ratio );
|
|
|
|
#if defined( __cplusplus )
|
|
|
|
/*
|
|
* class ALSimpleMonitor
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* This class is used by the simplified interface functions as a monitor.
|
|
* For C and C++ programmers, the monitor simply calls a callback function
|
|
* supplied by the user. VB and Delphi users see the monitor as an object
|
|
* that sends text messages to windows they are using as part of their
|
|
* user interface.
|
|
*
|
|
* Regardless of the language you are using, this monitor class is hidden
|
|
* from you. However, it is pretty simple, and the details of what it
|
|
* is doing may help you understand the simplified interfaces.
|
|
*
|
|
* DATA MEMBERS
|
|
*
|
|
* mpCallbackFunction : A pointer to a callback function that
|
|
* the monitor will call from both
|
|
* Progress() and ArchiveOperation().
|
|
*
|
|
* mhTextWindow : The text window where file names will
|
|
* be sent from ArchiveOperation().
|
|
*
|
|
* mhFileProgressWindow : The text window where progress ratios
|
|
* will be sent from Progress().
|
|
*
|
|
* mhJobProgressWindow : The text window were job ratios will be
|
|
* sent from Progress().
|
|
*
|
|
* ALSimpleMonitor() : The constructor, two versions
|
|
* ~ALSimpleMonitor() : The destructor.
|
|
* Progress() : The archiving file/job progress function
|
|
* ArchiveOperation() : The function called at key points in the
|
|
* archiving routine.
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* February 14, 1996 2.0A : First release
|
|
*/
|
|
|
|
class AL_CLASS_TYPE ALSimpleMonitor : public ALMonitor { /* Tag public class */
|
|
/*
|
|
* Constructors, destructors, and friend classes
|
|
*/
|
|
public :
|
|
AL_PROTO ALSimpleMonitor( CALLBACK_FN fn );
|
|
//
|
|
// Alternate constructor, used by VB and Delphi
|
|
//
|
|
#if defined( AL_VB ) || defined( AL_VB32 )
|
|
AL_PROTO ALSimpleMonitor( HWND text_window,
|
|
HWND file_progress_window,
|
|
HWND job_progress_window );
|
|
#endif
|
|
virtual AL_PROTO ~ALSimpleMonitor();
|
|
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
|
|
void AL_DLL_FAR * AL_PROTO operator new( size_t size );
|
|
#endif
|
|
/*
|
|
* The copy constructor and assignment operator do not exist.
|
|
*/
|
|
protected :
|
|
AL_PROTO ALSimpleMonitor( const ALSimpleMonitor AL_DLL_FAR & );
|
|
ALSimpleMonitor AL_DLL_FAR & AL_PROTO operator=( const ALSimpleMonitor AL_DLL_FAR & );
|
|
/*
|
|
* Member functions
|
|
*/
|
|
protected :
|
|
virtual void AL_PROTO Progress( long object_so_far,
|
|
ALStorage AL_DLL_FAR & object );
|
|
virtual void AL_PROTO
|
|
ArchiveOperation( ALArchiveOperation operation,
|
|
ALArchive AL_DLL_FAR *archive,
|
|
ALEntry AL_DLL_FAR *job );
|
|
/*
|
|
* Data Members
|
|
*/
|
|
protected :
|
|
CALLBACK_FN mpCallbackFunction;
|
|
#if defined( AL_VB ) || defined( AL_VB32 )
|
|
HWND mhTextWindow;
|
|
HWND mhFileProgressWindow;
|
|
HWND mhJobProgressWindow;
|
|
#endif
|
|
public :
|
|
AL_CLASS_TAG( _ALSimpleMonitorTag );
|
|
};
|
|
#endif
|
|
|
|
|
|
#if defined( __cplusplus )
|
|
extern "C" {
|
|
#endif
|
|
|
|
AL_LINKAGE void AL_FUNCTION ALFreeDir( struct ALZipDir AL_DLL_FAR *z );
|
|
AL_LINKAGE struct ALZipDir AL_DLL_FAR * AL_FUNCTION
|
|
ALReadDir( char AL_DLL_FAR *filename,
|
|
int AL_DLL_FAR *count,
|
|
int AL_DLL_FAR *error );
|
|
AL_LINKAGE int AL_FUNCTION ALWriteDir( struct ALZipDir AL_DLL_FAR *z );
|
|
AL_LINKAGE void AL_FUNCTION ALSetName( struct ALZipDir AL_DLL_FAR *z,
|
|
char AL_DLL_FAR *name );
|
|
AL_LINKAGE void AL_FUNCTION ALSetComment( struct ALZipDir AL_DLL_FAR *z,
|
|
char AL_DLL_FAR *comment );
|
|
AL_LINKAGE int AL_FUNCTION ALCreate( char AL_DLL_FAR *name,
|
|
char AL_DLL_FAR *file_list,
|
|
int strip_path,
|
|
CALLBACK_FN callback );
|
|
AL_LINKAGE int AL_FUNCTION ALAppend( char AL_DLL_FAR *archive_name,
|
|
char AL_DLL_FAR *input_files,
|
|
int strip_path,
|
|
CALLBACK_FN callback );
|
|
AL_LINKAGE int AL_FUNCTION ALExtract( struct ALZipDir AL_DLL_FAR *z,
|
|
int strip_path,
|
|
CALLBACK_FN callback );
|
|
AL_LINKAGE int AL_FUNCTION ALDelete( struct ALZipDir AL_DLL_FAR *z,
|
|
CALLBACK_FN callback );
|
|
|
|
#if defined( __cplusplus )
|
|
};
|
|
#endif
|
|
|
|
#endif
|
|
|