/******************************************************************************\
* This is a part of the Microsoft Source Code Samples.
* Copyright 1993 - 1998 Microsoft Corporation.
* All rights reserved.
* This source code is only intended as a supplement to
* Microsoft Development Tools and/or WinHelp documentation.
* See these sources for detailed information regarding the
* Microsoft samples programs.
\******************************************************************************/
/******************************************************************************\
*
* ENUMPRT.H
*
\******************************************************************************/
/******************************************************************************\
* SYMBOLIC CONSTANTS
\******************************************************************************/
#define MAX_ATTRIBUTES 4 // # of elements in gaAttributes
#define MAX_PRIORITIES 4 // # of elements in gaPriorities
#define MAX_STATUS 3 // # of elements in gaStatus
#define MAX_FIELDS 15 // # of elements in gaFields
#define MAX_ORIENTATION 2 // # of elements in gaOrientation
#define MAX_PAPERSIZE 41 // # of elements in gaPaperSize
#define MAX_DEFAULTSOURCE 16 // # of elements in gaDefaultSource
#define MAX_PRINTQUALITY 4 // # of elements in gaPrintQuality
#define MAX_COLOR 2 // # of elements in gaColor
#define MAX_DUPLEX 3 // # of elements in gaDuplex
#define ERR_MOD_NAME IDS_ERR_ENUMPRT
#define BLANKS "\t\t\t"
/******************************************************************************\
* TYPEDEFS
\******************************************************************************/
typedef struct tagENUMPRTLOOKUP
{
DWORD dwValue;
LPCSTR szValue;
} ENUMPRTLOOKUP;
/******************************************************************************\
* GLOBAL VARIABLES
\******************************************************************************/
HWND ghwndEnumPrt;
DWORD gdwEnumFlags;
char gszEnumName[BUFSIZE];
LPSTR gaEnumPrt[] =
{ "PRINTER_INFO_1" ,
" pDescription: \t%s",
" pName: \t%s",
" pComment: \t%s",
"PRINTER_INFO_2" ,
" pServerName: \t%s", // 5
" pPrinterName: \t%s",
" pShareName: \t%s",
" pPortName: \t%s",
" pDriverName: \t%s",
" pComment: \t%s", // 10
" pLocation: \t%s",
" pDevMode \t%s",
" dmDeviceName: \t%s",
" dmSpecVersion: \t%d",
" dmDriverVersion: \t%d", // 15
" dmSize: \t%d",
" dmDriverExtra: \t%d",
" dmFields: \t",
" dmOrientation: \t",
" dmPaperSize: \t", // 20
" dmPaperLength: \t%d",
" dmPaperWidth: \t%d",
" dmScale: \t%d",
" dmCopies: \t%d",
" dmDefaultSource: \t", // 25
" dmPrintQuality: \t%s",
" dmColor: \t",
" dmDuplex: \t",
" dmYResolution: \t%d",
" dmTTOption: \t%d", // 30
" dmCollate: \t&d",
" dmFormName: \t%s",
" pSepFile: \t%s",
" pPrintProcessor: \t%s",
" pDatatype: \t%s", // 35
" pParameters: \t%s",
" Attributes: \t",
" Priority: \t%s",
" Priority: \t%ld",
" DefaultPriority: \t%ld", // 40
" StartTime: \t%ld",
" UntilTime: \t%ld",
" Status: \t",
" cJobs: \t%ld",
" AveragePPM: \t%ld" };
ENUMPRTLOOKUP gaAttributes[] =
{ { PRINTER_ATTRIBUTE_QUEUED , "PRINTER_ATTRIBUTE_QUEUED " },
{ PRINTER_ATTRIBUTE_DIRECT , "PRINTER_ATTRIBUTE_DIRECT " },
{ PRINTER_ATTRIBUTE_DEFAULT , "PRINTER_ATTRIBUTE_DEFAULT " },
{ PRINTER_ATTRIBUTE_SHARED , "PRINTER_ATTRIBUTE_SHARED " } };
ENUMPRTLOOKUP gaPriorities[] =
{ { NO_PRIORITY , "NO_PRIORITY " },
{ MAX_PRIORITY , "MAX_PRIORITY " },
{ MIN_PRIORITY , "MIN_PRIORITY " },
{ DEF_PRIORITY , "DEF_PRIORITY " } };
ENUMPRTLOOKUP gaStatus[] =
{ { PRINTER_STATUS_PAUSED , "PRINTER_STATUS_PAUSED " },
{ PRINTER_STATUS_ERROR , "PRINTER_STATUS_ERROR " },
{ PRINTER_STATUS_PENDING_DELETION, "PRINTER_STATUS_PENDING_DELETION "},
{ 0 , "" }};
ENUMPRTLOOKUP gaFields[] =
{ { DM_ORIENTATION , "DM_ORIENTATION " },
{ DM_PAPERSIZE , "DM_PAPERSIZE " },
{ DM_PAPERLENGTH , "DM_PAPERLENGTH " },
{ DM_PAPERWIDTH , "DM_PAPERWIDTH " },
{ DM_SCALE , "DM_SCALE " },
{ DM_COPIES , "DM_COPIES " },
{ DM_DEFAULTSOURCE, "DM_DEFAULTSOURCE" },
{ DM_PRINTQUALITY , "DM_PRINTQUALITY " },
{ DM_COLOR , "DM_COLOR " },
{ DM_DUPLEX , "DM_DUPLEX " },
{ DM_YRESOLUTION , "DM_YRESOLUTION " },
{ DM_TTOPTION , "DM_TTOPTION " },
{ DM_COLLATE , "DM_COLLATE " },
{ DM_FORMNAME , "DM_FORMNAME " },
{ 0 , "0 " } };
ENUMPRTLOOKUP gaOrientation[] =
{ { DMORIENT_PORTRAIT , "DMORIENT_PORTRAIT " },
{ DMORIENT_LANDSCAPE, "DMORIENT_LANDSCAPE" } };
ENUMPRTLOOKUP gaPaperSize[] =
{ { DMPAPER_FIRST , "DMPAPER_FIRST " },
{ DMPAPER_LETTER , "DMPAPER_LETTER " },
{ DMPAPER_LETTERSMALL , "DMPAPER_LETTERSMALL " },
{ DMPAPER_TABLOID , "DMPAPER_TABLOID " },
{ DMPAPER_LEDGER , "DMPAPER_LEDGER " },
{ DMPAPER_LEGAL , "DMPAPER_LEGAL " },
{ DMPAPER_STATEMENT , "DMPAPER_STATEMENT " },
{ DMPAPER_EXECUTIVE , "DMPAPER_EXECUTIVE " },
{ DMPAPER_A3 , "DMPAPER_A3 " },
{ DMPAPER_A4 , "DMPAPER_A4 " },
{ DMPAPER_A4SMALL , "DMPAPER_A4SMALL " },
{ DMPAPER_A5 , "DMPAPER_A5 " },
{ DMPAPER_B4 , "DMPAPER_B4 " },
{ DMPAPER_B5 , "DMPAPER_B5 " },
{ DMPAPER_FOLIO , "DMPAPER_FOLIO " },
{ DMPAPER_QUARTO , "DMPAPER_QUARTO " },
{ DMPAPER_10X14 , "DMPAPER_10X14 " },
{ DMPAPER_11X17 , "DMPAPER_11X17 " },
{ DMPAPER_NOTE , "DMPAPER_NOTE " },
{ DMPAPER_ENV_9 , "DMPAPER_ENV_9 " },
{ DMPAPER_ENV_10 , "DMPAPER_ENV_10 " },
{ DMPAPER_ENV_11 , "DMPAPER_ENV_11 " },
{ DMPAPER_ENV_12 , "DMPAPER_ENV_12 " },
{ DMPAPER_ENV_14 , "DMPAPER_ENV_14 " },
{ DMPAPER_CSHEET , "DMPAPER_CSHEET " },
{ DMPAPER_DSHEET , "DMPAPER_DSHEET " },
{ DMPAPER_ESHEET , "DMPAPER_ESHEET " },
{ DMPAPER_ENV_DL , "DMPAPER_ENV_DL " },
{ DMPAPER_ENV_C5 , "DMPAPER_ENV_C5 " },
{ DMPAPER_ENV_C3 , "DMPAPER_ENV_C3 " },
{ DMPAPER_ENV_C4 , "DMPAPER_ENV_C4 " },
{ DMPAPER_ENV_C6 , "DMPAPER_ENV_C6 " },
{ DMPAPER_ENV_C65 , "DMPAPER_ENV_C65 " },
{ DMPAPER_ENV_B4 , "DMPAPER_ENV_B4 " },
{ DMPAPER_ENV_B5 , "DMPAPER_ENV_B5 " },
{ DMPAPER_ENV_B6 , "DMPAPER_ENV_B6 " },
{ DMPAPER_ENV_ITALY , "DMPAPER_ENV_ITALY " },
{ DMPAPER_ENV_MONARCH , "DMPAPER_ENV_MONARCH " },
{ DMPAPER_ENV_PERSONAL , "DMPAPER_ENV_PERSONAL " },
{ DMPAPER_FANFOLD_STD_GERMAN, "DMPAPER_FANFOLD_STD_GERMAN" },
{ DMPAPER_FANFOLD_LGL_GERMAN, "DMPAPER_FANFOLD_LGL_GERMAN" } };
ENUMPRTLOOKUP gaDefaultSource[] =
{ { DMBIN_FIRST , "DMBIN_FIRST " },
{ DMBIN_UPPER , "DMBIN_UPPER " },
{ DMBIN_ONLYONE , "DMBIN_ONLYONE " },
{ DMBIN_LOWER , "DMBIN_LOWER " },
{ DMBIN_MIDDLE , "DMBIN_MIDDLE " },
{ DMBIN_MANUAL , "DMBIN_MANUAL " },
{ DMBIN_ENVELOPE , "DMBIN_ENVELOPE " },
{ DMBIN_ENVMANUAL , "DMBIN_ENVMANUAL " },
{ DMBIN_AUTO , "DMBIN_AUTO " },
{ DMBIN_TRACTOR , "DMBIN_TRACTOR " },
{ DMBIN_SMALLFMT , "DMBIN_SMALLFMT " },
{ DMBIN_LARGEFMT , "DMBIN_LARGEFMT " },
{ DMBIN_LARGECAPACITY, "DMBIN_LARGECAPACITY" },
{ DMBIN_CASSETTE , "DMBIN_CASSETTE " },
{ DMBIN_LAST , "DMBIN_LAST " },
{ DMBIN_USER , "DMBIN_USER " } };
ENUMPRTLOOKUP gaPrintQuality[] =
{ { (DWORD)DMRES_DRAFT , "DMRES_DRAFT " },
{ (DWORD)DMRES_LOW , "DMRES_LOW " },
{ (DWORD)DMRES_MEDIUM, "DMRES_MEDIUM" },
{ (DWORD)DMRES_HIGH , "DMRES_HIGH " } };
ENUMPRTLOOKUP gaColor[] =
{ { DMCOLOR_MONOCHROME, "DMCOLOR_MONOCHROME" },
{ DMCOLOR_COLOR , "DMCOLOR_COLOR " } };
ENUMPRTLOOKUP gaDuplex[] =
{ { DMDUP_SIMPLEX , "DMDUP_SIMPLEX " },
{ DMDUP_VERTICAL , "DMDUP_VERTICAL " },
{ DMDUP_HORIZONTAL, "DMDUP_HORIZONTAL" } };
char *gaDriverInfo[] =
{ "DRIVER_INFO_1",
" pName\t\t%s",
"DRIVER_INFO_2",
" cVersion\t%ld",
" pName\t\t%s",
" pEnvironment\t%s",
" pDriverPath\t%s",
" pDataFile\t%s",
" pConfigFile\t%s" };
/******************************************************************************\
* EXTERNAL VARIABLES
\******************************************************************************/
extern HWND ghwndMain;
/******************************************************************************\
* MACROS
\******************************************************************************/
#define outstr(fmt,arg) { wsprintf (buf,fmt,arg?arg:"(null)"); \
SendDlgItemMessage (hwnd, DID_LISTBOX, \
LB_INSERTSTRING, (UINT)-1, \
(LONG) buf); }
#define outstr2(buf) SendDlgItemMessage (hwnd, DID_LISTBOX, \
LB_INSERTSTRING, (UINT)-1, \
(LONG) buf);
#define outstr3() SendDlgItemMessage (hwnd, DID_LISTBOX, \
LB_INSERTSTRING, \
(UINT)-1, (LONG) buf);
#define outnum(fmt,arg) { wsprintf(buf,fmt,arg); \
SendDlgItemMessage (hwnd, DID_LISTBOX, \
LB_INSERTSTRING, (UINT)-1, \
(LONG) buf); }
/******************************************************************************\
* FUNCTION PROTOTYPES
\******************************************************************************/
LRESULT CALLBACK EnumPrintersOptionsDlgProc (HWND, UINT, WPARAM, LPARAM);
BOOL DisplayEnumPrintersInfo (HWND);
void SetEnumPrintersDlgFields (HWND, DWORD, LPPRINTER_INFO_1,
LPPRINTER_INFO_2);
void ComplexEnumPrintersLine (HWND, char *, ENUMPRTLOOKUP *, int, DWORD);
BOOL DisplayPrinterDriversInfo (HWND);