Vista 以降では、RegisterPowerSettingNotification を使用できます
以前の関数については、MSDN ページの「電源管理機能:Windows Server 2003 以前」のこのセクションにある電源管理機能を参照してください。
codeproject で Vista メソッドのサンプル コードを確認できます。
Win32 GetSystemPowerStatus 関数の使用をお勧めします。コード スニペット :
int getBatteryLevel()
{
SYSTEM_POWER_STATUS status;
GetSystemPowerStatus(&status);
return status.BatteryLifePercent;
}