File: dtsearch.h
Parameters |
Description |
---|---|
char * dest |
Buffer to receive UTF-8 text |
ptrdiff_t cchDest |
Size of dest buffer in bytes |
ptrdiff_t cchSource |
Number of unicode characters to convert |
__int64 * cchNeeded |
Pointer to 64-bit interer to hold the number of characters needed to store the encoded result, if the buffer provided was too small. |
source |
Unicode (UTF-16) text to convert |
Number of characters in the conversion output, excluding the terminating null.
Convert Unicode to UTF-8
If the buffer provided in dest is insufficient to store the conversion result, the required buffer size will be provided in cchNeeded.
If the buffer provided was large enough to store the result, cchNeeded will not be changed.
To use this API efficiently, callers should initialize cchNeeded to zero, provide an output buffer that is large enough to handle the most common cases, and then check cchNeeded after the conversion is done to determine whether a larger buffer is needed. This avoids the need to call the API twice in the most common cases.
Conversion to UTF-8 can generate output with up to 5 times the number of characters as the input, so even with a 32-bit value for cchSource, the value in cchNeeded may be too large to fit in a 32-bit integer.