Also im Clipboard stehen immer mehrere Formate
gleichzeitig drin.
Das ist ganz wichtig zu wissen!
Mit meinem
Clipboard-Explorer kann man sich die verschiedenen Formate anzeigen lassen.
Wenn man in Outlook einen Anhang kopiert, dann wird unter anderem auch ein Format mit dem Namen
FileContents im Clipboard abgelegt.
In diesem Format ist die gesamte Datei enthalten.
Um an die Daten ranzukommen, muss man im eigenen Programm diese Format ebenfalls registrieren:
Delphi-Quellcode:
var CF_FILECONTENTS : Word;
...
CF_FILECONTENTS := RegisterClipboardFormat('FileContents'); // nur einmal beim Prog.start
Dann kann man abfragen, ob dieses Format im Clipboard enthalten ist und auslesen:
Delphi-Quellcode:
if clipboard.HasFormat(CF_FILECONTENTS)
then
// folgendes Code-Stückchen habe ich aus meiner Unit ClipboardTools rausgeschnitten
with Clipboard
do
begin
//var
// size : DWORD;
// handle : THandle;
Open;
try
handle := GetAsHandle(fmt);
if handle <> 0
then
begin
size := GlobalSize(
handle);
if size > 0
then
begin
// Daten nach Result(string) kopieren
SetString(Result, PChar(GlobalLock(
Handle)), size);
GlobalUnlock(
handle);
end;
end;
finally
Close;
end;
end;