Utf16FromBuffer - cCharTranslate
Creates a UTF-16 string in a memory buffer from an OEM, ANSI or UTF-8 memory buffer
Type: Function
Return Data Type: Pointer
Parameters
| Parameter | Type | Description |
|---|---|---|
| pMultiCharBuffer | Pointer | A null terminated string |
| eCharType | Integer | The type of string encoding, which may be OEM (CP_OEMCP), ANSI (CP_ACP) or UTF-8 (CP_UTF8) |
| ByRef iLen | Integer | Returns the length, in wide characters, of the Unicode string |
Syntax
Function Utf16FromBuffer Pointer pMultiCharBuffer Integer eCharType ByRef Integer iLen Returns Pointer
Call Example
Get Utf16FromBuffer pMultiCharBuffer eCharType iLen to PointerVariable
Description
Utf16FromBuffer creates a UTF-16 string in a memory buffer from an OEM, ANSI or UTF-8 memory buffer.
You are responsible for eventually disposing of the newly created memory buffer. This may be accomplished by using the Free function.
Use Windows.pkg
Use cCharTranslate.pkg
Object oCharTranslate is a cCharTranslate
End_Object
// test Utf16FromBuffer and Utf16ToBuffer
Procedure TestUTF16Buffer
Address aVar aUTF16Buffer aVar2
Integer iLen iVoid
String sVar sVar2
Move "Test String-Ññóí" to sVar
Move (AddressOf(sVar)) to aVar
// Move OEM to UTF16 buffer
Get Utf16FromBuffer of oCharTranslate aVar CP_OEMCP (&iLen) to aUTF16Buffer
// Move UTF16 Buffer to OEM String
Get Utf16ToBuffer of oCharTranslate aUTF16Buffer CP_OEMCP iLen to aVar2
// Note length of OEM buffer is CStringLength(aVar2)
Move aVar2 to sVar2
If (sVar<>sVar2) Begin
Send Info_Box "Test Failed"
End
Move (Free(aUTF16Buffer)) to iVoid
Move (Free(aVar2)) to iVoid
End_Procedure
Send TestUTF16Buffer
See Also
UTF16ToBuffer | UTF16FromStr | UTF16ToStr | Memory Management Functions
Return Value
The buffer address along with the length in wide characters of the Unicode string, which is returned by reference in iLen.