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
대한 자세한 내용은 컨테이너: 컨테이너 및 컨테이너 구현: 고급 기능 문서를 참조하세요.
상속 계층 구조
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
COleLinkingDoc
OnOpenDocument
및 OnSaveDocument
.
COleLinkingDoc::Revoke
문서가 더 이상 열려 있지 않음을 OLE 시스템 DLL에 알릴 수 있습니다.
void Revoke();
설명
OLE 시스템 DLL을 사용하여 문서의 등록을 취소하려면 이 함수를 호출합니다.
명명된 파일을 닫을 때 이 함수를 호출해야 하지만 일반적으로 직접 호출할 필요는 없습니다. Revoke
는 '의 구현에 OnNewDocument
OnSaveDocument
OnOpenDocument
의해 COleLinkingDoc
호출됩니다.OnCloseDocument