解説
Internet ExplorerでJavascriptを切ったり、画像の表示を無効にするといった ダウンロードコントロールはInvoke()でif(dispIdMember == DISPID_AMBIENT_DLCONTROL) { //ATLTRACE("DISPID_AMBIENT_DLCONTROL\n"); V_VT(pVarResult) = VT_I4; V_I4(pVarResult) = DLCTL_DOWNLOADONLY | DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA | DLCTL_NO_DLACTIVEXCTLS | DLCTL_NO_RUNACTIVEXCTLS; return S_OK; }
のようにすることで簡単に指定できる。しかし指定するだけではJavascriptを切ることが できない。設定状況を更新する必要がある。その設定の反映は以下のようにする。
CComPtrpWebBrowser2; CComPtr pOleControl; CComPtr pOleObject; CComPtr pOleClientSite; (pWebBrowser2がInternet Explorer) QueryInterface(&pOleClientSite); if(pWebBrowser2) pWebBrowser2->QueryInterface(&pOleObject); if(pOleObject && pOleClientSite) pOleObject->SetClientSite(pOleClientSite); if(pWebBrowser2) pWebBrowser2->QueryInterface(&pOleControl); if(pOleControl) pOleControl->OnAmbientPropertyChange(DISPID_AMBIENT_DLCONTROL);