windows-nt/Source/XPSP1/NT/printscan/ui/printui/docprop.hxx
2020-09-26 16:20:57 +08:00

386 lines
6.9 KiB
C++

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