45 #include "CACFString.h"
51 UInt32 CACFString::GetStringByteLength(CFStringRef inCFString, CFStringEncoding inEncoding)
53 CFIndex theAnswer = 0;
55 if(inCFString != NULL)
57 CFRange theRange = { 0, CFStringGetLength(inCFString) };
58 CFStringGetBytes(inCFString, theRange, inEncoding, 0,
false, NULL, 0x7FFFFFFF, &theAnswer);
61 return UInt32(theAnswer);
64 void CACFString::GetCString(CFStringRef inCFString,
char* outString, UInt32& ioStringSize, CFStringEncoding inEncoding)
68 if(inCFString != NULL)
70 CFIndex theLength = 0;
71 CFRange theRange = { 0, CFStringGetLength(inCFString) };
72 CFStringGetBytes(inCFString, theRange, inEncoding, 0,
false, (UInt8*)outString, ioStringSize - 1, &theLength);
73 outString[theLength] = 0;
74 ioStringSize = ToUInt32(theLength) + 1;
84 void CACFString::GetUnicodeString(CFStringRef inCFString, UInt16* outString, UInt32& ioStringSize)
88 if(inCFString != NULL)
90 CFRange theStringRange = { 0, CFStringGetLength(inCFString) };
91 if(static_cast<UInt32>(theStringRange.length) > ioStringSize)
93 theStringRange.length = ioStringSize;
95 CFStringGetCharacters(inCFString, theStringRange, outString);
96 ioStringSize = ToUInt32(theStringRange.length);