Manejo de UnZip32.dll
Cómo descomprimir ZIPs con Visual Basic

 

Fecha: 07/Sep/2001
Autor: "Eduardo Gonzalez" egonzalez@ocs.es
Publicado: 07/Sep/2001


Manejo de la librería de enlace dinámico UNZIP32.dll

 

Por Eduardo González Muñiz

 

 

            Tipos necesarios:

 

           

· Public Type UNZIPUSERFUNCTION

UNZIPPrntFunction As Long

UNZIPSndFunction As Long

UNZIPReplaceFunction  As Long

UNZIPPassword As Long

UNZIPMessage  As Long

UNZIPService  As Long

TotalSizeComp As Long  

TotalSize As Long

CompFactor As Long

NumFiles    As Long   

Comment    As Integer

  End Type

 

 

· Public Type UNZIPOPTIONS

ExtractOnlyNewer  As Long

SpaceToUnderScore As Long

PromptToOverwrite As Long

fQuiet As Long

ncflag As Long

ntflag As Long

nvflag As Long

nUflag As Long

nzflag As Long

ndflag As Long

noflag As Long

naflag As Long

nZIflag As Long

C_flag As Long

FPrivilege As Long

Zip As String 

ExtractDir As String

End Type

 

· Public Type ZIPnames

            s(0 To 99) As String

  End Type

 

· Public Type CBChar

            ch(4096) As Byte

  End Type

 

 

Declaración de funciones:

 

· Public Declare Function Wiz_SingleEntryUnzip Lib "unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As DCLIST, Userf As USERFUNCTION) As Long

 

            Retornan 1 si ha ido correctamente y un codigo de error en caso contrario.

 

Parametros:

 

Ifnc: Siempre 0

Ifnv: La ruta completa de los ficheros a descomprimir (solo cuando son mas de uno), si no se manda el elmento 0 del array con caracter de fin de cadena.

Xfnc: Siempre 0

Xfnv: La ruta donde se dejara cada uno de los ficheros descomprimido (solo cuando son mas de uno), si no se manda el elemento 0 del array con caracter de fin de cadena.

dcll: Opciones de descompresion

Userf: Direccion de memoria de las funciones a las que la Dll llamara durante la descompresion. Si no nos interesa mandamos: &0.

 

· La Estructura UNZIPUSERFUNCTION:

 

Son las funciones a las que la dll lamará cuando quiera hacer determinadas acciones como mostrar mensajes, pedir password, etc

 

- UNZipPrntFunction: Debe contener la dirección de memoria donde se encuentra la función a la que la dll llamará cuando vaya a mostrar un mensaje.

 

Esta función, rebirá como parametros un tipo cbchar (array de caracteres que componen el mensaje de la dll) por referencia, y un long, por valor,  que indica el tamaño de la cadena recibida.

 

- UNZipPasswordFunction: Sirve para pedir un password al usuario en caso de que el Zip esté protegido

 

- UNZipService: Pues la verdad es que no se para que sirve

 

-          -          UNZipReplaceOption: Para preguntar si queremos o no que se sobreescriban los ficheros.

 

Si no vamos a utilizar alguna de estas funciones, podemos introducir como valor &0 ( Excepto UzipReplaceOption y UNZipPrntFunction que siempre deben contener una dirección válida)

 

- TotalSizeComp: Retorna el tamaño en bytes del fichero zip.

 

- TotalSize: Retorna el tamaño en bytes de todos los archivos que componen el

   fichero zip una vez descomprimidos.

 

- CompFactor: Retorna el factor de compresión del fichero zip.

 

- NumFiles: Retorna el número de archivos que componen el fichero zip.

 

- Comment: Flag que indica si el fichero zip tiene algún comentario.

 

 

· La estructura UNZIPOPTIONS:

 

Son las distintas opciones que queremos que se apliquen a la hora de construir el fichero Zip.

 

Las más importantes son:

 

- PromptToOverwrite:  Preguntará al usuario si desea sobreescribir el archivo.

 

- fQuiet: El nivel de mensajes que emitirá (0 = Todos, 1 = Pocos, 2 = Ninguno)

 

- fVolume: Si deseamos que incluya la etiqueta de volumen

 

- nvflag: Si es cero extrae los archivos, si es 1 sólo genera una lista con el

nombre de los archivos comprimidos

 

- C_flag: Si es sensible a mayúsculas (1 insensible, 0 sensible)

 

- Zip: El nombre del archivo a descomprimir

 

- ExtractDir: El directorio donde se descomprimira (Null indica que será en donde se encuentra)

 

Existen bastantes más parametros.

 

 

· La estructura ZIPNames:

 

Contiene los nombres (rutas completas) de los archivos a descomprimir.


ir al índice

Fichero con el código de ejemplo (EjemploUnZip.zip - 65.7 KB)
Se incluye la librería unzip32.dll