[This is preliminary documentation and subject to change.]
If your application is network-based, it may not be practical for your migration DLL to copy your migration files from a network location to every local computer that has Windows 95 or Windows 98 installed.
Instead, your migration DLL can redirect the application shell links to a new executable. This way, when a user launches the application, the new executable runs instead. This executable is responsible for completing the migration from the network location to that user's local machine in the user's logged-on, network-accessible context on Windows NT. If you choose this approach, all your migration DLL needs to do is to copy the new executable to the local hard disk and redirect all shell links from the original target application to this new executable. (You accomplish this through an entry in the [Moved] section of MIGRATE.INF.)
The new executable must complete the migration when a user runs it on Windows NT. It must restore the original shell links, delete itself, and then run the newly migrated application. For more details on how to replace links, see the Shell Link documentation in the Win32 SDK.