As with other COM-based applications, Tool Palette applications must implement a substantial amount of invariant code. This is because COM interfaces are pure virtual structs, obligating the programmer to implement every method. Many of these methods are fully parameterized and lend themselves readily to boilerplate implementations. Other methods may not apply to a specific application, but, because they are pure virtual, the programmer must provide a token implementation.
To handle much of this repetitive coding, the ObjectARX SDK provides the AcadToolImpl class. This class implements most Tool Palette API COM methods, and also provides useful XML utility functions. This frees you to focus more exclusively on your object's native behavior. To use the AcadToolImpl class in your Tool Palette application, you simply change the derivation of the your tool's coclass.
AcadToolImpl uses the TCHAR multi-byte character data type and LPCTSTR pointers for its string manipulations. Because TCHAR resolves to char when MBCS is not defined, it supports both single-byte and multi-byte strings. For this reason—and for internal consistency—you should consider using it in your code when you derive from the AcadToolImpl class.