
**************************************************************************
*                                                                        *
* UNEGG.dll License v10.4.21.x                                             *
*                                                                        *
**************************************************************************

[̼ å  ǻ]
1)   ()̽ƮƮ  Ȩ(http://www.altools.co.kr) ٿε ޾   ֽϴ.
2)   ϴ  ()̽ƮƮ ϴ  ̼ å   ֵǸ,  ʴ      ϴ.
3)     Ͽ     ̸ ϰ   ϱ  , , , ü, 
  м/ ()̽ƮƮ   ޾ƾ մϴ.
4)     ϱ Ͽ ()̽ƮƮ   ޴  쿡   ڿ  ΰ  ֽϴ.
5)     ϱ Ͽ ()̽ƮƮ     ڴ 3ڿ ε    Ǹ 
  絵, , , 㺸   ϴ.
6)   ϴ  ε ̳ 뵵 ̿ܿ   /  濡 Ȱǰų ̿   ֵǴ  
  Ǵ ()̽ƮƮ  å ݵǴ 쿡    㰡  öȸ     ü , å ߻ϴ  
  ϴ ڿ å ͼӵǸ ұϿ   ֽϴ.
7)    뵵  ϴ  ߻(Ǵ ߻ ) ǰ  ռ    å ڿ  ̷ Ͽ 
   ߴ, / ս, 3 ǰ(ǰ)   ߻   Ǵ  ؿ Ͽ ()̽ƮƮ å  ʽϴ. 
8) ()̽ƮƮ   ̼ å      , Ǵ  ֽ  ŵ ̼ å  ̼ å 
  켱Ͽ ˴ϴ.  
9)   ϴ ڴ ()̽ƮƮ ȣ, ǥ, ΰ, ̹, ĳ  Ƿ     ϴ  ()̽ƮƮ
    ʿմϴ.

[۱ ]
-  ⿡  zlib http://www.zlib.net  ҽ Ͽ "zlib License" ϴ.
-  ⿡  bzip2 ̺귯 http://bzip.org  ҽ Ͽ "bzip License" ϴ.
-   ۱ ̽ƮƮ(http://www.estsoft.co.kr) ֽϴ.

**************************************************************************
*                                                                        *
* UNEGG.dll (v10.4.21.x)                                             *
*                                                                        *
**************************************************************************

UNEGG.dll 32bit EGG  ALZ    ִ  մϴ.
Unicode մϴ.


*************************************
*                                   *
* Types                             *
*                                   *
*************************************

typedef size_t egg_handle;
// UnEGGκ  ۾  νϽ Ÿϴ.
// CreateEggԼ ؼ ϸ DestroyEggԼ  մϴ.
// κ Լ  egg_handle 䱸մϴ.


typedef int egg_type;
//   Ÿ Ÿ.

struct EGGFileHeader
{
    size_t size;
    LPCTSTR fileName;
    LPCTSTR comment;
    unsigned __int64 packedSize;
    unsigned __int64 unpackedSize;
    unsigned int attribute;
    unsigned int crc;
    unsigned int method;
    time_t lastModified;
    BOOL encrypted;
};
//  Ͽ  


*************************************
*                                   *
* Constants                         *
*                                   *
*************************************

const egg_type EGG_TYPE_INVALID = 0;
//  ʴ 

const egg_type EGG_TYPE_ALZ = 1;
// ALZ ǹմϴ.

const egg_type EGG_TYPE_EGG = 2;
// EGG ǹմϴ.

const UINT EGG_ERROR_SUCCESS = 1;
// 

const UINT EGG_ERROR_FAIL = 0;
// 

const UINT EGG_ERROR_SKIP = 2;
// ǳʶٱ

const UINT EGG_ERROR_CANCEL = 3;
// 

const UINT EGG_ERROR_IO = 4;
// I/O 

const UINT EGG_ERROR_TYPEMISMATCH = 5;
//  ġ 

const UINT EGG_ERROR_FILE = 6;
// File ۾ 

const UINT EGG_ERROR_FORMAT = 7;
// Format 

const UINT EGG_ERROR_ALGORITHM = 8;
// Algorithm 

const UINT EGG_ERROR_WRONGPASSWORD = 9;
// Password 

const UINT EGG_WORKCODE_NONE = 0;
// ⺻

const UINT EGG_WORKCODE_SCAN = 1;
//   ϴ Դϴ.

const UINT EGG_WORKCODE_EXTRACT = 2;
//   ۾ Դϴ.

const UINT EGG_WORKCODE_TEST = 3;
//  ׽Ʈ ۾ Դϴ.

*************************************
*                                   *
* Callback Event                    *
*                                   *
*************************************

namespace eggevent
{
    struct Extract
    {
        static const UINT CODE = 1;

        size_t index;
        LPCTSTR nameInArchive;
        TCHAR fileName[MAX_PATH];
    };
    //  Ǯ θ , EGG_ERROR_SKIP ȯν  ʰ ǳʶ  ֽϴ.

    struct Progress
    {
        static const UINT CODE = 2;
        short total;
        short current;
    };
    // б   ۾  Progress  ó, EGG_ERROR_CANCEL ؼ   Ҹ   ֽϴ.

    struct Start
    {
        static const UINT CODE = 3;
        UINT code;
    };
    // ü ۾ ۵Ǵ  ȣ˴ϴ.
    
    struct Finish
    {
        static const UINT CODE = 4;
        UINT code;
        UINT result;
    };
    // ü ۾ Ǵ  ȣ˴ϴ.

    struct ActivityStart
    {
        static const UINT CODE = 5;
        size_t index;
        UINT code;
    };
    // ü ۾  ۾ ۽ ȣ˴ϴ.

    struct ActivityFinish
    {
        static const UINT CODE = 6;
        size_t index;
        UINT code;
        UINT result;
    };
    // ü ۾  ۾  ȣ˴ϴ.

    struct QueryPassword
    {
        static const UINT CODE = 7;
        size_t index;
        size_t queryCount;
        TCHAR password[1024];
    };
    // йȣ 䱸  ȣ˴ϴ.

    struct Error
    {
        static const UINT CODE = 8;
        UINT code;
    };
    //  ߻ ȣ˴ϴ. EGG_ERROR_CANCEL ؼ ߴ  ֽϴ.

    struct Test
    {
        static const UINT CODE = 9;
        size_t index;
        LPCTSTR nameInArchive;
        BOOL skipThisFile;
    };
    // ׽Ʈ ۾    ȣ˴ϴ. EGG_ERROR_CANCEL ؼ ߴ  ֽϴ.

    typedef UINT (__cdecl *Proc)(void* user, UINT code, void* param);
    // Event Procedure 
};


*************************************
*                                   *
* Functions                         *
*                                   *
*************************************

typedef UINT (__cdecl *EGGFunction_CreateEgg)(egg_handle* handle, EGG_EventProc eventProc, void* user);
// ۾   ü 
// handle : ۾  ü 
// eventProc : Eventó  Callback
// user : Callbackȣ   

typedef UINT (__cdecl *EGGFunction_DestroyEgg)(egg_handle* handle);
// ۾  ü Ҹų  
// handle : ۾   ü

typedef UINT (__cdecl *EGGFunction_IsValidArchive)(const _TCHAR* fileName, egg_type* result);
//     Ȯ
// filename : Ȯ  
// result : Ȯε  

typedef UINT (__cdecl *EGGFunction_OpenArchive)(egg_handle handle, const _TCHAR* fileName);
//     ϱ    ˻
// handle :  ۾ü
// filename : ۾   θ

typedef UINT (__cdecl *EGGFunction_CloseArchive)(egg_handle handle);
//   ҸŰ Ͽ   
// handle :  ۾ü

typedef UINT (__cdecl *EGGFunction_Extract)(egg_handle handle);
//  ü   մϴ.
// handle :  ۾ü

typedef UINT (__cdecl *EGGFunction_Test)(egg_handle handle);
//  ü    ׽Ʈ մϴ.
// handle :  ۾ü

typedef UINT (__cdecl *EGGFunction_GetFileCount)(egg_handle handle, size_t* count);
//  Ͽ    
// handle :  ۾ü
// count :  ޾ƿ  

typedef UINT (__cdecl *EGGFunction_GetFileHeader)(egg_handle handle, size_t index, EGGFileHeader* header);
// index°   
// handle :  ۾ü
// index : ⸦ ϴ  ȣ
// header :  ޾ƿ  ü




**************************************************************************
*                                                                        *
* UNEGG.dll History                                                      *
*                                                                        *
**************************************************************************
- 2010-04-21 : Ҿ ó 
- 2010-01-27 :  ׽Ʈ  Լ  ߰
- 2009-11-10 : I/O , 64Ʈ 
- 2009-09-23 : LZMA˰ ߰(v9.9.23.0)
- 2009-07-01 : ˼.(v9.9.7.4)
- 2009-04-24 : Extract̺Ʈ ߰.(v9.4.24.6)
- 2009-03-16 :  ۾   .(v9.3.16.1)
- 2009-02-02 :   ۼ Ϸ.(v9.2.2.8)