2006-11-17

C# 使用WIN32API来获取打印机

来源: CSDN 作者:佚名 评论 0 条
  主要使用到winspool.drv中的EnumPrinters函数,代码如下:

  [DllImport("winspool.drv", SetLastError = true, CharSet = CharSet.Auto)]

  [return: MarshalAs(UnmanagedType.Bool)]

  private static extern bool EnumPrinters ([MarshalAs(UnmanagedType.U4)] PRINTER_ENUM flags,

  [MarshalAs(UnmanagedType.LPStr)] string sName,

  uint iLevel,

  IntPtr pPrinterDesc,

  uint iSize,

  [MarshalAs(UnmanagedType.U4)] ref uint iNeeded,

  [MarshalAs(UnmanagedType.U4)] ref uint iReturned

  );   

  说明:Marshal属性提供了对托管代码与非托管代码见数据封送。  

  EnumPrinters 的 WIN32 API的定义如下:   

  BOOL EnumPrinters(

  DWORD Flags, // printer object types

  LPTSTR Name, // name of printer object

  DWORD Level, // information level

  LPBYTE pPrinterEnum, // printer information buffer

  DWORD cbBuf, // size of printer information buffer

  LPDWORD pcbNeeded, // bytes received or required

  LPDWORD pcReturned // number of printers enumerated

  );


(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:新手入门:Java语言完成UDP协议编制程序  
下一篇:C#中的抽象类
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号