Moin Baal,
jetzt ist mir nicht ganz klar, wo Dein Problem liegt.
Du bekommst es zum einen hin, dass nur eine Instanz von Deinem Programm gestartet wird, zum anderen, dass mehrere Dateien in die gleiche Instanz geladen werden, wenn im Explorer mehrere ausgewählt werden.
Stellt sich mir die Frage: Wie hast Du die beiden Punkte implementiert. Das geschilderte Problem dürfte eigentlich nicht auftauchen.
BTW: Du könntest hier auch mal nach
WM_COPYDATA suchen. Da hatte ich, meiner Erinnerung nach mal ein Beispiel gepostet.