I've created a small utility. The exe is only 27k, but vb40032.dll, mfc40.dll (for a custom control) and others make the setup zip over 1 meg. Can I leave some files out, assuming the user will already have them or can get them elsewhere? Besides the two files above, how about msvcrt40.dll and msvcrt20.dll? And if I leave them out, where could I point the user to get them from?
I've heard of other people doing this also. In some cases, the files will probably already be on the person's system. In fact, if you look at my File Archives page, you'll see a file called "VB4SUP16.EXE", which contains a bunch of support files for a user of my site. He is trying to do the same thing you are, so that the installation is much smaller. However, if you want to be on the safe side, you should always try to install all of the files needed for your application to run.
Another thing to bear in mind is that the Application Setup Wizard will include all the files for the custom controls you have on your VBIDE toolbox, whether you actually use them in your app or not. You should set up your VBIDE so that it only has the "basics" on it and then add custom controls to the toolbox as needed for the project. In VB3.0 you do this by editing AUTOLOAD.MAK.
My entire autoload.mak contents are:
In VB4.0 you do the same thing by editing Auto32ld.vbp (I assume the 16-bit version is Auto16ld.vbp but haven't loaded the 16-bit environment). You remove all of the un-needed OBJECT= and REFERENCE= lines.
WARNING: Any time you do something like this, make a backup copy of your original file first!
Lastly, as you're using the Application Setup Wizard you'll come to a screen that shows all of the files that it is including. Look this over carefully, removing any that you don't use (e.g. if there's no Rich Text Box control in your project, yet it shows up in the included files, delete it from the list).
Again, take care with this as there could be dll's that you didn't specifically include, yet are required for other dll's or custom controls to work.