windows-nt/Source/XPSP1/NT/base/ntsetup/textmode/kernel/spdsputl.h
2020-09-26 16:20:57 +08:00

283 lines
6.8 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1993 Microsoft Corporation
Module Name:
spvideo.h
Abstract:
Public header file for text setup display utilitiy functions.
Author:
Ted Miller (tedm) 29-July-1993
Revision History:
--*/
#ifndef _SPDSPUTL_DEFN_
#define _SPDSPUTL_DEFN_
#define HEADER_HEIGHT 3
#define STATUS_HEIGHT 1
#define CLIENT_HEIGHT (VideoVars.ScreenHeight - (HEADER_HEIGHT+STATUS_HEIGHT))
#define CLIENT_TOP HEADER_HEIGHT
#define CLEAR_ENTIRE_SCREEN() \
\
SpvidClearScreenRegion( \
0, \
0, \
0, \
0, \
DEFAULT_BACKGROUND \
)
#define CLEAR_CLIENT_SCREEN() \
\
SpvidClearScreenRegion( \
0, \
HEADER_HEIGHT, \
VideoVars.ScreenWidth, \
VideoVars.ScreenHeight-(HEADER_HEIGHT+STATUS_HEIGHT), \
DEFAULT_BACKGROUND \
)
#define CLEAR_HEADER_SCREEN() \
\
SpvidClearScreenRegion( \
0, \
0, \
VideoVars.ScreenWidth, \
HEADER_HEIGHT, \
DEFAULT_BACKGROUND \
)
ULONG
SpDisplayText(
IN PWCHAR Message,
IN ULONG MsgLen,
IN BOOLEAN CenterHorizontally,
IN BOOLEAN CenterVertically,
IN UCHAR Attribute,
IN ULONG X,
IN ULONG Y
);
ULONG
vSpDisplayFormattedMessage(
IN ULONG MessageId,
IN BOOLEAN CenterHorizontally,
IN BOOLEAN CenterVertically,
IN UCHAR Attribute,
IN ULONG X,
IN ULONG Y,
IN va_list arglist
);
ULONG
SpDisplayFormattedMessage(
IN ULONG MessageId,
IN BOOLEAN CenterHorizontally,
IN BOOLEAN CenterVertically,
IN UCHAR Attribute,
IN ULONG X,
IN ULONG Y,
...
);
VOID
SpStartScreen(
IN ULONG MessageId,
IN ULONG LeftMargin,
IN ULONG TopLine,
IN BOOLEAN CenterHorizontally,
IN BOOLEAN CenterVertically,
IN UCHAR Attribute,
...
);
VOID
SpContinueScreen(
IN ULONG MessageId,
IN ULONG LeftMargin,
IN ULONG SpacingLines,
IN BOOLEAN CenterHorizontally,
IN UCHAR Attribute,
...
);
VOID
SpBugCheck(
IN ULONG BugCode,
IN ULONG Param1,
IN ULONG Param2,
IN ULONG Param3
);
VOID
SpDisplayRawMessage(
IN ULONG MessageId,
IN ULONG SpacingLines,
...
);
#define SpDisplayScreen(MessageId,LeftMargin,TopLine) \
\
SpStartScreen( \
MessageId, \
LeftMargin, \
TopLine, \
FALSE, \
FALSE, \
DEFAULT_ATTRIBUTE \
)
//
// As messages are built on on-screen, with SpStartScreen and
// SpContinueScreen, this value remembers where
// the next message in the screen should be placed.
//
extern ULONG NextMessageTopLine;
VOID
SpDisplayHeaderText(
IN ULONG MessageId,
IN UCHAR Attribute
);
VOID
SpDisplayStatusText(
IN ULONG MessageId,
IN UCHAR Attribute,
...
);
VOID
SpCmdConsEnableStatusText(
IN BOOLEAN EnableStatusText
);
VOID
SpDisplayStatusOptions(
IN UCHAR Attribute,
...
);
VOID
SpDisplayStatusActionLabel(
IN ULONG ActionMessageId, OPTIONAL
IN ULONG FieldWidth
);
VOID
SpDisplayStatusActionObject(
IN PWSTR ObjectText
);
VOID
SpDrawFrame(
IN ULONG LeftX,
IN ULONG Width,
IN ULONG TopY,
IN ULONG Height,
IN UCHAR Attribute,
IN BOOLEAN DoubleLines
);
//
// There are places where the user has to press C for custom setup, etc.
// These keystrokes are referred to as the nmemonic keys, and they must be
// localizable. To accomplish this, the enum below indexes the SP_MNEMONICS
// message.
//
typedef enum {
MnemonicUnused = 0,
MnemonicCustom, // as in "C=Custom Setup"
MnemonicCreatePartition, // as in "C=Create Partition"
MnemonicDeletePartition, // as in "D=Delete Partition"
MnemonicContinueSetup, // as in "C=Continue Setup"
MnemonicFormat, // as in "F=Format"
MnemonicConvert, // as in "C=Convert"
MnemonicRemoveFiles, // as in "R=Remove Files"
MnemonicNewPath, // as in "N=Different Directory"
MnemonicSkipDetection, // as in "S=Skip Detection"
MnemonicScsiAdapters, // as in "S=Specify Additional SCSI Adapter"
MnemonicDeletePartition2, // as in "L=Delete"
MnemonicOverwrite, // as in "O=Overwrite"
MnemonicRepair, // as in "R=Repair"
MnemonicRepairAll, // as in "A=Repair All"
MnemonicUpgrade, // as in "U=Upgrade"
MnemonicAutomatedSystemRecovery, // as in "A=ASR"
MnemonicInitializeDisk, // as in "I=Initialize Disk"
MnemonicLocate, // as in "L=Locate"
MnemonicFastRepair, // as in "F=Fast Repair"
MnemonicManualRepair, // as in "M=Manual Repair"
MnemonicConsole, // as in "C=Console"
MnemonicChangeDiskStyle, // as in "S=Change Disk Style"
MnemonicMakeSystemPartition,// as in "M=Make System Partition"
MnemonicMax
} MNEMONIC_KEYS;
#define KEY_MNEMONIC 0x80000000
extern PWCHAR MnemonicValues;
ULONG
SpWaitValidKey(
IN PULONG ValidKeys1,
IN PULONG ValidKeys2, OPTIONAL
IN PULONG MnemonicKeys OPTIONAL
);
//
// Enum for values that can be retuned by a KEYRESS_CALLBACK routine.
//
typedef enum {
ValidateAccept,
ValidateReject,
ValidateIgnore,
ValidateTerminate,
ValidateRepaint
} ValidationValue;
//
// Type for routine to be passed as ValidateKey parameter to SpGetInput().
//
typedef
ValidationValue
(*PKEYPRESS_CALLBACK) (
IN ULONG Key
);
BOOLEAN
SpGetInput(
IN PKEYPRESS_CALLBACK ValidateKey,
IN ULONG X,
IN ULONG Y,
IN ULONG MaxLength,
IN OUT PWCHAR Buffer,
IN BOOLEAN ValidateEscape
);
#endif // ndef _SPDSPUTL_DEFN_