다음을 통해 공유


COleDocument 클래스

비주얼 편집을 지원하는 OLE 문서에 대한 기본 클래스입니다.

구문

class COleDocument : public CDocument

멤버

공용 생성자

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

공용 메서드

이름 설명
COleDocument::AddItem 문서에서 기본 항목 목록에 항목을 추가합니다.
COleDocument::ApplyPrintDevice 문서의 모든 클라이언트 항목에 대한 인쇄 대상 디바이스를 설정합니다.
COleDocument::EnableCompoundFile OLE 구조적 스토리지 파일 형식을 사용하여 문서를 저장합니다.
COleDocument::GetInPlaceActiveItem 현재 현재 활성 상태인 OLE 항목을 반환합니다.
COleDocument::GetNextClientItem 반복할 다음 클라이언트 항목을 가져옵니다.
COleDocument::GetNextItem 반복할 다음 문서 항목을 가져옵니다.
COleDocument::GetNextServerItem 반복할 다음 서버 항목을 가져옵니다.
COleDocument::GetPrimarySelectedItem 문서에서 선택한 기본 OLE 항목을 반환합니다.
COleDocument::GetStartPosition 반복을 시작할 초기 위치를 가져옵니다.
COleDocument::HasBlankItems 문서에서 빈 항목을 확인합니다.
COleDocument::OnShowViews 문서가 표시되거나 보이지 않게 되면 호출됩니다.
COleDocument::RemoveItem 문서에서 기본 항목 목록에서 항목을 제거합니다.
COleDocument::UpdateModifiedFlag 포함된 OLE 항목이 수정된 경우 문서를 수정된 것으로 표시합니다.

보호된 메서드

속성 설명
COleDocument::OnEditChangeIcon 아이콘 변경 메뉴 명령의 이벤트를 처리합니다.
COleDocument::OnEditConvert 포함된 개체나 연결된 개체를 한 형식에서 다른 형식으로 변환하는 작업을 처리합니다.
COleDocument::OnEditLinks 편집 메뉴의 링크 명령에서 이벤트를 처리합니다.
COleDocument::OnFileSendMail 문서가 첨부된 메일 메시지를 보냅니다.
COleDocument::OnUpdateEditChangeIcon 편집/변경 아이콘 메뉴 옵션에 대한 명령 UI를 업데이트하기 위해 프레임워크에서 호출됩니다.
COleDocument::OnUpdateEditLinksMenu 편집/링크 메뉴 옵션에 대한 명령 UI를 업데이트하기 위해 프레임워크에서 호출됩니다.
COleDocument::OnUpdateObjectVerbMenu 편집/ObjectName 메뉴 옵션 및 Edit/ObjectName에서 액세스한 동사 하위 메뉴에 대한 명령 UI를 업데이트하기 위해 프레임워크에서 호출됩니다.
COleDocument::OnUpdatePasteLinkMenu 특수 메뉴 붙여넣기 옵션에 대한 명령 UI를 업데이트하기 위해 프레임워크에서 호출됩니다.
COleDocument::OnUpdatePasteMenu 붙여넣기 메뉴 옵션에 대한 명령 UI를 업데이트하기 위해 프레임워크에서 호출됩니다.

설명

COleDocument 는 OLE 애플리케이션이 Microsoft Foundation 클래스 라이브러리에서 제공하는 문서/뷰 아키텍처를 사용할 수 있도록 하는 파생 CDocument된 것입니다.

COleDocument는 문서를 OLE 항목을 처리하는 CDocItem 개체의 컬렉션으로 처리합니다. 컨테이너 및 서버 애플리케이션 모두 문서에 OLE 항목을 포함할 수 있어야 하므로 이러한 아키텍처가 필요합니다. CDocItem에서 파생된 COleServerItemCOleClientItem 클래스는 응용 프로그램과 OLE 항목 간의 상호 작용을 관리합니다.

간단한 컨테이너 애플리케이션을 작성하는 경우 에서 문서 클래스 COleDocument를 파생합니다. 문서에 포함된 포함된 항목에 대한 연결을 지원하는 컨테이너 애플리케이션을 작성하는 경우 COleLinkingDoc에서 문서 클래스를 파생합니다. 서버 애플리케이션 또는 컨테이너/서버 조합을 작성하는 경우 COleServerDoc에서 문서 클래스를 파생합니다. COleLinkingDoc 에서 COleServerDoc 파생되므로 COleDocument이러한 클래스는 사용 가능한 COleDocument 모든 서비스를 상속합니다 CDocument.

사용 COleDocument하려면 클래스를 파생시키고 애플리케이션의 비 OLE 데이터와 포함된 항목 또는 연결된 항목을 관리하는 기능을 추가합니다. 애플리케이션의 네이티브 데이터를 저장하기 위해 파생 클래스를 정의하는 CDocItem경우 정의된 COleDocument 기본 구현을 사용하여 OLE 및 비 OLE 데이터를 모두 저장할 수 있습니다. OLE가 아닌 데이터를 OLE 항목과 별도로 저장하기 위해 고유한 데이터 구조를 디자인할 수도 있습니다. 자세한 내용은 컨테이너: 복합 파일 문서를 참조하세요.

CDocument 는 MAPI(메일 지원)가 있는 경우 메일을 통해 문서 전송을 지원합니다. COleDocument는 복합 문서를 올바르게 처리하도록 OnFileSendMail을 업데이트했습니다. 자세한 내용은 MFC의 MAPIMAPI 지원 문서를 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CDocument

COleDocument

요구 사항

헤더: afxole.h

COleDocument::AddItem

문서에 항목을 추가하려면 이 함수를 호출합니다.

virtual void AddItem(CDocItem* pItem);

매개 변수

pItem
추가되는 문서 항목에 대한 포인터입니다.

설명

문서에 대한 포인터를 허용하는 생성자 또는 COleServerItem 생성자가 이 함수를 호출 COleClientItem 할 때 이 함수를 명시적으로 호출할 필요가 없습니다.

COleDocument::ApplyPrintDevice

애플리케이션의 컨테이너 문서에 포함된 모든 COleClientItem 항목에 대한 인쇄 대상 디바이스를 변경하려면 이 함수를 호출합니다.

BOOL ApplyPrintDevice(const DVTARGETDEVICE* ptd);
BOOL ApplyPrintDevice(const PRINTDLG* ppd);

매개 변수

ptd
새 인쇄 대상 디바이스에 DVTARGETDEVICE 대한 정보를 포함하는 데이터 구조에 대한 포인터입니다. NULL일 수 있습니다.

ppd
새 인쇄 대상 디바이스에 PRINTDLG 대한 정보를 포함하는 데이터 구조에 대한 포인터입니다. NULL일 수 있습니다.

Return Value

함수가 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 모든 항목의 인쇄 대상 디바이스를 업데이트하지만 해당 항목에 대한 프레젠테이션 캐시를 새로 고치지는 않습니다. 항목에 대한 프레젠테이션 캐시를 업데이트하려면 COleClientItem::UpdateLink를 호출합니다.

이 함수의 인수에는 OLE가 대상 디바이스를 식별하는 데 사용하는 정보가 포함됩니다. PRINTDLG 구조에는 Windows에서 일반적인 인쇄 대화 상자를 초기화하는 데 사용하는 정보가 포함되어 있습니다. 사용자가 대화 상자를 닫은 후 Windows는 이 구조에서 사용자의 선택 항목에 대한 정보를 반환합니다. CPrintDialog 개체의 멤버는 구조체입니다PRINTDLG.m_pd

자세한 내용은 Windows SDK의 PRINTDLG 구조를 참조하세요.

자세한 내용은 Windows SDK의 DVTARGETDEVICE 구조를 참조하세요.

COleDocument::COleDocument

COleDocument 개체를 생성합니다.

COleDocument();

COleDocument::EnableCompoundFile

복합 파일 형식을 사용하여 문서를 저장하려면 이 함수를 호출합니다.

void EnableCompoundFile(BOOL bEnable = TRUE);

매개 변수

bEnable
복합 파일 지원을 사용할지 여부를 지정합니다.

설명

이를 구조적 스토리지라고도 합니다. 일반적으로 파생 클래스의 생성자에서 이 함수를 호출합니다 COleDocument. 복합 문서에 대한 자세한 내용은 컨테이너: 복합 파일 문서를 참조하세요.

이 멤버 함수를 호출하지 않으면 문서가 비구조적("플랫") 파일 형식으로 저장됩니다.

문서에 대해 복합 파일 지원을 사용하거나 사용하지 않도록 설정한 후에는 문서의 수명 동안 설정을 변경하지 않아야 합니다.

COleDocument::GetInPlaceActiveItem

이 함수를 호출하여 pWnd로 식별된 보기를 포함하는 프레임 창에서 현재 활성화된 OLE 항목을 가져옵니다.

virtual COleClientItem* GetInPlaceActiveItem(CWnd* pWnd);

매개 변수

pWnd
컨테이너 문서를 표시하는 창에 대한 포인터입니다.

Return Value

현재 위치의 단일 OLE 항목에 대한 포인터입니다. 현재 "현재 위치 활성" 상태에 OLE 항목이 없으면 NULL입니다.

COleDocument::GetNextClientItem

이 함수를 반복적으로 호출하여 문서의 각 클라이언트 항목에 액세스합니다.

COleClientItem* GetNextClientItem(POSITION& pos) const;

매개 변수

pos
이전 호출에서 설정한 POSITION 값에 GetNextClientItem대한 참조입니다. 초기 값은 멤버 함수에 GetStartPosition 의해 반환됩니다.

Return Value

문서의 다음 클라이언트 항목에 대한 포인터이거나, 클라이언트 항목이 더 이상 없는 경우 NULL입니다.

설명

각 호출 후에는 클라이언트 항목일 수도 있고 아닐 수도 있는 문서의 다음 항목에 대해 pos이 설정됩니다.

예시

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleClientItem* pItem;
CString strType;
while ((pItem = pDoc->GetNextClientItem(pos)) != NULL)
{
   // Use pItem
   pItem->GetUserType(USERCLASSTYPE_FULL, strType);
   TRACE(strType);
}

COleDocument::GetNextItem

이 함수를 반복적으로 호출하여 문서의 각 항목에 액세스합니다.

virtual CDocItem* GetNextItem(POSITION& pos) const;

매개 변수

pos
이전 호출에서 설정한 POSITION 값에 GetNextItem대한 참조입니다. 초기 값은 멤버 함수에 GetStartPosition 의해 반환됩니다.

Return Value

지정한 위치에 있는 문서 항목에 대한 포인터입니다.

설명

각 호출 후에 pos은 문서에서 다음 항목의 POSITION 값으로 설정됩니다. 검색된 요소가 문서의 마지막 요소인 경우 pos새 값은 NULL입니다.

예시

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
CDocItem* pItem;
CString strType;
while (pos != NULL)
{
   pItem = pDoc->GetNextItem(pos);
   // Use pItem
   if (pItem->IsKindOf(RUNTIME_CLASS(COleClientItem)))
   {
      ((COleClientItem*)pItem)->GetUserType(USERCLASSTYPE_FULL, strType);
      TRACE(strType);
   }
}

COleDocument::GetNextServerItem

문서의 각 서버 항목에 액세스하려면 이 함수를 반복적으로 호출합니다.

COleServerItem* GetNextServerItem(POSITION& pos) const;

매개 변수

pos
이전 호출에서 설정한 POSITION 값에 GetNextServerItem대한 참조입니다. 초기 값은 멤버 함수에 GetStartPosition 의해 반환됩니다.

Return Value

문서의 다음 서버 항목에 대한 포인터이거나, 서버 항목이 더 이상 없는 경우 NULL입니다.

설명

각 호출 후에는 서버 항목일 수도 있고 아닐 수도 있는 문서의 다음 항목에 대해 pos이 설정됩니다.

예시

// pDoc points to a COleDocument object
POSITION pos = pDoc->GetStartPosition();
COleServerItem* pItem;
while ((pItem = pDoc->GetNextServerItem(pos)) != NULL)
{
   // Use pItem
}

COleDocument::GetPrimarySelectedItem

지정된 보기에서 현재 선택된 OLE 항목을 검색하기 위해 프레임워크에서 호출됩니다.

virtual COleClientItem* GetPrimarySelectedItem(CView* pView);

매개 변수

pView
문서를 표시하는 현재 보기 개체에 대한 포인터입니다.

Return Value

선택한 단일 OLE 항목에 대한 포인터입니다. OLE 항목이 선택되지 않거나 둘 이상이 선택된 경우 NULL입니다.

설명

기본 구현은 포함된 OLE 항목 목록을 검색하여 선택한 단일 항목에 대한 포인터를 반환합니다. 선택한 항목이 없거나 둘 이상의 항목이 선택된 경우 함수는 NULL을 반환합니다. 이 함수가 작동하려면 뷰 클래스의 CView::IsSelected 멤버 함수를 재정의해야 합니다. 포함된 OLE 항목을 저장하는 고유한 메서드가 있는 경우 이 함수를 재정의합니다.

COleDocument::GetStartPosition

이 함수를 호출하여 문서에서 첫 번째 항목의 위치를 가져옵니다.

virtual POSITION GetStartPosition() const;

Return Value

문서의 항목을 반복하는 데 사용할 수 있는 POSITION 값입니다. 문서에 항목이 없으면 NULL입니다.

설명

반환된 값을 또는 GetNextClientItemGetNextServerItem.에 GetNextItem전달합니다.

COleDocument::HasBlankItems

이 함수를 호출하여 문서에 빈 항목이 있는지 여부를 확인합니다.

BOOL HasBlankItems() const;

Return Value

문서에 빈 항목이 포함된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

빈 항목은 사각형이 비어 있는 항목입니다.

COleDocument::OnEditChangeIcon

OLE 변경 아이콘 대화 상자를 표시하고 현재 선택한 OLE 항목을 나타내는 아이콘을 사용자가 대화 상자에서 선택하는 아이콘으로 변경합니다.

afx_msg void OnEditChangeIcon();

설명

OnEditChangeIcon 아이콘 변경 대화 상자를 만들고 시작합니다 COleChangeIconDialog .

COleDocument::OnEditConvert

OLE 변환 대화 상자를 표시하고 대화 상자의 사용자 선택에 따라 현재 선택한 OLE 항목을 변환하거나 활성화합니다.

afx_msg void OnEditConvert();

설명

OnEditConvert 는 변환 대화 상자를 만들고 시작합니다 COleConvertDialog .

변환의 예는 Microsoft Word 문서를 WordPad 문서로 변환하는 것입니다.

OLE 편집/링크 대화 상자를 표시합니다.

afx_msg void OnEditLinks();

설명

OnEditLinks 는 사용자가 연결된 개체를 COleLinksDialog 변경할 수 있는 링크 대화 상자를 만들고 시작합니다.

COleDocument::OnFileSendMail

문서를 첨부 파일로 사용하여 상주 메일 호스트(있는 경우)를 통해 메시지를 보냅니다.

afx_msg void OnFileSendMail();

설명

OnFileSendMail 호출 OnSaveDocument 하여 제목 없는 문서를 직렬화(저장)하고 수정한 문서를 임시 파일로 저장한 다음 전자 메일을 통해 전송합니다. 문서가 수정되지 않은 경우 임시 파일이 필요하지 않습니다. 원본이 전송됩니다. OnFileSendMail 는 MAPI32.DLL이 아직 로드되지 않은 경우 로드합니다.

구현CDocumentOnFileSendMail 달리 이 함수는 복합 파일을 올바르게 처리합니다.

자세한 내용은 MFC 문서의 MAPI 토픽MAPI 지원을 참조하세요.

COleDocument::OnShowViews

프레임워크는 문서의 표시 유형 상태가 변경된 후 이 함수를 호출합니다.

virtual void OnShowViews(BOOL bVisible);

매개 변수

bVisible
문서가 표시되거나 보이지 않게 되었는지 여부를 나타냅니다.

설명

이 함수의 기본 버전은 아무 작업도 수행하지 않습니다. 문서의 표시 유형이 변경되면 애플리케이션이 특별한 처리를 수행해야 하는 경우 이를 재정의합니다.

COleDocument::OnUpdateEditChangeIcon

편집 메뉴에서 변경 아이콘 명령을 업데이트하기 위해 프레임워크에서 호출됩니다.

afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);

매개 변수

pCmdUI
업데이트 명령을 생성한 CCmdUI 메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUIEnableCCmdUI 통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.

설명

OnUpdateEditChangeIcon 는 문서에 유효한 아이콘이 있는지 여부에 따라 명령의 사용자 인터페이스를 업데이트합니다. 동작을 변경하려면 이 함수를 재정의합니다.

COleDocument::OnUpdateEditLinksMenu

편집 메뉴에서 링크 명령을 업데이트하기 위해 프레임워크에서 호출됩니다.

afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);

매개 변수

pCmdUI
업데이트 명령을 생성한 CCmdUI 메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUIEnableCCmdUI 통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.

설명

문서의 OnUpdateEditLinksMenu 첫 번째 OLE 항목부터 각 항목에 액세스하고, 항목이 링크인지 여부를 테스트하고, 링크인 경우 링크 명령을 사용하도록 설정합니다. 동작을 변경하려면 이 함수를 재정의합니다.

COleDocument::OnUpdateObjectVerbMenu

프레임워크에서 호출하여 편집 메뉴의 ObjectName 명령과 ObjectName 명령에서 액세스한 동사 하위 메뉴를 업데이트합니다. 여기서 ObjectName은 문서에 포함된 OLE 개체의 이름입니다.

afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);

매개 변수

pCmdUI
업데이트 명령을 생성한 CCmdUI 메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUIEnableCCmdUI 통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.

설명

OnUpdateObjectVerbMenu문서에 유효한 개체가 있는지 여부에 따라 ObjectName 명령의 사용자 인터페이스를 업데이트합니다. 개체가 있는 경우 편집 메뉴의 ObjectName 명령을 사용할 수 있습니다. 이 메뉴 명령을 선택하면 동사 하위 메뉴가 표시됩니다. 동사 하위 메뉴에는 개체에 사용할 수 있는 모든 동사 명령(예: 편집, 속성 등)이 포함됩니다. 동작을 변경하려면 이 함수를 재정의합니다.

COleDocument::OnUpdatePasteLinkMenu

연결된 OLE 항목을 클립보드에서 붙여넣을 수 있는지 여부를 확인하기 위해 프레임워크에서 호출됩니다.

afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);

매개 변수

pCmdUI
업데이트 명령을 생성한 CCmdUI 메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUIEnableCCmdUI 통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.

설명

항목을 문서에 붙여 넣을 수 있는지 여부에 따라 선택하여 붙여넣기 메뉴 명령을 사용하거나 사용하지 않도록 설정합니다.

COleDocument::OnUpdatePasteMenu

포함된 OLE 항목을 클립보드에서 붙여넣을 수 있는지 여부를 결정하기 위해 프레임워크에서 호출됩니다.

afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);

매개 변수

pCmdUI
업데이트 명령을 생성한 CCmdUI 메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUIEnableCCmdUI 통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.

설명

붙여넣기 메뉴 명령 및 단추는 항목을 문서에 붙여 넣을 수 있는지 여부에 따라 사용하거나 사용하지 않도록 설정됩니다.

COleDocument::RemoveItem

문서에서 항목을 제거하려면 이 함수를 호출합니다.

virtual void RemoveItem(CDocItem* pItem);

매개 변수

pItem
제거할 문서 항목에 대한 포인터입니다.

설명

일반적으로 이 함수를 명시적으로 호출할 필요가 없습니다. 에 대한 COleClientItem 소멸자가 호출합니다.COleServerItem

COleDocument::UpdateModifiedFlag

포함된 OLE 항목이 수정된 경우 문서를 수정된 것으로 표시하려면 이 함수를 호출합니다.

virtual void UpdateModifiedFlag();

설명

이렇게 하면 문서의 네이티브 데이터가 수정되지 않은 경우에도 닫기 전에 문서를 저장하라는 메시지가 프레임워크에 표시됩니다.

참고 항목

MFC 샘플 컨테이너
MFC 샘플 MFCBIND
CDocument 클래스
계층 구조 차트