To replace the left-hand image on SdWelcome(), SdFinish() and SdFinishReboot() dialogs:
1. create a MSVC 6 workspace based on the one provided in the installshield installation directory (mine is in "D:/usr/IS631/Examples/Custom Dialog/VC++ 6 Project")
That is, copy it over to a new work area, and open it up in MSVC 6.
2. Add the three dialogs and the bitmap resources to this new project. You can cut and paste these by opening up _isres.dll as a "resource". Cut resources (bitmap) #103, (dialogs) #12006, 12031, 12032 from the _isres.dll and paste them into your project.
3. Modify #103, and save your changes. You can test your dialogs to see if they have the new bitmap in the MSVC IDE.
4. Build -> Configurations... and select "Win32 Release" (you should only have to do this once).
5. Build -> Build All. Check for errors. The last line should be: "_IsUser.dll - 0 error(s), 0 warning(s)"
6. Copy the _IsUser.dll from the project "Release" directory into your IS project's Setup Files. You might want to make sure it has a recent timestamp on it.
7. Rebuild your media.
Now, when you call one of these dialogs, the one from _IsUser.dll will be used.
Note that _no_ header files or includes have to modified or added! All you are doing is changing some resources in a DLL that is _always_ looked for by IS when it makes your media. That is _IsUser.dll is always used if found, and any resources in this DLL override any in the _isres.dll.
Because we are only changing static fields, there is no need to do any of the other stuff for truly custom dialogs. This is not a "custom" dialog in any real sense. It is a "modified" dialog. You cannot modify the real one, but you can modify a copy, and that is what IS uses.
DO NOT make changes to _isres.dll unless you really know what you are doing!
Any other changes to existing dialogs can be made in this way, as long as they are static changes (changes to bitmaps, text &etc.). You can also use the templates to create custom dialogs from scratch -- by custom, I mean "dialogs that do not exist in IS and are of your own design and layout". If you do this, then you have to write IS code to handle the events this dialog will generate.
In all cases, we are adding resources to this same project. I've modified SdWelcome(), SdFinish(), SdFinishReboot(), 12016 and 12018 in this manner, and created a 100% custom dialog in this manner, which are all in _IsUser.dll.
If you have problems getting the custom bitmap to show up in these dialogs, work backwards until you find the disconnect. First place I'd start: can you see the results you want in the MSVC IDE? Is the DLL you expect the actual one being created by MSVC?
Good luck.