Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Unicode to _clipboard
Message
From
22/11/2020 13:58:39
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Unicode to _clipboard
Miscellaneous
Thread ID:
01677281
Message ID:
01677281
Views:
124
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
Next
Reply
Map
View

Click here to load this message in the networking platform