AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Outlook-Emails per Drag und Drop auf App ziehen...
Thema durchsuchen
Ansicht
Themen-Optionen

Outlook-Emails per Drag und Drop auf App ziehen...

Ein Thema von Darkmorph · begonnen am 17. Jun 2008 · letzter Beitrag vom 18. Jun 2008
Antwort Antwort
Darkmorph

Registriert seit: 24. Mär 2003
37 Beiträge
 
Delphi 6 Professional
 
#1

Re: Outlook-Emails per Drag und Drop auf App ziehen...

  Alt 18. Jun 2008, 12:45
Ich benutze nun das IDROPINTERFACE, um ein InterApp-DROP-Event zu erhalten. Daraufhin prüfe ich, per ActiveExplorer.Selection, ob in Outlook Nachrichten selektiert sind und übertrage diese per Ole Automatation. Das funzt auch alles Super, nur wie gehe ich auf Nummer sicher, das der Drop SENDER Outlook ist? Ich bekomme beim Drop-Event, wenn ich Clipboard-Format CF_TEXT einstelle, nur ein Ergebnis wie das folgt:
Zitat:
Von Betreff Erhalten Größe
Campusspeicher Team Campusspeicher - Neuigkeiten Sa 14.06 14 KB
Zattoo Support Deutschland User Support Sa 14.06 11 KB
Ich könnte jetzt einfach auf die Schlagworte "Vov", "Betreff", "Erhalten" und "Größe" prüfen, aber das scheint mir doch zu laienhaft in Bezug auf Mehrsprachigkeit von Outlook, Versionsabhängigkeit usw.

Delphi-Quellcode:
function TForm1.Drop(const dataObj: IDataObject; grfKeyState: Integer;
  pt: TPoint; var dwEffect: Integer): HResult;
var
  aFmtEtc: TFORMATETC;
  aStgMed: TSTGMEDIUM;
  pData: PChar;
begin
  {Make certain the data rendering is available}
  if (dataObj = nil) then
    raise Exception.Create('IDataObject-Pointer is not valid!');
  with aFmtEtc do
  begin
    cfFormat := CF_TEXT;
    ptd := nil;
    dwAspect := DVASPECT_CONTENT;
    lindex := -1;
    tymed := TYMED_HGLOBAL;
  end;
  {Get the data}
  OleCheck(dataObj.GetData(aFmtEtc, aStgMed));
  try
    {Lock the global memory handle to get a pointer to the data}
    pData := GlobalLock(aStgMed.hGlobal);
    { Replace Text }
    Memo1.Text := pData;
  finally
    {Finished with the pointer}
    GlobalUnlock(aStgMed.hGlobal);
    {Free the memory}
    ReleaseStgMedium(aStgMed);
  end;
  Result := S_OK;
end;
Dieser Code empfängt verarbeitet das Dropen, es handelt sich dabei um kopierten COde ausm Netz, wo kann oder muß ich in dem COde ansetzen, um die Source-Applikation sicher zu ermitteln?

Vielen Dank für die bisherige Hilfe und das was da noch kommen mag

Gruß
Benjamin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz