Example

{
   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);
}