The main idea is that one instance of my program is launched for each file you select. It checks if another instance of the singleinstance program is running, and uses Inter-Process Communication to notify the existing instance that other files have been selected.