Filenames truncam para mostrar apenas o primeiro caractere

estou seguindoeste guia do MSDN sobre como listar os arquivos em um diretório (estou usando o diretório atual). No meu caso eu preciso colocar as informações na parte da mensagem do meu pacote (array char de tamanho 1016) para enviá-lo para o cliente. Quando imprimo packet.message no cliente e no servidor, apenas o primeiro caractere dos nomes de arquivos é mostrado. O que há de errado? Aqui está um trecho da seção relevante do código:

WIN32_FIND_DATA f;
HANDLE h = FindFirstFile(TEXT("./*.*"), &f);
string file;
int size_needed;
do
{
    sprintf(packet.message,"%s", &f.cFileName);
    //Send packet
} while(FindNextFile(h, &f));