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
- IDispatchConstantAttribute.cs
- SQLChars.cs
- WebConfigurationHostFileChange.cs
- RelationshipEndCollection.cs
- NativeMethodsCLR.cs
- EntityContainerAssociationSetEnd.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- HijriCalendar.cs
- NumberAction.cs
- BitmapEffectDrawing.cs
- SmtpSection.cs
- MenuCommands.cs
- DocumentScope.cs
- CounterCreationData.cs
- ShapeTypeface.cs
- WsatRegistrationHeader.cs
- KeyTimeConverter.cs
- ProcessInfo.cs
- FontDialog.cs
- input.cs
- RouteValueExpressionBuilder.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- XPathNodeInfoAtom.cs
- FocusTracker.cs
- HtmlInputRadioButton.cs
- ProjectionPathSegment.cs
- VectorAnimation.cs
- PixelFormatConverter.cs
- XPathParser.cs
- TransformCryptoHandle.cs
- ButtonField.cs
- ToolStripItemDataObject.cs
- DataGridViewBand.cs
- EntityDataSource.cs
- PropertyDescriptorComparer.cs
- TextParagraphView.cs
- WebPartConnectionsCancelVerb.cs
- Constants.cs
- ConfigurationProviderException.cs
- WindowsButton.cs
- XmlDownloadManager.cs
- NativeCompoundFileAPIs.cs
- Error.cs
- SyntaxCheck.cs
- UnitySerializationHolder.cs
- HostingEnvironmentSection.cs
- CachedRequestParams.cs
- AsyncPostBackErrorEventArgs.cs
- BookmarkInfo.cs
- DbgUtil.cs
- SqlBulkCopyColumnMapping.cs
- HostedHttpTransportManager.cs
- CodeCatchClauseCollection.cs
- AdapterUtil.cs
- QueryComponents.cs
- TemplatePropertyEntry.cs
- RequestCacheValidator.cs
- CommonXSendMessage.cs
- ExtensibleClassFactory.cs
- FunctionDetailsReader.cs
- ProcessProtocolHandler.cs
- DataGridViewRowPostPaintEventArgs.cs
- CodeAttributeArgument.cs
- SoapSchemaExporter.cs
- FunctionCommandText.cs
- NullNotAllowedCollection.cs
- AdCreatedEventArgs.cs
- SRef.cs
- StylusDevice.cs
- Stylesheet.cs
- MissingSatelliteAssemblyException.cs
- IpcServerChannel.cs
- SecurityContext.cs
- KerberosSecurityTokenProvider.cs
- EventLog.cs
- TextProviderWrapper.cs
- Application.cs
- WindowProviderWrapper.cs
- ToolStripLocationCancelEventArgs.cs
- ColumnBinding.cs
- ClientUtils.cs
- ProfilePropertySettingsCollection.cs
- DbCommandTree.cs
- Serializer.cs
- ControlPaint.cs
- LiteralText.cs
- GetResponse.cs
- ObfuscateAssemblyAttribute.cs
- FigureHelper.cs
- TrackingStringDictionary.cs
- DPTypeDescriptorContext.cs
- RecordManager.cs
- DeclarativeExpressionConditionDeclaration.cs
- JulianCalendar.cs
- ToolTipService.cs
- SqlLiftIndependentRowExpressions.cs
- EndpointDiscoveryMetadataCD1.cs
- SnapLine.cs
- WebPartChrome.cs
- GB18030Encoding.cs