Hallo Allgemeinheit,
bin eigentlich schon ne ganze Weile länger hier registriert, allerdings scheint das Passwort zusenden bei Verlust nicht zu funktionieren, musste mir jedenfalls jetzt einen neuen Benutzer anlegen (mein Alter heißt digleu). Soooaaa, nachdem ich also zur Genüge google und die Suchfunktion verschiedener Foren bemühte habe, habe ich mich dann also dazu entschieden mal nen Beitrag zu schreiben.
Ich bin relativ frisch was
OLE in Outlook angeht, komme aber jetzt in die Verlegenheit alle Outlook-Kontakte in mein Programm importieren zu müssen. Dazu habe ich schonmal folgenden Programmcode zusammengesucht (und auch soweit verstanden
):
Delphi-Quellcode:
procedure TfrmOutlookSync.loadOutlookContacts;
const
olFolderContacts = $0000000A;
var
outlook, NameSpace, Contacts: OleVariant;
i: Integer;
MMContact: TMMOutlookContact;
begin
listMain.Items.BeginUpdate;
try
listMain.Items.Clear;
try
outlook := CreateOleObject('
Outlook.Application');
NameSpace := outlook.GetNameSpace('
MAPI');
Contacts := NameSpace.GetDefaultFolder(olFolderContacts);
for i := 1
to Contacts.Items.Count
do
begin
MMContact := TMMOutlookContact.Create;
try
MMContact.ReadFromOle(Contacts.Items.Item(i));
listMain.Items.AddObject(IntToStr(i) + '
. ' + MMContact.getFullName, MMContact);
except
listLog.Items.Add('
Fehler bei i='+IntToStr(i));
end;
end;
Outlook := UnAssigned;
except
ShowMessage('
Beim importieren ist ein Fehler aufgetreten. Möglicherweise ist Outlook nicht konfiguriert.');
end;
finally
listMain.Items.EndUpdate;
end;
end;
Dabei ist TMMOutlookContact eine von mir selbst erstellte Klasse, der ich einfach das entsprechende Variant Datenkonstrukt mit .readFromOle übergebe:
Delphi-Quellcode:
procedure TMMOutlookContact.ReadFromOle(AppOle: OleVariant);
begin
// Contact := AppOle as ContactItem;
FNachname := AppOle.Lastname;
FVorname := AppOle.FirstName;
FWeitererVorname := AppOle.MiddleName;
end;
und .getFullName gibt einfach den Namen des Kontakts zurück. listMain ist eine Listbox wo ich das alles mal testweise anzeige, listLog ein Fehlerlog.
Soa jetzt habe ich auch schon eine Liste von möglichen Eigenschaftsnamen dieses OleVariants im Internet gefunden und könnte damit schon an sehr viele Informationen kommen (gibts da irgendwo vielleicht eine vollständige Liste?), mein Problem ist allerdings, dass man in Outlook ja auch Bilder an seine Kontakte dranhängen kann und ich auch diese gerne auslesen würde. Habe nämlich keinen blassen Schimmer, wie der Eigenschftsname heißen könnt (.Image oder so?) und selbst wenn ich es wüsste hätte ich keine Ahnung wie ich die Daten in nen Stream oder in ne Datei bekommen könnte (letztenendlich solls in einer Datenbank abgelegt werden, aber das bekomme ich hin, weiß halt nur nicht wie ich an die Daten aus den Outlook-Kontakten drankommen soll).
Danke für jede Hilfe im Vorraus und schonmal einen guten Start in den Tag
viel Grüße
Lars