Difference between revisions of "Unit Unicode"
From Ultibo.org
Line 88: | Line 88: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 127: | Line 127: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 151: | Line 151: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 175: | Line 175: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 211: | Line 211: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 235: | Line 235: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 247: | Line 247: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 283: | Line 283: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 307: | Line 307: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 319: | Line 319: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 331: | Line 331: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 343: | Line 343: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 355: | Line 355: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 367: | Line 367: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 403: | Line 403: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 439: | Line 439: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 475: | Line 475: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 541: | Line 541: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 553: | Line 553: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 565: | Line 565: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 577: | Line 577: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 589: | Line 589: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 601: | Line 601: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 613: | Line 613: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 625: | Line 625: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 637: | Line 637: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 649: | Line 649: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 661: | Line 661: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 673: | Line 673: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 685: | Line 685: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 697: | Line 697: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 709: | Line 709: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 721: | Line 721: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 733: | Line 733: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 745: | Line 745: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 757: | Line 757: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 769: | Line 769: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 781: | Line 781: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} | ||
Line 793: | Line 793: | ||
|- | |- | ||
! '''Note''' | ! '''Note''' | ||
− | | | + | | None documented |
|- | |- | ||
|} | |} |
Revision as of 05:52, 26 September 2016
Return to Unit Reference
Description
This unit implements the WideString and UnicodeString support for Ultibo including the WideStringManager/UnicodeStringManager interface for the RTL.
This unit provides compatible implementations of the following functions:
- CharLower
- CharPrev
- CharUpper
- FoldString
- GetStringTypeEx
- IsCharAlphaNumeric
- IsDBCSLeadByte
- LoadString
- lstrcmpi
- lstrlen
- OemToCharBuff
- wvsprintf
- OemToAnsi
- CharLowerBuff
- CharToOem
- CharUpperBuff
- FormatMessage
- GetStringTypeW
- IsCharLower
- IsTextUnicode
- lstrcat
- lstrcpy
- MultiByteToWideChar
- WideCharToMultiByte
- CompareStringW
- CharNext
- CharToOemBuff
- CompareStringA
- GetStringTypeA
- IsCharAlpha
- IsCharUpper
- LCMapString
- lstrcmp
- lstrcpyn
- OemToChar
- wsprintf
- AnsiToOem
The following functions are implemented by the FileSystem unit:
- AreFileApisANSI (AreFileApisANSI is exposed in the Ultibo unit)
- SetFileApisToANSI (SetFileApisToANSI is exposed in the Ultibo unit)
- SetFileApisToOEM (SetFileApisToOEM is exposed in the Ultibo unit)
Most of the above are currently not implemented.
See also: https://msdn.microsoft.com/en-us/library/windows/desktop/dd319081%28v=vs.85%29.aspx
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
procedure UnicodeInit;
Description: To be documented
Note | None documented |
---|
Unicode functions
function MultiByteToWideChar(CodePage:UINT; dwFlags:DWORD; lpMultiByteStr:LPCSTR; cbMultiByte:Integer; lpWideCharStr:LPWSTR; cchWideChar:Integer):Integer;
Description: SBCS/DBCS OEM or ANSI string to Unicode string
Note | cchWideChar is the size of lpWideCharStr in WideChars (not Bytes). Currently ignores the Flags parameter. Currently only supports SBCS. |
---|
function WideCharToMultiByte(CodePage:UINT; dwFlags:DWORD; lpWideCharStr:LPCWSTR; cchWideChar:Integer; lpMultiByteStr:LPSTR; cbMultiByte:Integer; lpDefaultChar:LPCSTR; lpUsedDefaultChar:LPBOOL):Integer;
Description: Unicode string to SBCS/DBCS OEM or ANSI string
Note | cchWideChar is the size of lpWideCharStr in WideChars (not Bytes). Currently ignores the Flags and DefaultChar parameters. Currently only supports SBCS. |
---|
function CompareString(Locale:LCID; dwCmpFlags:DWORD; lpString1:LPCSTR; cchCount1:Integer; lpString2:LPCSTR; cchCount2:Integer):Integer; inline;
Description: To be documented
Note | None documented |
---|
function CompareStringA(Locale:LCID; dwCmpFlags:DWORD; lpString1:LPCSTR; cchCount1:Integer; lpString2:LPCSTR; cchCount2:Integer):Integer;
Description: ANSI compare of two strings for equivalence. If both strings are equal returns CSTR_EQUAL, if string 1 is less than string 2 returns CSTR_LESS_THAN and if string 1 is greater than string 2 returns CSTR_GREATER_THAN, on error returns 0
Note | Currently the Locale value is ignored and the ANSI code page is used for comparison. Currently only supports SBCS. |
---|
function CompareStringALowercase(lpString:PByte):Byte; inline;
Description: To be documented
Note | None documented |
---|
function CompareStringW(Locale:LCID; dwCmpFlags:DWORD; lpString1:LPCWSTR; cchCount1:Integer; lpString2:LPCWSTR; cchCount2:Integer):Integer;
Description: Unicode compare of two strings for equivalence. If both strings are equal returns CSTR_EQUAL, if string 1 is less than string 2 returns CSTR_LESS_THAN and if string 1 is greater than string 2 returns CSTR_GREATER_THAN, on error returns 0
Note | Currently the Locale value is ignored |
---|
function CharUpper(lpsz:LPSTR):LPSTR; inline;
Description: To be documented
Note | None documented |
---|
function CharUpperA(lpsz:LPSTR):LPSTR;
Description: Lower to Upper case conversion in ANSI code page (Char)
Note | Unlike Windows this function does not differentiate a single character by the high order word of the passed pointer. To convert a single character call CharUpperBuffA instead with the length as 1. Currently only supports SBCS. |
---|
function CharUpperW(lpsz:LPWSTR):LPWSTR;
Description: Lower to Upper case conversion in Unicode (WideChar)
Note | Unlike Windows this function does not differentiate a single character by the high order word of the passed pointer. To convert a single character call CharUpperBuffW instead with the length as 1. |
---|
function CharUpperBuff(lpsz:LPSTR; cchLength:DWORD):DWORD; inline;
Description: To be documented
Note | None documented |
---|
function CharUpperBuffA(lpsz:LPSTR; cchLength:DWORD):DWORD;
Description: Lower to Upper case conversion in ANSI code page (Char)
Note | Currently only supports SBCS |
---|
function CharUpperBuffW(lpsz:LPWSTR; cchLength:DWORD):DWORD;
Description: Lower to Upper case conversion in Unicode (WideChar)
Note | None documented |
---|
function CharLower(lpsz:LPSTR):LPSTR; inline;
Description: To be documented
Note | None documented |
---|
function CharLowerA(lpsz:LPSTR):LPSTR;
Description: Upper to Lower case conversion in ANSI code page (Char)
Note | Unlike Windows this function does not differentiate a single character by the high order word of the passed pointer. To convert a single character call CharLowerBuffA instead with the length as 1. Currently only supports SBCS. |
---|
function CharLowerW(lpsz:LPWSTR):LPWSTR;
Description: Upper to Lower case conversion in Unicode (WideChar)
Note | Unlike Windows this function does not differentiate a single character by the high order word of the passed pointer. To convert a single character call CharLowerBuffW instead with the length as 1. |
---|
function CharLowerBuff(lpsz:LPSTR; cchLength:DWORD):DWORD; inline;
Description: To be documented
Note | None documented |
---|
function CharLowerBuffA(lpsz:LPSTR; cchLength:DWORD):DWORD;
Description: Upper to Lower case conversion in ANSI code page (Char)
Note | Currently only supports SBCS |
---|
function CharLowerBuffW(lpsz:LPWSTR; cchLength:DWORD):DWORD;
Description: Upper to Lower case conversion in Unicode (WideChar)
Note | None documented |
---|
function AnsiToOem(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function AnsiToOemBuff(lpszSrc:LPCSTR;lpszDst:LPSTR; cchDstLength:DWORD):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function OemToAnsi(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function OemToAnsiBuff(lpszSrc:LPCSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function CharToOem(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function CharToOemA(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL;
Description: ANSI to OEM conversion (Char to Char)
Note | Currently only supports SBCS |
---|
function CharToOemW(lpszSrc:LPCWSTR; lpszDst:LPSTR):BOOL;
Description: Unicode to OEM conversion (WideChar to Char)
Note | Currently only supports SBCS |
---|
function OemToChar(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function OemToCharA(lpszSrc:LPCSTR; lpszDst:LPSTR):BOOL;
Description: OEM to ANSI conversion (Char to Char)
Note | Currently only supports SBCS |
---|
function OemToCharW(lpszSrc:LPCSTR; lpszDst:LPWSTR):BOOL;
Description: OEM to Unicode conversion (Char to WideChar)
Note | Currently only supports SBCS |
---|
function CharToOemBuff(lpszSrc:LPCSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function CharToOemBuffA(lpszSrc:LPCSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL;
Description: ANSI to OEM conversion (Char to Char)
Note | Currently only supports SBCS |
---|
function CharToOemBuffW(lpszSrc:LPCWSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL;
Description: Unicode to OEM conversion (WideChar to Char)
Note | Currently only supports SBCS |
---|
function OemToCharBuff(lpszSrc:LPCSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL; inline;
Description: To be documented
Note | None documented |
---|
function OemToCharBuffA(lpszSrc:LPCSTR; lpszDst:LPSTR; cchDstLength:DWORD):BOOL;
Description: OEM to ANSI conversion (Char to Char)
Note | Currently only supports SBCS |
---|
function OemToCharBuffW(lpszSrc:LPCSTR; lpszDst:LPWSTR; cchDstLength:DWORD):BOOL;
Description: OEM to Unicode conversion (Char to WideChar)
Note | Currently only supports SBCS |
---|
RTL unicode functions
function SysCodePageToWideChar(Ch:Char):WideChar;
Description: ANSI to Unicode conversion (Char to WideChar)
Note | Currently only supports SBCS |
---|
function SysWideCharToCodePage(Ch:WideChar):Char;
Description: Unicode to ANSI conversion (WideChar to Char)
Note | Currently only supports SBCS |
---|
RTL unicode string manager functions
procedure SysWide2AnsiMove(Source:PWideChar; var Dest:RawByteString; cp:TSystemCodePage; Len:SizeInt);
Description: To be documented
Note | None documented |
---|
procedure SysAnsi2WideMove(Source:PChar; cp:TSystemCodePage; var Dest:WideString; Len:SizeInt);
Description: To be documented
Note | None documented |
---|
function SysUpperWideString(const S:WideString):WideString;
Description: To be documented
Note | None documented |
---|
function SysLowerWideString(const S:WideString):WideString;
Description: To be documented
Note | None documented |
---|
function SysCompareWideString(const s1,s2:WideString; Options:TCompareOptions):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysCompareTextWideString(const s1,s2:WideString):PtrInt;
Description: To be documented
Note | None documented |
---|
procedure SysUnicode2AnsiMove(Source:PUnicodeChar; var Dest:RawByteString; cp:TSystemCodePage; Len:SizeInt);
Description: To be documented
Note | None documented |
---|
procedure SysAnsi2UnicodeMove(Source:PChar; cp:TSystemCodePage; var Dest:UnicodeString; Len:SizeInt);
Description: To be documented
Note | None documented |
---|
function SysUpperUnicodeString(const S:UnicodeString):UnicodeString;
Description: To be documented
Note | None documented |
---|
function SysLowerUnicodeString(const S:UnicodeString):UnicodeString;
Description: To be documented
Note | None documented |
---|
function SysCompareUnicodeString(const s1,s2:UnicodeString; Options:TCompareOptions):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysCompareTextUnicodeString(const s1,s2:UnicodeString):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysUpperAnsiString(const S:String):String;
Description: To be documented
Note | None documented |
---|
function SysLowerAnsiString(const S:String):String;
Description: To be documented
Note | None documented |
---|
function SysCompareStrAnsiString(const S1,S2:String):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysCompareTextAnsiString(const S1,S2:String):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysStrCompAnsiString(S1,S2:PChar):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysStrICompAnsiString(S1,S2:PChar):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysStrLCompAnsiString(S1,S2:PChar; MaxLen:PtrUInt):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysStrLICompAnsiString(S1,S2:PChar; MaxLen:PtrUInt):PtrInt;
Description: To be documented
Note | None documented |
---|
function SysStrLowerAnsiString(Str:PChar):PChar;
Description: To be documented
Note | None documented |
---|
function SysStrUpperAnsiString(Str:PChar):PChar;
Description: To be documented
Note | None documented |
---|
Return to Unit Reference