DWORD size = 0;
vector<char> buf( MAX_PATH );
string appData;
size = ExpandEnvironmentStrings( "%APPDATA%", buf[0], buf.size() );
if ( size <= buf.capacity() )
{
appData.assign( buf[0], size - 1 );
}
else if ( size > buf.capacity() )
{
// buf isn't big enough.
}
else
{
// An error happened.
}