다음을 통해 공유


등록

사용자가 애플리케이션에 OLE 항목을 삽입하려는 경우 OLE는 선택할 개체 형식 목록을 표시합니다. OLE는 모든 서버 애플리케이션에서 제공하는 정보를 포함하는 시스템 등록 데이터베이스에서 이 목록을 가져옵니다. 서버가 자신을 등록할 때 시스템 등록 데이터베이스(레지스트리)에 입력하는 항목은 제공하는 각 개체 유형, 파일 확장명 및 그 자체에 대한 경로를 설명합니다.

프레임워크 및 OLE 시스템 DLL(동적 연결 라이브러리)은 이 레지스트리를 사용하여 시스템에서 사용할 수 있는 OLE 항목 유형을 결정합니다. 또한 OLE 시스템 DLL은 이 레지스트리를 사용하여 연결된 개체 또는 포함된 개체가 활성화될 때 서버 애플리케이션을 시작하는 방법을 결정합니다.

이 문서에서는 각 서버 애플리케이션이 설치될 때 수행해야 하는 작업과 실행될 때마다 수행해야 하는 작업을 설명합니다.

시스템 등록 데이터베이스 및 업데이트하는 데 사용되는 .reg 파일의 형식에 대한 자세한 내용은 OLE 프로그래머 참조를 참조하세요.

서버 설치

서버 애플리케이션을 처음 설치할 때 지원되는 모든 유형의 OLE 항목을 등록해야 합니다. 독립 실행형 애플리케이션으로 실행할 때마다 서버에서 시스템 등록 데이터베이스를 업데이트할 수도 있습니다. 이렇게 하면 서버의 실행 파일이 이동된 경우 등록 데이터베이스를 최신 상태로 유지합니다.

참고 항목

애플리케이션 마법사에서 생성된 MFC 애플리케이션은 독립 실행형 애플리케이션으로 실행될 때 자동으로 등록됩니다.

설치하는 동안 애플리케이션을 등록하려면 RegEdit.exe 프로그램을 사용합니다. 애플리케이션에 설치 프로그램을 포함하는 경우 설치 프로그램이 "RegEdit /S appname.reg"를 실행하도록 합니다. (/S 플래그는 자동 작업을 나타냅니다. 즉, 명령의 성공적인 완료를 보고하는 대화 상자를 표시하지 않습니다.) 그렇지 않으면 사용자에게 RegEdit를 수동으로 실행하도록 지시합니다.

참고 항목

애플리케이션 마법사에서 만든 .reg 파일에는 실행 파일의 전체 경로가 포함되지 않습니다. 설치 프로그램에서 실행 파일의 전체 경로를 포함하도록 .reg 파일을 수정하거나 설치 디렉터리를 포함하도록 PATH 환경 변수를 수정해야 합니다.

RegEdit은 .reg 텍스트 파일의 내용을 등록 데이터베이스에 병합합니다. 데이터베이스를 확인하거나 복구하려면 레지스트리 편집기를 사용합니다. 필수 OLE 항목을 삭제하지 않도록 주의하세요.

서버 초기화

애플리케이션 마법사를 사용하여 서버 애플리케이션을 만들 때 마법사는 자동으로 모든 초기화 작업을 완료합니다. 이 섹션에서는 서버 애플리케이션을 수동으로 작성하는 경우 수행해야 하는 작업을 설명합니다.

컨테이너 애플리케이션에서 서버 애플리케이션을 시작하면 OLE 시스템 DLL은 서버의 명령줄에 "/Embedding" 옵션을 추가합니다. 서버 애플리케이션의 동작은 컨테이너에서 시작되었는지 여부에 따라 다르므로 애플리케이션이 실행을 시작할 때 수행해야 하는 첫 번째 작업은 명령줄의 "/Embedding" 또는 "-Embedding" 옵션에 대해 검사. 이 스위치가 있는 경우 서버를 현재 위치로 표시하거나 완전히 열려 있는 것으로 표시하는 다른 리소스 집합을 로드합니다. 자세한 내용은 메뉴 및 리소스: 서버 추가를 참조 하세요.

또한 서버 애플리케이션은 해당 함수를 CWinApp::RunEmbedded 호출하여 명령줄을 구문 분석해야 합니다. 0이 아닌 값을 반환하는 경우 독립 실행형 애플리케이션이 아니라 컨테이너 애플리케이션에서 실행되었으므로 애플리케이션에 창이 표시되지 않아야 합니다. 이 함수는 시스템 등록 데이터베이스에서 서버 항목을 업데이트하고 멤버 함수를 RegisterAll 호출하여 인스턴스 등록을 수행합니다.

서버 애플리케이션이 시작될 때 인스턴스 등록을 수행할 수 있는지 확인해야 합니다. 인스턴스 등록은 서버가 활성 상태이며 컨테이너에서 요청을 받을 준비가 되었다는 것을 OLE 시스템 DLL에 알릴 수 있습니다. 등록 데이터베이스에 항목을 추가하지 않습니다. 에 정의된 멤버 함수를 호출하여 서버의 ConnectTemplate 인스턴스 등록을 수행합니다 COleTemplateServer. 그러면 개체가 CDocTemplate 개체에 COleTemplateServer 연결됩니다.

이 함수는 ConnectTemplate 서버의 CLSID, 개체에 CDocTemplate 대한 포인터 및 서버가 여러 인스턴스를 지원하는지 여부를 나타내는 플래그의 세 가지 매개 변수를 사용합니다. 미니 서버는 여러 인스턴스를 지원할 수 있어야 합니다. 즉, 서버의 여러 인스턴스가 각 컨테이너에 대해 하나씩 동시에 실행될 수 있어야 합니다. 따라서 미니 서버를 시작할 때 이 플래그에 대해 TRUE를 전달합니다.

미니 서버를 작성하는 경우 정의에 따라 항상 컨테이너에서 시작됩니다. 명령줄을 구문 분석하여 "/Embedding" 옵션에 대해 검사 합니다. 명령줄에 이 옵션이 없으면 사용자가 미니 서버를 독립 실행형 애플리케이션으로 시작하려고 했음을 의미합니다. 이 경우 시스템 등록 데이터베이스에 서버를 등록한 다음 사용자에게 컨테이너 애플리케이션에서 미니 서버를 시작하도록 알리는 메시지 상자를 표시합니다.

참고 항목

OLE
서버
CWinApp::RunAutomated
CWinApp::RunEmbedded
COleTemplateServer 클래스