As for the file binding... I don't know if that's even possible to do in VB. Trojan/Virus uses the technique of hooking interupt 13 I think to execute their code that was appended to the EXE.
As for the installer... No API huh? Well then, here's a solution for ya. You can create your own 'CAB' format. Here's an example of such:
The length fields are 4 bytes - a LONG value which says how many bytes after it is the next file. You read the file and save it someplace. Then you read the next 4 byte LONG value and extract it until you get a 0 length which means there's no more files.
Or maybe something a little more useful:
Now your 'CAB' file contains a null terminated string containing the path to the following file. You can then create an installer which reads from this CAB file and installs as indicated. You can even add registry strings with a format like this...
Add a TYPE field consisting of 1 byte
Type 0 = File
Type 1 = Registry
Whatever you want man.