windows-nt/Source/XPSP1/NT/net/config/netcfg/srvrcfg/confgdlg.cpp
2020-09-26 16:20:57 +08:00

142 lines
3.1 KiB
C++

//
// C O N F G D L G . C P P
//
// Dialog box handling for Server configuration
//
// Author: danielwe
// Created: 5 Mar 1997
//
#include "pch.h"
#pragma hdrstop
#include "resource.h"
#include "srvrdlg.h"
#include "srvrhlp.h"
extern const WCHAR c_szNetCfgHelpFile[];
LRESULT CServerConfigDlg::OnInitDialog(UINT uMsg, WPARAM wParam,
LPARAM lParam, BOOL& bHandled)
{
const SERVER_DLG_DATA * psdd;
INT idd = 0;
psdd = m_psc->DlgData();
Assert(psdd);
switch (psdd->dwSize)
{
case 1:
idd = RDB_Minimize;
break;
case 2:
idd = RDB_Balance;
break;
case 3:
if (psdd->fLargeCache)
{
idd = RDB_FileSharing;
}
else
{
idd = RDB_NetApps;
}
break;
default:
AssertSz(FALSE, "Invalid Size parameter!");
break;
}
CheckDlgButton(idd, TRUE);
CheckDlgButton(CHK_Announce, psdd->fAnnounce);
return TRUE;
}
LRESULT CServerConfigDlg::OnOk(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
SERVER_DLG_DATA * psdd;
static const INT aidd[] =
{
RDB_Minimize,
RDB_Balance,
RDB_FileSharing,
RDB_NetApps,
};
static const INT cidd = celems(aidd);
INT iidd;
psdd = m_psc->DlgDataRW();
Assert(psdd);
// figure out which radio button was selected
for (iidd = 0; iidd < cidd; iidd++)
{
if (IsDlgButtonChecked(aidd[iidd]))
break;
}
AssertSz(iidd < cidd, "Umm. How could a button NOT be selected??");
// make it 1-based instead of 0-based
iidd++;
psdd->fLargeCache = (iidd == 3);
psdd->dwSize = min(iidd, 3);
psdd->fAnnounce = IsDlgButtonChecked(CHK_Announce);
m_psc->SetDirty();
return 0;
}
//+---------------------------------------------------------------------------
//
// Method: CServerConfigDlg::OnContextMenu
//
// Desc: Bring up context-sensitive help
//
// Args: Standard command parameters
//
// Return: LRESULT
//
LRESULT
CServerConfigDlg::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled)
{
if (g_aHelpIDs_DLG_ServerConfig != NULL)
{
::WinHelp(m_hWnd,
c_szNetCfgHelpFile,
HELP_CONTEXTMENU,
(ULONG_PTR)g_aHelpIDs_DLG_ServerConfig);
}
return 0;
}
//+---------------------------------------------------------------------------
//
// Method: CServerConfigDlg::OnHelp
//
// Desc: Bring up context-sensitive help when dragging ? icon over a control
//
// Args: Standard command parameters
//
// Return: LRESULT
//
//
LRESULT
CServerConfigDlg::OnHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled)
{
LPHELPINFO lphi = reinterpret_cast<LPHELPINFO>(lParam);
Assert(lphi);
if ((g_aHelpIDs_DLG_ServerConfig != NULL) && (HELPINFO_WINDOW == lphi->iContextType))
{
::WinHelp(static_cast<HWND>(lphi->hItemHandle),
c_szNetCfgHelpFile,
HELP_WM_HELP,
(ULONG_PTR)g_aHelpIDs_DLG_ServerConfig);
}
return 0;
}