Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- QuaternionAnimation.cs
- Viewport2DVisual3D.cs
- DbXmlEnabledProviderManifest.cs
- DataSetViewSchema.cs
- WpfSharedXamlSchemaContext.cs
- Border.cs
- Int16KeyFrameCollection.cs
- ListViewUpdateEventArgs.cs
- Operand.cs
- RegistrationServices.cs
- PageThemeParser.cs
- StringUtil.cs
- SQLConvert.cs
- ElasticEase.cs
- SettingsPropertyIsReadOnlyException.cs
- BaseDataList.cs
- CompModSwitches.cs
- RequestQueryProcessor.cs
- AttributeCollection.cs
- SpeechSynthesizer.cs
- Vector3dCollection.cs
- ProviderConnectionPoint.cs
- graph.cs
- SevenBitStream.cs
- Helpers.cs
- BinaryNode.cs
- DESCryptoServiceProvider.cs
- RegisteredScript.cs
- TagNameToTypeMapper.cs
- FormViewModeEventArgs.cs
- NavigationEventArgs.cs
- ProcessThread.cs
- FileSystemEventArgs.cs
- XNameTypeConverter.cs
- LinearGradientBrush.cs
- ControlUtil.cs
- HyperLinkColumn.cs
- CollectionType.cs
- PerformanceCounterPermission.cs
- ControllableStoryboardAction.cs
- DataObjectMethodAttribute.cs
- XMLDiffLoader.cs
- TextRangeEditTables.cs
- SspiSecurityTokenProvider.cs
- RoutedEventArgs.cs
- ThrowHelper.cs
- WebHttpDispatchOperationSelectorData.cs
- SmtpNetworkElement.cs
- Nullable.cs
- UIElement.cs
- FixedFlowMap.cs
- VSWCFServiceContractGenerator.cs
- Pkcs7Recipient.cs
- ParenthesizePropertyNameAttribute.cs
- Camera.cs
- DataGridViewLayoutData.cs
- UnsafeNativeMethods.cs
- dataSvcMapFileLoader.cs
- Section.cs
- TraceProvider.cs
- ToolStripItemEventArgs.cs
- HttpCachePolicy.cs
- FrameworkReadOnlyPropertyMetadata.cs
- TranslateTransform.cs
- CmsInterop.cs
- TagMapCollection.cs
- WebPartCatalogCloseVerb.cs
- XPathPatternBuilder.cs
- EntityDesignerUtils.cs
- ToolStripStatusLabel.cs
- CloudCollection.cs
- MediaEntryAttribute.cs
- StateMachineDesignerPaint.cs
- XmlSchemaAppInfo.cs
- XamlReader.cs
- PresentationTraceSources.cs
- TextParentUndoUnit.cs
- MDIWindowDialog.cs
- XmlDataSource.cs
- DoubleAnimation.cs
- SiteMembershipCondition.cs
- ResourceAssociationSetEnd.cs
- MatrixAnimationUsingKeyFrames.cs
- HighlightVisual.cs
- Int32AnimationBase.cs
- RawStylusInputCustomData.cs
- TextShapeableCharacters.cs
- VisualBasicSettingsHandler.cs
- Char.cs
- AssemblyInfo.cs
- SpotLight.cs
- TypeProvider.cs
- PrimaryKeyTypeConverter.cs
- GeneralTransform3DGroup.cs
- DisplayNameAttribute.cs
- BaseValidator.cs
- IUnknownConstantAttribute.cs
- EndpointBehaviorElement.cs
- SimpleRecyclingCache.cs
- HandlerElementCollection.cs