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

196 lines
6.1 KiB
C++

/*----------------------------------------------------------------------------
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (C) 1999 - 2000. Microsoft Corporation. All rights reserved.
PrintMenu.cpp
Description:
Implements the functions used to print out the various menus and return
the user's selection.
----------------------------------------------------------------------------*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
static WCHAR GetUserInput();
/*-----------------------------------------------------------------------------
PrintMainMenu()
Prints out the main menu choices
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintMainMenu()
{
wprintf(L"\n\nMain Menu\n");
wprintf(L"---------\n");
wprintf(L"A) Get/Set default volume quota settings\n");
wprintf(L"B) Get/Set quota log flags\n");
wprintf(L"C) Get/Set default quota limits\n");
wprintf(L"D) Get/Set user quotas\n");
wprintf(L"E) Add/Delete a user for which to keep track of disk quotas\n");
wprintf(L"X) Exit \n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
PrintDefaultQuotaMenu()
Prints out the choices for getting and setting the default volume
quota settings
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintDefaultQuotaMenu()
{
wprintf(L"\n\nDefault Quota Menu\n");
wprintf(L"------------------\n");
wprintf(L"A) Get default volume quota settings\n");
wprintf(L"B) Disable disk quotas\n");
wprintf(L"C) Track disk quotas\n");
wprintf(L"D) Enforce disk quotas\n");
wprintf(L"X) Exit back to main menu\n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
PrintQuotaLogFlagMenu()
Prints out the choices for getting and setting the quota log flags
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintQuotaLogFlagMenu()
{
wprintf(L"\n\nQuota Log Flag Menu\n");
wprintf(L"-------------------\n");
wprintf(L"A) Get default volume log flags\n");
wprintf(L"B) Enable logging of threshold violations\n");
wprintf(L"C) Enable logging of hard quota limit violations\n");
wprintf(L"D) Disable logging of threshold violations\n");
wprintf(L"E) Disable logging of hard quota limit violations\n");
wprintf(L"X) Exit back to main menu\n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
PrintDefaultLimitsMenu()
Prints out the choices for getting and setting the default quota limits
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintDefaultLimitsMenu()
{
wprintf(L"\n\nDefault Limits Menu\n");
wprintf(L"-------------------\n");
wprintf(L"A) Get default quota hard limit\n");
wprintf(L"B) Get default quota threshold\n");
wprintf(L"C) Set default quota hard limit\n");
wprintf(L"D) Set default quota threshold\n");
wprintf(L"X) Exit back to main menu\n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
PrintUserManagerMenu()
Prints out the choices for adding and deleting users for which to keep
track of disk quotas
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintUserManagerMenu()
{
wprintf(L"\n\nUser Manager Menu\n");
wprintf(L"-----------------\n");
wprintf(L"A) Add a user for which to keep track of quotas\n");
wprintf(L"B) Delete a user for which you no longer which to track quotas\n");
wprintf(L"C) Enumerate users for which quotas are tracked\n");
wprintf(L"X) Exit back to main menu\n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
PrintQuotaManagerMenu()
Prints out the choices for getting quotas for all users and for setting
quotas for a particular user
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR PrintQuotaManagerMenu()
{
wprintf(L"\n\nQuota Manager Menu\n");
wprintf(L"------------------\n");
wprintf(L"A) Get the quota information for all users\n");
wprintf(L"B) Set the quota hard limit for a user\n");
wprintf(L"C) Set the quota threshold for a user\n");
wprintf(L"X) Exit back to main menu\n");
wprintf(L"Please enter your selection: ");
return (GetUserInput());
}
/*-----------------------------------------------------------------------------
GetUserInput()
Gets the user's menu selection and returns the UNICODE value
Parameters
None
Return Value
UNICODE value of the user's menu selection
-----------------------------------------------------------------------------*/
WCHAR GetUserInput()
{
HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
INPUT_RECORD sInputRecord;
DWORD dwInputEvents;
ReadConsoleInput(hStdIn,&sInputRecord,1 ,&dwInputEvents);
while (!((sInputRecord.EventType == KEY_EVENT) && (sInputRecord.Event.KeyEvent.bKeyDown)))
{
FlushConsoleInputBuffer(hStdIn);
ReadConsoleInput(hStdIn,&sInputRecord,1 ,&dwInputEvents);
}
return sInputRecord.Event.KeyEvent.uChar.UnicodeChar;
}