|
@@ -0,0 +1,151 @@
|
|
|
+{
|
|
|
+ This file is part of the Free Pascal run time library.
|
|
|
+ Copyright (c) 2007 Free Pascal development team.
|
|
|
+
|
|
|
+ See the file COPYING.FPC, included in this distribution,
|
|
|
+ for details about the copyright.
|
|
|
+
|
|
|
+ This program is distributed in the hope that it will be useful,
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
+
|
|
|
+ **********************************************************************
|
|
|
+
|
|
|
+ Automatically converted by H2Pas 1.0.0 from power.h
|
|
|
+ The following command line parameters were used:
|
|
|
+ -d
|
|
|
+ -c
|
|
|
+ -w
|
|
|
+ power.h
|
|
|
+}
|
|
|
+
|
|
|
+{ Power Management APIs }
|
|
|
+
|
|
|
+{$ifdef read_interface}
|
|
|
+const
|
|
|
+ AC_LINE_OFFLINE = $00;
|
|
|
+ AC_LINE_ONLINE = $01;
|
|
|
+ AC_LINE_BACKUP_POWER = $02;
|
|
|
+ AC_LINE_UNKNOWN = $FF;
|
|
|
+ BATTERY_FLAG_HIGH = $01;
|
|
|
+ BATTERY_FLAG_LOW = $02;
|
|
|
+ BATTERY_FLAG_CRITICAL = $04;
|
|
|
+ BATTERY_FLAG_CHARGING = $08;
|
|
|
+ BATTERY_FLAG_NO_BATTERY = $80;
|
|
|
+ BATTERY_FLAG_UNKNOWN = $FF;
|
|
|
+ BATTERY_PERCENTAGE_UNKNOWN = $FF;
|
|
|
+ BATTERY_LIFE_UNKNOWN = $FFFFFFFF;
|
|
|
+type
|
|
|
+
|
|
|
+ _SYSTEM_POWER_STATUS_EX = record
|
|
|
+ ACLineStatus : BYTE;
|
|
|
+ BatteryFlag : BYTE;
|
|
|
+ BatteryLifePercent : BYTE;
|
|
|
+ Reserved1 : BYTE;
|
|
|
+ BatteryLifeTime : DWORD;
|
|
|
+ BatteryFullLifeTime : DWORD;
|
|
|
+ Reserved2 : BYTE;
|
|
|
+ BackupBatteryFlag : BYTE;
|
|
|
+ BackupBatteryLifePercent : BYTE;
|
|
|
+ Reserved3 : BYTE;
|
|
|
+ BackupBatteryLifeTime : DWORD;
|
|
|
+ BackupBatteryFullLifeTime : DWORD;
|
|
|
+ end;
|
|
|
+ SYSTEM_POWER_STATUS_EX = _SYSTEM_POWER_STATUS_EX;
|
|
|
+ PSYSTEM_POWER_STATUS_EX = ^_SYSTEM_POWER_STATUS_EX;
|
|
|
+ LPSYSTEM_POWER_STATUS_EX = ^_SYSTEM_POWER_STATUS_EX;
|
|
|
+{
|
|
|
+ @struct SYSTEM_POWER_STATUS_EX2 | contains information about the power status
|
|
|
+ of the system.
|
|
|
+
|
|
|
+ @field BYTE | ACLineStatus | AC power status. Must be one of
|
|
|
+ AC_LINE_OFFLINE, AC_LINE_ONLINE, AC_LINE_BACKUP_POWER, or AC_LINE_UNKNOWN.
|
|
|
+
|
|
|
+ @field BYTE | BatteryFlag | Battery charge status. Must be one of
|
|
|
+ BATTERY_FLAG_HIGH, BATTERY_FLAG_LOW, BATTERY_FLAG_CRITICAL,
|
|
|
+ BATTERY_FLAG_CHARGING, BATTERY_FLAG_NO_BATTERY, or BATTERY_FLAG_UNKNOWN
|
|
|
+
|
|
|
+ @field BYTE | BatteryLifePercent | Percentage of full battery charge
|
|
|
+ remaining. Must be in the range 0 to 100, or BATTERY_PERCENTAGE_UNKNOWN.
|
|
|
+
|
|
|
+ @field BYTE | Reserved1 | Must be zero.
|
|
|
+
|
|
|
+ @field DWORD | BatteryLifeTime | Number of seconds of battery life
|
|
|
+ remaining, or BATTERY_LIFE_UNKNOWN if remaining seconds are unknown.
|
|
|
+
|
|
|
+ @field DWORD | BatteryFullLifeTime | Number of seconds of battery life when
|
|
|
+ at full charge, or BATTERY_LIFE_UNKNOWN if full lifetime is unknown.
|
|
|
+
|
|
|
+ @field BYTE | Reserved2 | Must be zero.
|
|
|
+
|
|
|
+ @field BYTE | BackupBatteryFlag | Backup battery charge status. Must be one
|
|
|
+ of BATTERY_FLAG_HIGH, BATTERY_FLAG_LOW, BATTERY_FLAG_CRITICAL,
|
|
|
+ BATTERY_FLAG_CHARGING, BATTERY_FLAG_NO_BATTERY, or BATTERY_FLAG_UNKNOWN.
|
|
|
+
|
|
|
+ @field BYTE | BackupBatteryLifePercent | Percentage of full backup battery
|
|
|
+ charge remaining. Must be in the range 0 to 100, or
|
|
|
+ BATTERY_PERCENTAGE_UNKNOWN.
|
|
|
+
|
|
|
+ @field BYTE | Reserved3 | Must be zero.
|
|
|
+
|
|
|
+ @field DWORD | BackupBatteryLifeTime | Number of seconds of backup battery
|
|
|
+ life remaining, or BATTERY_LIFE_UNKNOWN if remaining seconds are unknown.
|
|
|
+
|
|
|
+ @field DWORD | BackupBatteryFullLifeTime | Number of seconds of backup
|
|
|
+ battery life when at full charge, or BATTERY_LIFE_UNKNOWN if full lifetime
|
|
|
+ is unknown.
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+const
|
|
|
+ BATTERY_CHEMISTRY_ALKALINE = $01;
|
|
|
+ BATTERY_CHEMISTRY_NICD = $02;
|
|
|
+ BATTERY_CHEMISTRY_NIMH = $03;
|
|
|
+ BATTERY_CHEMISTRY_LION = $04;
|
|
|
+ BATTERY_CHEMISTRY_LIPOLY = $05;
|
|
|
+ BATTERY_CHEMISTRY_ZINCAIR = $06;
|
|
|
+ BATTERY_CHEMISTRY_UNKNOWN = $FF;
|
|
|
+{ Above here is old struct, below are new fields }
|
|
|
+{ Reports Reading of battery voltage in millivolts (0..65535 mV) }
|
|
|
+{ Reports Instantaneous current drain (mA). 0..32767 for charge, 0 to -32768 for discharge }
|
|
|
+{ Reports short term average of device current drain (mA). 0..32767 for charge, 0 to -32768 for discharge }
|
|
|
+{ Reports time constant (mS) of integration used in reporting BatteryAverageCurrent }
|
|
|
+{ Reports long-term cumulative average DISCHARGE (mAH). Reset by charging or changing the batteries. 0 to 32767 mAH }
|
|
|
+{ Reports Battery temp in 0.1 degree C (-3276.8 to 3276.7 degrees C) }
|
|
|
+{ Reports Reading of backup battery voltage }
|
|
|
+{ See Chemistry defines above }
|
|
|
+{ New fields can be added below, but don't change any existing ones }
|
|
|
+type
|
|
|
+
|
|
|
+ _SYSTEM_POWER_STATUS_EX2 = record
|
|
|
+ ACLineStatus : BYTE;
|
|
|
+ BatteryFlag : BYTE;
|
|
|
+ BatteryLifePercent : BYTE;
|
|
|
+ Reserved1 : BYTE;
|
|
|
+ BatteryLifeTime : DWORD;
|
|
|
+ BatteryFullLifeTime : DWORD;
|
|
|
+ Reserved2 : BYTE;
|
|
|
+ BackupBatteryFlag : BYTE;
|
|
|
+ BackupBatteryLifePercent : BYTE;
|
|
|
+ Reserved3 : BYTE;
|
|
|
+ BackupBatteryLifeTime : DWORD;
|
|
|
+ BackupBatteryFullLifeTime : DWORD;
|
|
|
+ BatteryVoltage : DWORD;
|
|
|
+ BatteryCurrent : DWORD;
|
|
|
+ BatteryAverageCurrent : DWORD;
|
|
|
+ BatteryAverageInterval : DWORD;
|
|
|
+ BatterymAHourConsumed : DWORD;
|
|
|
+ BatteryTemperature : DWORD;
|
|
|
+ BackupBatteryVoltage : DWORD;
|
|
|
+ BatteryChemistry : BYTE;
|
|
|
+ end;
|
|
|
+ SYSTEM_POWER_STATUS_EX2 = _SYSTEM_POWER_STATUS_EX2;
|
|
|
+ PSYSTEM_POWER_STATUS_EX2 = ^_SYSTEM_POWER_STATUS_EX2;
|
|
|
+ LPSYSTEM_POWER_STATUS_EX2 = ^_SYSTEM_POWER_STATUS_EX2;
|
|
|
+{ @CESYSGEN IF COREDLL_BATTERY }
|
|
|
+
|
|
|
+function GetSystemPowerStatusEx(var SystemPowerStatusEx: SYSTEM_POWER_STATUS_EX; fUpdate:BOOL):BOOL;external KernelDLL name 'GetSystemPowerStatusEx';
|
|
|
+{ Return value : 0 = fail. Non-zero indicates length of returned data. }
|
|
|
+function GetSystemPowerStatusEx2(var SystemPowerStatusEx2: SYSTEM_POWER_STATUS_EX2; dwLen:DWORD; fUpdate:BOOL):DWORD;external KernelDLL name 'GetSystemPowerStatusEx2';
|
|
|
+
|
|
|
+{$endif read_interface}
|