2025-11-28 00:35:46 +09:00

91 lines
2.2 KiB
C++

// ShutdownDlg.cpp : implementation file
//
// Copyright 1995-1998, Citrix Systems Inc.
// Copyright (c) 1997 - 2000 Microsoft Corporation
#include "stdafx.h"
#include "API.h"
#include "APIDoc.h"
#include "ShutdownDlg.h"
//#include "wtsapi32.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
Shutdown ShutdownItems[5] =
{
{TEXT("Delete WinStations"), WTS_WSD_LOGOFF},
{TEXT("Normal Shutdown"), WTS_WSD_SHUTDOWN},
{TEXT("Reboot after Shutdown"), WTS_WSD_REBOOT},
{TEXT("Power off computer after shutdown"), WTS_WSD_POWEROFF},
{TEXT("CTRL-SHIFT-ALT-DEL fast reboot"), WTS_WSD_FASTREBOOT}
};
/////////////////////////////////////////////////////////////////////////////
// CShutdownDlg dialog
CShutdownDlg::CShutdownDlg(CWnd* pParent /*=NULL*/)
: CDialog(CShutdownDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CShutdownDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CShutdownDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CShutdownDlg)
DDX_Control(pDX, IDC_SERVERNAME, m_serverName);
DDX_Control(pDX, IDC_SHUTDOWN_PARAMETERS, m_shutdown);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CShutdownDlg, CDialog)
//{{AFX_MSG_MAP(CShutdownDlg)
ON_BN_CLICKED(IDSHUTDOWN, OnShutdown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CShutdownDlg message handlers
BOOL CShutdownDlg::OnInitDialog()
{
CDialog::OnInitDialog();
serverName = g_pDoc->GetServerName();
//AfxMessageBox(serverName);
serverHandle = WTSOpenServer(serverName);
CString serverDisplay;
serverDisplay = "Shutdown parameters for ";
if (*serverName == NULL)
serverDisplay += "local server";
else
serverDisplay += serverName;
m_serverName.SetWindowText(serverDisplay);
for (int i=0; i < MAXSHUTDOWNITEMS; i++)
m_shutdown.InsertString(i, ShutdownItems[i].ShutdownName);
m_shutdown.SetCurSel(0);
return TRUE;
}
void CShutdownDlg::OnShutdown()
{
int nIndex = m_shutdown.GetCurSel();
if (!WTSShutdownSystem(serverHandle, ShutdownItems[nIndex].ShutdownFlag))
AfxMessageBox("Unable to shutdown system");
EndDialog(0);
}