XcvData (winspool)
Last changed: -216.26.165.10

.
Summary
TODO - a short description

C# Signature:

[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);

VB Signature:

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

User-Defined Types:

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;
      }
   }

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

     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);

Documentation
XcvData on MSDN