我的副本代码:
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。