我在这个自定义格式的复制和粘贴中错过了什么?

时间:2014-01-20 15:05:46

标签: windows delphi delphi-7 clipboard pchar

我的副本代码:

if OpenClipboard(mainwnd.Handle) then
  MemHandle := GlobalAlloc(GHND or GMEM_SHARE, Succ(StrLen(pLclCopies)));
  if MemHandle <> 0 Then
   Begin
    try 
     StrCopy(GlobalLock(MemHandle), pLclCopies);
     GlobalUnlock(MemHandle);
     SetClipboardData(cf_LocalVar,MemHandle);
    Finally
     CloseClipboard;
     GlobalFree(MemHandle);
    end;
   end;

和我的粘贴代码:

if clipboard.HasFormat(cf_LocalVar) then
  begin
   ClipBoard.Open;
   try
    MyHandle := Clipboard.GetAsHandle(cf_LocalVar);
    LocalsTextPtr := GlobalLock(MyHandle);
    CheckForCopiedLocals(LocalsTextPtr, TextPtr); //What I do with the pasted data.
    GlobalUnLock(MyHandle);
   finally
    Clipboard.Close;
   end;
  end;

我的目标是不仅要复制程序中特殊编辑器的文本,还要复制与该编辑器相关的一些基础变量数据。大多数一切似乎都在工作得很好 - 我看到了我的复制文本,'cf_LocalVar'格式出现在Windows上的ClipBook查看器中。

当我到达粘贴侧和线时 LocalsTextPtr := GlobalLock(MyHandle);无法从第一位代码中获取复制的数据。我看到它进入了pLclCopies,但后来无法确定它是否存储在剪贴板中。

请注意,我已从代码中省略了emptyclipboard,因为这样可以删除我需要的cf_text以及cf_LocalVar。

0 个答案:

没有答案