[gelöst] Problem mit Outlook OLE

Antworten
TheRealHades
Beiträge: 12
Registriert: So 10. Feb 2013, 13:01
OS, Lazarus, FPC: Windows 10 20H2 (L 2.2.2 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Ottendorf-Okrilla

[gelöst] Problem mit Outlook OLE

Beitrag von TheRealHades »

Hallo

ich versuche Termine aus dem Outlook-Kalender auszulesen. Das funktioniert auch alles soweit bis man Filter einsetzen will. Folgendes Programm verdeutlicht mein Problem:

Code: Alles auswählen

 
program Project1;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this },
  comobj;
 
var
  Outlook : OleVariant;
  NameSpace : OleVariant;
  CalendarsRoot : OleVariant;
  OutlookCalendar : OleVariant;
  Appointments: OleVariant;
  app: OleVariant;
  filter: String;
 
begin
  Outlook:= CreateOleObject('Outlook.Application');
  NameSpace:= Outlook.GetNameSpace('MAPI');
  CalendarsRoot := NameSpace.GetDefaultFolder(9);
 
  Appointments:= CalendarsRoot.Items;
  filter:= '([START] >= "10/04/13 00:00")';
 
  Appointments.IncludeRecurrences:= true;
  Appointments:= Appointments.Restrict('([START] >= "10/04/13 00:00")');
  //Appointments:= Appointments.Restrict(filter);
  Appointments.Sort('start');
  app:= Appointments.GetFirst;
  Writeln(app.Subject);
  Writeln(app.Start);
 
  Readln;
  Outlook:= Unassigned;
end.  
 
Die Zeilen mit dem Restrict sind der Knackpunkt an dem ich mir bisher die Zähne ausgebissen habe. Wenn ich den String direkt angebe funktioniert alles bestens, bei Benutzung der "filter"-Variable bekomme ich hingegen eine AccessViolation.

Ich wäre für erste Ansätze sehr dankbar.

mfg Björn
Zuletzt geändert von TheRealHades am Mi 19. Jun 2013, 10:15, insgesamt 2-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6762
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Problem mit Outlook OLE

Beitrag von af0815 »

string wird wird nicht über die OLE Schnittstelle gehen. Gib den Filter auch als OLEVariant an.

Ev. hilft das
http://stackoverflow.com/questions/9591 ... n-delphi-5
http://www.lazarusforum.de/viewtopic.php?f=10&t=6011
Zuletzt geändert von af0815 am Mi 19. Jun 2013, 10:16, insgesamt 1-mal geändert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

TheRealHades
Beiträge: 12
Registriert: So 10. Feb 2013, 13:01
OS, Lazarus, FPC: Windows 10 20H2 (L 2.2.2 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Ottendorf-Okrilla

Re: Problem mit Outlook OLE

Beitrag von TheRealHades »

:P :P :P
Danke!!!

Hab mich 2 Tage damit rumgeärgert, in jedem Delphi Schnipsel was ich gefunden habe hatten die das mit String gemacht.

Vielen Dank nochmal für die schnelle Hilfe.

Antworten