A: 

It looks like adding WINAPI to the callback fixes this.

The new call looks like this:

void WINAPI SecurityCenterChangeOccurred(void *param) {
    printf("Change occurred!\n");
}

Can somebody tell me why this is necessary?