That's not too complex - but does involve Sockets - so I created the DynamicArgument class to do all the heavy lifting. So you need to talk to the first instance and tell it the new file and let it handle it.
When you double click a related file in Explorer, your app opens - but what if you want to open another file in the same instance of the app? If you double click another file in explorer, Windows will open a second instance.