UniMapCpToUcsCp: Difference between revisions
Appearance
m formatting |
mNo edit summary |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Convert a code page string to a UCS string for input to [[UniCreateUconvObject]]. | |||
Convert a code page string to a UCS string for input to [[ | === Syntax === | ||
UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen); | |||
=== Parameters === | === Parameters === | ||
; codePage - [[ | ;codePage - [[ULONG]] - input : The code page returned from [[DosQueryCp]]. If the value is zero, the current process code page is used to determine the Unicode string. | ||
; unicodeBuff - [[ | ;unicodeBuff - [[UniChar]] - output : The output buffer for the Unicode string. | ||
; unicodeBuffLen - (size_t) - input : The output buffer's length, in characters. Must be, at minimum, 12 Unicode characters. | ;unicodeBuffLen - (size_t) - input : The output buffer's length, in characters. Must be, at minimum, 12 Unicode characters. | ||
=== Constants === | === Constants === | ||
Line 13: | Line 14: | ||
=== Returns === | === Returns === | ||
An integer with values of: | An integer with values of: | ||
* [[ | * [[Unicode Errors#ULS_INVALID|ULS_INVALID]] | ||
* [[ | * [[Unicode Errors#ULS_NOMEMORY|ULS_NOMEMORY]] | ||
* [[ | * [[Unicode Errors#ULS_SUCCESS|ULS_SUCCESS]] | ||
=== | === Calling Convention === | ||
[[Cdecl32]] | |||
=== | === Example Code === | ||
character in = "C:\SOMEPATH\FILE.TXT"; | |||
size_t unicodeBuffLen = 12; | |||
ULONG codePage; | |||
ULONG cpLen; // length set by DosQueryCp | |||
UniChar unicodeBuff, // length of unicodeBuffLen | |||
tempPath; // length of CCHMAXPATH | |||
UconvObject uconv; | |||
character out; // allocate to CCHMAXPATH | |||
integer rc; | |||
rc = DosQueryCp(size of ULONG, codePage, cpLen); | |||
=== | /* determine string for the conversion of codePage */ | ||
rc = UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen); | |||
rc = UniCreateUconvObject(unicodeBuff, uconv); | |||
rc = UniStrToUcs(uconv, tempPath, in, CCHMAXPATH); | |||
rc = UniFreeUconvObject(uconv); | |||
/* conversion for current codepage that can be used for paths */ | |||
rc = UniCreateUconvObject((UniChar pointer)L"@path=yes", uconv); | |||
rc = UniStrFromUcs(uconv, out, tempPath, CCHMAXPATH); | |||
rc = UniFreeUconvObject(uconv); | |||
/* use out - don't forget to de-allocate out when finished with it. */ | |||
/* error checking left out for brevity */ | |||
=== Related Functions === | === Related Functions === | ||
[[ | *[[UniMapCtryToLocale]] | ||
=== OS Version Introduced === | === OS Version Introduced === | ||
OS/2 Warp | OS/2 Warp | ||
[[Category:Uni]] |
Latest revision as of 18:02, 4 December 2019
Convert a code page string to a UCS string for input to UniCreateUconvObject.
Syntax
UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen);
Parameters
- codePage - ULONG - input
- The code page returned from DosQueryCp. If the value is zero, the current process code page is used to determine the Unicode string.
- unicodeBuff - UniChar - output
- The output buffer for the Unicode string.
- unicodeBuffLen - (size_t) - input
- The output buffer's length, in characters. Must be, at minimum, 12 Unicode characters.
Constants
None
Returns
An integer with values of:
Calling Convention
Example Code
character in = "C:\SOMEPATH\FILE.TXT"; size_t unicodeBuffLen = 12; ULONG codePage; ULONG cpLen; // length set by DosQueryCp UniChar unicodeBuff, // length of unicodeBuffLen tempPath; // length of CCHMAXPATH UconvObject uconv; character out; // allocate to CCHMAXPATH integer rc;
rc = DosQueryCp(size of ULONG, codePage, cpLen);
/* determine string for the conversion of codePage */ rc = UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen); rc = UniCreateUconvObject(unicodeBuff, uconv); rc = UniStrToUcs(uconv, tempPath, in, CCHMAXPATH); rc = UniFreeUconvObject(uconv);
/* conversion for current codepage that can be used for paths */ rc = UniCreateUconvObject((UniChar pointer)L"@path=yes", uconv); rc = UniStrFromUcs(uconv, out, tempPath, CCHMAXPATH); rc = UniFreeUconvObject(uconv);
/* use out - don't forget to de-allocate out when finished with it. */ /* error checking left out for brevity */
Related Functions
OS Version Introduced
OS/2 Warp