windows-nt/Source/XPSP1/NT/shell/osshell/cpls/powercfg/ups/upsinfo.c

258 lines
8.1 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*******************************************************************************
*
* Copyright 1999 American Power Conversion, All Rights Reserved
*
* TITLE: UPSINFO.C
*
* VERSION: 1.0
*
* AUTHOR: PaulB
*
* DATE: 07 June, 1999
*
* DESCRIPTION:
********************************************************************************/
#include "upstab.h"
#include "..\pwrresid.h"
#include "..\PwrMn_cs.h"
#pragma hdrstop
// static data
///////////////////////////////////////////////////////////////////////////////
static HWND g_hUPSPageWnd = NULL;
static DialogAssociations g_InfoAssocs[] = {
MAKE_ARRAY(VENDOR_NAME, IDS_STRING, IDS_STRING, RESOURCE_FIXED, 0, eDeepGet, 0, 0),
MAKE_ARRAY(MODEL_TYPE, IDS_STRING, IDS_STRING, RESOURCE_FIXED, 0, eDeepGet, 0, 0),
MAKE_ARRAY(SERIAL_NUMBER, IDS_STRING, IDS_STRING, RESOURCE_FIXED, 0, eDeepGet, 0, 0),
MAKE_ARRAY(FIRMWARE_REVISION, IDS_STRING, IDS_STRING, RESOURCE_FIXED, 0, eDeepGet, 0, 0) };
static DWORD g_NoServiceControls[] = { IDC_NO_DETAILED_INFO };
// context-sensitive help table
const DWORD g_UPSInfoHelpIDs[]=
{
IDC_MANUFACTURER_LHS, idh_manufacturer,
IDC_MANUFACTURER, idh_manufacturer,
IDC_MODEL_LHS, idh_model,
IDC_MODEL, idh_model,
IDC_SERIAL_NUMBER_LHS, idh_serialnumber,
IDC_SERIAL_NUMBER, idh_serialnumber,
IDC_FIRMWARE_REVISION_LHS, idh_firmware,
IDC_FIRMWARE_REVISION, idh_firmware,
IDC_UPS_INFO, NO_HELP,
IDC_NO_DETAILED_INFO, NO_HELP,
0, 0
};
// static functions
///////////////////////////////////////////////////////////////////////////////
static INT_PTR CALLBACK UPSInfoDlgProc (HWND aDlgHWND,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
static BOOL UPSInfoDlgHandleInit (HWND aDlgHWND, WPARAM wParam, LPARAM lParam);
static BOOL UPSInfoDlgHandleCommand (HWND aDlgHWND, WPARAM wParam, LPARAM lParam);
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////_/_//
//////////////////////////////////////////////////////////////////////////_/_//
// void DisplayUPSInfoDialogBox (HWND aParentWnd);
//
// Description: This function creates and displays the UPS Information dialog
// as a modal dialog. This dialog is displayed when the UPS icon
// button is pressed.
//
// Additional Information:
//
// Parameters:
//
// HWND aParentWnd :- Handle to the parent window.
//
// Return Value: None
//
void DisplayUPSInfoDialogBox (HWND aParentWnd) {
g_hUPSPageWnd = aParentWnd;
DialogBox(GetUPSModuleHandle(), MAKEINTRESOURCE(IDD_UPSDETAILS), aParentWnd, UPSInfoDlgProc);
}
//////////////////////////////////////////////////////////////////////////_/_//
//////////////////////////////////////////////////////////////////////////_/_//
// BOOL CALLBACK UPSInfoDlgProc (HWND aDlgHWND,
// UINT uMsg,
// WPARAM wParam,
// LPARAM lParam);
//
// Description: This is the
// \<A HREF="ms-its:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1033\winui.chm::/devdoc/live/pdui/dlgboxes_5lib.htm">DialogProc\</A>
// for the UPS Information dialog box.
//
// Additional Information:
//
// Parameters:
//
// HWND aDlgHWND :- Identifies the dialog box.
//
// UINT uMsg :- Specifies the message.
//
// WPARAM wParam :- Specifies additional message-specific information.
//
// LPARAM lParam :- Specifies additional message-specific information.
//
// Return Value: Except in response to the WM_INITDIALOG message, the dialog
// box procedure should return nonzero if it processes the
// message, and zero if it does not.
//
INT_PTR CALLBACK UPSInfoDlgProc (HWND aDlgHWND,
UINT uMsg,
WPARAM wParam,
LPARAM lParam) {
BOOL bRet = TRUE;
switch (uMsg) {
case WM_INITDIALOG: {
//The dialog box procedure should return TRUE to direct the system to
//set the keyboard focus to the control given by wParam.
bRet = UPSInfoDlgHandleInit(aDlgHWND, wParam, lParam);
break;
}
case WM_COMMAND: {
//If an application processes this message, it should return zero.
bRet = UPSInfoDlgHandleCommand(aDlgHWND, wParam, lParam);
break;
}
case WM_HELP: { //Help for WM_HELP says: Returns TRUE
bRet = WinHelp(((LPHELPINFO)lParam)->hItemHandle,
PWRMANHLP,
HELP_WM_HELP,
(ULONG_PTR)(LPTSTR)g_UPSInfoHelpIDs);
break;
}
case WM_CONTEXTMENU: { // right mouse click
bRet = WinHelp((HWND)wParam,
PWRMANHLP,
HELP_CONTEXTMENU,
(ULONG_PTR)(LPTSTR)g_UPSInfoHelpIDs);
break;
}
default: {
bRet = FALSE;
break;
}
} // switch (uMsg)
return(bRet);
}
//////////////////////////////////////////////////////////////////////////_/_//
//////////////////////////////////////////////////////////////////////////_/_//
// BOOL UPSInfoDlgHandleInit (HWND aDlgHWND, WPARAM wParam, LPARAM lParam);
//
// Description: This is the handler function for the UPS Information
// WM_INITDIALOG message.
//
// Additional Information:
//
// Parameters:
//
// HWND aDlgHWND :- Identifies the dialog box.
//
// WPARAM wParam :- Handle of control to receive focus
//
// LPARAM lParam :- Initialization parameter
//
// Return Value: The dialog box procedure should return TRUE to direct the
// system to set the keyboard focus to the control given by
// wParam.
//
BOOL UPSInfoDlgHandleInit (HWND aDlgHWND, WPARAM wParam, LPARAM lParam) {
DoUpdateUPSInfo(aDlgHWND);
return(TRUE);
}
//////////////////////////////////////////////////////////////////////////_/_//
//////////////////////////////////////////////////////////////////////////_/_//
// void DoUpdateUPSInfo (HWND aDlgHWND);
//
// Description: This function updates the information displayed in the
// UPS Information dialog.
//
// Additional Information:
//
// Parameters:
//
// HWND aDlgHWND :- Identifies the dialog box.
//
// Return Value: None
//
void DoUpdateUPSInfo (HWND aDlgHWND) {
static const DWORD numRunningFields = DIMENSION_OF(g_InfoAssocs);
static const DWORD numNoServiceFields = DIMENSION_OF(g_NoServiceControls);
BOOL bShowNoDataItemsField = DoUpdateInfo(aDlgHWND,
g_InfoAssocs,
numRunningFields,
(DWORD *) &g_NoServiceControls,
numNoServiceFields,
TRUE);
ShowWindow(GetDlgItem(aDlgHWND, IDC_NO_DETAILED_INFO), !bShowNoDataItemsField ? SW_SHOW : SW_HIDE);
}
//////////////////////////////////////////////////////////////////////////_/_//
//////////////////////////////////////////////////////////////////////////_/_//
// BOOL UPSInfoDlgHandleCommand (HWND aDlgHWND, WPARAM wParam, LPARAM lParam);
//
// Description: This is the handler function for the APC about box WM_COMMAND
// message.
//
// Additional Information:
//
// Parameters:
//
// HWND aDlgHWND :- Handle to dialog box
//
// WPARAM wParam :- HIWORD(wParam) gives the notification code.
// LOWORD(wParam) gives the control id.
//
// LPARAM lParam :- Gives the HWND or handle of the control.
//
// Return Value: If an application processes this message, it should return 0.
//
BOOL UPSInfoDlgHandleCommand (HWND aDlgHWND, WPARAM wParam, LPARAM lParam) {
BOOL bRes = FALSE;
DWORD ctrlID = LOWORD(wParam);
switch (ctrlID) {
case IDOK:
case IDCANCEL: { //The escape key
EndDialog(aDlgHWND, ctrlID);
break;
}
// case IDB_REFRESH: {
// DoUpdateUPSInfo(aDlgHWND);
// break;
// }
default: {
break;
}
}//end switch
//If an application processes this message, it should return zero.
return(bRes);
}