-
Notifications
You must be signed in to change notification settings - Fork 0
Callback
Jiowcl edited this page Jun 23, 2021
·
2 revisions
Function UnRARCallbackProc(Byval msg As Integer, Byval UserData As Integer, Byval P1 As Long, Byval P2 As Long) As Long
Select Case Msg
Case $UCM_PROCESSDATA
Case $UCM_CHANGEVOLUMEW
Case $UCM_NEEDPASSWORDW
End Select
Function = 0
End Function
USES "CONSOLE"
#INCLUDE Once ".\Core\Enums.inc"
#INCLUDE Once ".\Core\Runtime.inc"
#Include Once ".\Core\RARArchive.inc"
Global lpszSampleFilePath As String
Global ArchiveData As RAROpenArchiveDataEx
Global HeaderData As RARHeaderDataEx
Global hRARArchiveHandle As Long
Global hUnRARProcCode As Long
lpszSampleFilePath = ".\TestFile\example.rar"
ArchiveData.ArcNameW = Ascii2Unicode(lpszSampleFilePath)
ArchiveData.OpenMode = $RAR_OM_EXTRACT
ArchiveData.CmtBuf = ""
ArchiveData.CmtBufSize = 0
' Callback Function
Function UnRARCallbackProc(Byval msg As Integer, Byval UserData As Integer, Byval P1 As Long, Byval P2 As Long) As Long
Select Case Msg
Case $UCM_PROCESSDATA
Case $UCM_CHANGEVOLUMEW
Case $UCM_NEEDPASSWORDW
End Select
Function = 0
End Function
hRARArchiveHandle = RAROpenArchiveEx(ArchiveData)
If ArchiveData.OpenResult = $ERAR_SUCCESS Then
RARSetCallback(hRARArchiveHandle, CodePtr(UnRARCallbackProc), 0)
Printl("Source: " . lpszSampleFilePath)
While RARReadHeaderEx(hRARArchiveHandle, HeaderData) = 0
hUnRARProcCode = RARProcessFileW(hRARArchiveHandle, $RAR_TEST, "", "")
Printl "Test File: " . HeaderData.FileNameW
Wend
end if
RARCloseArchive(hRARArchiveHandle)
Console_Read()
USES "CONSOLE"
#INCLUDE Once ".\Core\Enums.inc"
#INCLUDE Once ".\Core\Runtime.inc"
#Include Once ".\Core\RARArchive.inc"
#Include Once ".\Core\UnRARWrapper.inc"
Dim UnRAR As UnRARArchive
Global lpszSampleFilePath As String
Global ArchiveData As RAROpenArchiveDataEx
Global HeaderData As RARHeaderDataEx
Global hRARArchiveHandle As Long
Global hUnRARProcCode As Long
lpszSampleFilePath = ".\TestFile\example.rar"
ArchiveData.ArcNameW = Ascii2Unicode(lpszSampleFilePath)
ArchiveData.OpenMode = $RAR_OM_EXTRACT
ArchiveData.CmtBuf = ""
ArchiveData.CmtBufSize = 0
' Callback Function
Function UnRARCallbackProc(Byval msg As Integer, Byval UserData As Integer, Byval P1 As Long, Byval P2 As Long) As Long
Select Case Msg
Case $UCM_PROCESSDATA
Case $UCM_CHANGEVOLUMEW
Case $UCM_NEEDPASSWORDW
End Select
Function = 0
End Function
hRARArchiveHandle = UnRAR.OpenArchiveEx(ArchiveData)
If ArchiveData.OpenResult = $ERAR_SUCCESS Then
Printl("Source: " . lpszSampleFilePath)
UnRAR.SetCallback(hRARArchiveHandle, CodePtr(UnRARCallbackProc), 0)
While UnRAR.ReadHeaderEx(hRARArchiveHandle, HeaderData) = 0
hUnRARProcCode = UnRAR.ProcessFileW(hRARArchiveHandle, $RAR_TEST, "", "")
Printl "Test File: " . HeaderData.FileNameW
Wend
End If
UnRAR.CloseArchive(hRARArchiveHandle)
Console_Read()