다음을 통해 공유


컨테이너: 고급 기능

이 문서에서는 기존 컨테이너 응용 프로그램에 선택적인 고급 기능을 통합 하는 데 필요한 단계를 설명 합니다.이러한 기능은 다음과 같습니다.

  • 컨테이너와 서버 응용 프로그램

  • 포함된 된 개체를 OLE 연결이

컨테이너/서버 응용 프로그램 만들기

컨테이너/서버 응용 프로그램은 컨테이너와 서버 역할을 수행 하는 응용 프로그램이입니다.Windows 용 Microsoft Word이의 예입니다.다른 응용 프로그램에서 Windows 용 Word 문서를 포함할 수 있습니다 및 Windows 용 Word 문서에 항목을 포함할 수도 있습니다.(조합 컨테이너/미니 서버 응용 프로그램을 만들 수 없습니다) 전체 서버와 컨테이너에 컨테이너 응용 프로그램을 수정 하는 프로세스는 전체 서버를 만드는 프로세스와 비슷합니다.

문서 서버: 서버 구현 는 많은 서버 응용 프로그램을 구현 하는 데 필요한 작업을 나열 합니다.컨테이너 응용 프로그램에서 컨테이너/서버 응용 프로그램을 변환할 경우 다음 몇 가지 동일한 작업을 수행할 코드를 컨테이너에 추가 하면.다음은 중요 한 고려 사항입니다.

  • 이미 응용 프로그램 마법사가 만든 컨테이너 코드 OLE 하위 시스템을 초기화 합니다.변경 하거나 지원 하기 위해 추가 해야 합니다.

  • 어디 문서 클래스의 기본 클래스는 COleDocument, 기본 클래스를 변경 COleServerDoc.

  • 재정의 COleClientItem::CanActivate 서버 자체 제자리에서 편집에 사용 되는 동안 항목을 현재 위치에서 편집을 피하기 위해.

    예를 들어, MFC OLE 샘플 OCLIENT 컨테이너/서버 응용 프로그램에서 만든 항목을 포함 합니다.OCLIENT 응용 프로그램을 엽니다 및 내부 컨테이너/서버 응용 프로그램에서 만든 항목을 편집 합니다.응용 프로그램의 항목을 편집 하는 동안 MFC OLE 샘플에서 만든 항목을 포함 하려면 원하는 당신이 HIERSVR.이렇게 하려면 현재 위치에서 활성화를 사용할 수 없습니다.이 항목을 활성화 하려면 HIERSVR를 완전히 열어야 합니다.Mfc 라이브러리가 OLE 기능을 지원 하지 않으므로 무시 COleClientItem::CanActivate 이 상황을 확인 하 고 가능한 응용 프로그램에서 런타임 오류를 방지할 수 있습니다.

새 응용 프로그램을 만들고 컨테이너/서버 응용 프로그램으로 작동 하는 경우 옵션 OLE 옵션 대화 상자의 응용 프로그램 마법사에서 자동으로 생성을 선택 합니다.자세한 내용은 문서를 참조 하십시오. 개요: 있는 ActiveX 컨트롤 컨테이너 만들기.MFC 샘플에 대 한 자세한 내용은 MFC 샘플을 참조 하십시오.

참고를 하면 MDI 응용 프로그램 자체에 삽입할 수는 없습니다.SDI 응용 프로그램이 아닌 컨테이너/서버 응용 프로그램 자체에 삽입할 수 없습니다.

포함 된 개체에 대 한 링크

포함 된 개체의 기능에 대 한 연결 문서의 컨테이너 응용 프로그램 내에서 포함 개체에 OLE 링크를 만들 수 있습니다.예를 들어, 포함된 하는 스프레드시트를 포함 하는 워드 프로세서에서 문서를 만듭니다.링크 포함 된 개체를 지 원하는 응용 프로그램에는 워드 프로세서 문서에 포함 된 스프레드시트에 대 한 링크가 붙여 넣을 수 있습니다.이 기능은 어디 워드 프로세서 원래 잘 몰라도 스프레드시트의 정보를 사용 하 여 응용 프로그램을 수 있습니다.

응용 프로그램에서 포함 된 개체를 연결 하려면

  1. 문서 클래스에서 파생 될 COleLinkingDoc 대신 COleDocument.

  2. OLE 클래스 id (CLSID) OLE 개발 도구에 포함 된 클래스 ID 생성기를 사용 하 여 응용 프로그램에 대 한.

  3. OLE로 응용 프로그램을 등록 합니다.

  4. 만들기는 COleTemplateServer 개체를 응용 프로그램 클래스의 구성원으로.

  5. 응용 프로그램 클래스의 InitInstance 멤버 함수에서 다음을 수행 합니다.

    • 연결을 COleTemplateServer 개체에는 개체를 호출 하 여 문서 서식 파일 ConnectTemplate 멤버 함수입니다.

    • 호출의 COleTemplateServer::RegisterAll 멤버 함수가 OLE 시스템으로 모든 클래스 개체를 등록할 수 있습니다.

    • COleTemplateServer::UpdateRegistry를 호출합니다.매개 변수를 하나만 UpdateRegistry 해야 OAT_CONTAINER 응용 프로그램 "/embedded" 스위치로 시작 하는 않는 경우.이 링크 포함 된 개체를 지 원하는 컨테이너 응용 프로그램을 등록 합니다.

      응용 프로그램을 "/embedded" 스위치로 시작 하는 경우 서버 응용 프로그램에 비슷한 주 창을 표시 됩니다.

MFC OLE 샘플 OCLIENT 이 기능을 구현 합니다.이 수행 하는 방법의 예제를 참조 하십시오은 InitInstance 의 oclient.이 샘플 응용 프로그램의 CPP 파일입니다.

참고 항목

개념

컨테이너

서버