Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / IO / Packaging / fixedPageContentExtractor.cs / 1305600 / fixedPageContentExtractor.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Given a DOM node for a fixed page, enumerates its text content. // // History: // 05/11/2004: JohnLarc: Initial implementation //--------------------------------------------------------------------------- using System; using System.Xml; namespace MS.Internal.IO.Packaging { ////// Implements a sequence of (textContent, precedingDelimiter) pairs for /// a fixed page node. /// internal class FixedPageContentExtractor { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Initialize a FixedPageContentExtractor from a DOM node. /// internal FixedPageContentExtractor(XmlNode fixedPage) { _fixedPageInfo = new XmlFixedPageInfo(fixedPage); _nextGlyphRun = 0; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Return the content of the next glyph run, with a boolean indication /// whether it is separated by a space form the preceding glyph run. /// internal string NextGlyphContent(out bool inline, out uint lcid) { // Right now, we use the simplest possible heuristic for // spacing glyph runs: All pairs of adjacent glyph runs are assumed // to be separated by a word break. inline = false; lcid = 0; // End of page? if (_nextGlyphRun >= _fixedPageInfo.GlyphRunCount) { return null; } // Retrieve inline, lcid and return value from the next glyph run info. GlyphRunInfo glyphRunInfo = _fixedPageInfo.GlyphRunAtPosition(_nextGlyphRun); lcid = glyphRunInfo.LanguageID; // Point to the next glyph run for the next call and return. ++_nextGlyphRun; return glyphRunInfo.UnicodeString; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Indicates whether no more content can be returned. /// internal bool AtEndOfPage { get { return _nextGlyphRun >= _fixedPageInfo.GlyphRunCount; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private XmlFixedPageInfo _fixedPageInfo; private int _nextGlyphRun; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Given a DOM node for a fixed page, enumerates its text content. // // History: // 05/11/2004: JohnLarc: Initial implementation //--------------------------------------------------------------------------- using System; using System.Xml; namespace MS.Internal.IO.Packaging { ////// Implements a sequence of (textContent, precedingDelimiter) pairs for /// a fixed page node. /// internal class FixedPageContentExtractor { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Initialize a FixedPageContentExtractor from a DOM node. /// internal FixedPageContentExtractor(XmlNode fixedPage) { _fixedPageInfo = new XmlFixedPageInfo(fixedPage); _nextGlyphRun = 0; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Return the content of the next glyph run, with a boolean indication /// whether it is separated by a space form the preceding glyph run. /// internal string NextGlyphContent(out bool inline, out uint lcid) { // Right now, we use the simplest possible heuristic for // spacing glyph runs: All pairs of adjacent glyph runs are assumed // to be separated by a word break. inline = false; lcid = 0; // End of page? if (_nextGlyphRun >= _fixedPageInfo.GlyphRunCount) { return null; } // Retrieve inline, lcid and return value from the next glyph run info. GlyphRunInfo glyphRunInfo = _fixedPageInfo.GlyphRunAtPosition(_nextGlyphRun); lcid = glyphRunInfo.LanguageID; // Point to the next glyph run for the next call and return. ++_nextGlyphRun; return glyphRunInfo.UnicodeString; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Indicates whether no more content can be returned. /// internal bool AtEndOfPage { get { return _nextGlyphRun >= _fixedPageInfo.GlyphRunCount; } } #endregion Internal Properties //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields private XmlFixedPageInfo _fixedPageInfo; private int _nextGlyphRun; #endregion Private Fields } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartDeleteVerb.cs
- EditorAttributeInfo.cs
- SettingsPropertyValueCollection.cs
- DataGridViewCellPaintingEventArgs.cs
- CompilerTypeWithParams.cs
- EncoderParameter.cs
- AvtEvent.cs
- ExecutionEngineException.cs
- RepeatBehavior.cs
- Setter.cs
- CacheRequest.cs
- WebReferencesBuildProvider.cs
- IdnElement.cs
- Vector3DCollectionConverter.cs
- DelegatingTypeDescriptionProvider.cs
- ResourceDescriptionAttribute.cs
- ReadOnlyDictionary.cs
- EntityObject.cs
- PerformanceCounterPermissionEntryCollection.cs
- Monitor.cs
- Solver.cs
- ProfileGroupSettings.cs
- ScrollItemPatternIdentifiers.cs
- ChainOfResponsibility.cs
- WebPartTransformerCollection.cs
- EventSinkHelperWriter.cs
- Metafile.cs
- RequestCacheManager.cs
- PolicyDesigner.cs
- SmtpReplyReaderFactory.cs
- CaretElement.cs
- DynamicPropertyReader.cs
- ResourcePermissionBaseEntry.cs
- Grid.cs
- HyperLinkColumn.cs
- ProgressiveCrcCalculatingStream.cs
- MarginsConverter.cs
- WebPageTraceListener.cs
- NumberFunctions.cs
- MeshGeometry3D.cs
- OpCodes.cs
- GridViewHeaderRowPresenter.cs
- SqlNode.cs
- PathTooLongException.cs
- AuthenticationModuleElement.cs
- ResourceSet.cs
- CallSite.cs
- basecomparevalidator.cs
- Ipv6Element.cs
- DataRowChangeEvent.cs
- DataRecord.cs
- SecurityState.cs
- WebPartDescriptionCollection.cs
- MediaCommands.cs
- IPeerNeighbor.cs
- ObjectDataSourceStatusEventArgs.cs
- QuaternionAnimationBase.cs
- HTMLTagNameToTypeMapper.cs
- CapabilitiesAssignment.cs
- GeneratedContractType.cs
- BinHexDecoder.cs
- NetworkAddressChange.cs
- CommonXSendMessage.cs
- FileLevelControlBuilderAttribute.cs
- COM2ExtendedBrowsingHandler.cs
- BeginStoryboard.cs
- MonitorWrapper.cs
- XmlExpressionDumper.cs
- CodeVariableReferenceExpression.cs
- Point3DConverter.cs
- SecurityException.cs
- SafeMemoryMappedViewHandle.cs
- XsltFunctions.cs
- SettingsProperty.cs
- ViewKeyConstraint.cs
- RawStylusInputReport.cs
- xdrvalidator.cs
- QueryStringParameter.cs
- EventProperty.cs
- SafeEventHandle.cs
- VoiceInfo.cs
- sqlpipe.cs
- KeysConverter.cs
- ListViewItem.cs
- DependencySource.cs
- ToolStripGripRenderEventArgs.cs
- Screen.cs
- ToolZone.cs
- FamilyTypefaceCollection.cs
- DateTimeUtil.cs
- SchemaImporterExtensionsSection.cs
- QueryHandler.cs
- XmlNode.cs
- SafePEFileHandle.cs
- ValueQuery.cs
- CheckBoxList.cs
- XmlImplementation.cs
- UpdateManifestForBrowserApplication.cs
- ProfilePropertyNameValidator.cs
- XmlStreamNodeWriter.cs