PrintPropertyDictionary Class
Assembly: System.Printing (in system.printing.dll)
'Declaration <SerializableAttribute> _ Public Class PrintPropertyDictionary Inherits Hashtable Implements ISerializable, IDeserializationCallback, IDisposable 'Usage Dim instance As PrintPropertyDictionary
/** @attribute SerializableAttribute() */ public class PrintPropertyDictionary extends Hashtable implements ISerializable, IDeserializationCallback, IDisposable
SerializableAttribute public class PrintPropertyDictionary extends Hashtable implements ISerializable, IDeserializationCallback, IDisposable
Not applicable.
The collection takes the form of a Hashtable dictionary. The Value property of each DictionaryEntry in the collection is an instance of a class that is derived from PrintProperty.
The following example shows how to use this class to install a second printer that differs in its properties from an existing printer only in location, port, and shared status.
LocalPrintServer myLocalPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer); PrintQueue sourcePrintQueue = myLocalPrintServer.DefaultPrintQueue; PrintPropertyDictionary myPrintProperties = sourcePrintQueue.PropertiesCollection; // Share the new printer using Remove/Add methods PrintBooleanProperty shared = new PrintBooleanProperty("IsShared", true); myPrintProperties.Remove("IsShared"); myPrintProperties.Add("IsShared", shared); // Give the new printer its share name using SetProperty method PrintStringProperty theShareName = new PrintStringProperty("ShareName", "\"Son of " + sourcePrintQueue.Name +"\""); myPrintProperties.SetProperty("ShareName", theShareName); // Specify the physical location of the new printer using Remove/Add methods PrintStringProperty theLocation = new PrintStringProperty("Location", "the supply room"); myPrintProperties.Remove("Location"); myPrintProperties.Add("Location", theLocation); // Specify the port for the new printer String[] port = new String[] { "COM1:" }; // Install the new printer on the local print server PrintQueue clonedPrinter = myLocalPrintServer.InstallPrintQueue("My clone of " + sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties); myLocalPrintServer.Commit(); // Report outcome Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName); Console.WriteLine("Press Return to continue ..."); Console.ReadLine();
The following example shows how to use this class to discover at run time the properties, and the types of those properties, of a print system object, without using Reflection.
// Enumerate the properties, and their types, of a queue without using Reflection LocalPrintServer localPrintServer = new LocalPrintServer(); PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue(); PrintPropertyDictionary printQueueProperties = defaultPrintQueue.PropertiesCollection; Console.WriteLine("These are the properties, and their types, of {0}, a {1}", defaultPrintQueue.Name, defaultPrintQueue.GetType().ToString() +"\n"); foreach (DictionaryEntry entry in printQueueProperties) { PrintProperty property = (PrintProperty)entry.Value; if (property.Value != null) { Console.WriteLine(property.Name + "\t(Type: {0})", property.Value.GetType().ToString()); } } Console.WriteLine("\n\nPress Return to continue..."); Console.ReadLine();
System.Collections.Hashtable
System.Printing.IndexedProperties.PrintPropertyDictionary
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.