VERSION 5.00 Begin VB.Form frmPowerEvent Caption = "Power Event test program" ClientHeight = 4620 ClientLeft = 60 ClientTop = 345 ClientWidth = 3930 LinkTopic = "Form1" ScaleHeight = 4620 ScaleWidth = 3930 StartUpPosition = 3 'Windows Begin VB.CheckBox ckbAllowSuspend Caption = " BeginProperty Font Name = "Terminal" Size = 9.75 Charset = 128 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 120 TabIndex = 1 Top = 120 Value = 1 ' Width = 3615 End Begin VB.ListBox lstPowerEventLog Height = 3840 Left = 120 TabIndex = 0 Top = 600 Width = 3615 End Attribute VB_Name = "frmPowerEvent" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Private WithEvents oPowerEvent As CPowerEvent Attribute oPowerEvent.VB_VarHelpID = -1 Private m_colMessage As New Collection Private Sub Form_Initialize() m_colMessage.Add "PBT_APMQUERYSUSPEND", Str(PBT_APMQUERYSUSPEND) m_colMessage.Add "PBT_APMQUERYSTANDBY", Str(PBT_APMQUERYSTANDBY) m_colMessage.Add "PBT_APMQUERYSUSPENDFAILED", Str(PBT_APMQUERYSUSPENDFAILED) m_colMessage.Add "PBT_APMQUERYSTANDBYFAILED", Str(PBT_APMQUERYSTANDBYFAILED) m_colMessage.Add "PBT_APMSUSPEND", Str(PBT_APMSUSPEND) m_colMessage.Add "PBT_APMSTANDBY", Str(PBT_APMSTANDBY) m_colMessage.Add "PBT_APMRESUMECRITICAL", Str(PBT_APMRESUMECRITICAL) m_colMessage.Add "PBT_APMRESUMESUSPEND", Str(PBT_APMRESUMESUSPEND) m_colMessage.Add "PBT_APMRESUMESTANDBY", Str(PBT_APMRESUMESTANDBY) m_colMessage.Add "PBT_APMBATTERYLOW", Str(PBT_APMBATTERYLOW) m_colMessage.Add "PBT_APMPOWERSTATUSCHANGE", Str(PBT_APMPOWERSTATUSCHANGE) m_colMessage.Add "PBT_APMOEMEVENT", Str(PBT_APMOEMEVENT) m_colMessage.Add "PBT_APMRESUMEAUTOMATIC", Str(PBT_APMRESUMEAUTOMATIC) End Sub Private Sub Form_Load() Set oPowerEvent = New CPowerEvent oPowerEvent.Hook Me End Sub Private Sub Form_Unload(Cancel As Integer) oPowerEvent.UnHook Set oPowerEvent = Nothing End Sub Private Sub oPowerEvent_PowerEvent(ByVal plt As PowerEventType, ByVal lDetailData As Long, lReturn As Long) With lstPowerEventLog .AddItem m_colMessage(Str(plt)) & Format(plt, "(00)") Select Case plt Case PBT_APMPOWERSTATUSCHANGE .AddItem vbTab & "ACLineStatus=" & oPowerEvent.ACLineStatus .AddItem vbTab & "BatteryFlag=" & oPowerEvent.BatteryFlag .AddItem vbTab & "BatteryLifePercent=" & oPowerEvent.BatteryLifePercent .AddItem vbTab & "BatteryLifeTime=" & oPowerEvent.BatteryLifeTime .AddItem vbTab & "BatteryFullLifeTime=" & oPowerEvent.BatteryFullLifeTime Case PBT_APMQUERYSUSPEND lReturn = IIf(ckbAllowSuspend.Value = vbChecked, _ BROADCAST_QUERY_ALLOW, _ BROADCAST_QUERY_DENY) End Select .ListIndex = .NewIndex End With End Sub