Thema: Delphi Outlook Bilder auslesen

Einzelnen Beitrag anzeigen

DocBorn

Registriert seit: 7. Jul 2006
Ort: Bonn
26 Beiträge
 
#1

Outlook Bilder auslesen

  Alt 7. Jul 2006, 07:24
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
  Mit Zitat antworten Zitat