MFC CHTMLView - 混合コンテンツの警告を抑制しますか?
-
22-12-2019 - |
質問
これはMFCとChtmlViewですが、おそらくすべてのIE Web Controlの使用に適用されます。
Webコントロールがいくつかのサイトのページにナビゲートしているとき、HTTP / HTTPS混合コンテンツ警告ポップアップを取得しています。
プログラムの実行中に設定できるフラグ、コマンド、またはEXE固有のレジストリキーは警告を無効にしますか?さらに良い、「はい」または「いいえ」の回答を選択できますか?
ウェブサイトを制御しないので、「Webページの修正」はオプションではありません。私たちのプログラムは顧客PC上で実行されているので、「IEの設定に入る」も良い解決策ではありません。
解決
urlaction_html_mixed_content サクセスコード付き。コントロールサイトは、MFCのActiveXクライアントサイトの実装、 CHTMLViewに使用されるWebBrowserコントロールがホスト機能に使用されます。
MFC 7.0以降を使用する場合は、コントロールサイトを交換する必要があります。オーバーライデンCreateControlsite関数を介して。 MFC 6.0では、コントロールコンテナのみをグローバルに置き換えることができます。オーバーライドする独自のCoccManagerとの呼び出しCreateSiteメソッド
コントロールサイトを置き換え、ISERVICEPROVIDERとSecurity Managerインタフェース(、IInternetSecurityManager、オプションでIInternetSecurityManagerEx、およびIInternetSecurityManagerEx2)を追加するコントロールサイトクラスのbegin_interface_part / end_interface_part macrosを介してMACROSを介してMACROSを使用します。 MFCマクロに慣れていない場合は、 tn038:mfc / ole iunknown実装。メソッドがProcessUrlActionAction / ProcessURLACTIONATIONEX / ProcessURLACTIONEX2の場合はinet_e_default_actionを返し、コードはurlaction_html_mixed_contentの場合はinet_e_default_actionを返す必要があります。次にS_OKを返す必要があります。 Ppolicyのアドレスをurlpolicy_allowに埋める混合コンテンツ、またはurlpolicy_disallowが無効にするために静かに許可します。 urlpolicy_queryを使用して必要なときにユーザーに尋ねます。