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="user-content-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.</ui></show></product></fragmentref>
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="user-content-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.</ui></binary>
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.