Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.050 Beiträge
 
Delphi 2009 Professional
 
#17

AW: Abfrage ob MAPI vorhanden und eingerichtet

  Alt 18. Aug 2020, 17:24
Okay, Totengräber.

Ich stand auch gerade vor dem Problem, auch mit der DnD-Suite.

TOutlookDataFormat.Messages.Count kann man auch prüfen, wenn MAPI nicht initialisiert ist. Daher rufe ich OleCheck(MAPIInitialize(@MapiInit)); jetzt erst dann auf, wenn im Drop-Event das erste Mal TOutlookDataFormat.Messages.Count > 0 ist:
Delphi-Quellcode:
  if (FOutlookDataFormatAdapter.DataFormat as TOutlookDataFormat).Messages.Count > 0 then
    begin
      // Ruft man MAPIInitialize grundsätzlich (beim Start) auf, kommt ein grafisches Meldungsfenster, wenn kein MAPI installiert ist.
      // Es wird zwar offenbar auch eine Exception geschmissen wird. Solange diese aber nicht mit leerem except-Block ignoriert sondern zu behandeln versucht wird, verursacht OleCheck anschließend einen Deadlock, ohne dass eine Fehlerbehandlung durchgeführt wird.
      if not FMapiInitizializeCalled then
      begin
        FMapiInitizializeCalled := True;
        OleCheck(MAPIInitialize(@MapiInit));
      end;

      OutlookDataFormat := FOutlookDataFormatAdapter.DataFormat as TOutlookDataFormat;

      // tue tolle Dinge
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat