269 lines
4.8 KiB
C++
269 lines
4.8 KiB
C++
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
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
|
|
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
|
|
);
|
|
|
|
private:
|
|
|
|
BOOL
|
|
TShellExtPages::
|
|
bCreatePropSheetHeader(
|
|
IN LPPROPSHEETHEADER *pPropSheetHeader
|
|
);
|
|
|
|
BOOL
|
|
TShellExtPages::
|
|
bCreatePages(
|
|
IN PPROPSHEETUI_INFO pCPSUIInfo,
|
|
IN LPPROPSHEETHEADER pPropSheetHeader
|
|
);
|
|
|
|
VOID
|
|
TShellExtPages::
|
|
vDestroyPages(
|
|
IN PPROPSHEETUI_INFO pCPSUIInfo
|
|
);
|
|
|
|
VOID
|
|
TShellExtPages::
|
|
vDestroyPropSheetHeader(
|
|
IN LPPROPSHEETHEADER pPropSheetHeader
|
|
);
|
|
|
|
//
|
|
// Prevent copying.
|
|
//
|
|
TShellExtPages::
|
|
TShellExtPages(
|
|
const TShellExtPages &
|
|
);
|
|
//
|
|
// Prevent assignment.
|
|
//
|
|
TShellExtPages &
|
|
TShellExtPages::
|
|
operator =(
|
|
const TShellExtPages &
|
|
);
|
|
|
|
private:
|
|
|
|
HANDLE _hGroupHandle; // Handle to group of shell extension property pages
|
|
UINT _uPages; // Number 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(
|
|
IN HWND hwnd
|
|
);
|
|
|
|
private:
|
|
|
|
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
|
|
);
|
|
|
|
virtual
|
|
VOID
|
|
TPrinterPropertySheetManager::
|
|
vGetPrinterIcon(
|
|
IN PPROPSHEETUI_INFO pCPSUIInfo
|
|
);
|
|
|
|
BOOL
|
|
TPrinterPropertySheetManager::
|
|
bBuildDriverPages(
|
|
IN PPROPSHEETUI_INFO pCPSUIInfo
|
|
);
|
|
|
|
VOID
|
|
TPrinterPropertySheetManager::
|
|
vReleaseDriverPages(
|
|
IN PPROPSHEETUI_INFO pCPSUIInfo
|
|
);
|
|
|
|
//
|
|
// Prevent copying.
|
|
//
|
|
TPrinterPropertySheetManager::
|
|
TPrinterPropertySheetManager(
|
|
const TPrinterPropertySheetManager &
|
|
);
|
|
//
|
|
// Prevent assignment.
|
|
//
|
|
TPrinterPropertySheetManager &
|
|
TPrinterPropertySheetManager::
|
|
operator =(
|
|
const TPrinterPropertySheetManager &
|
|
);
|
|
|
|
public:
|
|
|
|
enum CONSTANTS {
|
|
kGeneralPage,
|
|
kPortsPage,
|
|
kJobSchedulingPage,
|
|
kSharingPage,
|
|
kSecurityPage,
|
|
kLastPage,
|
|
};
|
|
|
|
private:
|
|
|
|
DWORD _hDrvPropSheet;
|
|
DEVICEPROPERTYHEADER _dph;
|
|
TPrinterData *_pPrinterData;
|
|
|
|
TPrinterGeneral _General;
|
|
TPrinterPorts _Ports;
|
|
TPrinterJobScheduling _JobScheduling;
|
|
TPrinterSharing _Sharing;
|
|
#ifdef SECURITY
|
|
TPrinterSecurity _Security;
|
|
#endif
|
|
|
|
DWORD _hPages[kLastPage]; // Caution: Size is number of our sheets.
|
|
TShellExtPages _ShellExtPages; // Shell extension proprty pages.
|
|
TString _strTitle;
|
|
};
|
|
|
|
#endif // _PRTPROPS_HXX
|