For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.
This class is used by the string conversion macros
CT2AEX, and the typedef CA2A.
This class and its members cannot be used in applications that execute in the Windows Runtime.
template <int t_nBufferLength = 128> class CA2AEX
The size of the buffer used in the translation process. The default length is 128 bytes.
|CA2AEX::operator LPSTR||Conversion operator.|
|CA2AEX::m_psz||The data member that stores the source string.|
|CA2AEX::m_szBuffer||The static buffer, used to store the converted string.|
Unless extra functionality is required, use
CT2AEX, or CA2A in your own code.
This class contains a fixed-size static buffer which is used to store the result of the conversion. If the result is too large to fit into the static buffer, the class allocates memory using
malloc, freeing the memory when the object goes out of scope. This ensures that, unlike text conversion macros available in previous versions of ATL, this class is safe to use in loops and that it won't overflow the stack.
If the class tries to allocate memory on the heap and fails, it will call
AtlThrow with an argument of E_OUTOFMEMORY.
By default, the ATL conversion classes and macros use the current thread's ANSI code page for the conversion.
The following macros are based on this class:
The following typedef is based on this class:
For a discussion of these text conversion macros, see ATL and MFC String Conversion Macros.
See ATL and MFC String Conversion Macros for an example of using these string conversion macros.
CA2AEX(LPCSTR psz, UINT nCodePage) throw(...); CA2AEX(LPCSTR psz) throw(...);
The text string to be converted.
Unused in this class.
Creates the buffer required for the translation.
Frees the allocated buffer.
The data member that stores the source string.
The static buffer, used to store the converted string.
char m_szBuffer[ t_nBufferLength];
operator LPSTR() const throw();
Returns the text string as type LPSTR.