Ciao,
La soluzione è piuttosto semplice, FILE_ATTRIBUTE_DIRECTORY è un flag, non un valore... come tale può essere impostato nella dwFileAttributes assieme ad altri flags, che rendono il valore numerico diverso da 0x10... 8208 è, in esa, 0x2010... e come vedi il 0x10 è impostato...
Altri esempi di numerici in cui è impostato il flag: 0x11, 0x110, 0x212, 0xabcdef1a, 0x33, 0x70, 0xabcdef7a.
Per testare se un flag è attivo o meno dovrai usare gli operatori booleani & e | invece che controllare con ==... in particolare nel tuo caso:
if( dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) //implicito !=0
{
... flag impostato, l'entry è una directory
}else{
...flag non impostato, l'entry è un file (o, meglio, non è una directory)
}
PS:Probabilmente la sezione più indicata per queste domande è C++ piuttosto che questa qui...
Ciaociao