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
- SafeEventLogReadHandle.cs
- Binding.cs
- OpenTypeLayout.cs
- Sql8ConformanceChecker.cs
- TreeBuilder.cs
- DataGridColumnHeaderAutomationPeer.cs
- SafeBitVector32.cs
- BaseDataList.cs
- Config.cs
- StorageBasedPackageProperties.cs
- UriTemplateMatch.cs
- BorderGapMaskConverter.cs
- WsdlBuildProvider.cs
- LZCodec.cs
- AdCreatedEventArgs.cs
- XmlSchemaType.cs
- SystemWebSectionGroup.cs
- HttpConfigurationSystem.cs
- DependencySource.cs
- SoapInteropTypes.cs
- XpsTokenContext.cs
- ConfigurationStrings.cs
- ExceptionRoutedEventArgs.cs
- AttributeQuery.cs
- RuntimeEnvironment.cs
- UserValidatedEventArgs.cs
- QilList.cs
- ParallelTimeline.cs
- TextServicesHost.cs
- ClientSettingsProvider.cs
- _OverlappedAsyncResult.cs
- CodeCommentStatement.cs
- DbConnectionStringCommon.cs
- MarkupCompiler.cs
- NTAccount.cs
- Thread.cs
- WebPartConnectionsCancelVerb.cs
- CustomGrammar.cs
- EditorPart.cs
- OSFeature.cs
- SspiNegotiationTokenAuthenticatorState.cs
- PermissionListSet.cs
- MachineKeyConverter.cs
- AuthorizationSection.cs
- CharConverter.cs
- LinkLabelLinkClickedEvent.cs
- connectionpool.cs
- ProjectedSlot.cs
- RelationshipConverter.cs
- ShaderEffect.cs
- CounterCreationData.cs
- CrossSiteScriptingValidation.cs
- OdbcEnvironmentHandle.cs
- NavigationCommands.cs
- PointAnimationBase.cs
- ZipArchive.cs
- dbdatarecord.cs
- InstanceLockTracking.cs
- LinqDataSourceInsertEventArgs.cs
- GeneralTransform3DTo2D.cs
- ConnectorDragDropGlyph.cs
- XmlSignatureProperties.cs
- BaseDataBoundControlDesigner.cs
- PrintControllerWithStatusDialog.cs
- ResourceBinder.cs
- OletxTransactionManager.cs
- DataGridViewComboBoxColumnDesigner.cs
- ContentFilePart.cs
- NameNode.cs
- SiblingIterators.cs
- WebPartsPersonalizationAuthorization.cs
- MULTI_QI.cs
- String.cs
- OracleConnection.cs
- ListenerAdaptersInstallComponent.cs
- AutomationElement.cs
- PageParserFilter.cs
- ValidationPropertyAttribute.cs
- WebBrowserEvent.cs
- SafeRightsManagementEnvironmentHandle.cs
- SqlWriter.cs
- UntypedNullExpression.cs
- ClientData.cs
- ListViewTableCell.cs
- CoreSwitches.cs
- GeneralTransform2DTo3D.cs
- ListControl.cs
- DataSourceXmlElementAttribute.cs
- CacheModeValueSerializer.cs
- _IPv4Address.cs
- BufferedWebEventProvider.cs
- OrderedDictionary.cs
- TrackingProfile.cs
- OleDbEnumerator.cs
- ProviderCollection.cs
- NativeMethods.cs
- LocalizeDesigner.cs
- FlowDocumentPage.cs
- WeakEventTable.cs
- UriWriter.cs