亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ctkunrar.cls

?? VB調用UNRAR.DLL解壓RAR壓縮包 UNRAR.DLL在包里
?? CLS
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "CTKUnrar"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

'// ADDED
'// Converts strings from Unicode to OEM encoding to make sure
'// certain characters in paths are handled properly by RARProcessFile
Private Declare Sub CharToOem Lib "user32" Alias "CharToOemA" _
 (ByVal StrFrom As String, ByVal StrTo As String)

'// ADDED
'// For use by LongToUnsigned
Private Const OFFSET_4 = 4294967296#

Event OpenError(lngErrorNo As Long, strErrorMsg As String, strFilename As String)
Event ProcessError(lngErrorNo As Long, strErrorMsg As String, strFilename As String)
Event CommentError(lngErrorNo As Long, strErrorMsg As String, strFilename As String)
Event CommentFound(strFilename As String, strComment As String)
Event ProcessingFile(strFilename As String, dblFileSize As Double, datFileTime As Date, intMajorVer As Integer, intMinorVer As Integer, lngPackingMethod As Long, lngFileAttr As Long)
Event NextVolumne(strFilename As String, ByRef blnContinue As Boolean)
Event MissingFile(strFilename As String, ByRef strNewFilename As String)
Event MissingPassword(ByRef strNewPassword As String)
Event Progress(dblFileSize As Double, dblExtracted As Double)

' Private variables
Private m_dblLastFileSize As Double
Private m_dblLastFileUnpacked As Double
Private m_intLastPercentStep As Integer
Private m_blnPasswordProtected As Boolean
' Properties
Private m_intProgressSteps As Integer
Private m_strLastErrorMsg As String

Public Function LongToUnsigned(Value As Long) As Double
    '// ADDED
    '// This functions makes sure the unsigned integers
    '// that unrar.dll returns are handled properly as
    '// VB does not support unsigned integers natively
    '// See KB article 189323 for more info
    '// http://support.microsoft.com/?kbid=189323
    '
    'The function takes an unsigned Long from an API and
    'converts it to a Double for display or arithmetic purposes
    '
    If Value < 0 Then
        LongToUnsigned = Value + OFFSET_4
    Else
        LongToUnsigned = Value
    End If
    '
End Function
Private Sub Class_Initialize()
    m_intProgressSteps = 4
    m_strLastErrorMsg = ""
    m_blnPasswordProtected = False
End Sub

Private Sub Class_Terminate()
'
End Sub

Public Function ListRarFiles(strRarFile As String, arrstrFilenames() As String, Optional strPassword As String = "") As Boolean
    ListRarFiles = HandleRarFiles(strRarFile, OP_LIST, arrstrFilenames, , strPassword)
End Function

Public Function TestRarFiles(strRarFile As String, Optional strPassword As String = "") As Boolean
    TestRarFiles = HandleRarFiles(strRarFile, OP_TEST, , , strPassword)
End Function

Public Function ExtractRarFiles(strRarFile As String, strDestPath As String, Optional strPassword As String = "") As Boolean
    ExtractRarFiles = HandleRarFiles(strRarFile, OP_EXTRACT, , strDestPath, strPassword)
End Function

Private Function HandleRarFiles(strRarFile As String, opMode As RarOperations, Optional arrstrFilenames As Variant, Optional strDestPath As String = "", Optional strPassword As String = "") As Boolean
    Dim uRAR As RAROpenArchiveData
    Dim uHeaderEx As RARHeaderDataEx
    Dim lngRarHandle As Long
    Dim intStatus As Integer
    Dim intReturn As Integer
    Dim strCurrentFilename As String
    Dim strLastFilename As String
    Dim lngpFilenames As Long
    Dim strTmp As String

    HandleRarFiles = False

    '// ADDED
    '// See API declaration
    CharToOem strDestPath, strDestPath

    ' Fill the rar header structure
    uRAR.ArcName = strRarFile
    uRAR.CmtBuf = Space(16384)
    uRAR.CmtBufSize = 16384
    If opMode = OP_LIST Then
        uRAR.OpenMode = RAR_OM_LIST
    ElseIf opMode = OP_TEST Or opMode = OP_EXTRACT Then
        uRAR.OpenMode = RAR_OM_EXTRACT
    Else
        RaiseEvent ProcessError(ERAR_UNKNOWN_ERROR, "Unknown extracion mode", strRarFile)
        m_strLastErrorMsg = "Unknown extracion mode"
        Exit Function
    End If

    If opMode = OP_LIST Then
        lngpFilenames = 0
        If UBound(arrstrFilenames) = 0 Then
            RaiseEvent ProcessError(ERAR_DEST_ARR_TO_SMALL, "Supplied array to small to fit all files", strCurrentFilename)
            m_strLastErrorMsg = "Supplied array to small to fit all files"
            Exit Function
        End If
    End If

    ' Open the archive
    lngRarHandle = RAROpenArchive(uRAR)
    If uRAR.OpenResult <> 0 Then
        ' Something went wrong
        Call OpenError(uRAR.OpenResult, strRarFile)
    Else
        ' Set the callback
        Call RARSetCallback(lngRarHandle, AddressOf MyCallBack, ObjPtr(Me))
        ' If the user supplied a password, set it
        If Len(strPassword) > 0 Then
            Call RARSetPassword(lngRarHandle, strPassword)
            m_blnPasswordProtected = True
        End If
        If uRAR.CmtState = 0 Then
            ' No comment
        ElseIf uRAR.CmtState = 1 Then
            ' Comment
            RaiseEvent CommentFound(strRarFile, uRAR.CmtBuf)
        Else
            Call CommentError(uRAR.CmtState, strRarFile)
        End If

        strLastFilename = ""
        m_dblLastFileSize = 0
        m_dblLastFileUnpacked = 0
        m_intLastPercentStep = 0
        ' Start processing the files
        intStatus = RARReadHeaderEx(lngRarHandle, uHeaderEx)
        strTmp = Left(uHeaderEx.ArcName, InStr(1, uHeaderEx.ArcName, vbNullChar) - 1)
        Call NextVolume(strTmp)
        Do Until intStatus <> 0
            ' Get the current filename
            strCurrentFilename = Left(uHeaderEx.FileName, InStr(1, uHeaderEx.FileName, vbNullChar) - 1)
            
            '// ADDED
            '// Makes sure unsigned ints are handled properly
            '// see function LongToUnsigned for more info
            UnpSizeHighEx = LongToUnsigned(uHeaderEx.UnpSizeHigh)
            UnpSizeEx = LongToUnsigned(uHeaderEx.UnpSize)
            
            If strLastFilename <> strCurrentFilename Then
                m_dblLastFileSize = MakeDouble(uHeaderEx.UnpSizeHigh, uHeaderEx.UnpSize)
                m_dblLastFileUnpacked = 0
                m_intLastPercentStep = 0
                RaiseEvent ProcessingFile(strCurrentFilename, m_dblLastFileSize, Now(), uHeaderEx.UnpVer / 10, uHeaderEx.UnpVer Mod 10, uHeaderEx.Method, uHeaderEx.FileAttr)
                strLastFilename = strCurrentFilename
                If opMode = OP_LIST Then
                    If lngpFilenames > UBound(arrstrFilenames) Then
                        RaiseEvent ProcessError(ERAR_DEST_ARR_TO_SMALL, "Supplied array to small to fit all files", strCurrentFilename)
                        m_strLastErrorMsg = "Supplied array to small to fit all files"
                        HandleRarFiles = False
                        Exit Do
                    End If
                    arrstrFilenames(lngpFilenames) = strCurrentFilename
                    lngpFilenames = lngpFilenames + 1
                End If
            End If
            intReturn = ERAR_UNKNOWN_ERROR
            If opMode = OP_LIST Then
                intReturn = RARProcessFile(lngRarHandle, RAR_SKIP, "", "")
            ElseIf opMode = OP_TEST Then
                intReturn = RARProcessFile(lngRarHandle, RAR_TEST, "", "")
            ElseIf opMode = OP_EXTRACT Then
                intReturn = RARProcessFile(lngRarHandle, RAR_EXTRACT, strDestPath, "")
            End If
            If intReturn = 0 Then
                HandleRarFiles = True
            Else
                ' Handle error and quit
                Call ProcessError(CLng(intReturn), strCurrentFilename)
                HandleRarFiles = False
                Exit Do
            End If
            ' Handle next file
            intStatus = RARReadHeaderEx(lngRarHandle, uHeaderEx)
        Loop
'        RaiseEvent Progress(m_dblLastFileUnpacked, m_dblLastFileUnpacked)
        Call RARCloseArchive(lngRarHandle)
    End If
End Function

Friend Sub ProcessingLength(lngBufferSize As Long)
    ' Keep control of how much data we have extracted
    m_dblLastFileUnpacked = m_dblLastFileUnpacked + lngBufferSize
    If m_dblLastFileSize <> 0 Then
        ' Send an event to the listener whenever we reach the next progress step (0%, x%, 2x%, 3x% etc)
        If CInt(m_dblLastFileUnpacked / m_dblLastFileSize * 100) > m_intLastPercentStep + m_intProgressSteps Then
            RaiseEvent Progress(m_dblLastFileSize, m_dblLastFileUnpacked)
            ' Keep track of last percentage step
            m_intLastPercentStep = m_intLastPercentStep + m_intProgressSteps
        End If
    End If
End Sub

Friend Function NextVolume(strFilename As String) As Boolean
    Dim blnContinue As Boolean

    RaiseEvent NextVolumne(strFilename, blnContinue)
    NextVolume = blnContinue
End Function

Friend Function FindMissingFile(strFilename As String) As String
    Dim strNewFile As String

    RaiseEvent MissingFile(strFilename, strNewFile)
    FindMissingFile = strNewFile
End Function

Friend Function MissingPassword() As String
    Dim strNewPassword As String

    m_blnPasswordProtected = True
    RaiseEvent MissingPassword(strNewPassword)
    MissingPassword = strNewPassword
End Function

Private Sub CommentError(lngErrorNum As Long, strRarName As String)
    Dim strErrorMsg As String

    Select Case lngErrorNum
        Case ERAR_NO_MEMORY
            strErrorMsg = "Not enough memory"
        Case ERAR_BAD_DATA:
            strErrorMsg = "Broken comment"
        Case ERAR_UNKNOWN_FORMAT:
            strErrorMsg = "Unknown comment format"
        Case ERAR_SMALL_BUF:
            strErrorMsg = "Buffer too small, comments not completely read"
        Case Else
            strErrorMsg = "Unknown error"
    End Select
    m_strLastErrorMsg = strErrorMsg
    RaiseEvent CommentError(lngErrorNum, strErrorMsg, strRarName)
End Sub

Private Sub OpenError(lngErrorNum As Long, strRarName As String)
    Dim strErrorMsg As String

    Select Case lngErrorNum
        Case ERAR_NO_MEMORY
            strErrorMsg = "Not enough memory"
        Case ERAR_EOPEN:
            strErrorMsg = "Cannot open file"
        Case ERAR_BAD_ARCHIVE:
            strErrorMsg = "File is not RAR archive"
        Case ERAR_BAD_DATA:
            strErrorMsg = "Archive header broken"
        Case Else
            strErrorMsg = "Unknown error"
    End Select
    m_strLastErrorMsg = strErrorMsg
    RaiseEvent OpenError(lngErrorNum, strErrorMsg, strRarName)
End Sub

Private Sub ProcessError(lngErrorNum As Long, strRarName As String)
    Dim strErrorMsg As String

    Select Case lngErrorNum
        Case ERAR_UNKNOWN_FORMAT
            strErrorMsg = "Unknown archive format"
        Case ERAR_BAD_ARCHIVE:
            strErrorMsg = "Bad volume"
        Case ERAR_ECREATE:
            strErrorMsg = "File create error"
        Case ERAR_EOPEN:
            strErrorMsg = "Volume open error"
        Case ERAR_ECLOSE:
            strErrorMsg = "File close error"
        Case ERAR_EREAD:
            strErrorMsg = "Read error"
        Case ERAR_EWRITE:
            strErrorMsg = "Write error"
        Case ERAR_BAD_DATA:
            If m_blnPasswordProtected Then
                strErrorMsg = "CRC error - Wrong password?"
            Else
                strErrorMsg = "CRC error"
            End If
        Case Else
            strErrorMsg = "Unknown error"
    End Select
    m_strLastErrorMsg = strErrorMsg
    RaiseEvent ProcessError(lngErrorNum, strErrorMsg, strRarName)
End Sub

' The intProgressSteps property
Property Get intProgressSteps() As Integer
    intProgressSteps = m_intProgressSteps
End Property
Property Let intProgressSteps(ByVal newValue As Integer)
    m_intProgressSteps = newValue
End Property

' The strLastErrorMsg property
Property Get strLastErrorMsg() As String
    strLastErrorMsg = m_strLastErrorMsg
End Property

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九影视网| 久久精品视频一区二区三区| 成人av先锋影音| 国产91露脸合集magnet| 精品夜夜嗨av一区二区三区| 免费在线观看一区二区三区| 五月天丁香久久| 日本vs亚洲vs韩国一区三区| 日韩精品成人一区二区三区| 日本不卡中文字幕| 裸体健美xxxx欧美裸体表演| 久久丁香综合五月国产三级网站 | 欧美剧情电影在线观看完整版免费励志电影| 成人高清视频免费观看| 色综合久久88色综合天天免费| 99久久er热在这里只有精品15| 91污片在线观看| 欧美视频一区二区| 日韩欧美一级二级三级久久久| 2023国产一二三区日本精品2022| 久久久99精品久久| 亚洲乱码日产精品bd | 日韩一级免费观看| 久久综合色婷婷| 国产精品日日摸夜夜摸av| 亚洲激情图片qvod| 日本不卡一二三区黄网| 国产高清精品在线| 97精品视频在线观看自产线路二| 欧洲一区在线电影| 26uuu亚洲婷婷狠狠天堂| 亚洲国产成人午夜在线一区| 亚洲视频综合在线| 日韩高清不卡在线| 成人一区在线观看| 欧美一区二区在线看| 国产亚洲短视频| 亚洲一区二区三区精品在线| 蓝色福利精品导航| 日本韩国欧美一区二区三区| 精品日韩在线观看| 亚洲一级片在线观看| 麻豆精品视频在线观看视频| jizzjizzjizz欧美| 精品少妇一区二区三区在线播放| 国产精品素人视频| 日韩av电影免费观看高清完整版在线观看| 美女一区二区三区| 色视频成人在线观看免| 久久久精品黄色| 亚洲午夜av在线| 99精品黄色片免费大全| 欧美大片国产精品| 亚洲第一主播视频| 91精彩视频在线观看| 久久久久99精品国产片| 男男成人高潮片免费网站| 日本丰满少妇一区二区三区| 国产三级欧美三级日产三级99| 亚洲bt欧美bt精品| 色婷婷综合久久久中文一区二区| 久久久久久久综合色一本| 亚洲成人免费视| 91久久国产综合久久| 国产精品全国免费观看高清| 精品一区精品二区高清| 日韩一区二区三区三四区视频在线观看| 亚洲人成小说网站色在线| 国产精品888| 久久先锋资源网| 国内久久精品视频| 日韩欧美中文字幕精品| 日本亚洲三级在线| 欧美电影一区二区| 丝袜国产日韩另类美女| 欧美手机在线视频| 天天色天天操综合| 欧美久久久久久久久中文字幕| 日韩美女精品在线| 一本到高清视频免费精品| 国产精品久久网站| 91免费视频网址| 亚洲色图第一区| 91精品福利视频| 午夜精品福利在线| 日韩午夜在线观看| 国产精品77777竹菊影视小说| 久久久精品影视| 成人久久视频在线观看| 亚洲视频一区在线| 91极品美女在线| 五月天欧美精品| www欧美成人18+| 成人高清免费观看| 亚洲午夜国产一区99re久久| 91精品福利在线一区二区三区| 日本成人在线视频网站| 国产三级精品三级| 欧美三级日韩在线| 国产在线视频一区二区| 国产精品另类一区| 欧美亚洲另类激情小说| 青娱乐精品视频| 国产亚洲一区二区三区四区| 91视频xxxx| 美女视频免费一区| 国产精品久久网站| 91精品免费在线观看| 国产精品一区二区三区乱码 | 亚洲精品国产成人久久av盗摄| 欧美主播一区二区三区| 黄色日韩三级电影| 最新中文字幕一区二区三区 | 国产麻豆精品95视频| 亚洲欧美另类小说视频| 欧美一区二区三区性视频| 国产成人免费视频网站高清观看视频 | 欧美三级在线看| 国产毛片精品一区| 五月激情综合网| 国产精品美女久久久久av爽李琼 | 国产人成亚洲第一网站在线播放 | 亚洲精品国产高清久久伦理二区| 日韩一级大片在线观看| 91啪亚洲精品| 国产精品1024久久| 日本成人在线网站| 亚洲制服丝袜一区| 中文字幕一区二区三区视频| 欧美一区二区福利在线| 欧美亚洲高清一区| 91亚洲精华国产精华精华液| 国产在线不卡一区| 午夜久久福利影院| 一区二区三区精品在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美日韩不卡一区二区| av午夜精品一区二区三区| 国产一区亚洲一区| 久久超级碰视频| 日韩av高清在线观看| 午夜久久久久久| 一区二区三区四区视频精品免费| 欧美韩国日本一区| 久久精品欧美日韩精品| 欧美大尺度电影在线| 欧美一级片免费看| 欧美区在线观看| 69成人精品免费视频| 欧美日韩精品一区二区三区四区 | 欧美吻胸吃奶大尺度电影| 99精品久久只有精品| 成人网男人的天堂| 成人手机在线视频| 成人国产精品免费观看动漫| 国产91对白在线观看九色| 东方欧美亚洲色图在线| 国产精品亚洲第一区在线暖暖韩国| 玖玖九九国产精品| 精品一二三四区| 国产91精品一区二区麻豆亚洲| 国产一本一道久久香蕉| 国产传媒日韩欧美成人| 成人动漫一区二区三区| 色综合色狠狠天天综合色| 在线日韩国产精品| 欧美久久一二三四区| 欧美成人精精品一区二区频| 精品国产伦一区二区三区免费| 日韩免费电影网站| 亚洲国产精品精华液ab| 亚洲人成亚洲人成在线观看图片 | 国产免费成人在线视频| 中文一区二区在线观看| 国产精品电影院| 亚洲一区二区免费视频| 免费成人在线播放| 国产一区福利在线| 99精品久久免费看蜜臀剧情介绍| 欧美曰成人黄网| 精品女同一区二区| 亚洲欧洲精品成人久久奇米网| 亚洲影院久久精品| 青娱乐精品视频在线| 不卡视频免费播放| 欧美视频自拍偷拍| 久久久91精品国产一区二区精品| 自拍偷拍欧美精品| 人人爽香蕉精品| av电影在线不卡| 日韩欧美综合在线| 国产精品免费免费| 日韩精品午夜视频| 成人在线视频首页| 欧美一二三四区在线| 亚洲精品网站在线观看| 国产在线精品一区二区三区不卡| 色域天天综合网| 国产欧美日本一区二区三区| 午夜精品视频一区|