Newsgroups : Borland : borland.public.delphi.nativeapi.win32 : 2006 Jul : Pasting from clipboard doesn't keep paths
| Subject: | Pasting from clipboard doesn't keep paths |
| Posted by: | "Rael" (rael@nospam.com) |
| Date: | Mon, 3 Jul 2006 07:02:13 |
Hi,
Using the function below, I can copy files to the clipboard from my
application, but when I paste them in Windows explorer, it simply pastes the
files loosing Path information. Is there a way to have Windows explorer
paste the files including paths (i.e. creating where neccesary)? or
different wat to copy to clipboard?
Thanks Rael
procedure CopyFilesToClipboard(FileList: string);
var
DropFiles: PDropFiles;
hGlobal: THandle;
iLen: Integer;
begin
iLen := Length(FileList) + 2;
FileList := FileList + #0#0;
hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT,
SizeOf(TDropFiles) + iLen);
if (hGlobal = 0) then raise Exception.Create('Could not allocate
memory.');
begin
DropFiles := GlobalLock(hGlobal);
DropFiles^.pFiles := SizeOf(TDropFiles);
Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen);
GlobalUnlock(hGlobal);
Clipboard.SetAsHandle(CF_HDROP, hGlobal);
end;
end;