BUT... let me caution you that starting stuff up indiscriminately can cause serious problems for both the system and the users.
For example: If your program has per-user settings and you open it in hkey_local_machine, it's liable to error off significantly when a user tries to access it. So be very careful with this...

RegCreateKeyEx, RegSetValueEx Function's. These aren't the easiest of API for a beginner to use. Search around for examples and keep an eye out for a registry wrapper class, there are a few I have seen written by people over the years and they make it simple to understand as the msdn can get confusing.

yes that is far simpler, but if the user of your app has not installed IE past a certain version, the shell lightweight API may be missing and it has a terrible overhead for dependencies as it contains many completely unrelated API's.