InstallFiles() MSI

EA Durbin ead1234 at hotmail.com
Fri May 26 20:27:11 CDT 2006


I forgot to assign my previousDiskID Last Sequence in the last example, 
which is the most important part.

it should be fairly easy to rewrite the installer to work the correct way 
and Install the files in the correct order. This should also make it 
feasable to write the Disk Prompt and have it in the right location as it 
will traverse the Install media in the correct order. I'm going to work on 
it this weekend some time, but I'll need help cleaning up my code to make it 
wine worthy as this will be my first attempt at a patch. Here is some pseudo 
code, explaining how I think it should work. Let me know if I'm wrong or you 
have any suggestions.

In InstallFiles() it will need to execute step 1 and create the folders as 
it currently does.

Then for step 2 do the following -

1. initialize the DiskId to 1.
   Initialize the previous diskId-lastSequence to 0.

2. Query the total number or DiskIds from the media table.

3. Loop through DiskId until Total Disk Id is reached.

   foreach ( DiskId )
   {
        select * from media where DiskId == DiskId
        initialize LastSequence to that of LastSequence column in Media 
Table
        cabinet = cabinet column

        print out, changing media to "Name of Cabinet" - Disk Prompt Here
           for the current DiskId check to make sure the lastSequence is > 
previous diskId sequence

           if ( lastSequence < previousDiskIdSeq )
           {
                 skip this install media
                 next DiskId
            }
           else
           {
                 Here call a function to iterate current install Medium
                 IterateInstallMedia(LastSeq, cabinet);
                 --in this function select * from file table where Sequence 
< lastSequence order by Sequence

                 then iterate through the file table for the current install 
medium and
                extract the files from the cabinet and copy files.

            }

       previous-DiskIDSequnce = LastSequence.
       DiskId++;

   }





More information about the wine-devel mailing list