------------------------------------------------------------------------------- Sample Name: Archive Explorer Description: A browser for ZIP files that allows to look into compressed files and extract them to a folder. Download URL: http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=53174&lngWId=1 ------------------------------------------------------------------------------- IMPORTANT NOTE The first step to ensure that you can migrate the VB6 project to VB.NET is loading the original project in the Visual Basic 6 IDE, run it to ensure that it works fine, that all the required type libraries are installed, and that all file paths are correct. Regardless of whether you edited the source code in any way, you should save the VB6 project: this save operation ensures that the .vbp file includes the correct path and version of referenced type libraries. After saving the project, it's usually a good idea to compile the VB6 project to an executable, to detect any VB6 compilation errors that would appear under VB.NET as well. (If you don't recompile the project VB Migration Partner will display a warning when you later load the project.) This sample needs a pragma for managing a non-zero based array in the Cls_Zip class definition. Insert the pragma immediatly before the array declaration as below. CLS_ZIP.CLS: Option Explicit 'This class file can be used to show/extract the contents of an ZIP-archive << ... (omitted code lines) ... >> 'Flags values for ZIP-files Private Const ZipFlgEncrypted As Byte = 1 'bit 0 set = file is encrypted Private Const ZipFlgUsedMed As Byte = 6 'bit 1+2 depending on compression type 'type = 6 (imploding) 'bit 1 set = use 8k dictionary else 4k dictionary 'bit 2 set = use 3 trees else use 2 trees 'type = 8 (deflating) 'bit 2 : 1 ' 0 0 = Normal (-en) compression option was used. ' 0 1 = Maximum (-exx/-ex) compression option was used ' 1 0 = Fast (-ef) compression option was used ' 1 1 = Super Fast (-es) compression option was used 'bits are undified if other methods are used Private Const ZipFlgExtLocHead As Byte = 8 'bit 3 set = Extended local header is used to store CRC and size Private Const ZipFlgRes64 As Byte = 16 'bit 4 Reserved for ZIP64 Private Const ZipFlgPathed As Byte = 32 'bit 5 set = file is compressed pathed data Private Const ZipFlgEncStrong As Byte = 64 'bit 6 set = file is encrypted using strong encryption '##ZIPFileData.ArrayBounds ForceZero <=== The VBMP ArrayBounds Pragma Private ZIPFileData() As CentralData_Type Private CRC As New Cls_CRC32 Private Encrypt As New Cls_Encrypt Private Const m_Unpack_Supported As Boolean = True If you want you can use a pragma for changing the passing mode for some method's parameters. In VB6 parameters are implicit passed by reference to a method if neither ByVal nor ByRef keyword is specified. It is unuseful passing parameters ByRef if the code in the method doesn't modify them and this affects performance too. You can insert this line at the top of any file of the project (for example frmMain): '##project:UseByVal Yes Every parameter with no ByVal/ByRef specification will be migrated with a ByVal passing mode (that is the default for VB.NET) VB Migration Partner typically delivers many warnings that are related to code analysis as well as suggestions about how you can improve the original VB6 code before converting it to VB.NET. You can suppress these warnings by adding the following project-level pragmas at the top of any of the file that make up the project: '## project:DisableMessage 0354 '## project:DisableMessage 0364 '## project:DisableMessage 0501 '## project:DisableMessage 0511