/* * PMMON.H * * Header file for ArchiveLib 1.0 * * Copyright (c) 1994 Greenleaf Software, Inc. * All Rights Reserved * * DESCRIPTION * * This header file contains the declaration for ALOs2Message, * a monitor class used under OS/2 Presentation Manage. * * CLASS DEFINITIONS: * * ALOs2Message * * REVISION HISTORY * * February 14, 1996 2.0A : New release * */ #if !defined( _PMMON_H ) #define _PMMON_H #include "arclib.h" #include "pmutil.h" #if defined( __cplusplus ) /* * class ALOs2Message * * DESCRIPTION * * This class is used to provide user feedback when operating under * PM. It can be constructed to send messages to windows from * YieldTime(), allowing you to easily update progress bars, text * boxes, or whatever. * * DATA MEMBERS * * mhMessageWindowHandle : The handle of the window that is going to * get the text messages generated by the * ArchiveOperation() procedure. If this * member is set to 0, no messages are sent. * * mhNumberWindowHandle : The handle of the window that is going to * get either the byte count or the percent * complete figure. If miMessage is 0, it * is formatted as ASCII and sent using a * WinSetWindowText() call. O/W, it is sent * using WinSendMsg(), in both parameters. * * mMessageType : AL_SEND_BYTE_COUNT or AL_SEND_RATIO. * * miMessage : The message that gets sent with with the * byte count or ratio. * * miSliderLength : If the monitor is sending messages to a * slider, this member has the length of * the slider shaft in pixels. * * MEMBER FUNCTIONS * * ALOs2Message() : The one and only constructor. * ~ALOs2Message() : The destructor. * operator new() : The memory allocation operator, only used * when the library is in a DLL. * Progress() : The virtual function that gets called to * update progress through the file/job. * ArchiveOperation() : The virtual function that gets called * at key points in the archiving process. * * REVISION HISTORY * * May 26, 1994 1.0A : First release * */ class AL_CLASS_TYPE ALOs2Message : public ALMonitor { /* * Constructors, destructors, and friends */ public : AL_PROTO ALOs2Message( ALMonitorType monitor_type, HWND progress_text_window, ALWindowsMessageType message_type, HWND progress_number_window, UINT pm_message = 0 ); virtual AL_PROTO ~ALOs2Message(); #if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL ) void AL_DLL_FAR * AL_PROTO operator new( size_t size ); #endif protected : virtual void AL_PROTO Progress( long mlObjectSoFar, ALStorage AL_DLL_FAR & object ); virtual void AL_PROTO ArchiveOperation( ALArchiveOperation operation, ALArchive AL_DLL_FAR *archive, ALEntry AL_DLL_FAR *job ); /* * Data members */ protected : HWND mhMessageWindowHandle; HWND mhNumberWindowHandle; ALWindowsMessageType mMessageType; ULONG miMessage; int miSliderLength; /* The length of the shaft in pixels */ public : AL_CLASS_TAG( _ALOs2MessageTag ); }; #else /* #if defined( __cplusplus ) ... */ AL_LINKAGE hALMonitor AL_FUNCTION newALOs2Message( ALMonitorType monitor_type, HWND progress_text_window, ALWindowsMessageType message_type, HWND progress_number_window, UINT pm_message ); #endif /* #if defined( __cplusplus ) ... #else ... */ #endif