/*++ Copyright (C) Microsoft Corporation, 1995 - 1998 All rights reserved. Module Name: docprop.hxx Abstract: Document properties header. Author: Albert Ting (AlbertT) 17-Aug-1995 Revision History: --*/ #ifndef _DOCPROP_HXX #define _DOCPROP_HXX // // HACK: private export from winspool.drv. // extern "C" { LONG DocumentPropertySheets( PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam ); } /******************************************************************** Class forward references. ********************************************************************/ class TDocumentData; /******************************************************************** DocumentProp. Base class for document property sheets. This class should not not contain any information/services that is not generic to all derived classes. The document property sheets should inherit from this class. bHandleMessage (which is not overriden here) should be defined in derived classes. ********************************************************************/ class TDocumentProp : public MGenericProp { SIGNATURE( 'prpr' ) ALWAYS_VALID SAFE_NEW public: TDocumentProp:: TDocumentProp( TDocumentData* pDocumentData ); virtual TDocumentProp:: ~TDocumentProp( VOID ); BOOL TDocumentProp:: bHandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam ); virtual BOOL TDocumentProp:: _bHandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam ) = 0; virtual BOOL TDocumentProp:: bSetUI( VOID ) = 0; virtual BOOL TDocumentProp:: bReadUI( VOID ) = 0; virtual BOOL TDocumentProp:: bSaveUI( VOID ) = 0; protected: VAR( TDocumentData*, pDocumentData ); private: // // Operator = and copy not defined. // TDocumentProp & TDocumentProp:: operator =( const TDocumentProp & ); TDocumentProp:: TDocumentProp( const TDocumentProp & ); BOOL _bApplyData; }; /******************************************************************** General document property page. ********************************************************************/ class TDocumentGeneral : public TDocumentProp { SIGNATURE( 'gedo' ) SAFE_NEW public: TDocumentGeneral( TDocumentData* pDocumentData ); ~TDocumentGeneral( VOID ); BOOL bValid( VOID ); BOOL _bHandleMessage( UINT uMsg, WPARAM wParam, LPARAM lParam ); BOOL bSetUI( VOID ); BOOL bReadUI( VOID ); BOOL bSaveUI( VOID ); VOID vEnableAvailable( IN BOOL bEnable ); BOOL bSetStartAndUntilTime( VOID ); VOID vSetActive( VOID ); private: // // Operator = and copy not defined. // TDocumentGeneral & TDocumentGeneral:: operator =( const TDocumentGeneral & ); TDocumentGeneral:: TDocumentGeneral( const TDocumentGeneral & ); BOOL TDocumentGeneral:: bCheckForChange( VOID ); BOOL _bSetUIDone; }; /******************************************************************** Document property windows. ********************************************************************/ class TDocumentWindows : public TPropertySheetManager { SIGNATURE( 'down' ) SAFE_NEW public: TDocumentWindows:: TDocumentWindows( IN TDocumentData* pDocumentData ); TDocumentWindows:: ~TDocumentWindows( ); BOOL TDocumentWindows:: bValid( VOID ); BOOL TDocumentWindows:: bBuildPages( IN PPROPSHEETUI_INFO pCPSUIInfo ); BOOL TDocumentWindows:: bSetHeader( IN PPROPSHEETUI_INFO pCPSUIInfo, IN PPROPSHEETUI_INFO_HEADER pPSUInfoHeader ); private: // // Operator = and copy not defined. // TDocumentWindows & TDocumentWindows:: operator =( const TDocumentWindows & ); TDocumentWindows:: TDocumentWindows( const TDocumentWindows & ); private: TDocumentData *_pDocumentData; // Pointer to document property sheet data set TDocumentGeneral _General; // General document property sheet DOCUMENTPROPERTYHEADER _dph; // Document prorety header }; /******************************************************************** Document properties UI (driver UI) ********************************************************************/ class TDocumentProperties: public TPropertySheetManager { SIGNATURE( 'dopr' ) SAFE_NEW public: TDocumentProperties:: TDocumentProperties( IN HWND hwnd, IN HANDLE hPrinter, IN LPCTSTR pszPrinter, IN PDEVMODE pDevModeIn, OUT PDEVMODE pDevModeOut, IN DWORD dwHideBits, IN DWORD dwFlags ); LONG TDocumentProperties:: lGetResult( VOID ) const; BOOL TDocumentProperties:: bBuildPages( IN PPROPSHEETUI_INFO pCPSUIInfo ); BOOL TDocumentProperties:: bSetHeader( IN PPROPSHEETUI_INFO pCPSUIInfo, IN PPROPSHEETUI_INFO_HEADER pPSUInfoHeader ); private: DOCUMENTPROPERTYHEADER _dph; HWND _hwnd; HANDLE _hPrinter; LPCTSTR _pszPrinter; PDEVMODE _pDevModeIn; PDEVMODE _pDevModeOut; DWORD _dwHideBits; DWORD _dwFlags; LONG _lResult; TString _strTitle; }; /******************************************************************** Global scoped functions. ********************************************************************/ VOID vDocumentPropSelections( IN HWND hWnd, IN LPCTSTR pszPrinterName, IN TSelection *pSelection ); VOID vDocumentPropPages( IN HWND hWnd, IN LPCTSTR pszDocumentName, IN IDENT JobId, IN INT iCmdShow, IN LPARAM lParam ); LONG DocumentPropertiesWrap( HWND hwnd, // handle to parent window HANDLE hPrinter, // handle to printer object LPTSTR pDeviceName, // device name PDEVMODE pDevModeOutput, // modified device mode PDEVMODE pDevModeInput, // original device mode DWORD fMode, // mode options DWORD fExclusionFlags // exclusion flags ); INT iDocumentPropPagesProc( TDocumentData* pDocumentData ); #endif