This is a progress dialog fragment. It displays a progress bar, what operation is currently in progress and the estimated time until completion. I tried to set it up so that it was self contained and easy to reuse in other projects, but as I only have one project right now I don't know if I have succeeded.
They way I'm using it is by putting <FragmentRef Id="ProgressDialog"/> in my <Product> and <Show Dialog="Progress" After="CostFinalize"/> in my <UI>. Don't ask me why I picked CostFinalize, I can't remember.
You will need a dialog called Cancel that the cancel button can call or the package will cause an error. You may also need a DefaultUIFont property.
If you want an icon in the upper left corner of the dialog, add <Binary Id="InstallingIco" src="path\\to\\some\\icon.ico"/> to your <UI>. You may have to do this for the dialog to compile, I'm not certain.
I made it by darking Office 2000 and then hacking it up to do what I wanted. It took a long time to get correct since I didn't understand the event system when I started.
The Dialog fragment
Logged In: YES
user_id=20705
There seem to be a few problems with this example.
The UIText for TimeRemaining does not display "[1]", which
would expand to the number of minutes remaining. Something
like "{[1] minutes and }[2] seconds remaining" should be used.
There is a typo in the ScriptInProgress
subscription: "ScriptInProgess". However, when I tried to
subscribe the Text attribute to ScriptInProgress, the text
changed to just "1" or "0", rather than to the string stored in
the UIText table. The only way I could get a usable effect
was by subscribing the Visible attribute to ScriptInProgress
and placing a constant string in Text. The MSI SDK does not
actually say which attribute of the Text control should
subscribe to ScriptInProgress.