0

我正在尝试在我的 C# 应用程序 (BHO) 中使用 MSHTML。特别是我想使用 IMarkupPointer.findText 方法。此方法搜索文本,我想检查是否找到文本。在 C++ 中执行此操作时,我只是这样做了:

HRESULT hr = ptrBegin->FindText(text, 0, ptrEnd, NULL); 
if (S_FALSE == hr) 
{
    // Do something if text wasn't found.
}

但在 C# 中我不能这样做,因为在 PIA 中,此方法具有 void 返回类型。有没有其他方法可以检查是否找到了文本?

4

1 回答 1

0

在这种特殊情况下,我使用了以下解决方法来确定是否找到了文本:

IMarkupPointer pBegin, pEnd;
IMarkupServices markupServices;
// ...

pBegin.findText(word, 2, pEnd, null);

IHTMLTxtRange range = htmlDocument2.selection.createRange();
markupServices.MoveRangeToPointers(pBegin, pEnd, range);

if(range.text != word)
{
    // ...Text not found
}
于 2013-02-20T17:25:51.897 回答