다음을 통해 공유


CDocObjectServer 클래스

일반 COleDocument 서버를 전체 DocObject 서버로 만드는 데 필요한 추가 OLE 인터페이스( IOleDocument, IOleDocumentView, IOleCommandTarget, 및 IPrint)를 구현합니다.

구문

class CDocObjectServer : public CCmdTarget

멤버

공용 생성자

속성 설명
CDocObjectServer::CDocObjectServer CDocObjectServer 개체를 생성합니다.

공용 메서드

이름 설명
CDocObjectServer::ActivateDocObject 문서 개체 서버를 활성화하지만 표시되지 않습니다.

보호된 메서드

속성 설명
CDocObjectServer::OnActivateView DocObject 보기를 표시합니다.
CDocObjectServer::OnApplyViewState DocObject 뷰의 상태를 복원합니다.
CDocObjectServer::OnSaveViewState DocObject 뷰의 상태를 저장합니다.

설명

CDocObjectServer 는 파생되며 CCmdTarget 인터페이스를 COleServerDoc 노출하기 위해 긴밀하게 작동합니다.

DocObject 서버 문서에는 DocObject 항목에 대한 서버 인터페이스를 나타내는 CDocObjectServerItem 개체가 포함될 수 있습니다.

DocObject 서버를 사용자 지정하려면 고유한 클래스 CDocObjectServer 를 파생시키고 해당 뷰 설정 함수, OnActivateView, OnApplyViewStateOnSaveViewState를 재정의합니다. 프레임워크 호출에 대한 응답으로 클래스의 새 인스턴스를 제공해야 합니다.

DocObjects 에 대한 자세한 내용은 MFC 참조의 CDocObjectServerItemCOleCmdUI참조하세요.

상속 계층 구조

CObject

CCmdTarget

CDocObjectServer

요구 사항

헤더: afxdocob.h

CDocObjectServer::ActivateDocObject

이 함수를 호출하여 문서 개체 서버를 활성화(표시되지 않음)합니다.

void ActivateDocObject();

설명

ActivateDocObjectIOleDocumentSiteCDocObjectServerActivateMe::OnActivateView 호출에 지정된 보기를 설정하고 표시하는 방법에 대한 특정 지침을 기다리므로 뷰를 표시하지 않습니다.

ActivateDocObjectOnActivateView 함께 DocObject 보기를 활성화하고 표시합니다. DocObject 활성화는 다른 종류의 OLE 현재 위치 활성화와 다릅니다. DocObject 활성화는 내부 해치 테두리 및 개체 장식(예: 크기 조정 핸들)을 표시하지 않고, 개체 익스텐트 함수를 무시하고, 해당 사각형 외부로 그리는 대신 보기 사각형 내에서 스크롤 막대를 그립니다(일반적인 현재 위치 활성화에서와 같이).

CDocObjectServer::CDocObjectServer

CDocObjectServer 개체를 생성하고 초기화합니다.

explicit CDocObjectServer(
    COleServerDoc* pOwner,
    LPOLEDOCUMENTSITE pDocSite = NULL);

매개 변수

pOwner
DocObject 서버의 클라이언트인 클라이언트 사이트 문서에 대한 포인터입니다.

pDocSite
컨테이너에서 구현하는 IOleDocumentSite 인터페이스에 대한 포인터입니다.

설명

DocObject가 활성화된 경우 클라이언트 사이트 OLE 인터페이스( IOleDocumentSite)는 DocObject 서버가 클라이언트(컨테이너)와 통신할 수 있도록 하는 것입니다. DocObject 서버가 활성화되면 먼저 컨테이너가 인터페이스를 구현 IOleDocumentSite 하는 검사. 그렇다면 COleServerDoc::GetDocObjectServer 가 호출되어 컨테이너가 DocObjects를 지원하는지 확인합니다. 기본적으로 NULL을 GetDocObjectServer 반환합니다. 컨테이너에 대한 포인터 COleServerDocIOleDocumentSite 해당 인터페이스를 생성자에 대한 인수로 사용하여 새 CDocObjectServer 개체 또는 파생 개체를 생성하려면 재정 COleServerDoc::GetDocObjectServer 의해야 합니다.

CDocObjectServer::OnActivateView

이 함수를 호출하여 DocObject 보기를 표시합니다.

virtual HRESULT OnActivateView();

Return Value

오류 또는 경고 값을 반환합니다. 성공하면 기본적으로 NOERROR를 반환합니다. 그렇지 않으면 E_FAIL.

설명

이 함수는 현재 위치 프레임 창을 만들고, 보기 내에서 스크롤 막대를 그리고, 서버가 컨테이너와 공유하는 메뉴를 설정하고, 프레임 컨트롤을 추가하고, 활성 개체를 설정한 다음, 마지막으로 현재 위치 프레임 창을 표시하고 포커스를 설정합니다.

CDocObjectServer::OnApplyViewState

DocObject 뷰의 상태를 복원하려면 이 함수를 재정의합니다.

virtual void OnApplyViewState(CArchive& ar);

매개 변수

ar
CArchive 뷰 상태를 serialize할 개체입니다.

설명

이 함수는 인스턴스화 후 뷰가 처음으로 표시될 때 호출됩니다. OnApplyViewState는 OnSaveViewState로 이전에 저장된 개체의 CArchive 데이터에 따라 뷰를 다시 초기화하도록 지시합니다. 컨테이너가 뷰 상태 데이터를 CArchive 어떤 방식으로든 해석하려고 하지 않으므로 뷰는 개체의 데이터의 유효성을 검사해야 합니다.

보기 상태와 관련된 영구 정보를 저장하는 데 사용할 OnSaveViewState 수 있습니다. 정보를 저장하도록 재정 OnSaveViewState 의하는 경우 해당 정보를 읽고 새로 활성화될 때 해당 정보를 보기에 적용하도록 재정 OnApplyViewState 의해야 합니다.

CDocObjectServer::OnSaveViewState

DocObject 뷰에 대한 추가 상태 정보를 저장하려면 이 함수를 재정의합니다.

virtual void OnSaveViewState(CArchive& ar);

매개 변수

ar
CArchive 뷰 상태가 serialize되는 개체입니다.

설명

상태에는 보기 유형, 확대/축소 비율, 삽입 및 선택 지점 등의 속성이 포함될 수 있습니다. 컨테이너는 일반적으로 뷰를 비활성화하기 전에 이 함수를 호출합니다. 저장된 상태는 나중에 OnApplyViewState를 통해 복원할 수 있습니다.

보기 상태와 관련된 영구 정보를 저장하는 데 사용할 OnSaveViewState 수 있습니다. 정보를 저장하도록 재정 OnSaveViewState 의하는 경우 해당 정보를 읽고 새로 활성화될 때 해당 정보를 보기에 적용하도록 재정 OnApplyViewState 의해야 합니다.

참고 항목

CCmdTarget 클래스
계층 구조 차트
CDocObjectServerItem 클래스