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
- HostSecurityManager.cs
- DesignerTransaction.cs
- jithelpers.cs
- Debugger.cs
- VirtualizingPanel.cs
- SystemIcmpV4Statistics.cs
- IsolatedStorageSecurityState.cs
- OdbcParameterCollection.cs
- ToolZone.cs
- TiffBitmapDecoder.cs
- ProfileSettingsCollection.cs
- ComponentDesigner.cs
- shaperfactoryquerycachekey.cs
- TextBoxRenderer.cs
- DataServiceRequest.cs
- ProfileInfo.cs
- ConfigurationPropertyCollection.cs
- SQLBoolean.cs
- AdornedElementPlaceholder.cs
- ControlAdapter.cs
- InvokeGenerator.cs
- ExceptionRoutedEventArgs.cs
- FormattedTextSymbols.cs
- NonSerializedAttribute.cs
- Domain.cs
- ParameterElement.cs
- SkinBuilder.cs
- DependencyPropertyChangedEventArgs.cs
- HelloMessageApril2005.cs
- XmlElementAttribute.cs
- DateTimeFormatInfo.cs
- PageTheme.cs
- Mappings.cs
- TraceContext.cs
- ApplicationManager.cs
- ErrorHandlingAcceptor.cs
- ModelTypeConverter.cs
- ProfilePropertySettingsCollection.cs
- _DigestClient.cs
- PackageRelationshipSelector.cs
- ListViewHitTestInfo.cs
- WindowAutomationPeer.cs
- GeneratedContractType.cs
- TextElementCollection.cs
- XamlWriter.cs
- OleDbMetaDataFactory.cs
- VisualCollection.cs
- SqlConnectionManager.cs
- TrackingMemoryStreamFactory.cs
- WebDescriptionAttribute.cs
- CompilationRelaxations.cs
- OperationPickerDialog.designer.cs
- ResXResourceReader.cs
- SimpleTextLine.cs
- RoleService.cs
- TypeConverterHelper.cs
- PixelShader.cs
- WebServiceHost.cs
- CustomCategoryAttribute.cs
- HttpDebugHandler.cs
- Screen.cs
- GeometryGroup.cs
- Guid.cs
- AutomationElementCollection.cs
- TreeViewDesigner.cs
- DataKeyCollection.cs
- InputScopeAttribute.cs
- Matrix.cs
- HttpWriter.cs
- ProvidersHelper.cs
- InternalConfigRoot.cs
- XmlDataLoader.cs
- _BasicClient.cs
- AsyncStreamReader.cs
- ImageUrlEditor.cs
- EncodingNLS.cs
- BaseComponentEditor.cs
- ButtonBase.cs
- WindowsScrollBarBits.cs
- IDispatchConstantAttribute.cs
- SystemResources.cs
- CharacterMetrics.cs
- QuaternionConverter.cs
- MissingMemberException.cs
- ConfigurationElementCollection.cs
- GACMembershipCondition.cs
- HWStack.cs
- EventBuilder.cs
- IPAddressCollection.cs
- PersonalizationAdministration.cs
- HttpFormatExtensions.cs
- LogEntryHeaderSerializer.cs
- SchemaElementLookUpTable.cs
- RemotingConfigParser.cs
- TextBox.cs
- validation.cs
- ImageSource.cs
- OracleColumn.cs
- WebBrowserProgressChangedEventHandler.cs
- XmlSchemaAnnotation.cs