Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / Printing / PrintDocument.cs / 1305376 / PrintDocument.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing.Printing { using Microsoft.Win32; using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; using System.Drawing; using System.Drawing.Design; using System.Reflection; using System.Security; using System.Security.Permissions; using System.IO; using System.Runtime.Versioning; ////// /// [ ToolboxItemFilter("System.Drawing.Printing"), DefaultProperty("DocumentName"), SRDescription(SR.PrintDocumentDesc), DefaultEvent("PrintPage") ] public class PrintDocument : Component { private string documentName = "document"; private PrintEventHandler beginPrintHandler; private PrintEventHandler endPrintHandler; private PrintPageEventHandler printPageHandler; private QueryPageSettingsEventHandler queryHandler; private PrinterSettings printerSettings = new PrinterSettings(); private PageSettings defaultPageSettings; private PrintController printController; private bool originAtMargins; private bool userSetPageSettings; ///Defines a reusable object that sends output to the /// printer. ////// /// public PrintDocument() { defaultPageSettings = new PageSettings(printerSettings); } ///Initializes a new instance of the ////// class. /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCdocumentPageSettingsDescr) ] public PageSettings DefaultPageSettings { get { return defaultPageSettings;} set { if (value == null) value = new PageSettings(); defaultPageSettings = value; userSetPageSettings = true; } } ///Gets or sets the /// default /// page settings for the document being printed. ////// /// [ DefaultValue("document"), SRDescription(SR.PDOCdocumentNameDescr) ] public string DocumentName { get { return documentName;} set { if (value == null) value = ""; documentName = value; } } ///Gets or sets the name to display to the user while printing the document; /// for example, in a print status dialog or a printer /// queue. ///// If true, positions the origin of the graphics object // associated with the page at the point just inside // the user-specified margins of the page. // If false, the graphics origin is at the top-left // corner of the printable area of the page. // [ DefaultValue(false), SRDescription(SR.PDOCoriginAtMarginsDescr) ] public bool OriginAtMargins { get { return originAtMargins; } set { originAtMargins = value; } } /// /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCprintControllerDescr) ] public PrintController PrintController { get { IntSecurity.SafePrinting.Demand(); if (printController == null) { printController = new StandardPrintController(); new ReflectionPermission(PermissionState.Unrestricted).Assert(); try { try { // SECREVIEW 332064: this is here because System.Drawing doesnt want a dependency on // System.Windows.Forms. Since this creates a public type in another assembly, this // appears to be OK. Type type = Type.GetType("System.Windows.Forms.PrintControllerWithStatusDialog, " + AssemblyRef.SystemWindowsForms); printController = (PrintController) Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, new object[] { printController}, null); } catch (TypeLoadException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (TargetInvocationException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MissingMethodException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MethodAccessException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MemberAccessException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (FileNotFoundException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } } finally { CodeAccessPermission.RevertAssert(); } } return printController; } set { IntSecurity.SafePrinting.Demand(); printController = value; } } ///Gets or sets the ////// that guides the printing process. /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCprinterSettingsDescr) ] public PrinterSettings PrinterSettings { get { return printerSettings;} set { if (value == null) value = new PrinterSettings(); printerSettings = value; // reset the PageSettings that match the PrinterSettings only if we have created the defaultPageSettings.. if (!userSetPageSettings) { defaultPageSettings = printerSettings.DefaultPageSettings; } } } ///Gets or sets the printer on which the /// document is printed. ////// /// [SRDescription(SR.PDOCbeginPrintDescr)] public event PrintEventHandler BeginPrint { add { beginPrintHandler += value; } remove { beginPrintHandler -= value; } } ///Occurs when the ///method is called, before /// the /// first page prints. /// /// [SRDescription(SR.PDOCendPrintDescr)] public event PrintEventHandler EndPrint { add { endPrintHandler += value; } remove { endPrintHandler -= value; } } ///Occurs when ///is /// called, after the last page is printed. /// /// [SRDescription(SR.PDOCprintPageDescr)] public event PrintPageEventHandler PrintPage { add { printPageHandler += value; } remove { printPageHandler -= value; } } ///Occurs when a page is printed. ////// /// [SRDescription(SR.PDOCqueryPageSettingsDescr)] public event QueryPageSettingsEventHandler QueryPageSettings { add { queryHandler += value; } remove { queryHandler -= value; } } internal void _OnBeginPrint(PrintEventArgs e) { OnBeginPrint(e); } ///Occurs ////// /// protected virtual void OnBeginPrint(PrintEventArgs e) { if (beginPrintHandler != null) beginPrintHandler(this, e); } internal void _OnEndPrint(PrintEventArgs e) { OnEndPrint(e); } ///Raises the ////// event. /// /// protected virtual void OnEndPrint(PrintEventArgs e) { if (endPrintHandler != null) endPrintHandler(this, e); } internal void _OnPrintPage(PrintPageEventArgs e) { OnPrintPage(e); } ///Raises the ////// event. /// /// // protected virtual void OnPrintPage(PrintPageEventArgs e) { if (printPageHandler != null) printPageHandler(this, e); } internal void _OnQueryPageSettings(QueryPageSettingsEventArgs e) { OnQueryPageSettings(e); } ///Raises the ////// event. /// /// protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e) { if (queryHandler != null) queryHandler(this, e); } ///Raises the ///event. /// /// [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public void Print() { // It is possible to SetPrinterName using signed secured dll which can be used to by-pass Printing security model. // hence here check if the PrinterSettings.IsDefaultPrinter and if not demand AllPrinting. // Refer : VsWhidbey : 235920 if (!this.PrinterSettings.IsDefaultPrinter && !this.PrinterSettings.PrintDialogDisplayed) { IntSecurity.AllPrinting.Demand(); } PrintController controller = PrintController; controller.Print(this); } ////// Prints the document. /// ////// /// /// public override string ToString() { return "[PrintDocument " + DocumentName + "]"; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// Provides some interesting information about the PrintDocument in /// String form. /// ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing.Printing { using Microsoft.Win32; using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Diagnostics; using System.Drawing; using System.Drawing.Design; using System.Reflection; using System.Security; using System.Security.Permissions; using System.IO; using System.Runtime.Versioning; ////// /// [ ToolboxItemFilter("System.Drawing.Printing"), DefaultProperty("DocumentName"), SRDescription(SR.PrintDocumentDesc), DefaultEvent("PrintPage") ] public class PrintDocument : Component { private string documentName = "document"; private PrintEventHandler beginPrintHandler; private PrintEventHandler endPrintHandler; private PrintPageEventHandler printPageHandler; private QueryPageSettingsEventHandler queryHandler; private PrinterSettings printerSettings = new PrinterSettings(); private PageSettings defaultPageSettings; private PrintController printController; private bool originAtMargins; private bool userSetPageSettings; ///Defines a reusable object that sends output to the /// printer. ////// /// public PrintDocument() { defaultPageSettings = new PageSettings(printerSettings); } ///Initializes a new instance of the ////// class. /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCdocumentPageSettingsDescr) ] public PageSettings DefaultPageSettings { get { return defaultPageSettings;} set { if (value == null) value = new PageSettings(); defaultPageSettings = value; userSetPageSettings = true; } } ///Gets or sets the /// default /// page settings for the document being printed. ////// /// [ DefaultValue("document"), SRDescription(SR.PDOCdocumentNameDescr) ] public string DocumentName { get { return documentName;} set { if (value == null) value = ""; documentName = value; } } ///Gets or sets the name to display to the user while printing the document; /// for example, in a print status dialog or a printer /// queue. ///// If true, positions the origin of the graphics object // associated with the page at the point just inside // the user-specified margins of the page. // If false, the graphics origin is at the top-left // corner of the printable area of the page. // [ DefaultValue(false), SRDescription(SR.PDOCoriginAtMarginsDescr) ] public bool OriginAtMargins { get { return originAtMargins; } set { originAtMargins = value; } } /// /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCprintControllerDescr) ] public PrintController PrintController { get { IntSecurity.SafePrinting.Demand(); if (printController == null) { printController = new StandardPrintController(); new ReflectionPermission(PermissionState.Unrestricted).Assert(); try { try { // SECREVIEW 332064: this is here because System.Drawing doesnt want a dependency on // System.Windows.Forms. Since this creates a public type in another assembly, this // appears to be OK. Type type = Type.GetType("System.Windows.Forms.PrintControllerWithStatusDialog, " + AssemblyRef.SystemWindowsForms); printController = (PrintController) Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, new object[] { printController}, null); } catch (TypeLoadException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (TargetInvocationException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MissingMethodException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MethodAccessException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (MemberAccessException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } catch (FileNotFoundException) { Debug.Fail("Can't find System.Windows.Forms.PrintControllerWithStatusDialog, proceeding with StandardPrintController"); } } finally { CodeAccessPermission.RevertAssert(); } } return printController; } set { IntSecurity.SafePrinting.Demand(); printController = value; } } ///Gets or sets the ////// that guides the printing process. /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), SRDescription(SR.PDOCprinterSettingsDescr) ] public PrinterSettings PrinterSettings { get { return printerSettings;} set { if (value == null) value = new PrinterSettings(); printerSettings = value; // reset the PageSettings that match the PrinterSettings only if we have created the defaultPageSettings.. if (!userSetPageSettings) { defaultPageSettings = printerSettings.DefaultPageSettings; } } } ///Gets or sets the printer on which the /// document is printed. ////// /// [SRDescription(SR.PDOCbeginPrintDescr)] public event PrintEventHandler BeginPrint { add { beginPrintHandler += value; } remove { beginPrintHandler -= value; } } ///Occurs when the ///method is called, before /// the /// first page prints. /// /// [SRDescription(SR.PDOCendPrintDescr)] public event PrintEventHandler EndPrint { add { endPrintHandler += value; } remove { endPrintHandler -= value; } } ///Occurs when ///is /// called, after the last page is printed. /// /// [SRDescription(SR.PDOCprintPageDescr)] public event PrintPageEventHandler PrintPage { add { printPageHandler += value; } remove { printPageHandler -= value; } } ///Occurs when a page is printed. ////// /// [SRDescription(SR.PDOCqueryPageSettingsDescr)] public event QueryPageSettingsEventHandler QueryPageSettings { add { queryHandler += value; } remove { queryHandler -= value; } } internal void _OnBeginPrint(PrintEventArgs e) { OnBeginPrint(e); } ///Occurs ////// /// protected virtual void OnBeginPrint(PrintEventArgs e) { if (beginPrintHandler != null) beginPrintHandler(this, e); } internal void _OnEndPrint(PrintEventArgs e) { OnEndPrint(e); } ///Raises the ////// event. /// /// protected virtual void OnEndPrint(PrintEventArgs e) { if (endPrintHandler != null) endPrintHandler(this, e); } internal void _OnPrintPage(PrintPageEventArgs e) { OnPrintPage(e); } ///Raises the ////// event. /// /// // protected virtual void OnPrintPage(PrintPageEventArgs e) { if (printPageHandler != null) printPageHandler(this, e); } internal void _OnQueryPageSettings(QueryPageSettingsEventArgs e) { OnQueryPageSettings(e); } ///Raises the ////// event. /// /// protected virtual void OnQueryPageSettings(QueryPageSettingsEventArgs e) { if (queryHandler != null) queryHandler(this, e); } ///Raises the ///event. /// /// [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] public void Print() { // It is possible to SetPrinterName using signed secured dll which can be used to by-pass Printing security model. // hence here check if the PrinterSettings.IsDefaultPrinter and if not demand AllPrinting. // Refer : VsWhidbey : 235920 if (!this.PrinterSettings.IsDefaultPrinter && !this.PrinterSettings.PrintDialogDisplayed) { IntSecurity.AllPrinting.Demand(); } PrintController controller = PrintController; controller.Print(this); } ////// Prints the document. /// ////// /// /// public override string ToString() { return "[PrintDocument " + DocumentName + "]"; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// Provides some interesting information about the PrintDocument in /// String form. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseUriWithWildcard.cs
- Model3D.cs
- MutexSecurity.cs
- StateChangeEvent.cs
- DocumentReference.cs
- BlurEffect.cs
- XmlLoader.cs
- InnerItemCollectionView.cs
- WindowsEditBox.cs
- XPathDocumentIterator.cs
- InternalMappingException.cs
- ReliableReplySessionChannel.cs
- HttpModulesSection.cs
- TemplateFactory.cs
- Utility.cs
- HttpRawResponse.cs
- SqlParameterizer.cs
- DataGridItem.cs
- VBIdentifierNameEditor.cs
- PropertyMetadata.cs
- ClassHandlersStore.cs
- LZCodec.cs
- BrowserDefinition.cs
- DetailsViewInsertedEventArgs.cs
- CollectionsUtil.cs
- IgnoreSection.cs
- MouseGestureConverter.cs
- ProviderConnectionPoint.cs
- MediaPlayer.cs
- DataRecordObjectView.cs
- OrderedDictionaryStateHelper.cs
- UTF8Encoding.cs
- NetTcpSecurity.cs
- HitTestFilterBehavior.cs
- webbrowsersite.cs
- TypeResolvingOptionsAttribute.cs
- NamedPipeTransportSecurity.cs
- Matrix.cs
- ActiveXSite.cs
- SecurityManager.cs
- CodeDefaultValueExpression.cs
- XmlMemberMapping.cs
- DefaultDiscoveryService.cs
- NGCUIElementCollectionSerializerAsync.cs
- X509ThumbprintKeyIdentifierClause.cs
- SystemException.cs
- CompiledXpathExpr.cs
- TypeHelpers.cs
- LogWriteRestartAreaAsyncResult.cs
- RelativeSource.cs
- AudioLevelUpdatedEventArgs.cs
- MediaCommands.cs
- UniqueTransportManagerRegistration.cs
- InstanceLockLostException.cs
- wgx_commands.cs
- ListViewAutomationPeer.cs
- WeakReference.cs
- HashMembershipCondition.cs
- SafeBitVector32.cs
- DataGridViewCellStyle.cs
- ClientUIRequest.cs
- MsdtcWrapper.cs
- RecordBuilder.cs
- login.cs
- UseLicense.cs
- MissingManifestResourceException.cs
- IisTraceWebEventProvider.cs
- ChangePasswordAutoFormat.cs
- RoutedCommand.cs
- MinimizableAttributeTypeConverter.cs
- IncrementalReadDecoders.cs
- RenderCapability.cs
- StateChangeEvent.cs
- ByteFacetDescriptionElement.cs
- KeyConstraint.cs
- DirectoryRedirect.cs
- XsdCachingReader.cs
- XmlSchemaSimpleTypeUnion.cs
- MenuCommandService.cs
- HashCoreRequest.cs
- CompilerGeneratedAttribute.cs
- MetadataUtilsSmi.cs
- SqlUDTStorage.cs
- WebBrowserNavigatingEventHandler.cs
- UIAgentCrashedException.cs
- Transform3DGroup.cs
- EmbeddedMailObjectsCollection.cs
- RootProfilePropertySettingsCollection.cs
- BindingGraph.cs
- PresentationSource.cs
- PageCache.cs
- DoubleStorage.cs
- Effect.cs
- RegistrySecurity.cs
- XXXInfos.cs
- GC.cs
- GridViewCancelEditEventArgs.cs
- RangeValueProviderWrapper.cs
- XmlChildNodes.cs
- LinkConverter.cs