Здравствуйте, Кодёнок, Вы писали:
Кё>CMimeRawAttachment::Initialize()
Кё>Кё> if (szDisplayName)
Кё> {
Кё> // use the user-specified display name
Кё> _tcscpy(m_szDisplayName, szDisplayName);
Кё> _tcsncpy(m_szDisplayName, szDisplayName, sizeof(szDisplayName)/sizeof(TCHAR));
Кё> m_szDisplayName[sizeof(szDisplayName)/sizeof(TCHAR)-1] = 0;
Кё> }
Кё>
Кё>Из-за двух последних инструкций длина имени обрезается, до 3-х символов. Причём m_szDisplayName -- TCHAR[_MAX_FNAME].
sizeof(szDisplayName)/sizeof(TCHAR) у вас равняется четырем! Потому что sizeof любого указателя в Win32 равен четырем, а szDisplayName у вас скорее всего не массив, а указатель, хоть из приведенного текста этого и не видно.