I have the following problem:
A pluggable protocol handler deliveres HTML files.
これらのファイルには適切な形式がありませんdoctype
- doctype が完全に欠落しています。これは変更できません。ファイルはサードパーティからのものです。
X-UA-Compatible: IE=edge
したがって、" " ヘッダーを使用して doctype を設定したいと考えています。実際の Web サーバーからこれを行うと、期待どおりに動作します。プロトコルハンドラーからIHttpNegotiate::OnResponse
それを行うと、機能しません。
Content-Type
実際の Web ブラウザから受け取ったすべてのヘッダーを報告するところまで、 " " やもちろん " " などのヘッダーを追加しようとHTTP/1.1 200 OK
しましたが、IE はまだdocumentMode
を 5 に設定しています。
誰かがこれについていくつかのアイデアを持っていますか?
ここに私がしようとしているものがあります:
pOIProtSink->ReportProgress(BINDSTATUS_FINDINGRESOURCE, L"Found");
pOIProtSink->ReportProgress(BINDSTATUS_CONNECTING, L"Connecting");
pOIProtSink->ReportProgress(BINDSTATUS_SENDINGREQUEST, L"Sending");
CComQIPtr<IServiceProvider> provider(pOIProtSink);
if (provider) {
CComPtr<IHttpNegotiate> negotiate;
provider->QueryService(IID_IHttpNegotiate, IID_IHttpNegotiate,
(void**)&negotiate.p);
if (negotiate) {
CStringW hdrs;
hdrs.Format(
L"HTTP/1.1 200 OK\r\nContent-Type: %s\r\nX-UA-Compatible: IE=edge\r\n\r\n",
sMime);
negotiate->OnResponse(200, hdrs, L"", NULL);
}
}
pOIProtSink->ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE, sMime);
pOIProtSink->ReportData(BSCF_FIRSTDATANOTIFICATION, 0, sz);
pOIProtSink->ReportData(BSCF_LASTDATANOTIFICATION
| BSCF_DATAFULLYAVAILABLE, sz, sz);
pOIProtSink->ReportResult(S_OK, 0, NULL);
コード全体はgithubにあります。
乾杯
イマジロ