BOOLEAN Pos_InitData(VOID) { SYSTEM_POWER_CAPABILITIES spc; /* RECT rectCtl, rectDlg, rectCtl2; LONG movetop = 0; LONG moveright = 0; if (GetWindowRect(hPos,&rectDlg)) { if (GetWindowRect(GetDlgItem(hPos, IDC_SAT),&rectCtl2)) { if (GetWindowRect(GetDlgItem(hPos, IDC_MONITOR),&rectCtl)) { movetop=rectCtl.top - rectCtl2.top; MoveWindow(GetDlgItem(hPos, IDC_MONITOR),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left,rectCtl.bottom-rectCtl.top,FALSE); if (GetWindowRect(GetDlgItem(hPos, IDC_DISK),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_DISK),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left,rectCtl.bottom-rectCtl.top,FALSE); } if (GetWindowRect(GetDlgItem(hPos, IDC_STANDBY),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_STANDBY),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left,rectCtl.bottom-rectCtl.top,FALSE); } if (GetWindowRect(GetDlgItem(hPos, IDC_HYBERNATE),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_HYBERNATE),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left,rectCtl.bottom-rectCtl.top,FALSE); } if (GetWindowRect(GetDlgItem(hPos, IDC_MONITORDCLIST),&rectCtl2)) { movetop=movetop-8; if (GetWindowRect(GetDlgItem(hPos, IDC_MONITORACLIST),&rectCtl)) { moveright=rectCtl.right - rectCtl2.right; MoveWindow(GetDlgItem(hPos, IDC_MONITORACLIST),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left-moveright,rectCtl.bottom-rectCtl.top,FALSE); if (GetWindowRect(GetDlgItem(hPos, IDC_DISKACLIST),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_DISKACLIST),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left-moveright,rectCtl.bottom-rectCtl.top,FALSE); } if (GetWindowRect(GetDlgItem(hPos, IDC_STANDBYACLIST),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_STANDBYACLIST),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left-moveright,rectCtl.bottom-rectCtl.top,FALSE); } if (GetWindowRect(GetDlgItem(hPos, IDC_HYBERNATEACLIST),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_HYBERNATEACLIST),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top-movetop,rectCtl.right-rectCtl.left-moveright,rectCtl.bottom-rectCtl.top,FALSE); } } if (GetWindowRect(GetDlgItem(hPos, IDC_GRPDETAIL),&rectCtl)) { MoveWindow(GetDlgItem(hPos, IDC_GRPDETAIL),rectCtl.left-rectDlg.left,rectCtl.top-rectDlg.top,rectCtl.right-rectCtl.left,rectCtl.bottom-rectCtl.top,FALSE); } } } } } } */ if (!GetPwrCapabilities(&spc)) { return FALSE; } if (!spc.SystemBatteriesPresent) { ShowWindow(GetDlgItem(hPos, IDC_SAT),FALSE); ShowWindow(GetDlgItem(hPos, IDC_IAC),FALSE); ShowWindow(GetDlgItem(hPos, IDC_SAC),FALSE); ShowWindow(GetDlgItem(hPos, IDC_IDC),FALSE); ShowWindow(GetDlgItem(hPos, IDC_SDC),FALSE); ShowWindow(GetDlgItem(hPos, IDC_MONITORDCLIST),FALSE); ShowWindow(GetDlgItem(hPos, IDC_DISKDCLIST),FALSE); ShowWindow(GetDlgItem(hPos, IDC_STANDBYDCLIST),FALSE); ShowWindow(GetDlgItem(hPos, IDC_HYBERNATEDCLIST),FALSE); ShowWindow(GetDlgItem(hPos, IDC_HYBERNATEACLIST), spc.HiberFilePresent); } else { ShowWindow(GetDlgItem(hPos, IDC_HYBERNATEDCLIST), spc.HiberFilePresent); ShowWindow(GetDlgItem(hPos, IDC_HYBERNATEACLIST), FALSE); } if (!(spc.SystemS1 ||spc.SystemS2 || spc.SystemS3)) { ShowWindow(GetDlgItem(hPos, IDC_STANDBYACLIST), TRUE); ShowWindow(GetDlgItem(hPos, IDC_STANDBYDCLIST), TRUE); ShowWindow(GetDlgItem(hPos, IDC_STANDBY), TRUE); } ShowWindow(GetDlgItem(hPos, IDC_HYBERNATE), spc.HiberFilePresent); return TRUE; }
static VOID Hib_InitDialog(HWND hwndDlg) { SYSTEM_POWER_CAPABILITIES PowerCaps; MEMORYSTATUSEX msex; TCHAR szSize[MAX_PATH]; TCHAR szTemp[MAX_PATH]; ULARGE_INTEGER FreeBytesAvailable, TotalNumberOfBytes, TotalNumberOfFreeBytes; if (GetPwrCapabilities(&PowerCaps)) { CheckDlgButton(hwndDlg, IDC_HIBERNATEFILE, PowerCaps.HiberFilePresent ? BST_CHECKED : BST_UNCHECKED); msex.dwLength = sizeof(msex); if (!GlobalMemoryStatusEx(&msex)) { return; //FIXME } if (GetWindowsDirectory(szTemp,MAX_PATH)) { if (!GetDiskFreeSpaceEx(szTemp,&FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes)) TotalNumberOfFreeBytes.QuadPart = 0; } else { if (!GetDiskFreeSpaceEx(NULL,&FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes)) TotalNumberOfFreeBytes.QuadPart = 0; } if (TotalNumberOfFreeBytes.QuadPart > 0x100000) { if (LoadString(hApplet, IDS_SIZEMB, szTemp, MAX_PATH)) { _stprintf(szSize,szTemp,TotalNumberOfFreeBytes.QuadPart / 0x100000); SetDlgItemText(hwndDlg, IDC_FREESPACE, szSize); } } else { if (LoadString(hApplet, IDS_SIZEBYTS, szTemp, MAX_PATH)) { _stprintf(szSize,szTemp,TotalNumberOfFreeBytes.QuadPart); SetDlgItemText(hwndDlg, IDC_FREESPACE, szSize); } } if (msex.ullTotalPhys>0x100000) { if (LoadString(hApplet, IDS_SIZEMB, szTemp, MAX_PATH)) { _stprintf(szSize,szTemp,msex.ullTotalPhys/0x100000); SetDlgItemText(hwndDlg, IDC_SPACEFORHIBERNATEFILE,szSize); } } else { if (LoadString(hApplet, IDS_SIZEBYTS, szTemp, MAX_PATH)) { _stprintf(szSize,szTemp,msex.ullTotalPhys); SetDlgItemText(hwndDlg, IDC_SPACEFORHIBERNATEFILE, szSize); } } if (TotalNumberOfFreeBytes.QuadPart < msex.ullTotalPhys && !PowerCaps.HiberFilePresent) { EnableWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEFILE), FALSE); ShowWindow(GetDlgItem(hwndDlg, IDC_TOLESSFREESPACE), TRUE); } else { ShowWindow(GetDlgItem(hwndDlg, IDC_TOLESSFREESPACE), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEFILE), TRUE); } } }
JNIEXPORT jboolean JNICALL Java_keccs_hitTheHay_core_NativeInterface_isHibernateAvailable(JNIEnv *env, jclass c) { SYSTEM_POWER_CAPABILITIES cap; GetPwrCapabilities(&cap); return cap.SystemS4 && cap.HiberFilePresent ? JNI_TRUE : JNI_FALSE; }
CWin32PowerSyscall::CWin32PowerSyscall() { m_hascapabilities = GetPwrCapabilities(&m_capabilities); m_worker.Create(); }
VOID Adv_InitDialog(VOID) { HWND hList1; HWND hList2; HWND hList3; BOOLEAN bSuspend = FALSE; BOOLEAN bHibernate; BOOLEAN bShutdown; SYSTEM_POWER_CAPABILITIES spc; CheckDlgButton(hAdv, IDC_SYSTRAYBATTERYMETER, gGPP.user.GlobalFlags & EnableSysTrayBatteryMeter ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hAdv, IDC_PASSWORDLOGON, gGPP.user.GlobalFlags & EnablePasswordLogon ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hAdv, IDC_VIDEODIMDISPLAY, gGPP.user.GlobalFlags & EnableVideoDimDisplay ? BST_CHECKED : BST_UNCHECKED); GetPwrCapabilities(&spc); if (spc.SystemS1 || spc.SystemS2 || spc.SystemS3) bSuspend=TRUE; bHibernate = spc.HiberFilePresent; bShutdown = spc.SystemS5; hList1 = GetDlgItem(hAdv, IDC_LIDCLOSE); SendMessage(hList1, CB_RESETCONTENT, 0, 0); memset(g_SystemBatteries, 0x0, sizeof(g_SystemBatteries)); if (spc.SystemBatteriesPresent) { AddItem(hList1, IDS_PowerActionNone1, (LPARAM)PowerActionNone, g_SystemBatteries); if (bSuspend) { AddItem(hList1, IDS_PowerActionSleep, (LPARAM)PowerActionSleep, g_SystemBatteries); } if (bHibernate) { AddItem(hList1, IDS_PowerActionHibernate, (LPARAM)PowerActionHibernate, g_SystemBatteries); } } else { ShowWindow(GetDlgItem(hAdv, IDC_VIDEODIMDISPLAY), FALSE); ShowWindow(GetDlgItem(hAdv, IDC_SLIDCLOSE), FALSE); ShowWindow(hList1, FALSE); } hList2 = GetDlgItem(hAdv, IDC_POWERBUTTON); SendMessage(hList2, CB_RESETCONTENT, 0, 0); memset(g_PowerButton, 0x0, sizeof(g_PowerButton)); if (spc.PowerButtonPresent) { AddItem(hList2, IDS_PowerActionNone1, (LPARAM)PowerActionNone, g_PowerButton); AddItem(hList2, IDS_PowerActionWarmEject, (LPARAM)PowerActionWarmEject, g_PowerButton); if (bSuspend) { AddItem(hList2, IDS_PowerActionSleep, (LPARAM)PowerActionSleep, g_PowerButton); } if (bHibernate) { AddItem(hList2, IDS_PowerActionHibernate, (LPARAM)PowerActionHibernate, g_PowerButton); } if (bShutdown) { AddItem(hList2, IDS_PowerActionShutdown, (LPARAM)PowerActionShutdown, g_PowerButton); } } else { ShowWindow(GetDlgItem(hAdv, IDC_SPOWERBUTTON), FALSE); ShowWindow(hList2, FALSE); } hList3=GetDlgItem(hAdv, IDC_SLEEPBUTTON); SendMessage(hList3, CB_RESETCONTENT, 0, 0); memset(g_SleepButton, 0x0, sizeof(g_SleepButton)); if (spc.SleepButtonPresent) { AddItem(hList3, IDS_PowerActionNone1, (LPARAM)PowerActionNone, g_SleepButton); AddItem(hList3, IDS_PowerActionWarmEject, (LPARAM)PowerActionWarmEject, g_SleepButton); if (bSuspend) { AddItem(hList3, IDS_PowerActionSleep, (LPARAM)PowerActionSleep, g_SleepButton); } if (bHibernate) { AddItem(hList3, IDS_PowerActionHibernate, (LPARAM)PowerActionHibernate, g_SleepButton); } if (bShutdown) { AddItem(hList3, IDS_PowerActionShutdown, (LPARAM)PowerActionShutdown, g_SleepButton); } } else { ShowWindow(GetDlgItem(hAdv, IDC_SSLEEPBUTTON), FALSE); ShowWindow(hList3, FALSE); } if (ReadGlobalPwrPolicy(&gGPP)) { ShowCurrentPowerActionPolicies(hAdv); } }