Hallo!
Mit den COM-Threadingmodellen hat das gar nichts zu tun.
Windows ruft bei Mehrfachauswahl im Explorer immer für jede Datei einzeln das entsprechende Programm auf und ich glaube nicht, dass man das ändern kann.
Also muss Dein Programm darauf reagieren, dass es bereits einmal läuft und eine weitere Instanz davon gestartet werden soll (mit eigenen Kommandozeilenargumenten). D.h. die zweite (dritte, …) Instanz muss ihre Kommandozeilenargumente an die bereits laufende (erste) Instanz weitergeben und sich dann gleich beenden.
Das Erkennen, ob erste oder weitere Instanz lässt sich mit einer Semaphore realisieren, die Kommandozeilenübergabe z.B. per Remoting über einen IPCChannel.
Gruß,
Martin