[This is preliminary documentation and subject to change.]
Your migration DLL should not have a user interface. A parent window handle is provided only for the extreme case where a user interface is unavoidable. If Setup provides a NULL parent window handle, the DLL must never display any windows, dialog boxes, drop-down list boxes, or message boxes. The migration DLL must never display a user interface during the Windows NT phase of Setup.
This is extremely important when Setup is running in unattended mode. You can determine the Setup mode by testing the value of the ParentWnd parameter in either MigrateUser9x or MigrateSystem9x.
The installation process should be as hassle free as possible. If the user interface is required at any point during an attended installation, consider the usability implications when someone must load multiple migration DLLs.