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
- SecureEnvironment.cs
- NavigationWindow.cs
- EntityTypeBase.cs
- XmlDictionaryString.cs
- ExpressionConverter.cs
- DataPointer.cs
- DataGridViewDataConnection.cs
- AuthenticationSchemesHelper.cs
- TextBoxBase.cs
- CustomCredentialPolicy.cs
- sqlcontext.cs
- FormViewInsertEventArgs.cs
- DBConnectionString.cs
- TreeNodeCollectionEditor.cs
- EntityDataSourceQueryBuilder.cs
- TextTreeTextBlock.cs
- WebScriptMetadataMessageEncoderFactory.cs
- CallbackDebugBehavior.cs
- RotateTransform3D.cs
- LockCookie.cs
- UriTemplateTableMatchCandidate.cs
- XmlSerializerVersionAttribute.cs
- WindowsTokenRoleProvider.cs
- DataGridState.cs
- DiscoveryClientDocuments.cs
- PrimitiveXmlSerializers.cs
- CookieParameter.cs
- XmlName.cs
- TimeSpanStorage.cs
- oledbconnectionstring.cs
- TextRenderingModeValidation.cs
- ArgumentsParser.cs
- ShaperBuffers.cs
- DoubleLinkList.cs
- ExtensionSimplifierMarkupObject.cs
- XXXInfos.cs
- DoubleCollectionValueSerializer.cs
- SystemMulticastIPAddressInformation.cs
- dsa.cs
- HtmlElementErrorEventArgs.cs
- ISessionStateStore.cs
- SecurityUtils.cs
- MethodCallTranslator.cs
- ErrorRuntimeConfig.cs
- ToolStripButton.cs
- SyndicationItemFormatter.cs
- IItemProperties.cs
- CacheAxisQuery.cs
- SQLBytesStorage.cs
- DetailsViewModeEventArgs.cs
- RenderDataDrawingContext.cs
- XmlUtil.cs
- TraceSection.cs
- hresults.cs
- UrlMappingsSection.cs
- AutomationElementCollection.cs
- AncillaryOps.cs
- FrugalList.cs
- ViewStateModeByIdAttribute.cs
- SmtpFailedRecipientsException.cs
- RewritingProcessor.cs
- XmlNodeChangedEventManager.cs
- DateTimeFormat.cs
- ReservationNotFoundException.cs
- UnsafeNativeMethods.cs
- DPTypeDescriptorContext.cs
- CategoryAttribute.cs
- AppDomainAttributes.cs
- SmtpLoginAuthenticationModule.cs
- DataGridViewCellConverter.cs
- ZipIOCentralDirectoryBlock.cs
- SqlUdtInfo.cs
- IISMapPath.cs
- CurrentTimeZone.cs
- ThreadStartException.cs
- FastPropertyAccessor.cs
- CompiledELinqQueryState.cs
- OrCondition.cs
- WebCategoryAttribute.cs
- EntryWrittenEventArgs.cs
- CoreSwitches.cs
- COM2FontConverter.cs
- HtmlTable.cs
- SspiSecurityTokenProvider.cs
- ClientUtils.cs
- FrameworkReadOnlyPropertyMetadata.cs
- NotifyInputEventArgs.cs
- ListBindingHelper.cs
- ReflectionUtil.cs
- FixUpCollection.cs
- CLSCompliantAttribute.cs
- Int64Storage.cs
- TreeBuilderBamlTranslator.cs
- SchemaNotation.cs
- UdpDiscoveryEndpointProvider.cs
- Quaternion.cs
- _LocalDataStoreMgr.cs
- ListDictionaryInternal.cs
- InkCollectionBehavior.cs
- DictionaryContent.cs