Dieses ShellExt Demo zeigt alles was du benötigst. Es registriert eine Schnittstelle aus deiner
DLL die zu den registrierten Dateitypen einen Menueintrag im Explorer anzeigt. Wird dieser Menueintrag ausgewählt so ruft der Explorer eine Interface Methode aus deiner Implementation auf. Dabei übergibt er eine Liste aller selektierten Objecte = Ordner/Dateien/ShellObjecte wie Papierkorb usw, usw. Du kannst dann direkt aus dieser Liste jede Datei extrahieren.
Gruß Hagen