Für die Nachwelt und weil man zu diesem Thema nur sehr wenig im Netz findet:
In dem DropMaster-Demo werden die Termine anhand ihres Textes identifiziert, was natürlich bei mehreren gleich benannten Terminen nicht funktioniert.
Deshalb habe ich es jetzt so gelöst, dass ich im Drop-Event nach erfolgter Prüfung, ob ein Termin gedropped wurde, einfach die in Outlook selektierten Elemente auslese, denn wenn die gerade erst gedrag/dropped wurden, sind sie auch noch selektiert.
D2007
Delphi-Quellcode:
var
Outlook: OleVariant;
Count:integer;
Termin:OleVariant;
dt:TDropTermin; // meine Termin-Klasse
fItems:TObjectList; // meine Termin-Liste
// ...
try
Outlook := GetActiveOleObject('Outlook.Application');
Count:=Outlook.ActiveExplorer.Selection.Count;
for i := 1 to Count do begin
Termin:= Outlook.ActiveExplorer.Selection[i];
dt:=TDropTermin.Create;
dt.fTerminTitel:=Termin.Subject;
dt.fStartTime :=Termin.Start;
dt.fEndTime :=Termin.End;
dt.fBemerk :=Termin.Body;
dt.fKategorie :=Termin.Categories;
fItems.add(dt);
end;
finally
Outlook := unassigned;
end;