// Token: 0x06002CC1 RID: 11457 RVA: 0x000C9D38 File Offset: 0x000C7F38 internal ContentPosition GetObjectPosition(object o) { if (o == null) { throw new ArgumentNullException("o"); } DependencyObject dependencyObject = o as DependencyObject; if (dependencyObject == null) { throw new ArgumentException(SR.Get("FixedDocumentExpectsDependencyObject")); } FixedPage fixedPage = null; int num = -1; if (dependencyObject != this) { DependencyObject dependencyObject2 = dependencyObject; while (dependencyObject2 != null) { fixedPage = (dependencyObject2 as FixedPage); if (fixedPage != null) { num = this.GetIndexOfPage(fixedPage); if (num >= 0) { break; } dependencyObject2 = fixedPage.Parent; } else { dependencyObject2 = LogicalTreeHelper.GetParent(dependencyObject2); } } } else if (this.Pages.Count > 0) { num = 0; } FixedTextPointer fixedTextPointer = null; if (num >= 0) { FlowPosition flowPosition = null; System.Windows.Shapes.Path path = dependencyObject as System.Windows.Shapes.Path; if (dependencyObject is Glyphs || dependencyObject is Image || (path != null && path.Fill is ImageBrush)) { FixedPosition fixedPosition = new FixedPosition(fixedPage.CreateFixedNode(num, (UIElement)dependencyObject), 0); flowPosition = this.FixedContainer.FixedTextBuilder.CreateFlowPosition(fixedPosition); } if (flowPosition == null) { flowPosition = this.FixedContainer.FixedTextBuilder.GetPageStartFlowPosition(num); } fixedTextPointer = new FixedTextPointer(true, LogicalDirection.Forward, flowPosition); } if (fixedTextPointer == null) { return(ContentPosition.Missing); } return(fixedTextPointer); }