[gelöst] Problem mit Outlook OLE

Antworten
TheRealHades
Beiträge: 11
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: 6208
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/9591613/olevariant-and-string-assignments-in-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: 11
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