>Hi all,
>
>I need to rename a printer programmatically (any printer from the printers Window in Windows NT). I have tried using the OpenPrinter() and SetPrinter() api functions, but I get errors in VFP. I am now trying to write a C++ program, but I do not know how to convert the 'pPrinter' pointer to a data structure of type PRINTER_INFO_2 in the SetPrinter function.
>
>Does anyone know how to do this? Am I on the right track?
>
>Thanks in advance,
>
Hi Maria,
I'm not a C++ programmer, but I do know a little about the API. First, add the winspool.h include file. Second, rather than a PRINTER_INFO_2 structure, which also requires a pointer to a DEVMODE structure, I'd use a PRINTER_INFO_5 structure, which doesn't require this. I'd then use a call to GetPrinter to initialize the structure, then change the name of the printer and send it to SetPrinter.
The only problem that I can see with this is NT. PRINTER_INFO_2 also requires a SECURITY_DESCRIPTOR structure. You can initialize this structure using PRINTER_INFO_2, and a call to GetPrinter, which should give you both this and the DEVMODE structure.
Hopefully, someone a bit more fluent in C++ can fill in any holes I've left open.
hth,
George
Ubi caritas et amor, deus ibi est