Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / CommonUI / System / Drawing / Advanced / PrivateFontCollection.cs / 2 / 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
- StorageEntityContainerMapping.cs
- ParagraphResult.cs
- FlowLayoutPanel.cs
- GPRECT.cs
- MultiView.cs
- StorageModelBuildProvider.cs
- UIHelper.cs
- Switch.cs
- EntityDataSourceMemberPath.cs
- QuaternionKeyFrameCollection.cs
- ReverseInheritProperty.cs
- RepeatBehavior.cs
- TextSerializer.cs
- TextDpi.cs
- HopperCache.cs
- namescope.cs
- OneOfElement.cs
- Point.cs
- CodeDelegateInvokeExpression.cs
- ISO2022Encoding.cs
- XmlFileEditor.cs
- TileModeValidation.cs
- WebPartCatalogAddVerb.cs
- EdmPropertyAttribute.cs
- RegexWorker.cs
- DataRecord.cs
- StateMachineExecutionState.cs
- contentDescriptor.cs
- PrintPageEvent.cs
- WindowsGraphicsWrapper.cs
- ValueProviderWrapper.cs
- WebServiceTypeData.cs
- SelectiveScrollingGrid.cs
- Speller.cs
- DesignerRegionMouseEventArgs.cs
- DbTransaction.cs
- PopupRoot.cs
- ExceptionValidationRule.cs
- FontStretches.cs
- ReadWriteControlDesigner.cs
- PropertyEmitter.cs
- WebPartsSection.cs
- EventDescriptor.cs
- DurationConverter.cs
- ToolboxItemWrapper.cs
- SqlClientWrapperSmiStreamChars.cs
- ConfigXmlCDataSection.cs
- SchemaUtility.cs
- DesignerDataParameter.cs
- BlurEffect.cs
- TableLayoutRowStyleCollection.cs
- RefExpr.cs
- WindowsAuthenticationModule.cs
- Control.cs
- LogEntrySerializationException.cs
- SerialPinChanges.cs
- DebugInfo.cs
- FormsAuthenticationEventArgs.cs
- ObjectView.cs
- InvokeMethod.cs
- WorkflowView.cs
- CommonProperties.cs
- CodeObject.cs
- Empty.cs
- ZipPackagePart.cs
- ALinqExpressionVisitor.cs
- OuterGlowBitmapEffect.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SqlServer2KCompatibilityCheck.cs
- SeverityFilter.cs
- AdornerHitTestResult.cs
- BrowserDefinition.cs
- ResourceFallbackManager.cs
- WmlPanelAdapter.cs
- DataGridViewRowPostPaintEventArgs.cs
- XPathNodePointer.cs
- RuntimeConfig.cs
- DynamicUpdateCommand.cs
- ArcSegment.cs
- XmlLanguage.cs
- RemoteWebConfigurationHostStream.cs
- TemplateParser.cs
- ContractMapping.cs
- ProtectedConfigurationProviderCollection.cs
- BlobPersonalizationState.cs
- DispatcherEventArgs.cs
- CFStream.cs
- OdbcErrorCollection.cs
- XNodeNavigator.cs
- DatePickerDateValidationErrorEventArgs.cs
- ExternalException.cs
- TitleStyle.cs
- RightNameExpirationInfoPair.cs
- XPathPatternBuilder.cs
- TextElementEnumerator.cs
- SourceItem.cs
- RequestQueue.cs
- DocumentReferenceCollection.cs
- EdmFunction.cs
- Buffer.cs