{
ULONG Rc = 0, Error=0;
PRINTINFO *PrintInfo;
char PDTFile[] = "epson.pdt";
char SepFile[] = "DiskSep";
PrintInfo = (PRINTINFO *) malloc(sizeof(PRINTINFO));
memset(PrintInfo, 0, sizeof(PRINTINFO));
PrintInfo->nFlags = PCS_PRINT_PDT | PCS_PRINT_PRINTMODE |
PCS_PRINT_PROMPT_DIALOG;
PrintInfo->nBufSize = 0;
PrintInfo->nSizeNeeded = 0;
PrintInfo->bPDTMode = TRUE;
PrintInfo->lpPDTFile =
(char *)malloc(sizeof(char) * (strlen(PDTFile)+1));
strcpy(PrintInfo->lpPDTFile, PDTFile);
PrintInfo->nPrtMode = PrtToDskSeparate;
PrintInfo->lpPrtToDskSepFile =
(char *)malloc(sizeof(char) * (strlen(SepFile)+1));
strcpy(PrintInfo->lpPrtToDskSepFile, SepFile);
PrintInfo->bPromptDialog = TRUE;
Rc = pcsSetPrinterSettings('A', PrintInfo, &Error);
if (Rc != PCS_SUCCESSFUL)
printf("Failure. Return code = %d, Extended Error = 0x%08x\n", Rc, Error);
free(PrintInfo->lpPDTFile);
free(PrintInfo->lpPrtToDskSepFile);
free(PrintInfo);
}