#ifndef _CREATEEMAILNAME #define _CREATEEMAILNAME CString CreateEmailName(LPCTSTR psName); const TCHAR ALLOWED_CHARS[] = _T("!#$%^'()-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{}~"); inline CString CreateEmailName(LPCTSTR psName) { CString sBuildName = _T(""); if( !psName ) return sBuildName; // length of psName handled below int iSize = _tcslen(psName); LPTSTR psBuildName = new TCHAR[iSize + 1]; LPTSTR psChar = new TCHAR[2]; if( (0 < iSize) && psBuildName && psChar ) { int i, j = 0; ZeroMemory( psChar, 2 * sizeof(TCHAR) ); ZeroMemory( psBuildName, ( iSize + 1 ) * sizeof( TCHAR )); LPTSTR psResult = NULL; for ( i = 0; i < iSize; i++ ) { _tcsncpy( psChar, &(psName[i]), 1 ); psResult = _tcspbrk( psChar, ALLOWED_CHARS ); if( psResult ) { psBuildName[j++] = psName[i]; } } sBuildName = psBuildName; } else sBuildName = psName; if( psBuildName ) { delete [] psBuildName; psBuildName = NULL; } if( psChar ) { delete [] psChar; psChar = NULL; } return sBuildName; } #endif //_CREATEEMAILNAME