============================================================
           UnHki32.dll 萔(2005/05/29XV)
============================================================

萔ƍ\̂ɂ
  UnHki()Ȃǂł̕Ԃl̃G[R[hAFindFirst()Ȃǂł
  INDIVIDUALINFO\̂ȂǂL܂BڍׂȏUnlha-
  32.dllAPIwb_t@CQƂĉB


萔ꗗ
    o[W
    UNHKI_VERSION       :   o[Wԍ100{B
    UNHKI_SUBVERSION    :   rhԍB

    G[R[h
    UnHki()ȂǂŕԂG[lłB
    ERROR_READ_ONLY     :   (0x8006)
                            WJɑ݂t@Cǂݎ
                            pB
    ERROR_USER_SKIP     :   (0x8007)
                            [UȂsB
                            ʏ͂̃G[͕ԂĂȂ
                            cB
    ERROR_PASSWORD_FILE :   (0x800a)
                            t@C̃pX[hvȂB
                            (jse2XCb`̎w莞̂݁B)
    ERROR_FILE_OPEN     :   (0x800D)
                            t@CJ̃G[B
                            1. t@CJȂB
                            2. t@C쐬łȂB
                            3. t@Cw肳ĂȂB
    ERROR_MAKEDIRECTORY :   (0x8012)
                            fBNg̍쐬ɎsB
    ERROR_CANNOT_WRITE  :   (0x8013)
                            t@Cւ݂̏ɎsB
    ERROR_HUFFMAN_CODE  :   (0x8014)
                            ɂjĂB
    ERROR_HEADER_CRC    :   (0x8016)
                            ɂɊi[Ăt@C
                            CRCvȂB
    ERROR_ARC_FILE_OPEN :   (0x8018)
                            Ɋ֘ÃG[B
                            1. ɂXVB
                            2. ɂOpenArchive()ŊɊJ
                               ĂB
                            3. ɂJȂB
    ERROR_NOT_ARC_FILE  :   (0x8019)
                            Ƀt@Cw肳ĂȂ
                            B́Aɂ݂ȂB
    ERROR_FILE_STYLE    :   (0x801b)
                            HKI`̏ɂł͂ȂB
    ERROR_COMMAND_NAME  :   (0x801c)
                            R}hC̕@G[B
                            1. sȃR}hB
                            2. R}hw肳ĂȂB
                            3. XCb`ŕsȎw肪ꂽB
                               (ʏ킱̌͂肦Ȃ)
    ERROR_ALREADY_RUNNING:  (0x801f)
                            UnHki32.dllɓ쒆B
    ERROR_USER_CANCEL   :   (0x8020)
                            [U𒆎~B
    ERROR_HARC_ISNOT_OPENED:(0x8021)
                            Ƀnh擾Oɓ
                            sꂽB
    ERROR_ARC_READ_ONLY :   (0x8027)
                            Ɋ֘ÃG[B
                            1. CfbNXsB
                            2. sSFXX^uB
                            3. t@C폜ɎsB
                            4. SFXX^uTCY傫
                               B
    ERROR_NOT_FILENAME  :   (0x802b)
                            폜Ώ/ϖ̃t@Cw
                            肳ĂȂB
    ERROR_ADD_TO_LARC   :   (0x802e)
                            ɂSFXłB
    ERROR_SHARING       :   (0x8030)
                            WJ̃t@C̋LG[B
    ERROR_NOT_FIND_FILE :   (0x8031)
                            Ώۃt@C݂ȂB
    ERROR_CLOSE_FILE    :   (0x803c)
                            Jɂ̂ɎsB
    ERROR_UNEXPECTED_EOF:   (0x8042)
                            sȃt@CI[BȒPɌ
                            "ɂjĂ"\B

    `FbN[h
    CheckArchive()ŗp`FbŇlłB
    CHECKARCHIVE_RAPID(0)   :   ʏ탂[hBt@C̃wb_
                                ̂݃`FbN܂B
    CHECKARCHIVE_BASIC(1)   :   gpB
    CHECKARCHIVE_FULLCRC(2) :   [hBet@CCRC
                                킩ǂ`FbN܂
                                BSẴt@C𓀂
                                ŁAꑊ̎Ԃ|
                                B
    CHECKARCHIVE_RECOVERY(4):   gpB
    CHECKARCHIVE_SFX(8)     :   gpB
    CHECKARCHIVE_ALL(16)    :   gpB
    CHECKARCHIVE_ENDDATA(32):   gpB

    ֐R[h
    QueryFunctionList()ŗpAPIwlłB
    ISARC(0)                    :   UnHki()
    ISARC_GET_VERSION(1)        :   GetVersion()
    ISARC_GET_CURSOR_INTERVAL(2):   GetCursorInterval()
    ISARC_SET_CURSOR_INTERVAL(3):   SetCursorInterval()
    ISARC_GET_BACK_GROUND_MODE(4):  GetBackGroundMode()
    ISARC_SET_BACK_GROUND_MODE(5):  SetBackGroundMode()
    ISARC_GET_CURSOR_MODE(6)    :   GetCursorMode()
    ISARC_SET_CURSOR_MODE(7)    :   SetCursorMode()
    ISARC_GET_RUNNING(8)        :   GetRunning()
    ISARC_CHECK_ARCHIVE(16)     :   CheckArchive()
    ISARC_CONFIG_DIALOG(17)     :   ConfigDialog()
    ISARC_GET_FILE_COUNT(18)    :   GetFileCount()
    ISARC_QUERY_FUNCTION_LIST(19):  QueryFunctionList()
    ISARC_HOUT(20)              :   ---
    ISARC_STRUCTOUT(21)         :   ---
    ISARC_GET_ARC_FILE_INFO(22) :   ---
    ISARC_OPEN_ARCHIVE(23)      :   OpenArchive()
    ISARC_CLOSE_ARCHIVE(24)     :   CloseArchive()
    ISARC_FIND_FIRST(25)        :   FindFirst()
    ISARC_FIND_NEXT(26)         :   FindNext()
    ISARC_EXTRACT(27)           :   Extract()
    ISARC_ADD(28)               :   Add()
    ISARC_MOVE(29)              :   Move()
    ISARC_DELETE(30)            :   Delete()
    ISARC_SETOWNERWINDOW(31)    :   SetOwnerWindow()
    ISARC_CLEAROWNERWINDOW(32)  :   ClearOwnerWindow()
    ISARC_SETOWNERWINDOWEX(33)  :   SetOwnerWindowEx()
    ISARC_KILLOWNERWINDOWEX(34) :   KillOwnerWindowEx()
    ISARC_GET_ARC_FILE_NAME(40) :   GetArcFileName()
    ISARC_GET_ARC_FILE_SIZE(41) :   GetArcFileSize()
    ISARC_GET_ARC_ORIGINAL_SIZE(42):GetArcOriginalSize()
    ISARC_GET_ARC_COMPRESSED_SIZE(43)
                                :   GetArcCompressedSize()
    ISARC_GET_ARC_RATIO(44)     :   GetArcRatio()
    ISARC_GET_ARC_DATE(45)      :   GetArcDate()
    ISARC_GET_ARC_TIME(46)      :   GetArcTime()
    ISARC_GET_ARC_OS_TYPE(47)   :   GetArcOSType()
    ISARC_GET_ARC_IS_SFX_FILE(48):  GetArcIsSFXFile()
    ISARC_GET_ARC_WRITE_TIME_EX(49):GetArcWriteTimeEx()
    ISARC_GET_ARC_CREATE_TIME_EX(50)
                                :   GetArcCreateTimeEx()
    ISARC_GET_ARC_ACCESS_TIME_EX(51)
                                :   GetArcAccessTimeEx()
    ISARC_GET_ARC_CREATE_TIME_EX2(52)
                                :   GetArcCreateTimeEx2()
    ISARC_GET_ARC_WRITE_TIME_EX2(53)
                                :   GetArcWriteTimeEx2()
    ISARC_GET_FILE_NAME(57)     :   GetFileName()
    ISARC_GET_ORIGINAL_SIZE(58) :   GetOriginalSize()
    ISARC_GET_COMPRESSED_SIZE(59):  GetCompressedSize()
    ISARC_GET_RATIO(60)         :   GetRatio()
    ISARC_GET_DATE(61)          :   GetDate()
    ISARC_GET_TIME(62)          :   GetTime()
    ISARC_GET_CRC(63)           :   GetCRC()
    ISARC_GET_ATTRIBUTE(64)     :   GetAttribute()
    ISARC_GET_OS_TYPE(65)       :   GetOSType()
    ISARC_GET_METHOD(66)        :   GetMethod()
    ISARC_GET_WRITE_TIME(67)    :   GetWriteTime()
    ISARC_GET_CREATE_TIME(68)   :   GetCreateTime()
    ISARC_GET_ACCESS_TIME(69)   :   GetAccessTime()
    ISARC_GET_WRITE_TIME_EX(70) :   GetWriteTimeEx()
    ISARC_GET_CREATE_TIME_EX(71):   GetCreateTimeEx()
    ISARC_GET_ACCESS_TIME_EX(72):   GetAccessTimeEx()
    ISARC_SET_ENUM_MEMBERS_PROC(80):SetEnumMembersProc()
    ISARC_CLEAR_ENUM_MEMBERS_PROC(81)
                                :   ClearEnumMembersProc()
    ISARC_GET_ARC_FILE_SIZE_EX(82): GetArcFileSizeEx()
    ISARC_GET_ARC_ORIGINAL_SIZE_EX(83)
                                :   GetArcOriginalSizeEx()
    ISARC_GET_ARC_COMPRESSED_SIZE_EX(84)
                                :   GetArcCompressedSizeEx()
    ISARC_GET_ORIGINAL_SIZE_EX(85): GetOriginalSizeEx()
    ISARC_GET_COMPRESSED_SIZE_EX(86)
                                :   GetCompressedSizeEx()
    ISARC_SETOWNERWINDOWEX64(87):   SetOwnerWindowEx64()
    ISARC_KILLOWNERWINDOWEX64(88):  KillOwnerWindowEx64()
    ISARC_SET_ENUM_MEMBERS_PROC64(89)
                                :   SetEnumMembersProc64()
    ISARC_CLEAR_ENUM_MEMBERS_PROC64(90)
                                :   ClearEnumMembersProc64()
    ISARC_OPEN_ARCHIVE2(91)     :   OpenArchive2()
    ISARC_GET_ARC_READ_SIZE(92) :   GetArcReadSize()
    ISARC_GET_ARC_READ_SIZE_EX(93): GetArcReadSizeEx()

    OSR[h
    GetArcOSType()ȂǂŗpOS̎ނlłB
     0  :   MS-DOS
     2  :   UNIX
     4  :   MAC-OS
     5  :   OS/2
    10  :   ̑
    11  :   OS9
    12  :   OS/68K
    13  :   OS/386
    14  :   HUMAN
    15  :   CP/M
    16  :   FLEX
    17  :   Runser
    18  :   WindowsNT
    19  :   Windows95
    -1  :   G[

    SFXR[h
    GetArcIsSFXFile()ŗpSFX̎ނlłB
    SFX_NOT(0)                  :   (SFXł͂Ȃ)ʏ̏ɁB
    SFX_WIN32(2001)             :   WIN32 SFXɁB

    R[h
    GetAttribute()ŗpt@C̑lłB
    FA_RDONLY(0x01)             :   ǂݎpt@CB
    FA_HIDDEN(0x02)             :   Bt@CB
    FA_SYSTEM(0x04)             :   VXet@CB
    FA_LABEL(0x08)              :   {[xB
    FA_DIREC(0x10)              :   fBNgB
    FA_ARCH(0x20)               :   ۑrbgB
    FA_ENCRYPTED(0x40)          :   Ít@CB


\̈ꗗ
    INDIVIDUALINFO
    FindFirst()FindNext()ŗpi[t@C̏
    i[\̂łB
    typedef struct{
        DWORD   dwOriginalSize; :   t@C̃TCYB
        DWORD   dwCompressedSize;
                                :   t@C̈k̃TCYB
        DWORD   dwCRC;          :   t@CCRC32B
        UINT    uFlag;          :   ̌ʂԂ܂B
                                    Ԃl̓G[R[hB
        UINT    uOSType;        :   쐬ꂽOSBԂlOS
                                    R[hB
        WORD    wRatio;         :   t@C̈kB
        WORD    wDate;          :   t@C̍XVBԂl
                                    _DosDate\́B
        WORD    wTime;          :   t@C̍XVBԂ
                                    l_DosTime\́B
        char    szFileName[FNAME_MAX32+1];
                                :   t@CB
        char    dummy1[3];      :   _~[B
        char    szAttribute[8]; :   t@C̑B
        char    szMode[8];      :   t@C̈k\bhB
    }INDIVIDUALINFO;

    _DosDate
    GetArcDate()Ȃǂŗpt@C̍XV\\
    ̂łB
    struct{
        unsigned ft_day  :5;    :   t
        unsigned ft_month:4;    :   
        unsigned ft_year :7;    :   N
    }_DosDate;

    _DosTime
    GetArcTime()Ȃǂŗpt@C̍XV\\
    ̂łB
    struct{
        unsigned ft_tsec:5;     :   b2Ŋ
        unsigned ft_min :6;     :   
        unsigned ft_hour:5;     :   
    }_DosTime;


============================================================