diff win32/powrprof.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/win32/powrprof.d	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,140 @@
+/***********************************************************************\
+*                               powrprof.d                              *
+*                                                                       *
+*                       Windows API header module                       *
+*                                                                       *
+*                 Translated from MinGW Windows headers                 *
+*                           by Stewart Gordon                           *
+*                                                                       *
+*                       Placed into public domain                       *
+\***********************************************************************/
+module win32.powrprof;
+pragma(lib, "powrprof.lib");
+
+private import win32.windef;
+private import win32.ntdef;
+
+// FIXME: look up Windows version support
+
+const ULONG
+	EnableSysTrayBatteryMeter =  1,
+	EnableMultiBatteryDisplay =  2,
+	EnablePasswordLogon       =  4,
+	EnableWakeOnRing          =  8,
+	EnableVideoDimDisplay     = 16;
+
+const UINT NEWSCHEME = -1;
+
+struct GLOBAL_MACHINE_POWER_POLICY {
+	ULONG              Revision;
+	SYSTEM_POWER_STATE LidOpenWakeAc;
+	SYSTEM_POWER_STATE LidOpenWakeDc;
+	ULONG              BroadcastCapacityResolution;
+}
+alias GLOBAL_MACHINE_POWER_POLICY* PGLOBAL_MACHINE_POWER_POLICY;
+
+struct GLOBAL_USER_POWER_POLICY {
+	ULONG               Revision;
+	POWER_ACTION_POLICY PowerButtonAc;
+	POWER_ACTION_POLICY PowerButtonDc;
+	POWER_ACTION_POLICY SleepButtonAc;
+	POWER_ACTION_POLICY SleepButtonDc;
+	POWER_ACTION_POLICY LidCloseAc;
+	POWER_ACTION_POLICY LidCloseDc;
+	SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy;
+	ULONG GlobalFlags;
+}
+alias GLOBAL_USER_POWER_POLICY* PGLOBAL_USER_POWER_POLICY;
+
+struct GLOBAL_POWER_POLICY {
+	GLOBAL_USER_POWER_POLICY    user;
+	GLOBAL_MACHINE_POWER_POLICY mach;
+}
+alias GLOBAL_POWER_POLICY* PGLOBAL_POWER_POLICY;
+
+struct MACHINE_POWER_POLICY {
+	ULONG               Revision;
+	SYSTEM_POWER_STATE  MinSleepAc;
+	SYSTEM_POWER_STATE  MinSleepDc;
+	SYSTEM_POWER_STATE  ReducedLatencySleepAc;
+	SYSTEM_POWER_STATE  ReducedLatencySleepDc;
+	ULONG               DozeTimeoutAc;
+	ULONG               DozeTimeoutDc;
+	ULONG               DozeS4TimeoutAc;
+	ULONG               DozeS4TimeoutDc;
+	UCHAR               MinThrottleAc;
+	UCHAR               MinThrottleDc;
+	UCHAR[2]            pad1;
+	POWER_ACTION_POLICY OverThrottledAc;
+	POWER_ACTION_POLICY OverThrottledDc;
+}
+alias MACHINE_POWER_POLICY* PMACHINE_POWER_POLICY;
+
+struct MACHINE_PROCESSOR_POWER_POLICY {
+	ULONG Revision;
+	PROCESSOR_POWER_POLICY ProcessorPolicyAc;
+	PROCESSOR_POWER_POLICY ProcessorPolicyDc;
+}
+alias MACHINE_PROCESSOR_POWER_POLICY* PMACHINE_PROCESSOR_POWER_POLICY;
+
+struct USER_POWER_POLICY {
+   ULONG               Revision;
+   POWER_ACTION_POLICY IdleAc;
+   POWER_ACTION_POLICY IdleDc;
+   ULONG               IdleTimeoutAc;
+   ULONG               IdleTimeoutDc;
+   UCHAR               IdleSensitivityAc;
+   UCHAR               IdleSensitivityDc;
+   UCHAR               ThrottlePolicyAc;
+   UCHAR               ThrottlePolicyDc;
+   SYSTEM_POWER_STATE  MaxSleepAc;
+   SYSTEM_POWER_STATE  MaxSleepDc;
+   ULONG[2]            Reserved;
+   ULONG               VideoTimeoutAc;
+   ULONG               VideoTimeoutDc;
+   ULONG               SpindownTimeoutAc;
+   ULONG               SpindownTimeoutDc;
+   BOOLEAN             OptimizeForPowerAc;
+   BOOLEAN             OptimizeForPowerDc;
+   UCHAR               FanThrottleToleranceAc;
+   UCHAR               FanThrottleToleranceDc;
+   UCHAR               ForcedThrottleAc;
+   UCHAR               ForcedThrottleDc;
+}
+alias USER_POWER_POLICY* PUSER_POWER_POLICY;
+
+struct POWER_POLICY {
+	USER_POWER_POLICY    user;
+	MACHINE_POWER_POLICY mach;
+}
+alias POWER_POLICY* PPOWER_POLICY;
+
+extern (Windows) {
+	alias BOOLEAN function(UINT, DWORD, LPTSTR, DWORD, LPTSTR, PPOWER_POLICY,
+	  LPARAM) PWRSCHEMESENUMPROC;
+	alias BOOLEAN function(POWER_ACTION, SYSTEM_POWER_STATE, ULONG, BOOLEAN)
+	  PFNNTINITIATEPWRACTION;
+
+	NTSTATUS CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG,
+	  PVOID, ULONG);
+	BOOLEAN CanUserWritePwrScheme();
+	BOOLEAN DeletePwrScheme(UINT);
+	BOOLEAN EnumPwrSchemes(PWRSCHEMESENUMPROC, LPARAM);
+	BOOLEAN GetActivePwrScheme(PUINT);
+	BOOLEAN GetCurrentPowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+	BOOLEAN GetPwrCapabilities(PSYSTEM_POWER_CAPABILITIES);
+	BOOLEAN GetPwrDiskSpindownRange(PUINT, PUINT);
+	BOOLEAN IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
+	BOOLEAN IsPwrHibernateAllowed();
+	BOOLEAN IsPwrShutdownAllowed();
+	BOOLEAN IsPwrSuspendAllowed();
+	BOOLEAN ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
+	BOOLEAN ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
+	BOOLEAN ReadPwrScheme(UINT, PPOWER_POLICY);
+	BOOLEAN SetActivePwrScheme(UINT, PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+	BOOLEAN SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);
+	BOOLEAN WriteGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
+	BOOLEAN WriteProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
+	BOOLEAN ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
+	BOOLEAN WritePwrScheme(PUINT, LPTSTR, LPTSTR, PPOWER_POLICY);
+}