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?