余計な部分が大きすぎて歓迎されないでしょうが……(せっかくなので)。
*unicode:1213で指摘された戻り読みの問題が直ってるはず。
*行ごとに繰り返すループの中で仮想関数の呼び出しを行っているので遅くなってるはず。
*単語検索の下の部分が他の二つの検索方法のときと条件が違っていたが、他のに合わせた。
// if( 0 == ( (*pnHitCount) % 16 ) ){
::SetDlgItemInt( hwndCancel, IDC_STATIC_HITCOUNT, *pnHitCount, FALSE );
// }
*単語検索だけが SetGrepResultに渡す7番目の引数(pCompareData,[in]行の文字列)に、行文字列の先頭を渡していたようだが、他の二つの検索方法でも行文字列の先頭を渡すようになった。
CGrepAgentを整理するパッチ。検索部分を(なんとなく相応しそうに思えた)CSearchAgentへ。
1.SetGrepResultの 7番目の引数が使われるのは bGrepOutputLineが TRUEのときだけ
2.bGrepOutputLineが TRUEのときは SetGrepResultが一度だけ、pCompareData = pLine; と初期化された直後の回だけ、しか呼ばれない。
というわけで目に見える違いはパッチの前にも後にも存在しないようです。