+ if ( tool->m_shortHelpString != "" )
+ {
+ if ( hdr->code == TTN_NEEDTEXTA )
+ {
+ ttText->lpszText = (char *)(const char *)tool->m_shortHelpString;
+ }
+#if (_WIN32_IE >= 0x0300)
+ else
+ {
+ // FIXME this is a temp hack only until I understand better what
+ // must be done in both ANSI and Unicode builds
+ size_t lenAnsi = tool->m_shortHelpString.Len();
+ #ifdef __MWERKS__
+ wchar_t *pwz = new wchar_t[lenAnsi * 2 + 1];
+ #else
+ size_t lenUnicode = mbstowcs(NULL, tool->m_shortHelpString, lenAnsi);
+ wchar_t *pwz = new wchar_t[lenUnicode + 1];
+ #endif
+ mbstowcs(pwz, tool->m_shortHelpString, lenAnsi + 1);
+ memcpy(ttText->szText, pwz,
+ (sizeof(ttText->szText) - 1)/sizeof(ttText->szText[0]));
+ ttText->szText[WXSIZEOF(ttText->szText)] = 0;
+
+ delete [] pwz;
+ }
+#endif // _WIN32_IE >= 0x0300