//QM v2.8. Do not edit with text editor!!! //
7     6
ñS	¤µ!—tÒËÓPÌop#—ƒ)Ëmîv>ƒãt(
  PM Help  0 31060A9C 0
 ABOUT

 Starts macro PM_AfterStandbyHibernate after Windows returns
 from hibernate or standby mode. Can be extended for other
 system events.


 SETUP

 Function PM_Main must be running all the time. You can
 launch it using whatever method. To run automatically at
 startup, insert this in function init2 (if init2 does not
 exist, create):

mac "PM_Main"

 If you ever want to end PM_Main, run it again and click Exit.


 USAGE

 Edit PM_AfterStandbyHibernate to do what you want.


 EXTENDING

 On some system events (power management, system settings
 change, etc), certain messages are broadcasted to all
 windows. On these messages, Windows calls function
 PM_Dialog. By default, it processes only power management
 messages. You can edit PM_Dialog to intercept other
 messages. You can edit PM_PowerManagement to intercept
 other power management events.

 These messages, documented in the MSDN Library, are
 broadcasted to all windows:
 WM_SETTINGCHANGE (supersedes WM_WININICHANGE),
 WM_POWERBROADCAST, WM_USERCHANGED (W9x?), WM_SYSCOMMAND
 (screensaver, etc), WM_DISPLAYCHANGE, WM_DEVMODECHANGE,
 WM_FONTCHANGE, WM_THEMECHANGED, WM_TIMECHANGE,
 WM_SYSCOLORCHANGE.

  PM_Main  8 31060AA3 0
if(getopt(nthreads)>1)
	int h=win("QM power management triggers" "#32770")
	if(h) hid- h; act h
	ret
ShowDialog("PM_Dialog" &PM_Dialog 0 0 17 WS_VISIBLE|DS_SETFOREGROUND)
MessageLoop

  PM_Dialog  8 3105F94E 0
 /Dialog_Editor

 BEGIN DIALOG
 0 "" 0x10C80A44 0x100 0 0 193 115 "QM power management triggers"
 3 Button 0x54000001 0x4 138 98 50 15 "Exit"
 1 Button 0x44000000 0x4 3 98 48 15 "OK"
 2 Button 0x44000000 0x4 55 98 50 15 "Cancel"
 END DIALOG
 DIALOG EDITOR: "" 0x2010800 "" ""

function# hDlg message wParam lParam

sel message
	case WM_INITDIALOG
	ret

	case WM_CLOSE if(wParam) DestroyWindow(hDlg)
	case WM_DESTROY
	DT_DeleteData(hDlg)
	PostQuitMessage(0)
	 -----------------------------
	case WM_COMMAND
	int msg(wParam >> 16) ctrlid(wParam & 0xFFFF)
	sel msg
		case BN_CLICKED
		sel ctrlid
			case IDOK
			min hDlg; hid hDlg
			 -----------------------
			case IDCANCEL min hDlg; hid hDlg
			 -----------------------
			case 3 DestroyWindow(hDlg)
	ret 1
	
	case WM_POWERBROADCAST PM_PowerManagement(wParam lParam)
	
	 here you can add more cases for other broadcasted messages, like
	 case WM_SETTINGCHANGE PM_OnWmSettingChange(wParam lParam)
	
  PM_PowerManagement  8 31060030 0
function event data

 events:
def PBT_APMQUERYSUSPEND             0x0000
def PBT_APMQUERYSTANDBY             0x0001
def PBT_APMQUERYSUSPENDFAILED       0x0002
def PBT_APMQUERYSTANDBYFAILED       0x0003
def PBT_APMSUSPEND                  0x0004
def PBT_APMSTANDBY                  0x0005
def PBT_APMRESUMECRITICAL           0x0006
def PBT_APMRESUMESUSPEND            0x0007
def PBT_APMRESUMESTANDBY            0x0008
def PBTF_APMRESUMEFROMFAILURE       0x00000001
def PBT_APMBATTERYLOW               0x0009
def PBT_APMPOWERSTATUSCHANGE        0x000A
def PBT_APMOEMEVENT                 0x000B
def PBT_APMRESUMEAUTOMATIC          0x0012

 bee
 out "%i %i" event data

sel event
	case PBT_APMRESUMEAUTOMATIC ;;after standby or hibernate
	2
	mac "PM_AfterStandbyHibernate"
	
	 here you can add more cases to intercept other power management events, like
	 case PBT_APMQUERYSUSPEND ...


  PM_AfterStandbyHibernate  0 3105F986 0
mes _s.getmacro(getopt(itemid) 1)

  file  268500992 0

  