Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CommonUI / System / Drawing / Advanced / FontCollection.cs / 1305376 / FontCollection.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.Runtime.Versioning; ////// /// When inherited, enumerates the FontFamily /// objects in a collection of fonts. /// public abstract class FontCollection : IDisposable { internal IntPtr nativeFontCollection; internal FontCollection() { nativeFontCollection = IntPtr.Zero; } ////// /// Disposes of this public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } ////// protected virtual void Dispose(bool disposing) { // nothing... } /// /// /// public FontFamily[] Families { [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] get { int numSought = 0; int status = SafeNativeMethods.Gdip.GdipGetFontCollectionFamilyCount(new HandleRef(this, nativeFontCollection), out numSought); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); IntPtr[] gpfamilies = new IntPtr[numSought]; int numFound = 0; status = SafeNativeMethods.Gdip.GdipGetFontCollectionFamilyList(new HandleRef(this, nativeFontCollection), numSought, gpfamilies, out numFound); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); Debug.Assert(numSought == numFound, "GDI+ can't give a straight answer about how many fonts there are"); FontFamily[] families = new FontFamily[numFound]; for (int f = 0; f < numFound; f++) { IntPtr native; SafeNativeMethods.Gdip.GdipCloneFontFamily(new HandleRef(null, (IntPtr)gpfamilies[f]), out native); families[f] = new FontFamily(native); } return families; } } /** * Object cleanup */ ////// Gets the array of ////// objects associated with this . /// /// /// ~FontCollection() { Dispose(false); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// Allows an object to free resources before the object is /// reclaimed by the Garbage Collector ( ///). /// // 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.Runtime.Versioning; ////// /// When inherited, enumerates the FontFamily /// objects in a collection of fonts. /// public abstract class FontCollection : IDisposable { internal IntPtr nativeFontCollection; internal FontCollection() { nativeFontCollection = IntPtr.Zero; } ////// /// Disposes of this public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } ////// protected virtual void Dispose(bool disposing) { // nothing... } /// /// /// public FontFamily[] Families { [ResourceExposure(ResourceScope.Process)] [ResourceConsumption(ResourceScope.Process)] get { int numSought = 0; int status = SafeNativeMethods.Gdip.GdipGetFontCollectionFamilyCount(new HandleRef(this, nativeFontCollection), out numSought); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); IntPtr[] gpfamilies = new IntPtr[numSought]; int numFound = 0; status = SafeNativeMethods.Gdip.GdipGetFontCollectionFamilyList(new HandleRef(this, nativeFontCollection), numSought, gpfamilies, out numFound); if (status != SafeNativeMethods.Gdip.Ok) throw SafeNativeMethods.Gdip.StatusException(status); Debug.Assert(numSought == numFound, "GDI+ can't give a straight answer about how many fonts there are"); FontFamily[] families = new FontFamily[numFound]; for (int f = 0; f < numFound; f++) { IntPtr native; SafeNativeMethods.Gdip.GdipCloneFontFamily(new HandleRef(null, (IntPtr)gpfamilies[f]), out native); families[f] = new FontFamily(native); } return families; } } /** * Object cleanup */ ////// Gets the array of ////// objects associated with this . /// /// /// ~FontCollection() { Dispose(false); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// Allows an object to free resources before the object is /// reclaimed by the Garbage Collector ( ///). ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RightsManagementResourceHelper.cs
- MediaTimeline.cs
- XhtmlBasicLabelAdapter.cs
- SchemaImporter.cs
- StringUtil.cs
- ListDictionaryInternal.cs
- DateTime.cs
- DNS.cs
- DataAdapter.cs
- CompiledRegexRunnerFactory.cs
- X509InitiatorCertificateServiceElement.cs
- PolyBezierSegmentFigureLogic.cs
- ProgressChangedEventArgs.cs
- AddInAdapter.cs
- ConfigurationSectionCollection.cs
- BitmapScalingModeValidation.cs
- TextSegment.cs
- TranslateTransform3D.cs
- _ListenerResponseStream.cs
- GridViewCellAutomationPeer.cs
- AuthorizationRule.cs
- DocumentViewerConstants.cs
- IRCollection.cs
- TaiwanCalendar.cs
- ConditionalDesigner.cs
- AssemblyContextControlItem.cs
- DependencyPropertyAttribute.cs
- TypeUtil.cs
- Path.cs
- SystemUdpStatistics.cs
- Error.cs
- SessionIDManager.cs
- CanonicalFontFamilyReference.cs
- Evaluator.cs
- ExtensionQuery.cs
- DBDataPermission.cs
- SafeSerializationManager.cs
- FontUnit.cs
- TextTreeTextBlock.cs
- CallContext.cs
- ZipIOExtraField.cs
- columnmapfactory.cs
- Int32AnimationBase.cs
- XPathScanner.cs
- MessagePropertyFilter.cs
- UpdateTracker.cs
- WebBrowserHelper.cs
- ActivityCollectionMarkupSerializer.cs
- hresults.cs
- MetabaseSettings.cs
- ActivityTypeCodeDomSerializer.cs
- TableItemProviderWrapper.cs
- Encoding.cs
- SingleAnimationUsingKeyFrames.cs
- DirectoryObjectSecurity.cs
- WinInetCache.cs
- GenericQueueSurrogate.cs
- ListQueryResults.cs
- VSDExceptions.cs
- OdbcRowUpdatingEvent.cs
- ControlHelper.cs
- XmlSchemaComplexContent.cs
- SecurityHelper.cs
- HttpProtocolReflector.cs
- CheckoutException.cs
- WorkflowDurableInstance.cs
- WebPartManager.cs
- ToolBarOverflowPanel.cs
- ObjectReaderCompiler.cs
- AnyReturnReader.cs
- BaseProcessor.cs
- followingsibling.cs
- UrlMapping.cs
- DictionaryEntry.cs
- hebrewshape.cs
- ModuleElement.cs
- BasicHttpBinding.cs
- SelectionRangeConverter.cs
- TabPanel.cs
- DragEvent.cs
- MatrixTransform.cs
- _SingleItemRequestCache.cs
- OutputCacheProfileCollection.cs
- DependencyObjectType.cs
- RayHitTestParameters.cs
- MetadataFile.cs
- Timer.cs
- BaseValidator.cs
- CutCopyPasteHelper.cs
- ResXBuildProvider.cs
- ArcSegment.cs
- XmlIgnoreAttribute.cs
- SetterBase.cs
- SqlCharStream.cs
- UserUseLicenseDictionaryLoader.cs
- OleDbConnection.cs
- GeneralTransform3DTo2DTo3D.cs
- AutoSizeToolBoxItem.cs
- PreservationFileWriter.cs
- RewritingSimplifier.cs