/*++ 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_