Was willst du genau mit den Zahlen in eckigen Klammern bezwecken? Ich weiß leider nicht, wofür die stehen sollen.

Falls du 0x1 & 0x2 & 0x4 meinst, wirst du trotzdem was anderes wollen, als dies bewirkt. Denn dabei kommt wohl 0 raus. Du brauchst eher 0x1 | 0x2 | 0x4. Setz den Ausdruck aber noch in Klammern, also so:
PollSwitch()& (0x01 | 0x02 | 0x04)

Ansonsten kann ich auf Anhieb nichts erkennen. Könnte aber auch dran liegen, dass der Code ungünstig formatiert ist, was ihn sehr unübersichtlich macht.