Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Unicode to _clipboard
Message
De
22/11/2020 13:58:39
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Unicode to _clipboard
Divers
Thread ID:
01677281
Message ID:
01677281
Vues:
123
Sir, I have this Unicode string
tcUnicodeText=[اسلام علیکم]
I want to copy this string to _cliptext

For this I found this link useful
https://www.berezniker.com/content/pages/visual-foxpro/copy-unicode-text-clipboard

I used my string with these code as follows
DO CopyUnicodeText2Clipboard WITH tcUnicodeText
    
 && Copy Unicode text into Clipboard
 FUNCTION CopyUnicodeText2Clipboard(tcUnicodeText)
 LOCAL lnDataLen, lcDropFiles, llOk, i, lhMem, lnPtr, lcUnicodeText
    
 #DEFINE CF_UNICODETEXT      13
 &&  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)
 && 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
     && Close clipboard
     =CloseClipboard()
 ENDIF
 RETURN llOk
     
 FUNCTION LoadApiDlls
 &&  Clipboard Functions
 DECLARE LONG OpenClipboard IN WIN32API LONG HWND
 DECLARE LONG CloseClipboard IN WIN32API
 DECLARE LONG EmptyClipboard IN WIN32API
 DECLARE LONG SetClipboardData IN WIN32API LONG uFormat, LONG hMem
 &&  Memory Management Functions
 DECLARE LONG GlobalAlloc IN WIN32API LONG wFlags, LONG dwBytes
 DECLARE LONG GlobalFree IN WIN32API LONG HMEM
 DECLARE LONG GlobalLock IN WIN32API LONG HMEM
 DECLARE LONG GlobalUnlock IN WIN32API LONG HMEM
 DECLARE LONG RtlMoveMemory IN WIN32API As CopyFromStr LONG lpDest, String @lpSrc, LONG iLen
 RETURN
Codes runs successfully but when I paste clipboard data into MS.Word then this data appears like this
폇쟡⃣飭⃣਍臂頠폭⃿Ÿ＀炙?뷑ᄐ芖g﹌䛦覒蠀
instead of اسلام علیکم

How is it possible to copy Unicode data to _clipboard.

Please
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform