@elupus - not sure I understand. The point is to discard any interlaced resolution, if the current resolution is NOT interlaced, since  this would mean a regression.

(info.dwFlags & internlaced) == (curr.flags & interlaced) would be true if they are the same - so you discard any resolution that has the same interlaced flag? that doesn't make sense. 
Similarly, you would not want (info.dwFlags & internlaced) != (curr.flags & interlaced) because that would discard any resolution that has the opposite flag... so coming from progressive you would ONLY keep interlaced ones.