windows-nt/Source/XPSP1/NT/base/fs/utils/ulib/inc/program.hxx

147 lines
2.1 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
program.hxx
Abstract:
Author:
David J. Gilman (davegi) 02-Mar-1991
Environment:
ULIB, User Mode
--*/
#if ! defined( _PROGRAM_ )
#define _PROGRAM_
#include "rtmsg.h"
#include "smsg.hxx"
DECLARE_CLASS( PATH );
DECLARE_CLASS( PROGRAM );
class PROGRAM : public OBJECT {
public:
NONVIRTUAL
ULIB_EXPORT
BOOLEAN
Initialize (
IN MSGID UsageMsg DEFAULT MSG_UTILS_HELP,
IN MSGID FatalMsg DEFAULT MSG_UTILS_ERROR_FATAL,
IN ULONG FatalLevel DEFAULT 1
);
NONVIRTUAL
ULIB_EXPORT
~PROGRAM (
);
VIRTUAL
ULIB_EXPORT
BOOLEAN
DisplayMessage (
IN MSGID Message,
IN MESSAGE_TYPE Type DEFAULT NORMAL_MESSAGE
) CONST;
VIRTUAL
ULIB_EXPORT
BOOLEAN
DisplayMessage (
IN MSGID Message,
IN MESSAGE_TYPE Type,
IN PSTR Format,
IN ...
) CONST;
STATIC
ULIB_EXPORT
VOID
ExitProgram (
ULONG Level
);
VIRTUAL
ULIB_EXPORT
VOID
Fatal (
) CONST;
VIRTUAL
ULIB_EXPORT
VOID
Fatal (
IN ULONG ErrorLevel,
IN MSGID Message,
IN PSTR Format,
IN ...
) CONST;
VIRTUAL
ULIB_EXPORT
PSTREAM
GetStandardInput (
);
VIRTUAL
ULIB_EXPORT
PSTREAM
GetStandardOutput (
);
VIRTUAL
ULIB_EXPORT
PSTREAM
GetStandardError (
);
VIRTUAL
ULIB_EXPORT
VOID
Usage (
) CONST;
STATIC
PPATH
QueryImagePath (
);
VIRTUAL
ULIB_EXPORT
VOID
ValidateVersion (
IN MSGID InvalidVersionMsg DEFAULT MSG_UTILS_ERROR_INVALID_VERSION,
IN ULONG ErrorLevel DEFAULT 1
) CONST;
protected:
ULIB_EXPORT
DECLARE_CONSTRUCTOR( PROGRAM );
STREAM_MESSAGE _Message; // Message stream
PSTREAM _Standard_Input; // Standard input
PSTREAM _Standard_Output; // Standard output
PSTREAM _Standard_Error; // Standard error
private:
MSGID _UsageMsg; // Usage message id.
MSGID _FatalMsg; // Fatal message id.
ULONG _FatalLevel; // Fatal error level
};
#endif // _PROGRAM_