Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

CopyMemory kopiert nur 32KB?

  Alt 15. Jul 2006, 20:56
Hi,

Ich möchte einen Text wie folgt ins Clipboard kopieren:
Delphi-Quellcode:
procedure Input(URL, Text: String);
var hmem: THandle;
    p: Pointer;
    clf: Cardinal;
    T: WideString;
begin
  T:=Text;
  clf:=RegisterClipBoardFormat('text/html');
  hmem:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(T)+1);
  p:=GlobalLock(hmem);
  CopyMemory(p, @T[1], Length(T)+1);
  GlobalUnlock(hmem);
  ClipBoard.SetAsHandle(clf, hmem);
end;
Dieser Text muss als Unicode-String eingefügt werden.
Das Problem ist nun dass so immer exakt 32KB kopiert werden.
Kopiere ich ihn als normalen String dann wird er komplett kopiert wobei er dann auch kleiner ist.

meine Vermutung ist nun das CopyMemory aus irgendwelchen gründen höchstens 32KB kopiert...

Kann das sein?
Oder gibt es eine andere Erklärung dafür?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat