1. yes
2. Wait() takes a signal mask. This means you wait for each signal whose bit is set in the mask. This way you can wait for multiple signals at once. The mp_SigBit field contains the signal number, so you have to shift 1 by that number to get the right bit set in the mask.
There are a few signals which are reserved for the system. The most popular is the signal you receive when the user hits Ctrl-C: it has the signal number 12 (SIGBREAKB_CTRL_F) and the signal mask is 1 << 12 a.k.a. 0x1000 (SIGBREAKF_CTRL_C).