다음을 통해 공유


COleLinkingDoc 클래스

포함된 항목에 대한 연결을 지원하는 OLE 컨테이너 문서의 기본 클래스입니다.

구문

class COleLinkingDoc : public COleDocument

멤버

공용 생성자

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

공용 메서드

이름 설명
COleLinkingDoc::Register 문서를 OLE 시스템 DLL에 등록합니다.
COleLinkingDoc::Revoke 문서의 등록을 취소합니다.

보호된 메서드

속성 설명
COleLinkingDoc::OnFindEmbeddedItem 지정된 포함된 항목을 찾습니다.
COleLinkingDoc::OnGetLinkedItem 지정된 연결된 항목을 찾습니다.

설명

포함된 항목에 대한 연결을 지원하는 컨테이너 애플리케이션을 "링크 컨테이너"라고 합니다. OCLIENT 샘플 애플리케이션은 링크 컨테이너의 예입니다.

연결된 항목의 원본이 다른 문서에 포함된 항목인 경우 포함된 항목을 편집하려면 해당 문서를 로드해야 합니다. 따라서 사용자가 연결된 항목의 원본을 편집하려는 경우 다른 컨테이너 애플리케이션에서 링크 컨테이너를 시작할 수 있어야 합니다. 또한 애플리케이션은 프로그래밍 방식으로 시작할 때 문서를 만들 수 있도록 COleTemplateServer 클래스를 사용해야 합니다.

컨테이너를 링크 컨테이너로 만들려면 COleDocument 대신 문서 클래스 COleLinkingDoc 를 파생합니다. 다른 OLE 컨테이너와 마찬가지로 애플리케이션의 네이티브 데이터와 포함된 항목 또는 연결된 항목을 저장하기 위한 클래스를 디자인해야 합니다. 또한 네이티브 데이터를 저장하기 위한 데이터 구조를 디자인해야 합니다. 애플리케이션의 네이 CDocItem티브 데이터에 대한 -derived 클래스를 정의하는 경우 정의된 COleDocument 인터페이스를 사용하여 네이티브 데이터와 OLE 데이터를 저장할 수 있습니다.

다른 컨테이너에서 애플리케이션을 프로그래밍 방식으로 시작할 수 있도록 하려면 개체를 COleTemplateServer 애플리케이션의 CWinApp파생 클래스의 멤버로 선언합니다.

class COleContainerApp : public CWinApp
{
protected:
   COleTemplateServer m_server;
   // remainder of class declaration omitted

InitInstance 파생 클래스의 CWinApp멤버 함수에서 문서 템플릿을 만들고 -derived 클래스를 문서 클래스로 지정합니다COleLinkingDoc.

// CMyLinkDoc is derived from COleLinkingDoc
CMultiDocTemplate* pDocTemplate = new CMultiDocTemplate(IDR_LINKDOCTYPE,
   RUNTIME_CLASS(CMyLinkDoc),
   RUNTIME_CLASS(CChildFrame),
   RUNTIME_CLASS(CMyLinkView));
if (!pDocTemplate)
return FALSE;
pDocTemplate->SetContainerInfo(IDR_OLECONTTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate);

COleTemplateServer 개체의 ConnectTemplate 멤버 함수를 호출하여 개체를 문서 서식 파일에 연결하고 다음을 호출COleTemplateServer::RegisterAll하여 모든 클래스 개체를 OLE 시스템에 등록합니다.

m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);
COleTemplateServer::RegisterAll();

샘플 CWinApp파생 클래스 정의 및 InitInstance 함수는 OCLIENT를 참조하세요. H 및 OCLIENT. MFC 샘플 OCLIENT의 CPP입니다.

사용에 COleLinkingDoc대한 자세한 내용은 컨테이너: 컨테이너 및 컨테이너 구현: 고급 기능 문서를 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

요구 사항

헤더: afxole.h

COleLinkingDoc::COleLinkingDoc

COleLinkingDoc OLE 시스템 DLL과의 통신을 시작하지 않고 개체를 생성합니다.

COleLinkingDoc();

설명

OLE에 Register 문서가 열려 있음을 알리려면 멤버 함수를 호출해야 합니다.

COleLinkingDoc::OnFindEmbeddedItem

문서에 지정된 이름의 포함된 OLE 항목이 포함되어 있는지 여부를 확인하기 위해 프레임워크에서 호출됩니다.

virtual COleClientItem* OnFindEmbeddedItem(LPCTSTR lpszItemName);

매개 변수

lpszItemName
요청된 포함된 OLE 항목의 이름에 대한 포인터입니다.

Return Value

지정된 항목에 대한 포인터입니다. 항목을 찾을 수 없는 경우 NULL입니다.

설명

기본 구현은 지정된 이름을 가진 항목의 포함된 항목 목록을 검색합니다(이름 비교는 대/소문자를 구분함). 포함된 OLE 항목을 저장하거나 이름을 지정하는 고유한 방법이 있는 경우 이 함수를 재정의합니다.

COleLinkingDoc::OnGetLinkedItem

문서에 지정된 이름의 연결된 서버 항목이 포함되어 있는지 여부를 확인하기 위해 프레임워크에서 호출됩니다.

virtual COleServerItem* OnGetLinkedItem(LPCTSTR lpszItemName);

매개 변수

lpszItemName
요청된 연결된 OLE 항목의 이름에 대한 포인터입니다.

Return Value

지정된 항목에 대한 포인터입니다. 항목을 찾을 수 없는 경우 NULL입니다.

설명

기본 COleLinkingDoc 구현은 항상 NULL을 반환합니다. 이 함수는 지정된 이름을 가진 연결된 항목에 대한 OLE 서버 항목 목록을 검색하기 위해 파생 클래스 COleServerDoc 에서 재정의됩니다(이름 비교는 대/소문자를 구분함). 연결된 서버 항목을 저장하거나 검색하는 고유한 방법을 구현한 경우 이 함수를 재정의합니다.

COleLinkingDoc::Register

문서가 열려 있음을 OLE 시스템 DLL에 알릴 수 있습니다.

BOOL Register(
    COleObjectFactory* pFactory,
    LPCTSTR lpszPathName);

매개 변수

pFactory
OLE 팩터리 개체에 대한 포인터입니다(NULL일 수 있음).

lpszPathName
컨테이너 문서의 정규화된 경로에 대한 포인터입니다.

Return Value

문서가 성공적으로 등록되면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

명명된 파일을 만들거나 열 때 이 함수를 호출하여 문서를 OLE 시스템 DLL에 등록합니다. 문서가 포함된 항목을 나타내는 경우 이 함수를 호출할 필요가 없습니다.

애플리케이션에서 사용하는 COleTemplateServer 경우 '의 OnNewDocument구현 , Register COleLinkingDocOnOpenDocumentOnSaveDocument.

COleLinkingDoc::Revoke

문서가 더 이상 열려 있지 않음을 OLE 시스템 DLL에 알릴 수 있습니다.

void Revoke();

설명

OLE 시스템 DLL을 사용하여 문서의 등록을 취소하려면 이 함수를 호출합니다.

명명된 파일을 닫을 때 이 함수를 호출해야 하지만 일반적으로 직접 호출할 필요는 없습니다. Revoke는 '의 구현에 OnNewDocumentOnSaveDocumentOnOpenDocument의해 COleLinkingDoc호출됩니다.OnCloseDocument

참고 항목

MFC 샘플 OCLIENT
COleDocument 클래스
계층 구조 차트
CDocTemplate 클래스