How do I get progress back from the integrated or isolated shell installer at setup time?

I've been asked by a few VSIP partners this week and a few times over email so I wanted to put the link to this information here before I forget :)

In Service Pack 1, the Integrated and Isolated shell changed the setup chaining technology.  In fact, we're using the same setup UI and chainer that the main Visual Studio Service Pack 1 used.  The codename for the chainer was "Iron Spigot" and the technology came from my old team, the Deployment Technology Group (VS Setup).  The code name came after I left so I can only guess why they called it "Iron Spigot" :)

The Isolated and Integrated shells will allow your setup chainer to get progress back at install time.  At RTM, the chainer we used didn't pass feedback to the host chainer so from a user perspective, you launch your setup which installs the shell and for about 10-15 minutes, you have no idea what was happening.

In Service Pack 1, we will now return progress information from the shell chainers so your own setup can show proper progress information.

One of our User Education specialists wrote a great MSDN article on how to do this.  The article is here:

The sample code is using native code because the chainer itself was written as a native app.  That's one problem with being the setup that installs the .NET Framework, you can't be a managed application because the framework may not be there.  It's the old chicken-egg problem :)