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.
|
|
#ifndef __PRNDLG_H_
#define __PRNDLG_H_
/*++
Copyright (C) 1997-1999 Microsoft Corporation
Module Name:
prndlg.h
Abstract:
header file for prndlg.cpp
Author:
William Hsieh (williamh) created
Revision History:
--*/
//
// help topic ids
//
#define idh_devmgr_print_system 207325
#define idh_devmgr_print_device 207326
#define idh_devmgr_print_both 207265
#define idh_devmgr_print_report 207324
//
// Report type mask
//
#define REPORT_TYPE_MASK_NONE 0x00
#define REPORT_TYPE_MASK_SUMMARY 0x01
#define REPORT_TYPE_MASK_CLASSDEVICE 0x02
#define REPORT_TYPE_MASK_SUMMARY_CLASSDEVICE 0x04
#define REPORT_TYPE_MASK_ALL 0x07
typedef enum tagReportType { REPORT_TYPE_SUMMARY = 0, REPORT_TYPE_CLASSDEVICE, REPORT_TYPE_SUMMARY_CLASSDEVICE, REPORT_TYPE_UNKNOWN } REPORT_TYPE, *PREPORT_TYPE;
class CPrintDialog { public: CPrintDialog() : m_hDlg(NULL), m_ReportType(REPORT_TYPE_UNKNOWN) { memset(&m_PrintDlg, 0, sizeof(m_PrintDlg)); } ~CPrintDialog() { if (m_PrintDlg.hDevNames) GlobalFree(m_PrintDlg.hDevNames); if (m_PrintDlg.hDevMode) GlobalFree(m_PrintDlg.hDevMode); } BOOL PrintDlg(HWND hwndOwner, DWORD TypeEnableMask);
HDC HDC() { return m_PrintDlg.hDC; } REPORT_TYPE ReportType() { return m_ReportType; } void SetReportType(REPORT_TYPE ReportType) { m_ReportType = ReportType; } DWORD GetTypeEnableMask() { return m_TypeEnableMask; } HWND m_hDlg; PRINTDLGEX m_PrintDlg;
private: DWORD m_TypeEnableMask; REPORT_TYPE m_ReportType; };
class CDevMgrPrintDialogCallback : public IPrintDialogCallback { public: CDevMgrPrintDialogCallback() :m_Ref(0), m_pPrintDialog(NULL) {}
// IUNKNOWN interface
STDMETHOD_(ULONG, AddRef)(); STDMETHOD_(ULONG, Release)(); STDMETHOD(QueryInterface)(REFIID riid, void** ppv); // IPrintDialogCallback interface
STDMETHOD(InitDone) (THIS); STDMETHOD(SelectionChange) (THIS); STDMETHOD(HandleMessage) (THIS_ HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pResult);
CPrintDialog *m_pPrintDialog;
private: BOOL OnInitDialog(HWND hWnd); UINT_PTR OnCommand(HWND hWnd, WPARAM wParam, LPARAM lParam); BOOL OnHelp(LPHELPINFO pHelpInfo); BOOL OnContextMenu(HWND hWnd, WORD xPos, WORD yPos, WPARAM wParam); ULONG m_Ref; };
#endif
|