Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CopyMemory kopiert nur 32KB? (https://www.delphipraxis.net/73326-copymemory-kopiert-nur-32kb.html)

glkgereon 15. Jul 2006 20:56


CopyMemory kopiert nur 32KB?
 
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... :gruebel:

Kann das sein?
Oder gibt es eine andere Erklärung dafür?

Bernhard Geyer 15. Jul 2006 20:58

Re: CopyMemory kopiert nur 32KB?
 
Delphi-Quellcode:
hmem:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, 2*(Length(T)+1));
CopyMemory(p, @T[1], 2*(Length(T)+1));
1 Widechar = 2 Byte

glkgereon 15. Jul 2006 21:31

Re: CopyMemory kopiert nur 32KB?
 
Danke...

nun geht aber irgendwas anders schief... :-/

aber das funzt schonmal^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz