UniMapCpToUcsCp: Difference between revisions
Appearance
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
== UniMapCpToUcsCp == | == UniMapCpToUcsCp == | ||
; UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen) : Convert a code page string to a UCS string for input to [[ | ; UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen) : Convert a code page string to a UCS string for input to [[UniCreateUconvObject]]. | ||
=== 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. | ||
Line 15: | Line 15: | ||
* [[OS2 API:Unicode:error#ULS_NOMEMORY|ULS_NOMEMORY]] | * [[OS2 API:Unicode:error#ULS_NOMEMORY|ULS_NOMEMORY]] | ||
* [[OS2 API:Unicode:error#ULS_SUCCESS|ULS_SUCCESS]] | * [[OS2 API:Unicode:error#ULS_SUCCESS|ULS_SUCCESS]] | ||
=== Calling conversion === | === Calling conversion === | ||
Line 31: | Line 23: | ||
size_t unicodeBuffLen = 12; | size_t unicodeBuffLen = 12; | ||
ULONG codePage; | |||
ULONG cpLen; // length set by DosQueryCp | |||
UniChar unicodeBuff, // length of unicodeBuffLen | |||
tempPath; // length of CCHMAXPATH | tempPath; // length of CCHMAXPATH | ||
UconvObject uconv; | |||
character out; // allocate to CCHMAXPATH | character out; // allocate to CCHMAXPATH | ||
integer rc; | integer rc; | ||
Line 56: | Line 48: | ||
=== Related Functions === | === Related Functions === | ||
[[ | *[[UniMapCtryToLocale]] | ||
=== OS Version Introduced === | === OS Version Introduced === | ||
OS/2 Warp | OS/2 Warp | ||
[[Category:Uni]] | |||
[[Category: |
Revision as of 04:28, 5 December 2016
UniMapCpToUcsCp
- UniMapCpToUcsCp(codePage, unicodeBuff, unicodeBuffLen)
- Convert a code page string to a UCS string for input to UniCreateUconvObject.
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 conversion
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