기존 ActiveX 컨트롤 업그레이드

기존의 ActiveX 컨트롤 (이전의 OLE 컨트롤) 수정 하지 않고 인터넷을 사용할 수 있습니다.그러나 성능 향상을 위해 컨트롤을 수정 할 수 있습니다.웹 페이지에 컨트롤을 사용 하는 경우 추가로 고려할 사항이 있습니다..Ocx 파일과 모든 지원 파일은 인터넷을 통해 다운로드할 수 또는 대상 컴퓨터에서 같아야 합니다.따라서 코드 크기와 다운로드 시간이 중요 한 고려 합니다.다운로드 서명 된.cab 파일에 패키징할 수 있습니다.스크립팅 사용에 안전 및 초기화에 안전한 것으로 컨트롤을 표시할 수 있습니다.

이 문서에서는 다음 내용을 다룹니다.

  • 다운로드를 위한 코드 패키지로 만들기

  • 스크립트 및 초기화에 안전한 컨트롤 표시

  • 라이센스 관련 문제

  • 코드 서명

  • 색상표 관리

  • Internet Explorer 브라우저 보안 수준 및 컨트롤 동작

에 설명 된 대로 최적화 기능을 추가할 수 있습니다 ActiveX 컨트롤: 최적화.모니커를 사용 하 여 속성을 다운로드 하 고 큰 Blob의 설명에 따라 비동기적으로 ActiveX 컨트롤은 인터넷에서.

다운로드를 위한 코드 패키지로 만들기

이 주제에 대 한 자세한 내용은 기술 자료 문서 "패키징 MFC 컨트롤에 대 한 사용에서" 인터넷 (Q167158)를 참조 하십시오.기술 자료 문서는 MSDN Library CD-ROM이나 https://support.microsoft.com/default.aspx에 있습니다.

941zhks9.collapse_all(ko-kr,VS.110).gifCODEBASE 태그

ActiveX 컨트롤을 사용 하 여 웹 페이지에 포함 된 <OBJECT> 태그.CODEBASE 매개 변수는 <OBJECT> 태그에서 컨트롤을 다운로드 하는 위치를 지정 합니다.CODEBASE다른 파일 형식에 대 한 숫자를 가리킬 수 있습니다.

941zhks9.collapse_all(ko-kr,VS.110).gifOCX 파일에 코드 베이스 태그를 사용 하 여

CODEBASE="http://example.microsoft.com/mycontrol.ocx#version=4,70,0,1086"

이 솔루션 컨트롤의.ocx 파일만 다운로드 하 고 모든 지원 Dll을 클라이언트 컴퓨터에 이미 설치 되어 있어야 합니다.Internet Explorer Visual C++ 컨트롤에 대 한 지원 Dll에 포함 되어 있으므로이 Visual C++ 구축 하는 Internet Explorer MFC ActiveX 컨트롤에 대 한 작동 합니다.이 컨트롤을 보려면 ActiveX 컨트롤을 사용할 수 있는 다른 인터넷 브라우저를 사용 하는 경우이 솔루션은 작동 하지 않습니다.

941zhks9.collapse_all(ko-kr,VS.110).gifCODEBASE 태그에 INF 파일을 사용 하 여

CODEBASE="http://example.microsoft.com/trustme.inf"

.Inf 파일은.ocx 및 해당 지원 파일의 설치를 제어할 수 있습니다..Inf 파일에 서명할 수 없기 때문에이 메서드는 권장 되지 않습니다 (참조 코드 서명 에 대 한 포인터에서 코드 서명).

941zhks9.collapse_all(ko-kr,VS.110).gifCODEBASE 태그에 CAB 파일을 사용 하 여

CODEBASE="http://example.microsoft.com/acontrol.cab#version=1,2,0,0"

캐비닛 파일에는 권장 되는 방법은 MFC를 사용 하는 패키지 ActiveX 컨트롤입니다.MFC ActiveX 컨트롤을 캐비닛 파일에서 패키지.inf 파일을에 있는 MFC Dll 같은 종속 Dll 및 ActiveX 컨트롤의 컨트롤 설치에 포함 될 수 있습니다.CAB 파일을 자동으로 사용 하 여 보다 빠른 다운로드에 대 한 코드를 압축 합니다.구성 요소 다운로드에.cab 파일을 사용 하는 경우 것이 더 빠릅니다 각 개별 구성 요소 보다 전체.cab 파일에 서명 합니다.

941zhks9.collapse_all(ko-kr,VS.110).gifCAB 파일 만들기

기술 자료 문서에서 캐비닛 개발 키트를 다운로드할 수 있습니다 310618: Microsoft 캐비닛 소프트웨어 개발 키트.이 키트에서 캐비닛 파일을 만드는 데 필요한 도구를 찾을 수 있습니다.

가 가리키는 캐비닛 파일 CODEBASE ActiveX 컨트롤의.ocx 파일 및 컨트롤 설치에.inf 파일을 포함 해야 합니다.사용자 컨트롤 파일의 이름을 지정 하 여 캐비닛 파일 및.inf 파일을 만듭니다.이 캐비닛 파일에 시스템에 이미 존재 하는 종속 Dll을 포함 하지 않습니다.예를 들어, MFC Dll 별도 캐비닛 파일에서 패키지 되 고 제어.inf 파일에 의해 참조 됩니다.

CAB 파일을 만드는 방법에 대 한 자세한 내용은 참조 하십시오. CAB 파일 만들기.

941zhks9.collapse_all(ko-kr,VS.110).gifINF 파일

예제, spindial.inf, 목록 지원 파일 및 버전 정보에 대 한 MFC Spindial 컨트롤 필요.MFC Dll의 위치는 Microsoft 웹 사이트입니다.Mfc42.cab 제공 되 고 Microsoft가 서명한.

Contents of spindial.inf:
[mfc42installer] 
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab 
[Olepro32.dll] - FileVersion=5,0,4261,0
[Mfc42.dll] - FileVersion=6,0,8168,0
[Msvcrt.dll] - FileVersion=6,0,8168,0

941zhks9.collapse_all(ko-kr,VS.110).gif<OBJECT> 태그

다음 예제를 사용 하 여 <OBJECT> MFC Spindial 샘플 컨트롤을 패키지 하는 태그입니다.

<OBJECT ID="Spindial1" WIDTH=100 HEIGHT=51
  CLASSID="CLSID:06889605-B8D0-101A-91F1-00608CEAD5B3"
  CODEBASE="http://example.microsoft.com/spindial.cab#Version=1,0,0,001">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="2646">
    <PARAM NAME="_ExtentY" VALUE="1323">
    <PARAM NAME="_StockProps" VALUE="0">
    <PARAM NAME="NeedlePosition" VALUE="2">
</OBJECT>

이 예에서 spindial.cab 2, spindial.ocx 파일과 spindial.inf 포함 됩니다.다음 명령은 캐비닛 파일을 빌드합니다.

C:\CabDevKit\cabarc.exe -s 6144 N spindial.cab spindial.ocx spindial.inf 

–s 6144 매개 변수 코드 서명을 위한 캐비닛의 공간을 예약 합니다.

941zhks9.collapse_all(ko-kr,VS.110).gif버전 태그

이때 여기는 #Version CAB 파일을 지정 하는 정보를 적용 하 여 지정 된 컨트롤의 CLASSID 매개 변수는 <OBJECT> 태그.

지정 된 버전에 따라 컨트롤의 다운로드를 할 수 있습니다.전체 사양에 대 한의 OBJECT 태그를 포함 하는 CODEBASE 매개 변수, 참조는 W3C 참조.

스크립트 및 초기화에 안전한 컨트롤 표시

웹 페이지에 사용 된 ActiveX 컨트롤 스크립트 사용에 안전 하 고 실제로 안전한 경우 초기화에 안전 하다 표시 되어야 합니다.안전 컨트롤 디스크 입출력을 수행 하지 못하거나 메모리 나 컴퓨터의 레지스터에 직접 액세스 합니다.

스크립트 사용에 안전 및 초기화 레지스트리를 통해 안전으로 컨트롤을 표시할 수 있습니다.수정 DllRegisterServer 컨트롤 스크립팅 및 레지스트리 지 속성에 안전 하다 고 표시 하는 다음과 유사한 항목을 추가 합니다.대체 메서드를 구현 하는 것 IObjectSafety.

스크립팅 및 지 속성에 대 한 안전 표시 하 여 컨트롤에 대 한 Guid (글로벌 고유 식별자)를 정의 합니다.안전 하 게 스크립팅할 수 있는 컨트롤은 다음과 비슷한 레지스트리 항목이 포함 됩니다.

HKEY_CLASSES_ROOT\Component Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}

컨트롤이 영구 데이터를 안전 하 게 초기화할 수 있는 안전 지 속성에 비슷한 레지스트리 항목에 표시 됩니다.

HKEY_CLASSES_ROOT\Component Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}

다음과 유사한 항목을 추가 (대체 컨트롤의 클래스 ID 대신 {06889605-B8D0-101A-91F1-00608CEAD5B3})은 다음 클래스 ID와 키를 연결 하려면:

HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4} 
HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4} 

라이센스 관련 문제

웹 페이지에서 라이센스가 있는 컨트롤을 사용 하려는 경우에 동의 인터넷에서의 사용을 허용 하 고 라이센스 패키지 파일 (LPK) 만드는 확인 해야 합니다.

컨트롤을 사용 하도록 Internet Explorer 실행 하는 컴퓨터가 허가 되지 않은 경우 사용이 허가 된 ActiveX 컨트롤이 HTML 페이지를 제대로 로드 되지 않습니다.예를 들어, Visual C++ 사용 하 여 라이센스가 있는 컨트롤을 만든 경우 컨트롤을 사용 하 여 HTML 페이지 라이센스 정보가 포함 되어 있지 않으면 다른 컴퓨터에서는 로드 되지 않습니다 하지만 위치는 컨트롤을 빌드한 컴퓨터에 올바르게 로드 됩니다.

Internet Explorer 라이센스가 필요한 ActiveX 컨트롤을 사용 하려면 컨트롤에 대 한 라이센스를 허용 하는지 확인 하려면 공급 업체의 동의 확인 해야 합니다.

  • 재배포

  • 인터넷 상의 컨트롤 사용

  • Codebase 매개 변수를 사용

HTML 페이지에서 라이센스가 있는 컴퓨터에 라이센스가 있는 컨트롤을 사용 하려면 라이선스 패키지 파일 (LPK)를 생성 해야 합니다.LPK 파일 HTML 페이지에서 라이센스가 있는 컨트롤에 대 한 런타임 라이선스가 포함 되어 있습니다.이 파일은 LPK_TOOL은 통해 생성 됩니다.ActiveX SDK와 함께 제공 하는 EXE입니다.자세한 내용은 MSDN 웹 사이트에서 https://msdn.microsoft.com.

LPK 파일을 만들려면

  1. LPK_TOOL를 실행 합니다.EXE 컨트롤 사용 권한이 있는 컴퓨터.

  2. 라이센스 패키지 제작 도구 대화 상자에 사용 가능한컨트롤 목록 상자에서 각 프로그램을 선택 클릭 하 고 HTML 페이지에 사용할 ActiveX 컨트롤 라이센스 추가.

  3. 클릭 저장 & 종료 LPK 파일의 이름을 입력 합니다.LPK 파일 만들고 응용 프로그램을 닫습니다.

HTML 페이지에서 라이센스가 있는 컨트롤을 포함 하려면

  1. HTML 페이지를 편집 합니다.<OBJECT> HTML 페이지에 삽입 전에 모든 다른 <OBJECT> 라이센스 관리자 개체에 대 한 태그 태그입니다.라이센스 관리자는 Internet Explorer 설치 되는 ActiveX 컨트롤입니다.컨트롤의 클래스 ID는 아래와 같습니다.라이센스 관리자 개체의 LPKPath 속성을 LPK 파일 이름과 경로를 설정 합니다.각 HTML 페이지 마다 LPK 파일을 하나만 가질 수 있습니다.

    <OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
    </OBJECT>
    
  2. <OBJECT>를 삽입 합니다. 라이센스 관리자 태그 다음에 라이센스가 있는 컨트롤에 대 한 태그입니다.

    예를 들어, Microsoft Masked Edit 컨트롤에 표시 된 HTML 페이지는 아래와 같습니다.라이센스 관리자 제어에 대 한 ID가 첫 번째 클래스, 두 번째 클래스는 Masked Edit 컨트롤의 ID입니다.앞서 만든.lpk 파일의 상대 경로를 가리키도록 태그를 변경 하 고 컨트롤의 클래스 ID를 포함 하는 개체 태그를 추가 합니다.

  3. <EMBED>를 삽입 합니다. 특성은 NCompass ActiveX 플러그 인을 사용 하는 경우 LPK 파일입니다.

    다른 컨트롤을 볼 수 있는 경우 활성 브라우저 사용-는 NCompass ActiveX 플러그 인을 사용 하 여 Netscape 예를 들어,-<EMBED>를 추가 해야 아래와 같이 구문입니다.

    <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="maskedit.lpk">
    
        <EMBED SRC = "maskedit.LPK">
    
    </OBJECT>
    <OBJECT CLASSID="clsid:C932BA85-4374-101B-A56C-00AA003668DC" WIDTH=100 HEIGHT=25>
    </OBJECT>
    

컨트롤 라이센스에 대 한 자세한 내용은 참조 하십시오. ActiveX 컨트롤: ActiveX 컨트롤에 라이센스.

코드 서명

코드 서명 코드의 소스를 식별 하도록 되어 있으며 코드 이후로 변경 되지 않았음을 보장 하기 위해 서명 된.브라우저 보안 설정에 따라 코드를 다운로드 하기 전에 사용자가 경고 메시지가 표시 될 수 있습니다.사용자가 특정 인증서 소유자 또는 사례 코드 서명 하 여 신뢰할 수 있는 경고 없이 다운로드 됩니다 회사를 신뢰 하도록 선택할 수 있습니다.코드 변조를 방지 하기 위해 디지털 서명 됩니다.

컨트롤이 신뢰 경고 메시지를 표시 하지 않고 자동으로 다운로드할 수 있도록 최종 코드 서명 되어 있는지 확인 합니다.코드에 서명 하는 방법에 대 한 자세한 내용은 Authenticode는 ActiveX sdk에서에 설명서를 확인 하 고 참조 하십시오 캐비닛 파일 서명.

신뢰 및 브라우저 보안 수준 설정에 따라 서명한 개인 이나 회사를 식별할 수 인증서 표시 될 수 있습니다.보안 수준, 없는 경우 또는 서명 된 컨트롤의 인증서 소유자가 신뢰할 수 있는 경우 인증서는 표시 되지 않습니다.볼 Internet Explorer 브라우저 보안 수준 및 컨트롤 동작 컨트롤 다운로드 여부 및 표시 되는 인증서 브라우저 보안 설정을 확인 하는 것에 대 한 자세한 합니다.

디지털 서명 보장 코드가 서명 된 이후로 변경 않았습니다.해시 코드의 라인 이며 인증서에 포함 합니다.이 해시는 나중에 코드를 다운로드 한 후 실행 하기 전에 코드의 해시와 비교 됩니다.Verisign과 같은 회사 코드 서명에 필요한 개인 키와 공개 키를 제공할 수 있습니다.ActiveX SDK MakeCert, 테스트 인증서를 만드는 유틸리티와 함께 제공 됩니다.

색상표 관리

컨테이너 팔레트를 확인 하 고는 앰비언트 속성으로 사용할 수 있도록 DISPID_AMBIENT_PALETTE.컨테이너 (예: Internet Explorer) 자신의 팔레트를 확인 하려면 모든 ActiveX 컨트롤을 페이지에서 사용 되는 색상표를 선택 합니다.이렇게 하면 깜빡임을 없애고 일관 된 모양을 제공.

컨트롤을 무시할 수 있습니다 OnAmbientPropertyChange 팔레트 변경 알림을 처리 합니다.

컨트롤을 무시할 수 있습니다 OnGetColorSet 색상 팔레트를 그릴 세트를 반환 합니다.컨테이너 컨트롤 팔레트를 인식 하는지 확인 하려면 반환 값을 사용 합니다.

OCX 96 지침에서 컨트롤 항상 백그라운드에서 해당 팔레트를 실현 해야 합니다.

색상표를 앰비언트 속성을 사용 하지 않는 이전 버전의 컨테이너를 보냅니다 WM_QUERYNEWPALETTEWM_PALETTECHANGED 메시지.컨트롤을 무시할 수 있습니다 OnQueryNewPaletteOnPaletteChanged 이러한 메시지를 처리할 수 있습니다.

Internet Explorer 브라우저 보안 수준 및 컨트롤 동작

브라우저 보안 수준에서 사용자가 구성할 수 있는 옵션을 했습니다.웹 페이지 사용자의 컴퓨터를 손상 시킬 수 있는 액티브 컨텐트를 포함할 수 있으므로 브라우저 보안 수준 옵션을 선택할 수가 있습니다.브라우저에서 보안 수준을 구현 하는 방법에 따라 컨트롤이 전혀 다운로드 되지 또는 인증서 또는 런타임 시 컨트롤의 다운로드 여부를 선택할 수 있도록 하 라는 경고 메시지가 표시 됩니다.Internet Explorer 높음, 보통 및 낮음 보안 수준에서 ActiveX 컨트롤의 동작을 다음과 같습니다.

941zhks9.collapse_all(ko-kr,VS.110).gif높은 수준의 보안 모드

  • 서명 되지 않은 컨트롤을 다운로드할 수 없습니다.

  • 서명 된 컨트롤 신뢰할 수 없는 경우 인증서를 표시 합니다 (사용자가 항상 지금부터 코드에서이 인증서 소유자를 신뢰 하는 옵션을 선택할 수 있습니다).

  • 안전 하다 고 표시 되는 컨트롤만 지속적 데이터 보유 및 스크립팅할 수 있습니다.

941zhks9.collapse_all(ko-kr,VS.110).gif보통 보안 모드

  • 서명 되지 않은 컨트롤에 다운로드 하기 전에 경고 메시지가 표시 됩니다.

  • 신뢰할 수 없는 경우 서명 된 컨트롤의 인증서가 표시 됩니다.

  • 안전 하다 고 표시 되지 않은 컨트롤에는 경고가 표시 됩니다.

941zhks9.collapse_all(ko-kr,VS.110).gif낮음 보안 모드

  • 컨트롤이 경고 없이 다운로드 됩니다.

  • 스크립트와 지 속성이 경고 없이 발생 합니다.

참고 항목

참조

ActiveX 컨트롤을 MFC 컨트롤을 ActiveX: 라이센스

개념

MFC 인터넷 프로그래밍 작업

MFC 인터넷 프로그래밍 기본 사항