[Samba] GetPrinter Level 2 does not get devmode

Rohit.Wadhwa at tabs.toshiba.com Rohit.Wadhwa at tabs.toshiba.com
Mon Oct 7 22:44:00 GMT 2002


Hi all,

I have uploaded the printer drivers succesfully on RedHat Linux/ Samba
2.2.4 server. I can download and print without any problems. But when I do
Windows API call GetPrinter with PRINTER_INFO_2, the devmode in
printer_info is always null. My code looks like

     HANDLE hPrinter=NULL;
     PRINTER_DEFAULTS pDefaults;
     pDefaults.DesiredAccess = PRINTER_ACCESS_USE;
     pDefaults.pDatatype=NULL;
     pDefaults.pDevMode=NULL;
     BOOL b = OpenPrinter(cPrinterName,&hPrinter,&pDefaults);
     if (b)
     {
          LPBYTE printerInfo=NULL;
          DWORD dwNeeded;
          b = GetPrinter(hPrinter,2,NULL,NULL,&dwNeeded);
          printerInfo = (LPBYTE) new BYTE [dwNeeded];
          b = GetPrinter(hPrinter,2,printerInfo,dwNeeded,&dwNeeded);
          if(b)
          {
               PRINTER_INFO_2 * pInfo = (PRINTER_INFO_2 *)printerInfo;
               if(pInfo->pDevMode)
               {
                    if (DMPAPER_A4 == pInfo->pDevMode->dmPaperSize)
                         MessageBox("A4");
               else
                    MessageBox("LT");
               }
               else
                    MessageBox("Devmode is NUll");
          }
          else
               DWORD dwErr = GetLastError();
          delete printerInfo;
          printerInfo = NULL;
     }
     else
          MessageBox("Could not open printer");

     ClosePrinter(hPrinter);
     hPrinter = NULL;

I have checked the dump of nt_printers.tdb by tdbtool and the tdb looks ok.
I can see the devmode properly there. I repeat, I have no problems in
downloading and printing.

My requirement is I need to change some devmode setting of  a printer
depending on some parameters, and these should be visible when the driver
is downloaded to the clients. While working on this, I found that the
devmode returned by samba is null, and hence the driver reverts to the
default devmode values stored in the driver.

Thanks and regards,

Rohit.




More information about the samba mailing list