unarc.dll  ,       FreeArc.    
 FreeArcExtract,            -
   (CPP, Delphi  ..)

 :

errcode = FreeArcExtract(callback, command[1], command[2], command[3], ...);

 errcode -   (FREEARC_OK==0  ,   - . FREEARC_ERRCODE_*  Common.h)
command[1]... -   ,    unarc,    NULL  "".
    ,  unarc.exe  .
callback -  ,     FreeArcExtract,   NULL.

 :

int errcode = FreeArcExtract(callback, "x", "-o+", "--", "a.arc", "*.obj", "*.lib", NULL);

      callback,  ,    UnarcDllExample.cpp

     :

callback("total", totalBytes>>20, totalBytes, "") -         

callback("read",  readBytes>>20,  readBytes,  "") -       
   .    "total"    

callback("write", writtenBytes>>20, writtenBytes, "") -        
   . E        ,   
   

callback("filename", filesize>>20, filesize, filename) -   ,      filename
 filesize 

callback("overwrite?", size>>20, size, filename) -        
    size .  (   callback ):
    'y' -  
    'n' -  
    'a' -       
    's' -       
    'q' -  

callback("password?", pwdbuf_size, 0, pwd) -  ,      UTF8Z   
  pwd  pwdbuf_size .  callback         ,
     . :
    'y' -    
    'n' -       
    'q' -  

callback("error", errcode, 0, errmsg) -    ,   
(. FREEARC_ERRCODE_*  Common.h)    

     "overwrite?", "password?"  "error"  <0     ,
  ,    . ,    "error", .

 callback==NULL,    "overwrite?"   's',  "password?" -  'n',   -  0.



unarc.dll    unarc.exe    'v'       'l':  
 ,   :

callback("total_files", total_files, 0, "") -    
callback("origsize", origsize>>20, origsize, "") -   ()    
callback("compsize", compsize>>20, compsize, "") -      

  callback    .
