以上を踏まえて、テストコードを書いてみました。C++で書くと面倒なのでJavaScriptで。
<html>
<head>
<script type="text/javascript">
function test(value, prev) {
var selection = document.selection;
var range = selection.createRange();
if (range.text == "")
range = document.body.createTextRange();
else
range.collapse(prev);
if (range.findText(value, prev ? -1 : 1))
range.select();
else
alert('Not Found');
}
</script>
</head>
<body>
<p>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</p>
<p><input type="text" name="text"></p>
<p><input type="button" value="Next"
onclick="test(text.value, false)"></p>
<p><input type="button" value="Prev"
onclick="test(text.value, true)"></p>
</body>
</html>
一応思ったような動作をするようです。というわけで、これをC++に移植しましょう。