Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved.
Module Name:
prtprops.hxx
Abstract:
Printer Property sheet header.
Author:
Steve Kiraly (SteveKi) 02-Feb-1996
Revision History:
--*/ #ifndef _PRTPROPS_HXX
#define _PRTPROPS_HXX
//
// HACK: private export from winspool.drv.
//
extern "C" { LONG_PTR DevicePropertySheets( PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam ); }
//
// HACK: private export from shell32.dll
//
extern "C" { VOID Printer_AddPrinterPropPages( LPCTSTR, LPPROPSHEETHEADER ); }
/********************************************************************
Shell extenstion pages.
********************************************************************/
class TShellExtPages {
SIGNATURE( 'shex' ) SAFE_NEW ALWAYS_VALID
public:
TShellExtPages:: TShellExtPages( VOID );
TShellExtPages:: ~TShellExtPages( VOID );
BOOL TShellExtPages:: bCreate( IN PPROPSHEETUI_INFO pCPSUIInfo, IN const TString &strPrinterName );
VOID TShellExtPages:: vDestroy( IN PPROPSHEETUI_INFO pCPSUIInfo );
HANDLE TShellExtPages:: hPropSheet( VOID ) const;
BOOL TShellExtPages:: bCreatePropSheetHeader( IN LPPROPSHEETHEADER *pPropSheetHeader );
VOID TShellExtPages:: vDestroyPropSheetHeader( IN LPPROPSHEETHEADER pPropSheetHeader );
private:
BOOL TShellExtPages:: bCreatePages( IN PPROPSHEETUI_INFO pCPSUIInfo, IN LPPROPSHEETHEADER pPropSheetHeader );
VOID TShellExtPages:: vDestroyPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
//
// Prevent copying.
//
TShellExtPages:: TShellExtPages( const TShellExtPages & ); //
// Prevent assignment.
//
TShellExtPages & TShellExtPages:: operator =( const TShellExtPages & );
private:
LONG_PTR _hGroupHandle; // Handle to group of shell extension property pages
};
/********************************************************************
Printer Property Sheet Manager
********************************************************************/
class TPrinterPropertySheetManager : public TPropertySheetManager {
SIGNATURE( 'psmg' ) SAFE_NEW
public:
TPrinterPropertySheetManager:: TPrinterPropertySheetManager( IN TPrinterData* pPrinterData );
TPrinterPropertySheetManager:: ~TPrinterPropertySheetManager( );
BOOL TPrinterPropertySheetManager:: bValid( VOID );
BOOL TPrinterPropertySheetManager:: bRefreshDriverPages( VOID );
BOOL TPrinterPropertySheetManager:: bCreateTitle( VOID );
VOID TPrinterPropertySheetManager:: vRefreshTitle( VOID );
BOOL TPrinterPropertySheetManager:: bDisplayPages( VOID );
BOOL TPrinterPropertySheetManager:: bGetDriverPageHandle( IN HPROPSHEETPAGE *phPage );
BOOL TPrinterPropertySheetManager:: bGetDriverPageHandles( IN PPROPSHEETUI_INFO pCPSUIInfo, OUT DWORD *pcPages, OUT HPROPSHEETPAGE **pphPage );
VOID TPrinterPropertySheetManager:: vSetParentHandle( IN HWND hwndParent );
HWND TPrinterPropertySheetManager:: hGetParentHandle( VOID ) const; private:
enum { kMaxGroups = 3, };
virtual BOOL TPrinterPropertySheetManager:: bBuildPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
virtual BOOL TPrinterPropertySheetManager:: bDestroyPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
virtual BOOL TPrinterPropertySheetManager:: bSetHeader( IN PPROPSHEETUI_INFO pCPSUIInfo, IN PPROPSHEETUI_INFO_HEADER pPSUInfoHeader );
BOOL TPrinterPropertySheetManager:: bBuildDriverPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
BOOL TPrinterPropertySheetManager:: bCheckToBuildDriverPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
VOID TPrinterPropertySheetManager:: vReleaseDriverPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
BOOL TPrinterPropertySheetManager:: bBuildSpoolerPages( IN PPROPSHEETUI_INFO pCPSUIInfo );
BOOL TPrinterPropertySheetManager:: bInstallDriverPage( VOID );
BOOL TPrinterPropertySheetManager:: bDisplaySecurityTab( IN HWND hwnd );
//
// Prevent copying.
//
TPrinterPropertySheetManager:: TPrinterPropertySheetManager( const TPrinterPropertySheetManager & ); //
// Prevent assignment.
//
TPrinterPropertySheetManager & TPrinterPropertySheetManager:: operator =( const TPrinterPropertySheetManager & );
private:
BOOL _bValid; LONG_PTR _hDrvPropSheet; DEVICEPROPERTYHEADER _dph; TPrinterData *_pPrinterData;
TPrinterGeneral _General; TPrinterPorts _Ports; TPrinterJobScheduling _JobScheduling; TPrinterSharing _Sharing; TShellExtPages _ShellExtPages; TString _strTitle; HWND _hwndParent; };
#endif // _PRTPROPS_HXX
|