3 #include "printlib.h"
\r
5 #define DetectNull(p) (p?p:"NULL")
\r
7 void print_devmode (DEVMODE *pDevModeIn)
\r
9 if (pDevModeIn == NULL)
\r
11 printf ("\tDevice Mode\t= (null)\n");
\r
15 printf( "\tDEVMODE:----------\n" );
\r
16 printf( "\tDeviceName: [%s]\n", DetectNull( pDevModeIn->dmDeviceName ) );
\r
17 printf( "\tSpecVersion: %d\n", pDevModeIn->dmSpecVersion );
\r
18 printf( "\tDriverVersion: %d\n", pDevModeIn->dmDriverVersion );
\r
19 printf( "\tSize: %d\n", pDevModeIn->dmSize );
\r
20 printf( "\tDriverExtra: %d\n", pDevModeIn->dmDriverExtra );
\r
21 printf( "\tFields: 0x%x\n", pDevModeIn->dmFields );
\r
23 if ( pDevModeIn->dmFields & DM_ORIENTATION )
\r
24 printf( "\tOrientation: %d\n", pDevModeIn->dmOrientation );
\r
25 if ( pDevModeIn->dmFields & DM_PAPERSIZE )
\r
26 printf( "\tPaperSize: %d\n", pDevModeIn->dmPaperSize);
\r
27 if ( pDevModeIn->dmFields & DM_PAPERLENGTH )
\r
28 printf( "\tPaperLength: %d\n", pDevModeIn->dmPaperLength );
\r
29 if ( pDevModeIn->dmFields & DM_PAPERWIDTH )
\r
30 printf( "\tPaperWidth: %d\n", pDevModeIn->dmPaperWidth );
\r
31 // if ( pDevModeIn->dmFields & DM_POSITION )
\r
32 // printf( "\tPosition: %d\n", pDevModeIn->dmPosition );
\r
33 if ( pDevModeIn->dmFields & DM_SCALE )
\r
34 printf( "\tScale: %d\n", pDevModeIn->dmScale );
\r
35 if ( pDevModeIn->dmFields & DM_COPIES )
\r
36 printf( "\tCopies: %d\n", pDevModeIn->dmCopies );
\r
37 if ( pDevModeIn->dmFields & DM_DEFAULTSOURCE )
\r
38 printf( "\tDefaultSource: %d\n", pDevModeIn->dmDefaultSource );
\r
39 if ( pDevModeIn->dmFields & DM_PRINTQUALITY )
\r
40 printf( "\tPrintQuality: %d\n", pDevModeIn->dmPrintQuality );
\r
41 if ( pDevModeIn->dmFields & DM_COLOR )
\r
42 printf( "\tColor: %d\n", pDevModeIn->dmColor );
\r
43 if ( pDevModeIn->dmFields & DM_DUPLEX )
\r
44 printf( "\tDuplex: %d\n", pDevModeIn->dmDuplex );
\r
45 if ( pDevModeIn->dmFields & DM_YRESOLUTION )
\r
46 printf( "\tYResolution: %d\n", pDevModeIn->dmYResolution );
\r
47 if ( pDevModeIn->dmFields & DM_TTOPTION )
\r
48 printf( "\tTTOption: %d\n", pDevModeIn->dmTTOption );
\r
49 if ( pDevModeIn->dmFields & DM_COLLATE )
\r
50 printf( "\tCollate: %d\n", pDevModeIn->dmCollate );
\r
51 if ( pDevModeIn->dmFields & DM_FORMNAME )
\r
52 printf( "\tForm: [%s]\n", pDevModeIn->dmFormName );
\r
53 if ( pDevModeIn->dmFields & DM_LOGPIXELS )
\r
54 printf( "\tLogPixels: %d\n", pDevModeIn->dmLogPixels );
\r
55 if ( pDevModeIn->dmFields & DM_BITSPERPEL )
\r
56 printf( "\tBitsPerPel: %d\n", pDevModeIn->dmBitsPerPel );
\r
57 if ( pDevModeIn->dmFields & DM_PELSWIDTH )
\r
58 printf( "\tPelsWidth: %d\n", pDevModeIn->dmPelsWidth );
\r
59 if ( pDevModeIn->dmFields & DM_PELSHEIGHT )
\r
60 printf( "\tPelsHeight: %d\n", pDevModeIn->dmPelsHeight );
\r
61 if ( pDevModeIn->dmFields & DM_DISPLAYFLAGS )
\r
62 printf( "\tDisplayFlags: %d\n", pDevModeIn->dmDisplayFlags );
\r
63 // if ( pDevModeIn->dmFields & DM_NUP )
\r
64 // printf( "\tNup: %d\n", pDevModeIn->dmNup );
\r
65 if ( pDevModeIn->dmFields & DM_DISPLAYFREQUENCY )
\r
66 printf( "\tDisplayFrequency:%d\n", pDevModeIn->dmDisplayFrequency );
\r
67 if ( pDevModeIn->dmFields & DM_ICMMETHOD )
\r
68 printf( "\tICMMethod: %d\n", pDevModeIn->dmICMMethod );
\r
69 if ( pDevModeIn->dmFields & DM_ICMINTENT )
\r
70 printf( "\tICMIntent: %d\n", pDevModeIn->dmICMIntent );
\r
71 if ( pDevModeIn->dmFields & DM_MEDIATYPE )
\r
72 printf( "\tMediaType: %d\n", pDevModeIn->dmMediaType );
\r
73 if ( pDevModeIn->dmFields & DM_DITHERTYPE )
\r
74 printf( "\tDitherType: %d\n", pDevModeIn->dmDitherType );
\r
75 // if ( pDevModeIn->dmFields & DM_PANNINGWIDTH )
\r
76 // printf( "\tPanningWidth: %d\n", pDevModeIn->dmPanningWidth );
\r
77 // if ( pDevModeIn->dmFields & DM_PANNINGHEIGHT )
\r
78 // printf( "\tPanningHeight: %d\n", pDevModeIn->dmPanningHeight );
\r
83 printf( " DEVMODE\n" );
\r
84 Dump( (BYTE*)pDevModeIn, sizeof(DEVMODE), LEADER );
\r
86 if ( pDevModeIn->dmDriverExtra )
\r
88 printf( " DriverExtra\n" );
\r
89 Dump( (BYTE*)pDevModeIn + sizeof(DEVMODE), pDevModeIn->dmDriverExtra, LEADER );
\r
97 void print_acl (const char* str, ACL *acl)
\r
99 printf ("%s\n", str);
\r
103 printf ("\t\tACL Revision \t\t 0x%x\n", acl->AclRevision);
\r
104 printf ("\t\tSbz1\t\t 0x%x\n", acl->Sbz1);
\r
105 printf ("\t\tSbz2\t\t 0x%x\n", acl->Sbz2);
\r
106 printf ("\t\tACL Size\t\t 0x%x\n", acl->AclSize);
\r
107 printf ("\t\tACL Count\t\t 0x%x\n", acl->AceCount);
\r
113 void print_sid (const char* str, SID *sid)
\r
117 printf ("%s\n", str);
\r
118 printf ("0x%x\n", sid);
\r
121 printf ("\t\tRevision\t\t0x%x\n", sid->Revision);
\r
122 printf ("\t\tSubAuthorityCount\t0x%x\n", sid->SubAuthorityCount);
\r
123 printf ("\t\tSubAuthority\n\t");
\r
124 while (i < sid->SubAuthorityCount)
\r
126 printf ("\t0x%x", sid->SubAuthority[i]);
\r
135 void print_secdesc (SECURITY_DESCRIPTOR *secdesc)
\r
137 if (secdesc == NULL)
\r
139 printf ("\tSecurity Descriptor\t= (null)\n");
\r
143 printf ("\tRevision\t= 0x%x\n", secdesc->Revision);
\r
144 printf ("\tSbz1\t\t= 0x%x\n", secdesc->Sbz1);
\r
146 print_sid ("\tOwner\t\t= ", secdesc->Owner);
\r
147 print_sid ("\tGroup\t\t= ",secdesc->Group);
\r
148 print_acl ("\tSacl\t\t= ", secdesc->Sacl);
\r
149 print_acl ("\tDacl\t\t= ", secdesc->Dacl);
\r
154 void PrintLastError()
\r
159 status = GetLastError();
\r
161 FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
\r
162 FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),
\r
163 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
\r
164 (LPTSTR) &lpMsgBuf, 0, NULL);
\r
165 printf ("ERROR [0x%x] : %s\n", status, (char*)lpMsgBuf);
\r
166 LocalFree (lpMsgBuf);
\r
172 void print_job_info_1(PJOB_INFO_1 info)
\r
174 printf ("\tJob ID\t\t= %d\n", info->JobId);
\r
175 printf ("\tPrinter Name\t= %s\n", info->pPrinterName);
\r
176 printf ("\tMachine Name\t= %s\n", info->pMachineName);
\r
177 printf ("\tUser Name\t= %s\n", info->pUserName);
\r
178 printf ("\tDocument\t= %s\n", info->pDocument);
\r
179 printf ("\tDatatype\t= %s\n", info->pDatatype);
\r
180 printf ("\tStatus\t\t= %s\n", info->pStatus);
\r
181 printf ("\tStatus\t= %d\n", info->Status);
\r
182 printf ("\tPriority\t= %d\n", info->Priority);
\r
183 printf ("\tPosition\t= %d\n", info->Position);
\r
184 printf ("\tTotal Pages\t= %d\n", info->TotalPages);
\r
185 printf ("\tPages Printed\t= %d\n", info->PagesPrinted);
\r
186 printf ("\tSubmitted (DD:MM:YY HH:MM:SS)\t= %d:%d:%d %d:%d:%d UTC\n",
\r
187 info->Submitted.wDay, info->Submitted.wMonth,
\r
188 info->Submitted.wYear, info->Submitted.wHour,
\r
189 info->Submitted.wMinute, info->Submitted.wSecond);
\r
194 void print_job_info_2(PJOB_INFO_2 info)
\r
196 printf ("\tJob ID\t\t= %d\n", info->JobId);
\r
197 printf ("\tPrinter Name\t= %s\n", info->pPrinterName);
\r
198 printf ("\tMachine Name\t= %s\n", info->pMachineName);
\r
199 printf ("\tUser Name\t= %s\n", info->pUserName);
\r
200 printf ("\tDocument\t= %s\n", info->pDocument);
\r
201 printf ("\tDatatype\t= %s\n", info->pDatatype);
\r
202 printf ("\tNotify Name\t= %s\n", info->pNotifyName);
\r
203 printf ("\tPrint Processor\t= %s\n", info->pPrintProcessor);
\r
204 printf ("\tParameters\t= %s\n", info->pParameters);
\r
205 printf ("\tDriver Name\t= %s\n", info->pDriverName);
\r
206 printf ("\tStatus\t\t= %s\n", info->pStatus);
\r
207 printf ("\tStatus\t\t= %d\n", info->Status);
\r
208 printf ("\tPriority\t= %d\n", info->Priority);
\r
209 printf ("\tPosition\t= %d\n", info->Position);
\r
210 printf ("\tTotal Pages\t= %d\n", info->TotalPages);
\r
211 printf ("\tPages Printed\t= %d\n", info->PagesPrinted);
\r
212 printf ("\tStart Time\t= %d\n", info->StartTime);
\r
213 printf ("\tUntil Time\t= %d\n", info->UntilTime);
\r
214 printf ("\tTime\t\t= %d\n", info->Time);
\r
215 printf ("\tSize\t\t= %d\n", info->Size);
\r
216 printf ("\tSubmitted (DD:MM:YY HH:MM:SS)\t= %d:%d:%d %d:%d:%d UTC\n",
\r
217 info->Submitted.wDay, info->Submitted.wMonth,
\r
218 info->Submitted.wYear, info->Submitted.wHour,
\r
219 info->Submitted.wMinute, info->Submitted.wSecond);
\r
220 printf ("\tDevice Mode Information\n");
\r
221 printf ("\t-----------------------\n");
\r
222 print_devmode (info->pDevMode);
\r
223 printf ("\tSecurity Descriptor Information\n");
\r
224 printf ("\t-------------------------------\n");
\r
225 print_secdesc (info->pSecurityDescriptor);
\r
230 void print_job_info_3(PJOB_INFO_3 info)
\r
232 printf ("\tJob ID\t\t= %d\n", info->JobId);
\r
233 printf ("\tJob ID Next Job\t= %d\n", info->NextJobId);
\r
234 printf ("\tReserved (must be 0)\t= %d\n", info->Reserved);
\r
239 void print_monitor_info_1 (PMONITOR_INFO_1 info)
\r
241 printf ("\tMonitor Name\t= %s\n", info->pName);
\r
246 void print_monitor_info_2 (PMONITOR_INFO_2 info)
\r
248 printf ("\tMonitor Name\t= %s\n", info->pName);
\r
249 printf ("\tEnvironment\t= %s\n", info->pEnvironment);
\r
250 printf ("\tDLL Name\t= %s\n", info->pDLLName);
\r
255 void print_form_info_1 (PFORM_INFO_1 info)
\r
258 printf ("\tForm Name\t= %s\n", info->pName);
\r
259 printf ("\tFlags\t\t= 0x%x\n", info->Flags);
\r
260 printf ("\tSize\t\t= %d x %d\n", info->Size.cx, info->Size.cy);
\r
261 printf ("\tRectangle\t= [left]%d [right]%d [top]%d [bottom]%d\n",
\r
262 info->ImageableArea.left, info->ImageableArea.right,
\r
263 info->ImageableArea.top, info->ImageableArea.bottom);
\r
268 void print_printer_info_1 (PPRINTER_INFO_1 info)
\r
271 printf ("\tPrinter Name\t= %s\n", info->pName);
\r
272 printf ("\tDescription\t= %s\n", info->pDescription);
\r
273 printf ("\tComment\t\t= %s\n", info->pComment);
\r
274 printf ("\tFlags\t\t= 0x%x\n", info->Flags);
\r
279 void print_printer_info_2 (PPRINTER_INFO_2 info)
\r
281 printf ("\tServer Name\t\t= %s\n", info->pServerName);
\r
282 printf ("\tPrinter Name\t\t= %s\n", info->pPrinterName);
\r
283 printf ("\tPort Name\t\t= %s\n", info->pPortName);
\r
284 printf ("\tShare Name\t\t= %s\n", info->pShareName);
\r
285 printf ("\tDriver Name\t\t= %s\n", info->pDriverName);
\r
286 printf ("\tComment\t\t\t= %s\n", info->pComment);
\r
287 printf ("\tLocation\t\t= %s\n", info->pLocation);
\r
288 printf ("\tSeparator File\t\t= %s\n", info->pSepFile);
\r
289 printf ("\tDefault Data Type\t= %s\n", info->pDatatype);
\r
290 printf ("\tPrint Processor\t\t= %s\n", info->pPrintProcessor);
\r
291 printf ("\tParameters\t\t= %s\n", info->pParameters);
\r
293 printf ("\tAttributes\t\t= 0x%x\n", info->Attributes);
\r
294 printf ("\tPriority\t\t= 0x%x\n", info->Priority);
\r
295 printf ("\tDefault Priority\t= 0x%x\n", info->DefaultPriority);
\r
296 printf ("\tStart Time\t\t= 0x%x\n", info->StartTime);
\r
297 printf ("\tUntil Time\t\t= 0x%x\n", info->UntilTime);
\r
298 printf ("\tStatus\t\t\t= 0x%x\n", info->Status);
\r
299 printf ("\tcJobs\t\t\t= 0x%x\n", info->cJobs);
\r
300 printf ("\tAverage PPM\t\t= 0x%x\n", info->AveragePPM);
\r
302 printf ("\tDevice Mode Information\n");
\r
303 printf ("\t-----------------------\n");
\r
304 print_devmode (info->pDevMode);
\r
306 printf ("\tSecurity Descriptor Information\n");
\r
307 printf ("\t-------------------------------\n");
\r
308 print_secdesc (info->pSecurityDescriptor);
\r
313 void print_printer_info_5 (PPRINTER_INFO_5 info)
\r
316 printf ("\tPrinter Name\t\t\t= %s\n", info->pPrinterName);
\r
317 printf ("\tPort Name\t\t\t= %s\n", info->pPortName);
\r
318 printf ("\tAttributes\t\t\t= 0x%x\n", info->Attributes);
\r
319 printf ("\tDev NotSelect Timeout\t= 0x%x\n", info->DeviceNotSelectedTimeout);
\r
320 printf ("\tTX RetryTimeout\t\t= 0x%x\n", info->TransmissionRetryTimeout);
\r
326 void print_printprocessor_info_1 (PPRINTPROCESSOR_INFO_1 info)
\r
329 printf ("\tPrint Processor Name\t= %s\n", info->pName);
\r
334 void print_driver_info_1 (PDRIVER_INFO_1 info)
\r
336 printf ("\tDriver Name\t= %s\n\n", info->pName);
\r
341 void print_driver_info_2 (PDRIVER_INFO_2 info)
\r
343 printf ("\tDriver Name\t= %s\n", info->pName);
\r
344 printf ("\tEnvironment\t= %s\n", info->pEnvironment);
\r
345 printf ("\tVersion\t\t= %d\n", info->cVersion);
\r
346 printf ("\tDriver Path\t= %s\n", info->pDriverPath);
\r
347 printf ("\tData File\t= %s\n", info->pDataFile);
\r
348 printf ("\tConfig File\t= %s\n\n", info->pConfigFile);
\r
353 void print_driver_info_3 (PDRIVER_INFO_3 info)
\r
357 printf ("\tDriver Name\t= %s\n", info->pName);
\r
358 printf ("\tEnvironment\t= %s\n", info->pEnvironment);
\r
359 printf ("\tVersion\t\t= %d\n", info->cVersion);
\r
360 printf ("\tDriver Path\t= %s\n", info->pDriverPath);
\r
361 printf ("\tData File\t= %s\n", info->pDataFile);
\r
362 printf ("\tConfig File\t= %s\n", info->pConfigFile);
\r
363 printf ("\tHelp Path\t= %s\n", info->pHelpFile);
\r
364 printf ("\tMonitor Name\t= %s\n", info->pMonitorName);
\r
365 printf ("\tData Type\t= %s\n", info->pDefaultDataType);
\r
366 ptr = (char*)info->pDependentFiles;
\r
367 while ((ptr != NULL) && (*ptr != '\0'))
\r
369 printf ("\tDependent Files\t= %s\n", ptr);
\r
370 for (;*ptr != '\0'; ptr++)
\r
371 /* printf ("%s\n", ptr); */
\r
379 void print_driver_info_4 (PDRIVER_INFO_4 info)
\r
383 printf ("\tDriver Name\t= %s\n", info->pName);
\r
384 printf ("\tEnvironment\t= %s\n", info->pEnvironment);
\r
385 printf ("\tVersion\t\t= %d\n", info->cVersion);
\r
386 printf ("\tDriver Path\t= %s\n", info->pDriverPath);
\r
387 printf ("\tData File\t= %s\n", info->pDataFile);
\r
388 printf ("\tConfig File\t= %s\n", info->pConfigFile);
\r
389 printf ("\tHelp Path\t= %s\n", info->pHelpFile);
\r
390 printf ("\tMonitor Name\t= %s\n", info->pMonitorName);
\r
391 printf ("\tData Type\t= %s\n", info->pDefaultDataType);
\r
392 printf ("\tPrevious Names\t= %s\n", info->pszzPreviousNames);
\r
393 ptr = (char*)info->pDependentFiles;
\r
394 while ((ptr != NULL) && (*ptr != '\0'))
\r
396 printf ("\tDependent Files\t= %s\n", ptr);
\r
397 for (;*ptr != '\0'; ptr++)
\r
398 /* printf ("%s\n", ptr); */
\r
406 void print_driver_info_6 (PDRIVER_INFO_6 info)
\r
410 printf ("\tDriver Name\t= %s\n", info->pName);
\r
411 printf ("\tEnvironment\t= %s\n", info->pEnvironment);
\r
412 printf ("\tVersion\t\t= %d\n", info->cVersion);
\r
413 printf ("\tDriver Path\t= %s\n", info->pDriverPath);
\r
414 printf ("\tData File\t= %s\n", info->pDataFile);
\r
415 printf ("\tConfig File\t= %s\n", info->pConfigFile);
\r
416 printf ("\tHelp Path\t= %s\n", info->pHelpFile);
\r
417 printf ("\tMonitor Name\t= %s\n", info->pMonitorName);
\r
418 printf ("\tData Type\t= %s\n", info->pDefaultDataType);
\r
419 printf ("\tPrevious Names\t= %s\n", info->pszzPreviousNames);
\r
420 ptr = (char*)info->pDependentFiles;
\r
423 while (*ptr != '\0')
\r
425 printf ("\tDependent Files\t= %s\n", ptr);
\r
426 for (;*ptr != '\0'; ptr++)
\r
427 /* printf ("%s\n", ptr); */
\r
434 printf ("\tPrevious Names\t= (null)\n");
\r
438 ptr = (char*)info->pszzPreviousNames;
\r
441 while (*ptr != '\0')
\r
443 printf ("\tPrevious Names\t= %s\n", ptr);
\r
444 for (;*ptr != '\0'; ptr++)
\r
445 /* printf ("%s\n", ptr); */
\r
452 printf ("\tPrevious Names\t= (null)\n");
\r
455 printf ("\tDriver Date\t= %d\n", info->ftDriverDate);
\r
456 printf ("\tDriver Version\t= %d\n", info->dwlDriverVersion);
\r
457 printf ("\tManufacture Name = %s\n", info->pszMfgName);
\r
458 printf ("\tOEM URL\t\t= %s\n", info->pszOEMUrl);
\r
459 printf ("\tHardware ID\t= %s\n", info->pszHardwareID);
\r
460 printf ("\tProvider\t= %s\n", info->pszProvider);
\r
465 void print_doc_info_1 (PDOC_INFO_1 info)
\r
467 printf ("\tDocument Name\t= %s\n", info->pDocName);
\r
468 printf ("\tOutput Filename\t= %s\n", info->pOutputFile);
\r
469 printf ("\tDatatype\t= %s\n", info->pDatatype);
\r
474 void print_printer_enum_values (PRINTER_ENUM_VALUES *info)
\r
478 printf ("\tValue Name\t= %s [0x%x]\n", info->pValueName, info->cbValueName);
\r
479 printf ("\tType\t\t= 0x%x\n", info->dwType);
\r
480 printf ("\tSize\t\t= 0x%x\n", info->cbData);
\r
482 while (i < info->cbData)
\r
484 printf ("\t0x%x", *(info->pData++));
\r