Save all file names in a directory to a vector-Collection of common programming errors

Something like this (Note, Format is a sprintf:ish funciton you can replace)

bool MakeFileList(const wchar_t* pDirectory,vector *pFileList)
{
    wstring sTemp = Format(L"%s\\*.%s",pDirectory,L"xml");

    _wfinddata_t first_file;

    long hFile = _wfindfirst(sTemp.c_str(),&first_file);

    if(hFile != -1)
    {
        wstring sFile = first_file.name;
        wstring sPath = Format(L"%s%s",pDirectory,sFile.c_str());
        pFileList->push_back(sPath);

        while(_wfindnext(hFile,&first_file) != -1)
        {
            wstring sFile = first_file.name;
            wstring sPath = Format(L"%s%s",pDirectory,sFile.c_str());
            pFileList->push_back(sPath);
        }
        _findclose(hFile);
    }else
        return false;

    return true;    
}