Microsoft の LSP (Winsosk Layered Service Provider) の例を変更して、デスクトップ用の Web フィルター アプリケーションを作成しました。http ヘッダーのホストをファイル内の禁止された Web サイトのリストと比較することで、Web サイトへのアクセスをブロックできます。Web がブロックされている場合、LSP は、このページが禁止されていることを示す html ページでバッファーを埋めます。Firefox 4、Opera 11、IE 6 でテストしたところ、ブロック ページが表示されました。ただし、そのようなページは Chrome 11 (最新) では表示されません。
Chrome では LSP の扱いが異なるのではないかと思いました。
これは、LSP の WSPRecv 関数に入力するバッファーです。
string strBufferHdr;
char len[10];
_itoa_s (strBufferHTML.size(), len, 10);
strBufferHdr += "HTTP/1.1 200 OK\r\n";
strBufferHdr += "content-type: text/html; charset=UTF-8\r\n";
strBufferHdr += "connection: close\r\n";
strBufferHdr += "content-length: ";
strBufferHdr += len;
strBufferHdr += "\r\n\r\n";
strBufferHdr += strBufferHTML;
strBufferHdr += "\n\n\n";
strBufferHTML は、html ページのコンテンツです。
ありがとうございました。