Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Copy Unicode to clipboard
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01414441
Message ID:
01415031
Vues:
52
Hi Christof,

It works! Thanks a lot for your time.

Ben


>I had the SYS(2600) call wrong, sorry about that. Here's a modified version using the original function to copy the string content:
>
>* Based on  http://www.berezniker.com/content/pages/visual-foxpro/copy-unicode-text-clipboard
>&& Copy Unicode text into Clipboard
>FUNCTION CopyUnicodeText2Clipboard(tcUnicodeText)
>LOCAL lnDataLen, lcDropFiles, llOk, i, lhMem, lnPtr, lcUnicodeText, lhMem2, lnPtr2, lcTextDBCS
>#DEFINE CF_UNICODETEXT  13
>#define CF_TEXT             1
> 
>&&  Global Memory Variables with Compile Time Constants
>#DEFINE GMEM_MOVABLE 	0x0002
>#DEFINE GMEM_ZEROINIT	0x0040
>#DEFINE GMEM_SHARE		0x2000
> 
>&& Load required Windows API functions
>=LoadApiDlls()
> 
>llOk = .T.
>lcUnicodeText = tcUnicodeText + CHR(0)+CHR(0)
>lnDataLen = LEN(lcUnicodeText)
>&& Copy Unicode text into the allocated memory
>lhMem = GlobalAlloc(GMEM_MOVABLE+GMEM_ZEROINIT+GMEM_SHARE, lnDataLen)
>lnPtr = GlobalLock(lhMem)
>=CopyFromStr(lnPtr, @lcUnicodeText, lnDataLen)
>=GlobalUnlock(lhMem)
>lcTextDBCS = Strconv(lcUnicodeText,6)+Chr(0)
>lhMem2 = GlobalAlloc(GMEM_MOVABLE+GMEM_ZEROINIT+GMEM_SHARE, Len(m.lcTextDBCS))
>lnPtr2 = GlobalLock(lhMem2)
>=CopyFromStr(lnPtr2, @lcTextDBCS, Len(m.lcTextDBCS))
>=GlobalUnlock(lhMem2)
>
>&& Open clipboard and store Unicode text into it
>llOk = (OpenClipboard(0) <> 0)
>IF llOk
>	=EmptyClipboard()
>	llOk = (SetClipboardData(CF_UNICODETEXT, lhMem) <> 0)
>	&& If call to SetClipboardData() is successful, the system will take ownership of the memory
>	&&   otherwise we have to free it
>	IF NOT llOk
>		=GlobalFree(lhMem)
>	ENDIF
>	llOk = (SetClipboardData(CF_TEXT, lhMem2) <> 0)
>	IF NOT llOk
>		=GlobalFree(lhMem2)
>	ENDIF
>	&& Close clipboard
>	=CloseClipboard()
>ENDIF
>RETURN llOk
>
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform