Author: andreia
Date: 2007-12-10 06:07:22 -0500 (Mon, 10 Dec 2007)
New Revision: 91039

Modified:
   trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
   
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
Log:
* PrintingServicesWin32.cs: Add enumeration flag to get remote 
printers as well as locally connected ones. Fixes #325258

2007-12-10  Andreia Gaita <[EMAIL PROTECTED]>

Modified: trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog
===================================================================
--- trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog    
2007-12-10 11:05:42 UTC (rev 91038)
+++ trunk/mcs/class/System.Drawing/System.Drawing.Printing/ChangeLog    
2007-12-10 11:07:22 UTC (rev 91039)
@@ -1,3 +1,8 @@
+2007-12-10  Andreia Gaita <[EMAIL PROTECTED]>
+
+       * PrintingServicesWin32.cs: Add enumeration flag to get remote 
+       printers as well as locally connected ones. Fixes #325258
+
 2007-06-30  Gert Driesen  <[EMAIL PROTECTED]>
 
        * Margins.cs: Overloaded operators are 2.0 only.

Modified: 
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs
===================================================================
--- 
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs 
    2007-12-10 11:05:42 UTC (rev 91038)
+++ 
trunk/mcs/class/System.Drawing/System.Drawing.Printing/PrintingServicesWin32.cs 
    2007-12-10 11:07:22 UTC (rev 91039)
@@ -327,8 +327,8 @@
                                IntPtr ptr, buff;
                                string s;
 
-                               // Determine space need it
-                       Win32EnumPrinters (2 /* PRINTER_ENUM_LOCAL */,
+                               // Determine space needed
+                       Win32EnumPrinters 
((int)EnumPrinters.PRINTER_ENUM_CONNECTIONS | 
(int)EnumPrinters.PRINTER_ENUM_LOCAL,
                                null, 2, IntPtr.Zero, 0, ref cbNeeded, ref 
printers);
 
                                if (cbNeeded <= 0)
@@ -338,7 +338,7 @@
 
                                try {
                                        // Give us the printer list
-                                       Win32EnumPrinters (2 /* 
PRINTER_ENUM_LOCAL */,
+                                       Win32EnumPrinters 
((int)EnumPrinters.PRINTER_ENUM_CONNECTIONS | 
(int)EnumPrinters.PRINTER_ENUM_LOCAL,
                                                null, 2, buff, (uint)cbNeeded, 
ref cbNeeded, ref printers);
 
                                        for (int i = 0; i < printers; i++) {
@@ -638,6 +638,18 @@
                        DT_DISPFILE             = 6, // Display-file
                }
 
+               [Flags]
+               internal enum EnumPrinters: uint
+               {
+                       PRINTER_ENUM_DEFAULT            = 0x1,
+                       PRINTER_ENUM_LOCAL              = 0x2,
+                       PRINTER_ENUM_CONNECTIONS        = 0x4,
+                       PRINTER_ENUM_FAVORITE           = 0x4,
+                       PRINTER_ENUM_NAME                       = 0x8,
+                       PRINTER_ENUM_REMOTE             = 0x10,
+                       PRINTER_ENUM_SHARED             = 0x20,
+                       PRINTER_ENUM_NETWORK            = 0x40,
+               }
        }
 
        class GlobalPrintingServicesWin32 : GlobalPrintingServices

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to