{
ULONG Rc = 0, Error=0, Size;
PRINTINFO *PrintInfo;
PrintInfo = (PRINTINFO *) malloc(sizeof(PRINTINFO));
memset(PrintInfo, 0, sizeof(PRINTINFO));
PrintInfo->nBufSize = 0;
Rc = pcsGetPrinterSettings('A', PrintInfo, &Error);
if (Rc != PCS_SUCCESSFUL)
printf("Failure. Return code = %d\n", Rc);
else {
Size = PrintInfo->nSizeNeeded;
PrintInfo->nBufSize = Size;
PrintInfo->lpPDTFile = (char *)malloc(sizeof(char) * Size);
PrintInfo->lpPrtToDskAppFile = (char *)malloc(sizeof(char) * Size);
PrintInfo->lpPrtToDskSepFile = (char *)malloc(sizeof(char) * Size);
PrintInfo->lpPrinterName = (char *)malloc(sizeof(char) * Size);
Rc = pcsGetPrinterSettings('A', PrintInfo, &Error);
if (Rc != PCS_SUCCESSFUL)
printf("Failure. Return code = %d, Extended Error = 0x%08x\n", Rc, Error);
else {
if (PrintInfo->bPromptDialog)
printf("PromptDialog\n");
else
printf("No PromptDialog\n");
if (PrintInfo->bPDTMode)
printf("PDT Mode\n");
else
printf("Not PDT Mode\n");
switch(PrintInfo->nPrtMode) {
case PrtToDskAppend:
printf("Print to Disk-Append Mode\n");
break;
case PrtToDskSeparate:
printf("Print to Disk-Separate Mode\n");
break;
case SpecificPrinter:
printf("Specific Printer Mode\n");
break;
case WinDefaultPrinter:
printf("Windows Default Printer Mode\n");
break;
}
if (PrintInfo->lpPDTFile[0] == '\0')
printf("No PDT File configured\n");
else
printf("PDT File = %s\n", PrintInfo->lpPDTFile);
if (PrintInfo->lpPrtToDskAppFile[0] == '\0')
printf("No Disk Append File configured\n");
else
printf("DiskAppend File=%s\n", PrintInfo->lpPrtToDskAppFile);
if (PrintInfo->lpPrtToDskSepFile[0] == '\0')
printf("No Disk Separate File configured\n");
else
printf("DiskSeparate File=%s\n", PrintInfo->lpPrtToDskSepFile);
if ((PrintInfo->nPrtMode == SpecificPrinter) ||
(PrintInfo->nPrtMode == WinDefaultPrinter))
printf("Printer = %s\n", PrintInfo->lpPrinterName);
}
free(PrintInfo->lpPDTFile);
free(PrintInfo->lpPrtToDskAppFile);
free(PrintInfo->lpPrtToDskSepFile);
free(PrintInfo->lpPrinterName);
}
free(PrintInfo);
}