>First, thanks for your help. What I wrote was a modification of MS KB Article Q140285Q140285 (How to modify printer settings using SetPrinter).
I found many MS KB code samples that simply don't work, or contain errors, memory leaks, etc. Many times they are just old.
>Anyway, after changing the printer handle from LPHANDLE to HANDLE, and the parameter passing required. It still didn't work. Then, on a guess, I removed changed the following:
>/* Removed the following */
>dSize = sizeof(prninfo)
>/* Changed */
>GetPrinter(iHandle, level, (LPBYTE)prninfo, dSize, &numbytes);
>/* to the following */
>GetPrinter(iHandle, level, (LPBYTE)prninfo, numbytes, &numbytes);
>Then I could get the attributes correctly. However, the status must only be available after a print job has been set.
That's the whole point for getting the buffer size and using a buffer instead of a structure (of the corresponding type) directly.
Vlad