WebBrowser 컨트롤 클라이언트는 전역 설정을 공유합니다.

경고

사용과 지원이 중단된 Internet Explorer 11 데스크톱 애플리케이션이 Microsoft Edge 업데이트를 통해 특정 버전의 Windows 10에서 영구적으로 비활성화될 예정입니다. 자세한 내용은 Internet Explorer 11 데스크톱 앱 지원 중단 FAQ를 참조하세요.

이 문서에서는 호스팅 CWnd 기반 클래스의 OnAmbientProperty 메서드를 재정의하여 WebBrowser 컨트롤 클라이언트를 공유하기 위한 전역 설정을 구현하는 방법을 제공합니다.

원래 제품 버전: 인터넷 Explorer
원래 KB 번호: 183412

증상

WebBrowser 컨트롤의 모든 호스트는 동일한 전역 인터넷 설정을 공유합니다.

해결 방법

대부분의 전역 인터넷 설정에서는 각 WebBrowser 호스트에 대한 속성 집합을 자동으로 저장하는 지원되는 방법이 없습니다.

그러나 ActiveX 컨트롤 다운로드 여부와 같은 특정 다운로드 옵션은 호스트별로 재정의하고 지정할 수 있습니다.

상태

이것은 의도적으로 설계된 동작입니다.

추가 정보

InetSDK(인터넷 클라이언트 SDK)에 설명된 대로 WebBrowser 호스트는 기본 디스패치 인터페이스에서 DISPID_AMBIENT_DLCONTROL 앰비언트 속성을 구현하여 다운로드 옵션에 대한 전역 설정을 재정의할 수 있습니다.

InetSDK(\InetSDK\Samples\Walkall)의 WALKALL 샘플은 MSHTML 호스트에 대한 이 기술을 보여 줍니다. WebBrowser 호스트에서 비슷한 메서드를 사용하여 동일한 효과를 얻을 수 있습니다.

MSHTML은 클릭된 하이퍼링크로 이동할 때 DISPID_AMBIENT_USERAGENT 통해 새 사용자 에이전트를 요청합니다. 이 앰비언트 속성은 재정의할 수 있지만 Navigate 메서드를 프로그래밍 방식으로 호출할 때는 사용되지 않습니다. 또한 DOM의 탐색기 개체 또는 clientInformation 동작의 속성이 변경되지 않습니다userAgent. 이 속성은 항상 인터넷 Explorer 고유한 UserAgent 문자열을 반영합니다.

WebBrowser 컨트롤의 MFC 호스트는 호스팅 CWnd 기반 클래스의 OnAmbientProperty 메서드를 재정의하여 이러한 앰비언트 속성에 쉽게 영향을 줄 수 있습니다.

BOOL CWBHostView::OnAmbientProperty(COleControlSite* pSite,
                                    DISPID dispid, VARIANT* pvar)
{
USES_CONVERSION;
    // Change download properties - no java, no scripts...
    if (dispid == DISPID_AMBIENT_DLCONTROL)
    {
        pvar->vt = VT_I4;
        pvar->lVal = DLCTL_NO_SCRIPTS | DLCTL_NO_JAVA
                   | DLCTL_NO_RUNACTIVEXCTLS | DLCTL_NO_DLACTIVEXCTLS;

        return TRUE;
    }

    // Change user agent for this web browser host during hyperlinks
    if (dispid == DISPID_AMBIENT_USERAGENT)
    {
        CString strUserAgent("MyWebBrowserHost");

        pvar->vt = VT_BSTR;
        pvar->bstrVal = ::SysAllocString(T2OLE(strUserAgent));

        return TRUE;
    }

    return CView::OnAmbientProperty(pSite, dispid, pvar);
}

DISPID_AMBIENT_* 및 DLCTL_* 값은 (\InetSDK\Include\MSHTMDID)에 Mshtmdid.h 정의되어 있습니다. H).

참조

Microsoft 인터넷 Explorer 대한 웹 기반 솔루션 개발에 대한 자세한 내용은 인터넷 Explorer 모드 및 DevTools를 참조하세요.