У меня есть приложение ATL, в котором я хочу обработать WM_POWERBROADCAST . У меня есть CMainDlg (CAxDialogImpl), в котором MSG_MAP я определил обработчик.
BEGIN_MSG_MAP(CMainDlg)
...
MESSAGE_HANDLER(WM_POWERBROADCAST, OnPowerChange)
...
END_MSG_MAP()
Однако обработчик не вызывается, когда я выполняю действия, которые должны вызывать его, например, изменение настроек питания или перевод машины в спящий режим.
Есть идеи о том, что может происходить и как это исправить? По какой-то причине CMainDlg не получает уведомления о событиях питания?