Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CommonUI / System / Drawing / Advanced / PrivateFontCollection.cs / 1 / PrivateFontCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing.Text { using System.Diagnostics; using System; using System.Drawing; using System.Drawing.Internal; using System.Runtime.InteropServices; using System.ComponentModel; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Globalization; ////// /// Encapsulates a collection of public sealed class PrivateFontCollection : FontCollection { ///objecs. /// /// /// public PrivateFontCollection() { nativeFontCollection = IntPtr.Zero; int status = SafeNativeMethods.Gdip.GdipNewPrivateFontCollection(out nativeFontCollection); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); } ////// Initializes a new instance of the ///class. /// /// /// protected override void Dispose(bool disposing) { if (nativeFontCollection != IntPtr.Zero) { try{ #if DEBUG int status = #endif SafeNativeMethods.Gdip.GdipDeletePrivateFontCollection(out nativeFontCollection); #if DEBUG Debug.Assert(status == SafeNativeMethods.Gdip.Ok, "GDI+ returned an error status: " + status.ToString(CultureInfo.InvariantCulture)); #endif } catch( Exception ex ){ if( ClientUtils.IsSecurityOrCriticalException( ex ) ) { throw; } Debug.Fail( "Exception thrown during Dispose: " + ex.ToString() ); } finally{ nativeFontCollection = IntPtr.Zero; } } base.Dispose(disposing); } ////// Cleans up Windows resources for this /// ///. /// /// /// public void AddFontFile (string filename) { IntSecurity.DemandReadFileIO(filename); int status = SafeNativeMethods.Gdip.GdipPrivateAddFontFile(new HandleRef(this, nativeFontCollection), filename); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); // Register private font with GDI as well so pure GDI-based controls (TextBox, Button for instance) can access it. SafeNativeMethods.AddFontFile( filename ); } // public void AddMemoryFont (IntPtr memory, int length) { IntSecurity.ObjectFromWin32Handle.Demand(); int status = SafeNativeMethods.Gdip.GdipPrivateAddMemoryFont(new HandleRef(this, nativeFontCollection), new HandleRef(null, memory), length); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// Adds a font from the specified file to /// this ///. /// // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Drawing.Text { using System.Diagnostics; using System; using System.Drawing; using System.Drawing.Internal; using System.Runtime.InteropServices; using System.ComponentModel; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using System.Globalization; ////// /// Encapsulates a collection of public sealed class PrivateFontCollection : FontCollection { ///objecs. /// /// /// public PrivateFontCollection() { nativeFontCollection = IntPtr.Zero; int status = SafeNativeMethods.Gdip.GdipNewPrivateFontCollection(out nativeFontCollection); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); } ////// Initializes a new instance of the ///class. /// /// /// protected override void Dispose(bool disposing) { if (nativeFontCollection != IntPtr.Zero) { try{ #if DEBUG int status = #endif SafeNativeMethods.Gdip.GdipDeletePrivateFontCollection(out nativeFontCollection); #if DEBUG Debug.Assert(status == SafeNativeMethods.Gdip.Ok, "GDI+ returned an error status: " + status.ToString(CultureInfo.InvariantCulture)); #endif } catch( Exception ex ){ if( ClientUtils.IsSecurityOrCriticalException( ex ) ) { throw; } Debug.Fail( "Exception thrown during Dispose: " + ex.ToString() ); } finally{ nativeFontCollection = IntPtr.Zero; } } base.Dispose(disposing); } ////// Cleans up Windows resources for this /// ///. /// /// /// public void AddFontFile (string filename) { IntSecurity.DemandReadFileIO(filename); int status = SafeNativeMethods.Gdip.GdipPrivateAddFontFile(new HandleRef(this, nativeFontCollection), filename); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); // Register private font with GDI as well so pure GDI-based controls (TextBox, Button for instance) can access it. SafeNativeMethods.AddFontFile( filename ); } // public void AddMemoryFont (IntPtr memory, int length) { IntSecurity.ObjectFromWin32Handle.Demand(); int status = SafeNativeMethods.Gdip.GdipPrivateAddMemoryFont(new HandleRef(this, nativeFontCollection), new HandleRef(null, memory), length); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// Adds a font from the specified file to /// this ///. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FocusWithinProperty.cs
- InternalControlCollection.cs
- SRDisplayNameAttribute.cs
- XmlSchemaAttributeGroup.cs
- PipelineModuleStepContainer.cs
- WebCategoryAttribute.cs
- _TLSstream.cs
- CompilerState.cs
- BoundColumn.cs
- PreservationFileWriter.cs
- DeferredTextReference.cs
- Int16.cs
- DataControlField.cs
- XmlArrayItemAttribute.cs
- TaskFormBase.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- HealthMonitoringSectionHelper.cs
- Tuple.cs
- ErrorProvider.cs
- ProcessProtocolHandler.cs
- LayoutTableCell.cs
- RewritingProcessor.cs
- HandoffBehavior.cs
- SingleTagSectionHandler.cs
- DrawingImage.cs
- SqlInternalConnection.cs
- Conditional.cs
- SqlRowUpdatingEvent.cs
- RelativeSource.cs
- AdapterDictionary.cs
- MultiTouchSystemGestureLogic.cs
- FlowDocumentPageViewerAutomationPeer.cs
- _StreamFramer.cs
- OleDbInfoMessageEvent.cs
- ListBox.cs
- ToolStripCollectionEditor.cs
- ControlCollection.cs
- VoiceChangeEventArgs.cs
- StorageRoot.cs
- ButtonColumn.cs
- SafeNativeMethods.cs
- CustomError.cs
- CompilerHelpers.cs
- EntityDataSourceStatementEditor.cs
- MarshalDirectiveException.cs
- PerformanceCounterPermissionEntry.cs
- XmlSchemaAny.cs
- WebInvokeAttribute.cs
- XmlWrappingReader.cs
- TCPListener.cs
- InstanceDataCollectionCollection.cs
- RemotingConfiguration.cs
- WindowsClaimSet.cs
- CollectionChangeEventArgs.cs
- HttpChannelHelper.cs
- _ListenerResponseStream.cs
- WindowsRebar.cs
- PageBuildProvider.cs
- InstallerTypeAttribute.cs
- ListMarkerLine.cs
- updateconfighost.cs
- SendMailErrorEventArgs.cs
- TableAutomationPeer.cs
- RequestDescription.cs
- HitTestWithGeometryDrawingContextWalker.cs
- TypeUtil.cs
- SystemMulticastIPAddressInformation.cs
- HostExecutionContextManager.cs
- SrgsItemList.cs
- StrongNameMembershipCondition.cs
- Splitter.cs
- WebBrowserNavigatedEventHandler.cs
- OperandQuery.cs
- FileDetails.cs
- UpdateExpressionVisitor.cs
- MarginCollapsingState.cs
- Point.cs
- TypeLoadException.cs
- PathFigure.cs
- StyleCollectionEditor.cs
- Highlights.cs
- Hashtable.cs
- TextRangeEdit.cs
- LinqMaximalSubtreeNominator.cs
- UseManagedPresentationBindingElement.cs
- TemplateContainer.cs
- fixedPageContentExtractor.cs
- SqlCommand.cs
- RestClientProxyHandler.cs
- SystemIPGlobalProperties.cs
- DataConnectionHelper.cs
- ListItemParagraph.cs
- XamlToRtfWriter.cs
- DataTrigger.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- DrawTreeNodeEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ConfigXmlAttribute.cs
- XmlSerializerFactory.cs
- Attributes.cs