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
- ValueExpressions.cs
- CheckBoxStandardAdapter.cs
- ServiceInfo.cs
- System.Data_BID.cs
- FrameAutomationPeer.cs
- COM2PropertyPageUITypeConverter.cs
- EncryptedPackage.cs
- AttributeUsageAttribute.cs
- AssemblySettingAttributes.cs
- recordstate.cs
- MessageTraceRecord.cs
- IssuedTokenParametersElement.cs
- VerticalAlignConverter.cs
- connectionpool.cs
- ByteAnimationBase.cs
- DesignerDataRelationship.cs
- DesignerAttributeInfo.cs
- DesignerLabelAdapter.cs
- SqlSupersetValidator.cs
- ToolBarPanel.cs
- WebPartDisplayMode.cs
- ListItemCollection.cs
- Rotation3DAnimationBase.cs
- HelloMessageCD1.cs
- VerifyHashRequest.cs
- CollectionConverter.cs
- DataSetViewSchema.cs
- JpegBitmapDecoder.cs
- FileSystemWatcher.cs
- AdPostCacheSubstitution.cs
- StringFunctions.cs
- Drawing.cs
- DesignerVerbCollection.cs
- DataControlFieldHeaderCell.cs
- MessageBox.cs
- SpellerInterop.cs
- MarshalDirectiveException.cs
- SqlStream.cs
- BinaryMethodMessage.cs
- ToolStripDropDownItem.cs
- SEHException.cs
- FormViewPagerRow.cs
- NodeFunctions.cs
- TextServicesHost.cs
- DbConnectionClosed.cs
- PerformanceCountersElement.cs
- ImagingCache.cs
- ImageField.cs
- ImageListUtils.cs
- QueryCacheManager.cs
- _NetworkingPerfCounters.cs
- EventHandlersStore.cs
- CellRelation.cs
- AuthorizationContext.cs
- DataGridViewImageColumn.cs
- ScalarOps.cs
- ControlIdConverter.cs
- ArrangedElement.cs
- LongValidatorAttribute.cs
- ApplicationActivator.cs
- DataColumnPropertyDescriptor.cs
- ComAdminInterfaces.cs
- DocumentScope.cs
- FrameworkElement.cs
- KeyValueSerializer.cs
- LocatorManager.cs
- CacheChildrenQuery.cs
- PagerSettings.cs
- CultureNotFoundException.cs
- ColumnWidthChangingEvent.cs
- StylusPointPropertyInfo.cs
- AudioStateChangedEventArgs.cs
- StickyNoteAnnotations.cs
- QueryActivatableWorkflowsCommand.cs
- LinearKeyFrames.cs
- isolationinterop.cs
- Vector3DAnimationBase.cs
- ByteKeyFrameCollection.cs
- recordstatefactory.cs
- InvokeWebServiceDesigner.cs
- XmlCompatibilityReader.cs
- TraceLog.cs
- SqlLiftIndependentRowExpressions.cs
- WindowProviderWrapper.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- CqlWriter.cs
- GroupByQueryOperator.cs
- UserPreferenceChangedEventArgs.cs
- PackageFilter.cs
- DbModificationClause.cs
- WmlControlAdapter.cs
- COAUTHINFO.cs
- ImageClickEventArgs.cs
- DefaultAssemblyResolver.cs
- TreeNode.cs
- DependencyPropertyConverter.cs
- XmlAnyElementAttribute.cs
- IFormattable.cs
- BooleanKeyFrameCollection.cs
- MachineSettingsSection.cs