Vielen Dank noch einmal für die Unterstützung!
Ich hab erstmal herausgefunden, wie ich meine Anwendung registriere, damit ich in der Liste aufscheine.
Mein einziges Problem ist nur noch das reagieren meiner Anwendung auf die Events. Zur Zeit will ich sowieso nur auf volume-basierte Devices zugreifen (die meisten modernen Kameras decke ich damit ja ab).
Zu diesem Zweck habe ich mir
diesen Artikel durchgelesen. Jetzt bin ich leider noch nicht ganz der
WinAPI-Freak.
Da steht unter anderem:
Zitat:
When Autoplay launches an app in response to a volume-based event, the InvokeProgID and InvokeVerb values are passed to ShellExecuteEx. If the application registered for IDropTarget then all the files that were sniffed will be passed to the application through the IDataObject interface.
Wo anders habe ich das gefunden:
Zitat:
Under ProgID key, the class ID (
CLSID) of the
COM object that implements the IDropTarget interface must be defined.
Soweit klar, nur wie implementiert man das konkret? Ich muss offensichtlich IDropTarget implementieren. Nur wie funktioniert das? Bis jetzt ist meine Anwendungs zwar für IDropTarget registriert, kann es aber noch gar nicht.
Muss ich da eine Shell-Extension schreiben? Ich steh etwas planlos davor...
Was ich erreichen will ist, dass entweder meine bereits geöffnete Anwendung benachrichtigt wird, oder falls nicht vorhanden, meine Anwendung geöffnet wird.
Da würde sich eine Shell-Extension anbieten oder nicht? Sie bearbeitet die Events und reicht sie an die Hauptanwendung weiter. Nur wie leite ich sie weiter? Oder denke ich völlig falsch?
Und kann ich das IDropTarget-Objekt
gleichzeitig dazu verwenden, Dateien vom Explorer per Drag & Drop zu öffnen? Oder sind diese beiden IDropTargets zwei verschiedene paar Schuhe?
Vielen Dank,
Andreas
Andreas N.