/// <summary> /// Creates an appropriate Word UI element. /// </summary> /// <param name="windowHandle">The window handle.</param> /// <param name="rangeInfo">The info on the element.</param> /// <returns>The Word UI element.</returns> internal UITechnologyElement GetWordRange(IntPtr windowHandle, WordRangeInfo rangeInfo) { WordSelectionInfo wsi = rangeInfo as WordSelectionInfo; if (wsi != null) { return(new WordSelectionRange(windowHandle, wsi, this)); } WordDocumentInfo wdi = rangeInfo as WordDocumentInfo; return(wdi != null ? new WordDocumentRange(windowHandle, wdi, this) : new WordRange(windowHandle, this)); }
/// <summary> /// Gets the element from the given native (underlying) technology element. /// </summary> /// <param name="nativeElement">The native technology element (like IAccessible).</param> /// <returns>The IUITechnologyElement from the native element.</returns> /// <seealso cref="UITechnologyElement.NativeElement"/> public override IUITechnologyElement GetElementFromNativeElement(object nativeElement) { object[] parts = nativeElement as object[]; if (parts != null && parts.Length == 2 && parts[0] is IntPtr && parts[1] is WordRangeInfo) { // Get the selection or document as appropriate. IntPtr windowHandle = (IntPtr)parts[0]; WordRangeInfo elementInfo = (WordRangeInfo)parts[1]; return(this.GetWordRange(windowHandle, elementInfo)); } if (nativeElement is IntPtr) { // For window handle, get the Word worksheet. return(this.GetElementFromWindowHandle((IntPtr)nativeElement)); } return(null); }