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
에서 파생된 COleServerItem 및 COleClientItem 클래스는 응용 프로그램과 OLE 항목 간의 상호 작용을 관리합니다.
간단한 컨테이너 애플리케이션을 작성하는 경우 에서 문서 클래스 COleDocument
를 파생합니다. 문서에 포함된 포함된 항목에 대한 연결을 지원하는 컨테이너 애플리케이션을 작성하는 경우 COleLinkingDoc에서 문서 클래스를 파생합니다. 서버 애플리케이션 또는 컨테이너/서버 조합을 작성하는 경우 COleServerDoc에서 문서 클래스를 파생합니다. COleLinkingDoc
에서 COleServerDoc
파생되므로 COleDocument
이러한 클래스는 사용 가능한 COleDocument
모든 서비스를 상속합니다 CDocument
.
사용 COleDocument
하려면 클래스를 파생시키고 애플리케이션의 비 OLE 데이터와 포함된 항목 또는 연결된 항목을 관리하는 기능을 추가합니다. 애플리케이션의 네이티브 데이터를 저장하기 위해 파생 클래스를 정의하는 CDocItem
경우 정의된 COleDocument
기본 구현을 사용하여 OLE 및 비 OLE 데이터를 모두 저장할 수 있습니다. OLE가 아닌 데이터를 OLE 항목과 별도로 저장하기 위해 고유한 데이터 구조를 디자인할 수도 있습니다. 자세한 내용은 컨테이너: 복합 파일 문서를 참조하세요.
CDocument
는 MAPI(메일 지원)가 있는 경우 메일을 통해 문서 전송을 지원합니다. COleDocument
는 복합 문서를 올바르게 처리하도록 OnFileSendMail을 업데이트했습니다. 자세한 내용은 MFC의 MAPI 및 MAPI 지원 문서를 참조하세요.
상속 계층 구조
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입니다.
설명
반환된 값을 또는 GetNextClientItem
GetNextServerItem
.에 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 문서로 변환하는 것입니다.
COleDocument::OnEditLinks
OLE 편집/링크 대화 상자를 표시합니다.
afx_msg void OnEditLinks();
설명
OnEditLinks
는 사용자가 연결된 개체를 COleLinksDialog
변경할 수 있는 링크 대화 상자를 만들고 시작합니다.
COleDocument::OnFileSendMail
문서를 첨부 파일로 사용하여 상주 메일 호스트(있는 경우)를 통해 메시지를 보냅니다.
afx_msg void OnFileSendMail();
설명
OnFileSendMail
호출 OnSaveDocument
하여 제목 없는 문서를 직렬화(저장)하고 수정한 문서를 임시 파일로 저장한 다음 전자 메일을 통해 전송합니다. 문서가 수정되지 않은 경우 임시 파일이 필요하지 않습니다. 원본이 전송됩니다. OnFileSendMail
는 아직 로드되지 않은 경우 MAPI32.DLL 로드합니다.
구현CDocument
과 OnFileSendMail
달리 이 함수는 복합 파일을 올바르게 처리합니다.
자세한 내용은 MFC 문서의 MAPI 토픽 및 MAPI 지원을 참조하세요.
COleDocument::OnShowViews
프레임워크는 문서의 표시 유형 상태가 변경된 후 이 함수를 호출합니다.
virtual void OnShowViews(BOOL bVisible);
매개 변수
bVisible
문서가 표시되거나 보이지 않게 되었는지 여부를 나타냅니다.
설명
이 함수의 기본 버전은 아무 작업도 수행하지 않습니다. 문서의 표시 유형이 변경되면 애플리케이션이 특별한 처리를 수행해야 하는 경우 이를 재정의합니다.
COleDocument::OnUpdateEditChangeIcon
편집 메뉴에서 변경 아이콘 명령을 업데이트하기 위해 프레임워크에서 호출됩니다.
afx_msg void OnUpdateEditChangeIcon(CCmdUI* pCmdUI);
매개 변수
pCmdUI
업데이트 명령을 생성한 CCmdUI
메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUI를 Enable
CCmdUI
통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.
설명
OnUpdateEditChangeIcon
는 문서에 유효한 아이콘이 있는지 여부에 따라 명령의 사용자 인터페이스를 업데이트합니다. 동작을 변경하려면 이 함수를 재정의합니다.
COleDocument::OnUpdateEditLinksMenu
편집 메뉴에서 링크 명령을 업데이트하기 위해 프레임워크에서 호출됩니다.
afx_msg void OnUpdateEditLinksMenu(CCmdUI* pCmdUI);
매개 변수
pCmdUI
업데이트 명령을 생성한 CCmdUI
메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUI를 Enable
CCmdUI
통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.
설명
문서의 OnUpdateEditLinksMenu
첫 번째 OLE 항목부터 각 항목에 액세스하고, 항목이 링크인지 여부를 테스트하고, 링크인 경우 링크 명령을 사용하도록 설정합니다. 동작을 변경하려면 이 함수를 재정의합니다.
COleDocument::OnUpdateObjectVerbMenu
프레임워크에서 호출하여 편집 메뉴의 ObjectName 명령과 ObjectName 명령에서 액세스한 동사 하위 메뉴를 업데이트합니다. 여기서 ObjectName은 문서에 포함된 OLE 개체의 이름입니다.
afx_msg void OnUpdateObjectVerbMenu(CCmdUI* pCmdUI);
매개 변수
pCmdUI
업데이트 명령을 생성한 CCmdUI
메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUI를 Enable
CCmdUI
통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.
설명
OnUpdateObjectVerbMenu
는 문서에 유효한 개체가 있는지 여부에 따라 ObjectName 명령의 사용자 인터페이스를 업데이트합니다. 개체가 있는 경우 편집 메뉴의 ObjectName 명령을 사용할 수 있습니다. 이 메뉴 명령을 선택하면 동사 하위 메뉴가 표시됩니다. 동사 하위 메뉴에는 개체에 사용할 수 있는 모든 동사 명령(예: 편집, 속성 등)이 포함됩니다. 동작을 변경하려면 이 함수를 재정의합니다.
COleDocument::OnUpdatePasteLinkMenu
연결된 OLE 항목을 클립보드에서 붙여넣을 수 있는지 여부를 확인하기 위해 프레임워크에서 호출됩니다.
afx_msg void OnUpdatePasteLinkMenu(CCmdUI* pCmdUI);
매개 변수
pCmdUI
업데이트 명령을 생성한 CCmdUI
메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUI를 Enable
CCmdUI
통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.
설명
항목을 문서에 붙여 넣을 수 있는지 여부에 따라 선택하여 붙여넣기 메뉴 명령을 사용하거나 사용하지 않도록 설정합니다.
COleDocument::OnUpdatePasteMenu
포함된 OLE 항목을 클립보드에서 붙여넣을 수 있는지 여부를 결정하기 위해 프레임워크에서 호출됩니다.
afx_msg void OnUpdatePasteMenu(CCmdUI* pCmdUI);
매개 변수
pCmdUI
업데이트 명령을 생성한 CCmdUI
메뉴를 나타내는 구조체에 대한 포인터입니다. 업데이트 처리기는 pCmdUI를 Enable
CCmdUI
통해 구조체의 멤버 함수를 호출하여 사용자 인터페이스를 업데이트합니다.
설명
붙여넣기 메뉴 명령 및 단추는 항목을 문서에 붙여 넣을 수 있는지 여부에 따라 사용하거나 사용하지 않도록 설정됩니다.
COleDocument::RemoveItem
문서에서 항목을 제거하려면 이 함수를 호출합니다.
virtual void RemoveItem(CDocItem* pItem);
매개 변수
pItem
제거할 문서 항목에 대한 포인터입니다.
설명
일반적으로 이 함수를 명시적으로 호출할 필요가 없습니다. 에 대한 COleClientItem
소멸자가 호출합니다.COleServerItem
COleDocument::UpdateModifiedFlag
포함된 OLE 항목이 수정된 경우 문서를 수정된 것으로 표시하려면 이 함수를 호출합니다.
virtual void UpdateModifiedFlag();
설명
이렇게 하면 문서의 네이티브 데이터가 수정되지 않은 경우에도 닫기 전에 문서를 저장하라는 메시지가 프레임워크에 표시됩니다.