Newsgroups : Borland : borland.public.delphi.nativeapi.win32 : 2006 Jul : Pasting from clipboard doesn't keep paths

www.cryer.info
Managed Newsgroup Archive

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;

Replies:

www.cryer.info
Managed Newsgroup Archive