This function enables applications and drivers to register for power notification events.
HANDLE RequestPowerNotifications( HANDLE hMsgQ, DWORD Flags );
[in] Handle to the application message queue created with CreateMsgQueue. CreateMsgQueue requires a pointer to a MSGQUEUEOPTIONS structure. Set the cbMaxMessage parameter of the MSGQUEUEOTPIONS structure to sizeof(POWER_BROADCAST) + (MAX_PATH * sizeof TCHAR).
[in] Set to the logical OR of the desired PBT_XXX notifications, or to POWER_NOTIFY_ALL to receive all notifications.
The following table shows the notifications.
Broadcast specifying that a battery power status field has changed. This notification has an associated POWER_BROADCAST_POWER_INFO structure.
Broadcast specifying that the power supply has switched either from AC to DC or from DC to AC.
Broadcast notifying that the system is resuming and specifies the previous state.
Broadcast specifying the system power state transition.
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.