[DllImport("winspool.dll", SetLastError=true)]
static extern bool XcvData(IntPtr hXcv, [MarshalAs(UnmanagedType.LPWStr)] string pszDataName, IntPtr InputData, uint cbInputData,
IntPtr OutputData, uint cbOutputData,out uint cbOutputNeeded,out uint dwStatus);
Declare Function XcvData Lib "winspool.dll" (TODO) As TODO
struct PRINTER_DEFAULTS
{
public IntPtr pDatatype;
public IntPtr pDevMode;
public AccessRights DesiredAccess;
public PRINTER_DEFAULTS(AccessRights Access)
{
pDatatype = IntPtr.Zero;
pDevMode = IntPtr.Zero;
DesiredAccess = Access;
}
}
Do you know one? Please contribute it!
None.
Please add some!
string szIPAddress="";
string xcvName = String.Format(",XcvPort {0}", portName);
IntPtr buf= Marshal.AllocHGlobal(256);
IntPtr hXcv = IntPtr.Zero;
PRINTER_DEFAULTS Defaults = new PRINTER_DEFAULTS(AccessRights.SERVER_ACCESS_ADMINISTER);
// Handle to a local machine
if (OpenPrinter(xcvName,out hXcv, ref Defaults ))
{
uint cbOutputNeeded;
uint dwStatus;
// hXvc contains an Xcv data handle to a local TCPMON port
if (XcvData(hXcv, cmd, IntPtr.Zero, 0, buf, 256, out cbOutputNeeded, out dwStatus))
{
szIPAddress= Marshal.PtrToStringAuto(buf);
Console.Write(szRet);
}
}
ClosePrinter(hXcv);
if (buf != IntPtr.Zero)
Marshal.FreeHGlobal(buf);