How would I go about coding a new Windows Vista Shell?
Everything you need to do as shell has never been documented, so there are some issues with file change notifications etc. The basics are:
The good thing is, you are not the first to write a new shell, if you look around, you can find some obscure required info. Here is a list to get you started: