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
- SoapHeaderAttribute.cs
- HeaderUtility.cs
- HttpException.cs
- NonSerializedAttribute.cs
- XmlCountingReader.cs
- RadioButtonStandardAdapter.cs
- ConfigXmlDocument.cs
- ToolStripContainerDesigner.cs
- SQLGuidStorage.cs
- BinaryConverter.cs
- Graph.cs
- FileLogRecord.cs
- TextServicesPropertyRanges.cs
- XmlDataImplementation.cs
- DataPager.cs
- DefaultParameterValueAttribute.cs
- httpserverutility.cs
- ConsoleKeyInfo.cs
- BindingList.cs
- ServiceHttpModule.cs
- FigureParagraph.cs
- listitem.cs
- RectangleGeometry.cs
- OrderedParallelQuery.cs
- ListBoxDesigner.cs
- SchemaImporter.cs
- Help.cs
- ExtendedTransformFactory.cs
- QualifiedCellIdBoolean.cs
- OutKeywords.cs
- TrustLevel.cs
- ExpressionParser.cs
- AssertFilter.cs
- MdiWindowListStrip.cs
- CmsInterop.cs
- RealizationDrawingContextWalker.cs
- VirtualPath.cs
- PropertyKey.cs
- NamespaceCollection.cs
- BufferedStream.cs
- NumberSubstitution.cs
- _SafeNetHandles.cs
- FixedTextSelectionProcessor.cs
- TiffBitmapEncoder.cs
- ItemList.cs
- DesignerDataTable.cs
- Object.cs
- LockRecursionException.cs
- ReservationNotFoundException.cs
- BufferedWebEventProvider.cs
- GetPageNumberCompletedEventArgs.cs
- TimeSpanOrInfiniteConverter.cs
- HiddenField.cs
- storagemappingitemcollection.viewdictionary.cs
- Dictionary.cs
- TextTrailingCharacterEllipsis.cs
- WizardDesigner.cs
- PolyQuadraticBezierSegment.cs
- Page.cs
- KeyConstraint.cs
- PngBitmapDecoder.cs
- SetterBase.cs
- HttpModuleAction.cs
- ActionItem.cs
- WebSysDescriptionAttribute.cs
- CommandManager.cs
- ProcessHostMapPath.cs
- InternalSafeNativeMethods.cs
- SQLUtility.cs
- SetIterators.cs
- SafeLocalMemHandle.cs
- SchemaNamespaceManager.cs
- BinaryFormatterWriter.cs
- HexParser.cs
- CultureTableRecord.cs
- Parameter.cs
- WmpBitmapDecoder.cs
- DBCSCodePageEncoding.cs
- ServiceChannelManager.cs
- DataMemberAttribute.cs
- ViewStateModeByIdAttribute.cs
- ButtonBaseAutomationPeer.cs
- MachineSettingsSection.cs
- ClientRuntimeConfig.cs
- DictionaryBase.cs
- _SSPIWrapper.cs
- TdsRecordBufferSetter.cs
- ImageSource.cs
- ContextMarshalException.cs
- PageCatalogPart.cs
- ReadOnlyNameValueCollection.cs
- Ipv6Element.cs
- UncommonField.cs
- RequiredAttributeAttribute.cs
- RightsManagementEncryptionTransform.cs
- ComponentResourceKeyConverter.cs
- EncryptedPackage.cs
- TripleDESCryptoServiceProvider.cs
- RotateTransform.cs
- Command.cs