Internet Explorerのダウンロードコントロール設定状況更新

解説

 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を切ることが できない。設定状況を更新する必要がある。その設定の反映は以下のようにする。

	CComPtr	pWebBrowser2;
	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);

カテゴリー「VC++ TIPS」 のエントリー