public static IMarkupPointer CreateMarkupPointer(this IMarkupServices ms) { IMarkupPointer mp; ms.CreateMarkupPointer(out mp); return(mp); }
/// <summary> /// Attempts to find and highlight a word /// based on it's index and wordlen /// within body element /// </summary> /// <param name="wordindex"></param> /// <param name="wordlen"></param> public void UnderLineWord(int wordindex, int wordlen) { IMarkupPointer impStart; IMarkupPointer impEnd; //Get body element IHTMLElement body = m_pDoc2.body; //Setup two markup pointers m_pMarkupServices.CreateMarkupPointer(out impStart); m_pMarkupServices.CreateMarkupPointer(out impEnd); //Position the markup pointers after beginning of the body tag impStart.MoveAdjacentToElement(body, (int)ELEMENT_ADJACENCY.ELEM_ADJ_AfterBegin); impEnd.MoveAdjacentToElement(body, (int)ELEMENT_ADJACENCY.ELEM_ADJ_AfterBegin); //Move markup pointers accoring to wordindex value for (int i = 0; i < wordindex; i++) { impStart.MoveUnit((int)MOVEUNIT_ACTION.MOVEUNIT_NEXTWORDBEGIN); impEnd.MoveUnit((int)MOVEUNIT_ACTION.MOVEUNIT_NEXTWORDBEGIN); } //Setup new element IHTMLElement ttelem = null; m_pMarkupServices.CreateElement((int)ELEMENT_TAG_ID.TAGID_TT, " ", out ttelem); //Adjust the end for (int i = 0; i < wordlen; i++) { impEnd.MoveUnit((int)MOVEUNIT_ACTION.MOVEUNIT_NEXTCHAR); } //Insert new element m_pMarkupServices.InsertElement(ttelem, impStart, impEnd); //Now highlight this.Underline(ttelem); }