91 lines
2.2 KiB
C++
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);
|
|
}
|