Стартовый пул
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								unrar/Examples/MASM/mainicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								unrar/Examples/MASM/mainicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 766 B  | 
							
								
								
									
										14
									
								
								unrar/Examples/MASM/readme.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								unrar/Examples/MASM/readme.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
Win32ASM unrar.dll example
 | 
			
		||||
==========================
 | 
			
		||||
Created using RadASM (www.radasm.com) IDE and MASM32(http://movsd.com).
 | 
			
		||||
 | 
			
		||||
Copy unrar.lib to directory for compilation.
 | 
			
		||||
 | 
			
		||||
The compiled unrar.exe file uses the first .rar file it finds.
 | 
			
		||||
-------------------------------------------------------------------------------
 | 
			
		||||
Get a full UNRAR (De)Installation System here: http://flo.mueckeimnetz.de/eis
 | 
			
		||||
 | 
			
		||||
Please drop a line if you find the samples or the include file useful - I'd be
 | 
			
		||||
glad to hear about.
 | 
			
		||||
 | 
			
		||||
-Florian Muecke (devATmueckeimnetz.de)
 | 
			
		||||
							
								
								
									
										34
									
								
								unrar/Examples/MASM/rsrc.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								unrar/Examples/MASM/rsrc.rc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
#include "\masm32\include\resource.h"
 | 
			
		||||
#define ICON_1			500
 | 
			
		||||
 | 
			
		||||
#define IDD_DIALOG1                     200
 | 
			
		||||
#define IDC_PROGRESS1                   1001
 | 
			
		||||
#define IDC_PROGRESS2                   1002
 | 
			
		||||
#define IDC_STATIC                      -1
 | 
			
		||||
#define IDC_file						301
 | 
			
		||||
#define IDC_volume						302
 | 
			
		||||
#define IDC_filebytes					303
 | 
			
		||||
#define IDC_totalbytes					304
 | 
			
		||||
 | 
			
		||||
ICON_1 ICON "mainicon.ico"
 | 
			
		||||
 | 
			
		||||
IDD_DIALOG1 DIALOGEX 0, 0, 292, 132
 | 
			
		||||
STYLE DS_ABSALIGN | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 | 
			
		||||
 | 
			
		||||
CAPTION "Win32ASM UnRAR Example - by F.M<>cke"
 | 
			
		||||
FONT 8, "MS Sans Serif"
 | 
			
		||||
BEGIN
 | 
			
		||||
    PUSHBUTTON      "Start",IDOK,7,113,50,14,//BS_FLAT
 | 
			
		||||
    PUSHBUTTON      "Quit",IDCANCEL,235,113,50,14,//BS_FLAT
 | 
			
		||||
    GROUPBOX        "Current File",IDC_STATIC,7,7,278,45
 | 
			
		||||
    GROUPBOX        "Overall Progress",IDC_STATIC,7,60,278,45
 | 
			
		||||
    CONTROL         "",IDC_file,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | WS_GROUP,13,16,266,9
 | 
			
		||||
    CONTROL         "Progress1",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,14,27,262,10	//PBS_SMOOTH|
 | 
			
		||||
    CONTROL         "Progress1",IDC_PROGRESS2,"msctls_progress32",WS_BORDER,14,80,262,10	//PBS_SMOOTH|
 | 
			
		||||
    CONTROL         "",IDC_filebytes,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | WS_GROUP,13,38,266,9
 | 
			
		||||
    CONTROL         "",IDC_totalbytes,"Static",SS_LEFTNOWORDWRAP | SS_CENTERIMAGE | WS_GROUP,13,91,266,9
 | 
			
		||||
    LTEXT           "Current Volume:",IDC_STATIC,14,69,52,9,SS_CENTERIMAGE
 | 
			
		||||
    LTEXT           "",IDC_volume,70,69,200,9,SS_CENTERIMAGE
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								unrar/Examples/MASM/test.rar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								unrar/Examples/MASM/test.rar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										236
									
								
								unrar/Examples/MASM/unrar.asm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								unrar/Examples/MASM/unrar.asm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,236 @@
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
; 
 | 
			
		||||
;  Win32ASM (MASM32) UnRAR Example
 | 
			
		||||
;
 | 
			
		||||
;  Author: Florian M<>cke
 | 
			
		||||
;  Version: 2, 11.09.05 (complete re-do)
 | 
			
		||||
;
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
      .586
 | 
			
		||||
      .model flat, stdcall
 | 
			
		||||
      option casemap :none		;case sensitive
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
      include windows.inc
 | 
			
		||||
      include user32.inc
 | 
			
		||||
      include kernel32.inc
 | 
			
		||||
	  include comctl32.inc 
 | 
			
		||||
	  include unrar.inc
 | 
			
		||||
	  
 | 
			
		||||
	  includelib comctl32.lib 
 | 
			
		||||
      includelib user32.lib
 | 
			
		||||
      includelib kernel32.lib
 | 
			
		||||
	  includelib unrar.lib
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
	WndProc             PROTO :DWORD,:DWORD,:DWORD,:DWORD
 | 
			
		||||
	ThreadProc          PROTO :DWORD
 | 
			
		||||
    RARCallbackProc    	PROTO :DWORD,:DWORD,:DWORD,:DWORD    
 | 
			
		||||
                        
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
.data
 | 
			
		||||
	hInstance		dd 0
 | 
			
		||||
	hWnd            dd 0
 | 
			
		||||
	hIcon			dd 0
 | 
			
		||||
	hArchive		dd 0
 | 
			
		||||
	ArcName			db "test.rar",0
 | 
			
		||||
	DestPath		db "EXTRACTED_DATA",0
 | 
			
		||||
	caption			db "W32ASM UNRAR example",0
 | 
			
		||||
	ArcOpenErr		db "archive open error",0
 | 
			
		||||
	NextVolQuery	db "next volume not found",0
 | 
			
		||||
;	NextVolOk		db "next volume successfully opened",0
 | 
			
		||||
	ArchiveData		RAROpenArchiveData <>
 | 
			
		||||
	HeaderData		RARHeaderData <>
 | 
			
		||||
	buffer			db 260 dup (0)
 | 
			
		||||
	unpSize			dd 0
 | 
			
		||||
	FormatStr		db "%lu of %lu bytes",0
 | 
			
		||||
	bExtracted		dd 0
 | 
			
		||||
	fbExtracted		dd 0
 | 
			
		||||
	dummy_dd		dd 0
 | 
			
		||||
	FileCRC			dd 0
 | 
			
		||||
	IDC_PROGRESS	equ 1
 | 
			
		||||
	ThreadID		dd 0
 | 
			
		||||
	
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
.code
 | 
			
		||||
 | 
			
		||||
start:
 | 
			
		||||
	invoke GetModuleHandle, NULL
 | 
			
		||||
    mov hInstance, eax
 | 
			
		||||
	invoke InitCommonControls
 | 
			
		||||
 | 
			
		||||
	mov ArchiveData.lpArcName, OFFSET ArcName
 | 
			
		||||
	mov ArchiveData.OpenMode, RAR_OM_LIST
 | 
			
		||||
	invoke RAROpenArchive, ADDR ArchiveData
 | 
			
		||||
	mov hArchive, eax
 | 
			
		||||
	.if eax == 0
 | 
			
		||||
		invoke MessageBox, NULL, ADDR ArcOpenErr, ADDR caption, MB_OK
 | 
			
		||||
		jmp the_end
 | 
			
		||||
	.endif
 | 
			
		||||
   ;get unpacked filesize
 | 
			
		||||
	invoke RARReadHeader, hArchive, ADDR HeaderData
 | 
			
		||||
    getunpsize:
 | 
			
		||||
	invoke RARProcessFile, hArchive,RAR_SKIP,0,0
 | 
			
		||||
	mov eax, HeaderData.UnpSize
 | 
			
		||||
	add unpSize, eax
 | 
			
		||||
	invoke RARReadHeader, hArchive, ADDR HeaderData
 | 
			
		||||
	.if eax != ERAR_END_ARCHIVE
 | 
			
		||||
		jmp getunpsize
 | 
			
		||||
	.endif
 | 
			
		||||
	invoke RARCloseArchive, hArchive
 | 
			
		||||
    
 | 
			
		||||
    invoke DialogBoxParam,hInstance,200,0,ADDR WndProc,0
 | 
			
		||||
		
 | 
			
		||||
the_end:
 | 
			
		||||
	invoke ExitProcess, 0
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
WndProc proc hWin   :DWORD,
 | 
			
		||||
             uMsg   :DWORD,
 | 
			
		||||
             wParam :DWORD,
 | 
			
		||||
             lParam :DWORD
 | 
			
		||||
 | 
			
		||||
	.if uMsg == WM_INITDIALOG
 | 
			
		||||
		push hWin
 | 
			
		||||
		pop hWnd
 | 
			
		||||
		invoke LoadIcon,hInstance,500
 | 
			
		||||
        mov hIcon, eax
 | 
			
		||||
        invoke SendMessage,hWin,WM_SETICON,1,hIcon
 | 
			
		||||
		;mov eax, 1000
 | 
			
		||||
		;shl eax,16					;create a high and low word
 | 
			
		||||
		;invoke SendDlgItemMessage, hWin, 1001, PBM_SETRANGE,0,eax
 | 
			
		||||
 | 
			
		||||
	.elseif uMsg == WM_COMMAND
 | 
			
		||||
		mov eax, wParam
 | 
			
		||||
 | 
			
		||||
		.if eax == IDOK					;LAUNCH
 | 
			
		||||
			invoke CreateThread,NULL,NULL,ADDR ThreadProc,NULL,NORMAL_PRIORITY_CLASS,ADDR ThreadID
 | 
			
		||||
 | 
			
		||||
		.elseif eax == IDCANCEL				;QUIT
 | 
			
		||||
			invoke EndDialog,hWin,0
 | 
			
		||||
 | 
			
		||||
		.endif
 | 
			
		||||
 | 
			
		||||
	.elseif uMsg == WM_CLOSE
 | 
			
		||||
		invoke EndDialog,hWin,0
 | 
			
		||||
 | 
			
		||||
	.endif
 | 
			
		||||
	xor eax,eax
 | 
			
		||||
    ret
 | 
			
		||||
 | 
			
		||||
WndProc endp
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
ThreadProc PROC RetVal:DWORD
 | 
			
		||||
	invoke SendDlgItemMessage, hWnd, 1002, PBM_SETPOS,eax,0
 | 
			
		||||
	mov ArchiveData.lpArcName, OFFSET ArcName
 | 
			
		||||
	mov ArchiveData.OpenMode, RAR_OM_EXTRACT
 | 
			
		||||
	invoke RAROpenArchive, ADDR ArchiveData
 | 
			
		||||
	mov hArchive, eax
 | 
			
		||||
 | 
			
		||||
	invoke RARSetCallback, hArchive, offset RARCallbackProc, 0
 | 
			
		||||
_extract:	
 | 
			
		||||
	invoke RARReadHeader, hArchive, ADDR HeaderData
 | 
			
		||||
    .if eax == ERAR_END_ARCHIVE
 | 
			
		||||
        jmp extract_
 | 
			
		||||
    .endif 
 | 
			
		||||
	invoke SendDlgItemMessage, hWnd, 302, WM_SETTEXT,0, ADDR HeaderData.ArcName
 | 
			
		||||
	invoke RARProcessFile, hArchive, RAR_EXTRACT, ADDR DestPath, NULL
 | 
			
		||||
    jmp _extract
 | 
			
		||||
extract_:
 | 
			
		||||
	invoke RARCloseArchive, hArchive
 | 
			
		||||
	ret
 | 
			
		||||
ThreadProc endp
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
RARCallbackProc	PROC msg:DWORD, userData:DWORD, p1:DWORD, p2:DWORD
 | 
			
		||||
;  RAR callback proc for data/volume processing
 | 
			
		||||
 | 
			
		||||
    .if msg == UCM_CHANGEVOLUME
 | 
			
		||||
        .if p2 == RAR_VOL_NOTIFY
 | 
			
		||||
            invoke SendDlgItemMessage, hWnd, 302, WM_SETTEXT,0, p1
 | 
			
		||||
            mov eax, 1
 | 
			
		||||
            ret
 | 
			
		||||
        .elseif p2 == RAR_VOL_ASK
 | 
			
		||||
            invoke MessageBox,0, ADDR NextVolQuery, addr caption, MB_OK
 | 
			
		||||
            mov eax, -1
 | 
			
		||||
            ret
 | 
			
		||||
        .endif
 | 
			
		||||
 | 
			
		||||
    .elseif msg == UCM_PROCESSDATA
 | 
			
		||||
;;        .if abort_thread == 1  ;has thread been aborted?
 | 
			
		||||
;;            return -1
 | 
			
		||||
;;        .endif
 | 
			
		||||
      ;check if processing file has changed
 | 
			
		||||
        mov eax, FileCRC
 | 
			
		||||
        .if HeaderData.FileCRC != eax ;new file
 | 
			
		||||
            mov eax, p2         ;n of extracted bytes
 | 
			
		||||
            mov bExtracted, eax
 | 
			
		||||
            mov eax, HeaderData.FileCRC
 | 
			
		||||
            mov FileCRC, eax
 | 
			
		||||
            invoke SendDlgItemMessage, hWnd, 301, WM_SETTEXT,0, ADDR HeaderData.FileName
 | 
			
		||||
        .else                   ;still on the same file
 | 
			
		||||
            mov eax, p2
 | 
			
		||||
            add bExtracted,eax
 | 
			
		||||
        .endif
 | 
			
		||||
 | 
			
		||||
        .if HeaderData.UnpSize > eax
 | 
			
		||||
          ;get percent of current extraction
 | 
			
		||||
            finit               ;init fpu
 | 
			
		||||
            fild bExtracted     ;load nBytesExtracted on TOS
 | 
			
		||||
            mov dummy_dd, 100
 | 
			
		||||
            fimul dummy_dd
 | 
			
		||||
            fidiv HeaderData.UnpSize			;divides both
 | 
			
		||||
            fistp dummy_dd		;get integer from TOS
 | 
			
		||||
          ;--same without floating point--
 | 
			
		||||
            ;mov eax, nBytesExtracted
 | 
			
		||||
            ;mov ebx, 100
 | 
			
		||||
            ;mul ebx ;result in edx:eax
 | 
			
		||||
            ;div HeaderData.UnpSize ;source=edx:eax, result in eax
 | 
			
		||||
            ;mov dummy_dd,eax
 | 
			
		||||
          ;----------------------------
 | 
			
		||||
        .else
 | 
			
		||||
            mov eax,100
 | 
			
		||||
            mov dummy_dd,eax
 | 
			
		||||
        .endif
 | 
			
		||||
	    invoke SendDlgItemMessage, hWnd, 1001, PBM_SETPOS,dummy_dd,0
 | 
			
		||||
	    invoke wsprintf, ADDR buffer, ADDR FormatStr, bExtracted, HeaderData.UnpSize
 | 
			
		||||
	    invoke SendDlgItemMessage, hWnd, 303, WM_SETTEXT,0, ADDR buffer
 | 
			
		||||
	    	    
 | 
			
		||||
      ;get overall progress percentage
 | 
			
		||||
        mov eax, fbExtracted
 | 
			
		||||
        add eax, p2         ;add n of extracted bytes
 | 
			
		||||
        mov fbExtracted,eax
 | 
			
		||||
        finit               ;init fpu
 | 
			
		||||
        fld fbExtracted     ;load again
 | 
			
		||||
        mov dummy_dd,100
 | 
			
		||||
        fimul dummy_dd      ;mul tos by 100
 | 
			
		||||
        fld unpSize         ;load max extracted size
 | 
			
		||||
        fdivp ST(1),ST(0)   ;divide to get percentage
 | 
			
		||||
        fistp dummy_dd      ;save value
 | 
			
		||||
        invoke SendDlgItemMessage, hWnd, 1002, PBM_SETPOS,dummy_dd,0
 | 
			
		||||
	    invoke wsprintf, ADDR buffer, ADDR FormatStr, fbExtracted, unpSize
 | 
			
		||||
	    invoke SendDlgItemMessage, hWnd, 304, WM_SETTEXT,0, ADDR buffer
 | 
			
		||||
    	mov eax, 1
 | 
			
		||||
    	ret
 | 
			
		||||
 | 
			
		||||
    .elseif msg == UCM_NEEDPASSWORD
 | 
			
		||||
;;        invoke lstrcpy,p1,addr pass
 | 
			
		||||
    .endif
 | 
			
		||||
    xor eax,eax
 | 
			
		||||
    ret
 | 
			
		||||
 | 
			
		||||
RARCallbackProc ENDP
 | 
			
		||||
 | 
			
		||||
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 | 
			
		||||
 | 
			
		||||
end start
 | 
			
		||||
							
								
								
									
										128
									
								
								unrar/Examples/MASM/unrar.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								unrar/Examples/MASM/unrar.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;
 | 
			
		||||
;  include file for unrar.dll (version 30.Aug.02)
 | 
			
		||||
;  recreated from unrar.h by F.Muecke
 | 
			
		||||
;
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;  constants
 | 
			
		||||
;  ~~~~~~~~~
 | 
			
		||||
ERAR_END_ARCHIVE     equ    10
 | 
			
		||||
ERAR_NO_MEMORY       equ    11
 | 
			
		||||
ERAR_BAD_DATA        equ    12
 | 
			
		||||
ERAR_BAD_ARCHIVE     equ    13
 | 
			
		||||
ERAR_UNKNOWN_FORMAT  equ    14
 | 
			
		||||
ERAR_EOPEN           equ    15
 | 
			
		||||
ERAR_ECREATE         equ    16
 | 
			
		||||
ERAR_ECLOSE          equ    17
 | 
			
		||||
ERAR_EREAD           equ    18
 | 
			
		||||
ERAR_EWRITE          equ    19
 | 
			
		||||
ERAR_SMALL_BUF       equ    20
 | 
			
		||||
ERAR_UNKNOWN         equ    21
 | 
			
		||||
 | 
			
		||||
RAR_OM_LIST          equ    0
 | 
			
		||||
RAR_OM_EXTRACT       equ    1
 | 
			
		||||
 | 
			
		||||
RAR_SKIP             equ    0
 | 
			
		||||
RAR_TEST             equ    1
 | 
			
		||||
RAR_EXTRACT          equ    2
 | 
			
		||||
 | 
			
		||||
RAR_VOL_ASK          equ    0
 | 
			
		||||
RAR_VOL_NOTIFY       equ    1
 | 
			
		||||
 | 
			
		||||
RAR_DLL_VERSION      equ    3
 | 
			
		||||
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;  structures
 | 
			
		||||
;  ~~~~~~~~~~
 | 
			
		||||
RARHeaderData STRUC
 | 
			
		||||
  ArcName       db 260 dup (0)
 | 
			
		||||
  FileName      db 260 dup (0)
 | 
			
		||||
  Flags         dd 0
 | 
			
		||||
  PackSize      dd 0
 | 
			
		||||
  UnpSize       dd 0
 | 
			
		||||
  HostOS        dd 0
 | 
			
		||||
  FileCRC       dd 0
 | 
			
		||||
  FileTime      dd 0
 | 
			
		||||
  UnpVer        dd 0
 | 
			
		||||
  Method        dd 0
 | 
			
		||||
  FileAttr      dd 0
 | 
			
		||||
  lpCmtBuf      dd 0
 | 
			
		||||
  CmtBufSize    dd 0
 | 
			
		||||
  CmtSize       dd 0
 | 
			
		||||
  CmtState      dd 0
 | 
			
		||||
RARHeaderData ENDS
 | 
			
		||||
 | 
			
		||||
RARHeaderDataEx STRUC
 | 
			
		||||
  ArcName       db 1024 dup (0)
 | 
			
		||||
  ArcNameW      db 1024 dup (0)
 | 
			
		||||
  FileName      db 1024 dup (0)
 | 
			
		||||
  FileNameW     db 1024 dup (0)
 | 
			
		||||
  Flags         dd 0
 | 
			
		||||
  PackSize      dd 0
 | 
			
		||||
  PackSizeHigh  dd 0
 | 
			
		||||
  UnpSize       dd 0
 | 
			
		||||
  UnpSizeHigh   dd 0
 | 
			
		||||
  HostOS        dd 0
 | 
			
		||||
  FileCRC       dd 0
 | 
			
		||||
  FileTime      dd 0
 | 
			
		||||
  UnpVer        dd 0
 | 
			
		||||
  Method        dd 0
 | 
			
		||||
  FileAttr      dd 0
 | 
			
		||||
  lpCmtBuf      dd 0
 | 
			
		||||
  CmtBufSize    dd 0
 | 
			
		||||
  CmtSize       dd 0
 | 
			
		||||
  CmtState      dd 0
 | 
			
		||||
  Reserved      dd 1024 dup (0)
 | 
			
		||||
RARHeaderDataEx ENDS
 | 
			
		||||
 | 
			
		||||
RAROpenArchiveData STRUC
 | 
			
		||||
  lpArcName     dd 0
 | 
			
		||||
  OpenMode      dd 0
 | 
			
		||||
  OpenResult    dd 0
 | 
			
		||||
  lpCmtBuf      dd 0
 | 
			
		||||
  CmtBufSize    dd 0
 | 
			
		||||
  CmtSize       dd 0
 | 
			
		||||
  CmtState      dd 0
 | 
			
		||||
RAROpenArchiveData ENDS
 | 
			
		||||
 | 
			
		||||
RAROpenArchiveDataEx STRUC
 | 
			
		||||
  lpArcName     dd 0
 | 
			
		||||
  lpArcNameW    dd 0
 | 
			
		||||
  OpenMode      dd 0
 | 
			
		||||
  OpenResult    dd 0
 | 
			
		||||
  lpCmtBuf      dd 0
 | 
			
		||||
  CmtBufSize    dd 0
 | 
			
		||||
  CmtSize       dd 0
 | 
			
		||||
  CmtState      dd 0
 | 
			
		||||
  Flags         dd 0
 | 
			
		||||
  Reserved      dd 32 dup (0)
 | 
			
		||||
RAROpenArchiveDataEx ENDS
 | 
			
		||||
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;  UNRARCALLBACK_MESSAGES enumeration
 | 
			
		||||
UCM_CHANGEVOLUME    equ 0
 | 
			
		||||
UCM_PROCESSDATA     equ 1
 | 
			
		||||
UCM_NEEDPASSWORD    equ 2
 | 
			
		||||
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;  Processes
 | 
			
		||||
;  ~~~~~~~~~
 | 
			
		||||
UnRARCallback           PROTO :DWORD,:DWORD,:DWORD,:DWORD
 | 
			
		||||
ChangeVolProc           PROTO :DWORD,:DWORD ;C calling convention ??
 | 
			
		||||
ProcessDataProc         PROTO :DWORD,:DWORD ;C calling convention ??
 | 
			
		||||
RAROpenArchive          PROTO :DWORD
 | 
			
		||||
RAROpenArchiveEx        PROTO :DWORD
 | 
			
		||||
RARCloseArchive         PROTO :DWORD
 | 
			
		||||
RARReadHeader           PROTO :DWORD,:DWORD
 | 
			
		||||
RARReadHeaderEx         PROTO :DWORD,:DWORD
 | 
			
		||||
RARProcessFile          PROTO :DWORD,:DWORD,:DWORD,:DWORD
 | 
			
		||||
RARSetCallback          PROTO :DWORD,:DWORD,:DWORD
 | 
			
		||||
RARSetChangeVolProc     PROTO :DWORD,:DWORD
 | 
			
		||||
RARSetProcessDataProc   PROTO :DWORD,:DWORD
 | 
			
		||||
RARSetPassword          PROTO :DWORD,:DWORD
 | 
			
		||||
RARGetDllVersion        PROTO
 | 
			
		||||
 | 
			
		||||
; =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
 | 
			
		||||
;  that's it
 | 
			
		||||
							
								
								
									
										114
									
								
								unrar/Examples/MASM/unrar.rap
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								unrar/Examples/MASM/unrar.rap
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
[Project]
 | 
			
		||||
Assembler=masm
 | 
			
		||||
Type=Win32 App
 | 
			
		||||
Description=Win32ASM UnRAR example
 | 
			
		||||
Backup=$P\Bak\
 | 
			
		||||
Group=1
 | 
			
		||||
GroupExpand=1
 | 
			
		||||
Res.rc=1
 | 
			
		||||
[Files]
 | 
			
		||||
1=unrar.Asm
 | 
			
		||||
2=unrar.Inc
 | 
			
		||||
3=
 | 
			
		||||
4=rsrc.RC
 | 
			
		||||
5=
 | 
			
		||||
[MakeFiles]
 | 
			
		||||
0=unrar.rap
 | 
			
		||||
1=rsrc.rc
 | 
			
		||||
2=unrar.asm
 | 
			
		||||
3=unrar.obj
 | 
			
		||||
4=rsrc.res
 | 
			
		||||
5=unrar.exe
 | 
			
		||||
6=unrar.def
 | 
			
		||||
7=unrar.dll
 | 
			
		||||
8=unrar.txt
 | 
			
		||||
9=unrar.lib
 | 
			
		||||
10=unrar.mak
 | 
			
		||||
11=unrar.hla
 | 
			
		||||
[MakeDef]
 | 
			
		||||
Menu=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
 | 
			
		||||
1=4,O,$B\RC.EXE /v,1
 | 
			
		||||
2=3,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",2
 | 
			
		||||
3=5,O,$B\LINK.EXE /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"$L",3,4
 | 
			
		||||
4=0,0,,5
 | 
			
		||||
5=rsrc.obj,O,$B\CVTRES.EXE,rsrc.res
 | 
			
		||||
6=*.obj,O,$B\ML.EXE /c /coff /Cp /nologo /I"$I",*.asm
 | 
			
		||||
7=0,0,\OllyDbg\OllyDbg,5
 | 
			
		||||
[Group]
 | 
			
		||||
Group=Added files,Assembly,Resources,Misc,Modules
 | 
			
		||||
1=2
 | 
			
		||||
2=2
 | 
			
		||||
3=
 | 
			
		||||
4=1
 | 
			
		||||
5=
 | 
			
		||||
[Size]
 | 
			
		||||
2=0,0,0,0,3180
 | 
			
		||||
1=0,0,1095,875,4
 | 
			
		||||
4=0,0,0,0,291
 | 
			
		||||
3=
 | 
			
		||||
5=
 | 
			
		||||
[Resource]
 | 
			
		||||
[Colref]
 | 
			
		||||
0=00FFFFFF
 | 
			
		||||
1=00FFFFFF
 | 
			
		||||
2=00FFFFFF
 | 
			
		||||
3=00FFFFFF
 | 
			
		||||
4=00FFFFFF
 | 
			
		||||
5=00FFFFFF
 | 
			
		||||
6=00FFFFFF
 | 
			
		||||
7=00FFFFFF
 | 
			
		||||
[Version-Inc]
 | 
			
		||||
Options=52
 | 
			
		||||
[BookMark]
 | 
			
		||||
0=
 | 
			
		||||
1=
 | 
			
		||||
2=
 | 
			
		||||
3=
 | 
			
		||||
4=
 | 
			
		||||
5=
 | 
			
		||||
6=
 | 
			
		||||
7=
 | 
			
		||||
8=
 | 
			
		||||
9=
 | 
			
		||||
[BreakPoint]
 | 
			
		||||
0=
 | 
			
		||||
[VersionControl]
 | 
			
		||||
Settings=1246
 | 
			
		||||
Milestones=129
 | 
			
		||||
MilestoneEvery=10
 | 
			
		||||
MilestoneEveryCurrent=0
 | 
			
		||||
MilestoneOnBuild=0.0.0.0
 | 
			
		||||
MilestoneOnTime=2
 | 
			
		||||
MilestoneOnDate=0
 | 
			
		||||
MilestoneOnDateWhen=1
 | 
			
		||||
MilestoneOnDateStatus=0
 | 
			
		||||
MilestoneOnDateDate=11
 | 
			
		||||
MilestoneOnDateTimeYear=2005
 | 
			
		||||
MilestoneOnDateTimeMonth=9
 | 
			
		||||
MilestoneOnDateTimeDate=10
 | 
			
		||||
MilestoneOnDateTimeHour=22
 | 
			
		||||
MilestoneOnDateTimeMin=17
 | 
			
		||||
MilestoneOnDateTimeSec=43
 | 
			
		||||
MilestoneOnDateTimeStatus=0
 | 
			
		||||
BackupLocation=C:\masm32\RadASM\Masm\Projects\VCBackups\
 | 
			
		||||
CompressionLevel=0
 | 
			
		||||
DefaultComment=Project $N, $Z, Backup Created On $D At $T.
 | 
			
		||||
ExcludeExt1=\
 | 
			
		||||
ExcludeExt2=\
 | 
			
		||||
ExcludeExt3=\
 | 
			
		||||
ExcludeExt4=\
 | 
			
		||||
FileVerLength=4
 | 
			
		||||
FileVer2Range=0
 | 
			
		||||
FileVer3Range=0
 | 
			
		||||
FileVer4Range=0
 | 
			
		||||
ProductVerLength=4
 | 
			
		||||
ProductVer2Range=0
 | 
			
		||||
ProductVer3Range=0
 | 
			
		||||
ProductVer4Range=0
 | 
			
		||||
[Collapse]
 | 
			
		||||
1=
 | 
			
		||||
4=
 | 
			
		||||
2=
 | 
			
		||||
[Find]
 | 
			
		||||
1="bExtracted"
 | 
			
		||||
2="unpSize"
 | 
			
		||||
		Reference in New Issue
	
	Block a user