EnumPrinterData (winspool)
Last changed: -14.201.156.202

.
Summary
The EnumPrinterData function enumerates configuration data for a specified printer.

C# Signature:

[DllImport("winspool.drv", CharSet = CharSet.Unicode, SetLastError = true)]
static extern uint EnumPrinterDataW(IntPtr hPrinter, uint dwIndex, IntPtr pValueName, uint cbValueName, out uint pcbValueName, out uint
pType, byte[] pData, uint cbData, out uint pcbData);

VB Signature:

Declare Function EnumPrinterData Lib "winspool.dll" (TODO) As TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

I could not get pValueName to work as a String or StringBuilder. I had to marshal myself.

IntPtr pValueName = Marshal.AllocHGlobal(bufSize);
pResult = EnumPrinterDataW(pHandle, dwIndex, pValueName, bufSize, out pcbValueName, out pType, pData, cbData, out pcbData);
baValueName = new byte[pcbValueName];
Marshal.Copy(pValueName, baValueName, 0, (int)pcbValueName);
Marshal.FreeHGlobal(pValueName);

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Documentation