COleServerDoc 클래스
OLE 서버 문서의 기본 클래스입니다.
구문
class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc
멤버
공용 생성자
속성 | 설명 |
---|---|
COleServerDoc::COleServerDoc | COleServerDoc 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
COleServerDoc::ActivateDocObject | 연결된 DocObject 문서를 활성화합니다. |
COleServerDoc::ActivateInPlace | 현재 위치 편집을 위해 문서를 활성화합니다. |
COleServerDoc::D eactivateAndUndo | 서버의 사용자 인터페이스를 비활성화합니다. |
COleServerDoc::D iscardUndoState | 실행 취소 상태 정보를 삭제합니다. |
COleServerDoc::GetClientSite | 기본 인터페이스에 대한 포인터를 검색합니다 IOleClientSite . |
COleServerDoc::GetEmbeddedItem | 전체 문서를 나타내는 항목에 대한 포인터를 반환합니다. |
COleServerDoc::GetItemClipRect | 현재 위치 편집을 위해 현재 클리핑 사각형을 반환합니다. |
COleServerDoc::GetItemPosition | 현재 위치 사각형을 현재 위치 편집을 위해 컨테이너 애플리케이션의 클라이언트 영역을 기준으로 반환합니다. |
COleServerDoc::GetZoomFactor | 확대/축소 인수를 픽셀 단위로 반환합니다. |
COleServerDoc::IsDocObject | 문서가 DocObject인지 여부를 확인합니다. |
COleServerDoc::IsEmbedded | 문서가 컨테이너 문서에 포함되어 있는지 또는 독립 실행형으로 실행되는지를 나타냅니다. |
COleServerDoc::IsInPlaceActive | 항목이 현재 활성화되어 있으면 TRUE를 반환합니다. |
COleServerDoc::NotifyChanged | 컨테이너에 사용자가 문서를 변경했음을 알 수 있습니다. |
COleServerDoc::NotifyClosed | 사용자가 문서를 닫았다는 것을 컨테이너에 알깁니다. |
COleServerDoc::NotifyRename | 컨테이너에 사용자가 문서의 이름을 변경했음을 알 수 있습니다. |
COleServerDoc::NotifySaved | 사용자가 문서를 저장했음을 컨테이너에 알깁니다. |
COleServerDoc::OnDeactivate | 사용자가 현재 위치에서 활성화된 항목을 비활성화할 때 프레임워크에서 호출됩니다. |
COleServerDoc::OnDeactivateUI | 현재 위치 활성화를 위해 만든 컨트롤 및 기타 사용자 인터페이스 요소를 삭제하기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::OnDocWindowActivate | 컨테이너의 문서 프레임 창이 활성화되거나 비활성화될 때 프레임워크에서 호출됩니다. |
COleServerDoc::OnResizeBorder | 컨테이너 애플리케이션의 프레임 창 또는 문서 창 크기가 조정될 때 프레임워크에서 호출됩니다. |
COleServerDoc::OnShowControlBars | 현재 위치 편집을 위해 컨트롤 막대를 표시하거나 숨기기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::OnUpdateDocument | 포함된 항목인 서버 문서가 저장되어 컨테이너의 항목 복사본을 업데이트할 때 프레임워크에서 호출됩니다. |
COleServerDoc::RequestPositionChange | 현재 위치 편집 프레임의 위치를 변경합니다. |
COleServerDoc::SaveEmbedding | 컨테이너 애플리케이션에 문서를 저장하도록 지시합니다. |
COleServerDoc::ScrollContainerBy | 컨테이너 문서를 스크롤합니다. |
COleServerDoc::UpdateAllItems | 컨테이너에 사용자가 문서를 변경했음을 알 수 있습니다. |
보호된 메서드
속성 | 설명 |
---|---|
COleServerDoc::CreateInPlaceFrame | 현재 위치 편집을 위한 프레임 창을 만들기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::D estroyInPlaceFrame | 현재 위치 편집을 위해 프레임 창을 삭제하기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::GetDocObjectServer | 이 함수를 재정의하여 새 CDocObjectServer 개체를 만들고 이 문서가 DocObject 컨테이너임을 나타냅니다. |
COleServerDoc::OnClose | 컨테이너가 문서 닫기를 요청할 때 프레임워크에서 호출됩니다. |
COleServerDoc::OnExecOleCmd | 지정된 명령을 실행하거나 명령에 대한 도움말을 표시합니다. |
COleServerDoc::OnFrameWindowActivate | 컨테이너의 프레임 창이 활성화되거나 비활성화될 때 프레임워크에서 호출됩니다. |
COleServerDoc::OnGetEmbeddedItem | 전체 문서를 나타내는 항목을 가져오기 COleServerItem 위해 호출되며 포함된 항목을 가져오는 데 사용됩니다. 구현이 필요합니다. |
COleServerDoc::OnReactivateAndUndo | 현재 위치 편집 중에 변경된 내용을 실행 취소하기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::OnSetHostNames | 컨테이너가 포함된 개체의 창 제목을 설정하는 경우 프레임워크에서 호출됩니다. |
COleServerDoc::OnSetItemRects | 컨테이너 애플리케이션의 창 내에 현재 위치 편집 프레임 창을 배치하기 위해 프레임워크에서 호출됩니다. |
COleServerDoc::OnShowDocument | 문서를 표시하거나 숨기기 위해 프레임워크에서 호출됩니다. |
설명
서버 문서에는 포함되거나 연결된 항목에 대한 서버 인터페이스를 나타내는 COleServerItem 개체가 포함될 수 있습니다. 포함된 항목을 편집하기 위해 컨테이너에서 서버 애플리케이션을 시작하면 해당 항목이 자체 서버 문서로 로드됩니다. COleServerDoc
개체에는 전체 문서로 구성된 하나의 COleServerItem
개체만 포함됩니다. 연결된 항목을 편집하기 위해 컨테이너에서 서버 애플리케이션을 시작하면 기존 문서가 디스크에서 로드됩니다. 문서 내용의 일부가 강조 표시되어 연결된 항목을 나타냅니다.
COleServerDoc
개체는 COleClientItem 클래스의 항목을 포함할 수도 있습니다. 이렇게 하면 컨테이너 서버 애플리케이션을 만들 수 있습니다. 프레임워크는 개체를 서비스하는 동안 항목을 제대로 저장하는 COleClientItem
함수를 COleServerItem
제공합니다.
서버 애플리케이션에서 링크를 지원하지 않는 경우 서버 문서에는 항상 포함된 전체 개체를 문서로 나타내는 하나의 서버 항목만 포함됩니다. 서버 애플리케이션이 링크를 지원하는 경우 선택 영역을 클립보드에 복사할 때마다 서버 항목을 만들어야 합니다.
사용COleServerDoc
하려면 클래스를 파생시키고 OnGetEmbeddedItem 멤버 함수를 구현하여 서버에서 포함된 항목을 지원할 수 있도록 합니다. 클래스 COleServerItem
를 파생하여 문서의 항목을 구현하고 해당 클래스 OnGetEmbeddedItem
의 개체를 반환합니다.
연결된 항목을 COleServerDoc
지원하려면 OnGetLinkedItem 멤버 함수를 제공합니다. 사용자 고유의 문서 항목 관리 방법이 있는 경우 기본 구현을 사용하거나 재정의할 수 있습니다.
애플리케이션에서 지원하는 서버 문서의 각 유형에 대해 하나의 COleServerDoc
파생 클래스가 필요합니다. 예를 들어 서버 애플리케이션이 워크시트와 차트를 지원하는 경우 두 개의 COleServerDoc
파생 클래스가 필요합니다.
서버에 대한 자세한 내용은 서버: 서버 구현 문서를 참조하세요.
상속 계층 구조
COleServerDoc
요구 사항
헤더: afxole.h
COleServerDoc::ActivateDocObject
연결된 DocObject 문서를 활성화합니다.
void ActivateDocObject();
설명
기본적으로 COleServerDoc
활성 문서(DocObjects라고도 함)는 지원하지 않습니다. 이 지원을 사용하려면 GetDocObjectServer 및 클래스 CDocObjectServer를 참조하세요.
COleServerDoc::ActivateInPlace
현재 위치 편집을 위해 항목을 활성화합니다.
BOOL ActivateInPlace();
Return Value
성공하면 0이 아닌 값입니다. 그렇지 않으면 항목이 완전히 열려 있음을 나타내는 0입니다.
설명
이 함수는 현재 위치 활성화에 필요한 모든 작업을 수행합니다. 현재 위치 프레임 창을 만들고, 활성화하고, 항목에 크기를 지정하고, 공유 메뉴 및 기타 컨트롤을 설정하고, 항목을 보기로 스크롤하고, 포커스를 현재 위치 프레임 창으로 설정합니다.
이 함수는 COleServerItem::OnShow의 기본 구현에 의해 호출됩니다. 애플리케이션이 현재 위치 활성화(예: Play)를 위해 다른 동사를 지원하는 경우 이 함수를 호출합니다.
COleServerDoc::COleServerDoc
COleServerDoc
OLE 시스템 DLL에 연결하지 않고 개체를 생성합니다.
COleServerDoc();
설명
COleLinkingDoc::Register를 호출하여 OLE와의 통신을 열어야 합니다. 애플리케이션 COleLinkingDoc
COleLinkingDoc::Register
에서 COleTemplateServer를 사용하는 경우 '의 OnNewDocument
구현 및 OnOpenDocument
OnSaveDocument
.
COleServerDoc::CreateInPlaceFrame
프레임워크는 이 함수를 호출하여 현재 위치 편집을 위한 프레임 창을 만듭니다.
virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);
매개 변수
pParentWnd
컨테이너 애플리케이션의 부모 창에 대한 포인터입니다.
Return Value
현재 위치 프레임 창에 대한 포인터이거나, 실패하면 NULL입니다.
설명
기본 구현에서는 문서 템플릿에 지정된 정보를 사용하여 프레임을 만듭니다. 사용된 뷰는 문서에 대해 만든 첫 번째 보기입니다. 이 보기는 원래 프레임에서 일시적으로 분리되어 새로 만든 프레임에 연결됩니다.
이는 고급 재정의 가능입니다.
COleServerDoc::D eactivateAndUndo
애플리케이션에서 실행 취소를 지원하고 사용자가 항목을 활성화한 후 편집하기 전에 실행 취소를 선택하는 경우 이 함수를 호출합니다.
BOOL DeactivateAndUndo();
Return Value
성공하면 0이 아닌 값이고, 실패하면 0입니다.
설명
컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 이 함수를 호출하면 COleClientItem::OnDeactivateAndUndo 가 호출되어 서버의 사용자 인터페이스가 비활성화됩니다.
COleServerDoc::D estroyInPlaceFrame
프레임워크는 현재 위치 프레임 창을 삭제하고 현재 위치 활성화 전에 서버 애플리케이션의 문서 창을 해당 상태로 반환하기 위해 이 함수를 호출합니다.
virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);
매개 변수
pFrameWnd
제거할 현재 위치 프레임 창에 대한 포인터입니다.
설명
이는 고급 재정의 가능입니다.
COleServerDoc::D iscardUndoState
사용자가 실행 취소할 수 없는 편집 작업을 수행하는 경우 이 함수를 호출하여 컨테이너 애플리케이션이 실행 취소 상태 정보를 삭제하도록 합니다.
BOOL DiscardUndoState();
Return Value
성공하면 0이 아닌 값이고, 실패하면 0입니다.
설명
이 함수는 실행 취소를 지원하는 서버가 사용할 수 없는 실행 취소 상태 정보에서 사용할 수 있는 리소스를 해제할 수 있도록 제공됩니다.
COleServerDoc::GetClientSite
기본 인터페이스에 대한 포인터를 검색합니다 IOleClientSite
.
LPOLECLIENTSITE GetClientSite() const;
Return Value
기본 IOleClientSite 인터페이스에 대한 포인터를 검색합니다.
COleServerDoc::GetDocObjectServer
이 함수를 재정의하여 새 CDocObjectServer
항목을 만들고 포인터를 반환합니다.
virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);
매개 변수
pDocSite
IOleDocumentSite
이 문서를 서버에 연결할 인터페이스에 대한 포인터입니다.
Return Value
에 대한 포인터입니다. CDocObjectServer
작업이 실패한 경우 NULL입니다.
설명
DocObject 서버가 활성화되면 NULL이 아닌 포인터의 반환은 클라이언트가 DocObjects를 지원할 수 있음을 보여 줍니다. 기본 구현은 NULL을 반환합니다.
DocObjects를 지원하는 문서에 대한 일반적인 구현은 단순히 새 CDocObjectServer
개체를 할당하고 호출자에게 반환합니다. 예시:
CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
return new CDocObjectServer(this, pSite);
}
COleServerDoc::GetEmbeddedItem
이 함수를 호출하여 전체 문서를 나타내는 항목에 대한 포인터를 가져옵니다.
COleServerItem* GetEmbeddedItem();
Return Value
전체 문서를 나타내는 항목에 대한 포인터입니다. 작업이 실패한 경우 NULL입니다.
설명
기본 구현이 없는 가상 함수인 COleServerDoc::OnGetEmbeddedItem을 호출합니다.
COleServerDoc::GetItemClipRect
멤버 함수를 GetItemClipRect
호출하여 현재 위치에서 편집 중인 항목의 클리핑 사각형 좌표를 가져옵니다.
void GetItemClipRect(LPRECT lpClipRect) const;
매개 변수
lpClipRect
항목의 RECT
클리핑 사각형 좌표를 받을 구조체 또는 CRect
개체에 대한 포인터입니다.
설명
좌표는 컨테이너 애플리케이션 창의 클라이언트 영역을 기준으로 픽셀 단위입니다.
그리기가 클리핑 사각형 외부에서는 발생하지 않아야 합니다. 일반적으로 그리기는 자동으로 제한됩니다. 이 함수를 사용하여 사용자가 문서의 표시된 부분 바깥쪽을 스크롤했는지 여부를 확인합니다. 그렇다면 ScrollContainerBy를 호출하여 필요에 따라 컨테이너 문서를 스크롤합니다.
COleServerDoc::GetItemPosition
멤버 함수를 GetItemPosition
호출하여 편집 중인 항목의 좌표를 가져옵니다.
void GetItemPosition(LPRECT lpPosRect) const;
매개 변수
lpPosRect
항목의 RECT
좌표를 받을 구조체 또는 CRect
개체에 대한 포인터입니다.
설명
좌표는 컨테이너 애플리케이션 창의 클라이언트 영역을 기준으로 픽셀 단위입니다.
항목의 위치를 현재 클리핑 사각형과 비교하여 화면에 항목이 표시되는 정도(또는 표시되지 않음)를 확인할 수 있습니다.
COleServerDoc::GetZoomFactor
멤버 함수는 GetZoomFactor
현재 위치 편집을 위해 활성화된 항목의 "확대/축소 비율"을 결정합니다.
BOOL GetZoomFactor(
LPSIZE lpSizeNum = NULL,
LPSIZE lpSizeDenom = NULL,
LPCRECT lpPosRect = NULL) const;
매개 변수
lpSizeNum
확대/축소 비율의 분자를 보유할 클래스 CSize
의 개체에 대한 포인터입니다. NULL일 수 있습니다.
lpSizeDenom
확대/축소 비율의 분모를 보유할 클래스 CSize
개체에 대한 포인터입니다. NULL일 수 있습니다.
lpPosRect
항목의 새 위치를 설명하는 클래스 CRect
개체에 대한 포인터입니다. 이 인수가 NULL이면 함수는 항목의 현재 위치를 사용합니다.
Return Value
현재 위치 편집을 위해 항목이 활성화되고 확대/축소 인수가 100%(1:1)를 초과하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
확대/축소 비율(픽셀)은 항목의 현재 범위에 대한 크기의 비율입니다. 컨테이너 애플리케이션이 항목의 익스텐트를 설정하지 않은 경우 COleServerItem::OnGetExtent에 의해 결정된 자연 범위가 사용됩니다.
함수는 처음 두 인수를 항목의 "확대/축소 비율"의 분자 및 분모로 설정합니다. 항목이 현재 위치에서 편집되지 않는 경우 함수는 이러한 인수를 기본값 100%(또는 1:1)로 설정하고 0을 반환합니다. 자세한 내용은 Technical Note 40, MFC/OLE 현재 위치 크기 조정 및 확대/축소를 참조하세요.
COleServerDoc::IsDocObject
문서가 DocObject인지 여부를 확인합니다.
BOOL IsDocObject() const;
Return Value
문서가 DocObject이면 TRUE이고, 그렇지 않으면 FALSE입니다.
COleServerDoc::IsEmbedded
멤버 함수를 IsEmbedded
호출하여 문서가 컨테이너에 포함된 개체를 나타내는지 여부를 확인합니다.
BOOL IsEmbedded() const;
Return Value
개체가 컨테이너에 COleServerDoc
포함된 개체를 나타내는 문서이면 0이 아니고, 그렇지 않으면 0입니다.
설명
컨테이너 애플리케이션에서 링크로 조작할 수 있지만 파일에서 로드된 문서는 포함되지 않습니다. 컨테이너 문서에 포함된 문서는 포함된 것으로 간주됩니다.
COleServerDoc::IsInPlaceActive
멤버 함수를 IsInPlaceActive
호출하여 항목이 현재 현재 현재 활성 상태인지 여부를 확인합니다.
BOOL IsInPlaceActive() const;
Return Value
개체가 COleServerDoc
활성 상태이면 0이 아니고, 그렇지 않으면 0입니다.
COleServerDoc::NotifyChanged
문서에 연결된 모든 연결된 항목에 문서가 변경되었음을 알리려면 이 함수를 호출합니다.
void NotifyChanged();
설명
일반적으로 사용자가 서버 문서의 차원과 같은 일부 전역 특성을 변경한 후 이 함수를 호출합니다. 자동 링크가 있는 문서에 OLE 항목이 연결된 경우 변경 내용을 반영하도록 항목이 업데이트됩니다. Microsoft Foundation 클래스 라이브러리 로 작성된 컨테이너 애플리케이션에서 OnChange 멤버 함수 COleClientItem
가 호출됩니다.
참고 항목
이 함수는 OLE 1과의 호환성을 위해 포함됩니다. 새 애플리케이션은 UpdateAllItems를 사용해야 합니다.
COleServerDoc::NotifyClosed
이 함수를 호출하여 문서가 닫혔는지 컨테이너에 알립니다.
void NotifyClosed();
설명
사용자가 파일 메뉴에서 NotifyClosed
닫기 명령을 선택하면 OnCloseDocument 멤버 함수의 구현에서 호출COleServerDoc
됩니다. Microsoft Foundation 클래스 라이브러리 로 작성된 컨테이너 애플리케이션에서 OnChange 멤버 함수 COleClientItem
가 호출됩니다.
COleServerDoc::NotifyRename
사용자가 서버 문서의 이름을 바꾼 후 이 함수를 호출합니다.
void NotifyRename(LPCTSTR lpszNewName);
매개 변수
lpszNewName
서버 문서의 새 이름을 지정하는 문자열에 대한 포인터입니다. 일반적으로 정규화된 경로입니다.
설명
사용자가 파일 메뉴에서 NotifyRename
다른 이름으로 저장 명령을 선택하면 OnSaveDocument 멤버 함수의 구현에서 호출COleServerDoc
됩니다. 이 함수는 OLE 시스템 DLL에 알립니다. 그러면 컨테이너에 알립니다. Microsoft Foundation 클래스 라이브러리 로 작성된 컨테이너 애플리케이션에서 OnChange 멤버 함수 COleClientItem
가 호출됩니다.
COleServerDoc::NotifySaved
사용자가 서버 문서를 저장한 후 이 함수를 호출합니다.
void NotifySaved();
설명
사용자가 파일 메뉴에서 NotifySaved
저장 명령을 선택하면 OnSaveDocument의 구현에서 COleServerDoc
사용자를 위해 호출됩니다. 이 함수는 OLE 시스템 DLL에 알립니다. 그러면 컨테이너에 알립니다. Microsoft Foundation 클래스 라이브러리 로 작성된 컨테이너 애플리케이션에서 OnChange 멤버 함수 COleClientItem
가 호출됩니다.
COleServerDoc::OnClose
컨테이너가 서버 문서를 닫을 것을 요청할 때 프레임워크에서 호출됩니다.
virtual void OnClose(OLECLOSE dwCloseOption);
매개 변수
dwCloseOption
열거형 OLECLOSE의 값입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.
OLECLOSE_SAVEIFDIRTY 파일이 수정된 경우 저장됩니다.
OLECLOSE_NOSAVE 파일을 저장하지 않고 닫습니다.
OLECLOSE_PROMPTSAVE 파일이 수정된 경우 저장하라는 메시지가 사용자에게 표시됩니다.
설명
기본 구현은 .를 호출합니다 CDocument::OnCloseDocument
.
자세한 내용 및 추가 값은 Windows SDK의 OLECLOSE를 참조하세요.
COleServerDoc::OnDeactivate
사용자가 현재 현재 현재 활성 상태인 포함되거나 연결된 항목을 비활성화할 때 프레임워크에서 호출됩니다.
virtual void OnDeactivate();
설명
이 함수는 컨테이너 애플리케이션의 사용자 인터페이스를 원래 상태로 복원하고 현재 위치 활성화를 위해 만든 메뉴 및 기타 컨트롤을 모두 제거합니다.
실행 취소 상태 정보는 이 시점에서 무조건 해제되어야 합니다.
자세한 내용은 정품 인증 문서를 참조하세요.
COleServerDoc::OnDeactivateUI
사용자가 현재 위치에서 활성화된 항목을 비활성화할 때 호출됩니다.
virtual void OnDeactivateUI(BOOL bUndoable);
매개 변수
bUndoable
편집 변경 내용을 실행 취소할 수 있는지 여부를 지정합니다.
설명
이 함수는 컨테이너 애플리케이션의 사용자 인터페이스를 원래 상태로 복원하여 현재 위치 활성화를 위해 만든 메뉴 및 기타 컨트롤을 숨깁니다.
프레임워크는 항상 bUndoable을 FALSE로 설정합니다. 서버에서 실행 취소를 지원하고 실행 취소할 수 있는 작업이 있는 경우 bUndoable이 TRUE로 설정된 기본 클래스 구현을 호출합니다.
COleServerDoc::OnDocWindowActivate
프레임워크는 현재 위치 편집을 위해 문서 창을 활성화하거나 비활성화하기 위해 이 함수를 호출합니다.
virtual void OnDocWindowActivate(BOOL bActivate);
매개 변수
bActivate
문서 창을 활성화할지 비활성화할지 여부를 지정합니다.
설명
기본 구현은 프레임 수준 사용자 인터페이스 요소를 적절하게 제거하거나 추가합니다. 항목이 포함된 문서가 활성화되거나 비활성화될 때 추가 작업을 수행하려면 이 함수를 재정의합니다.
자세한 내용은 정품 인증 문서를 참조하세요.
COleServerDoc::OnExecOleCmd
프레임워크는 이 함수를 호출하여 지정된 명령을 실행하거나 명령에 대한 도움말을 표시합니다.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut);
매개 변수
pguidCmdGroup
명령 집합을 식별하는 GUID에 대한 포인터입니다. 기본 명령 그룹을 나타내는 NULL일 수 있습니다.
nCmdID
실행할 명령입니다. pguidCmdGroup으로 식별되는 그룹에 있어야 합니다.
nCmdExecOut
개체가 명령을 실행하는 방식, OLECMDEXECOPT 열거형에서 다음 값 중 하나 이상:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
명령에 대한 입력 인수를 포함하는 VARIANTARG에 대한 포인터입니다. NULL일 수 있습니다.
pvarargOut
명령에서 출력 반환 값을 수신하는 VARIANTARG에 대한 포인터입니다. NULL일 수 있습니다.
Return Value
성공하면 S_OK 반환합니다. 그렇지 않으면 다음 오류 코드 중 하나입니다.
값 | 설명 |
---|---|
E_UNEXPECTED | 예기치 않은 오류가 발생했습니다. |
E_FAIL | 오류가 발생했습니다 |
E_NOTIMPL | MFC 자체가 명령을 번역하고 디스패치하려고 시도해야 했음을 나타냅니다. |
OLECMDERR_E_UNKNOWNGROUP | pguidCmdGroup 은 NULL이 아니지만 인식된 명령 그룹을 지정하지 않습니다. |
OLECMDERR_E_NOTSUPPORTED | nCmdID 가 pguidCmdGroup 그룹에서 유효한 명령으로 인식되지 않습니다. |
OLECMDERR_DISABLED | nCmdID로 식별된 명령이 비활성화되어 실행될 수 없습니다. |
OLECMDERR_NOHELP | 호출자가 nCmdID로 식별된 명령에 대한 도움을 요청했지만 사용할 수 있는 도움말은 없습니다. |
OLECMDERR_CANCELED | 사용자가 실행을 취소했습니다. |
설명
COleCmdUI
은 DocObject 사용자 인터페이스 명령의 다른 속성을 사용, 업데이트 및 설정하는 데 사용할 수 있습니다. 명령을 초기화한 후에는 .를 사용하여 명령을 실행할 OnExecOleCmd
수 있습니다.
프레임워크는 OLE 문서 명령을 번역하고 디스패치하기 전에 함수를 호출합니다. 표준 OLE 문서 명령을 처리하기 위해 이 함수를 재정의할 필요는 없지만 사용자 지정 명령을 처리하거나 매개 변수를 허용하거나 결과를 반환하는 명령을 처리하려면 이 함수에 대한 재정의를 제공해야 합니다.
대부분의 명령은 인수를 사용하거나 값을 반환하지 않습니다. 대부분의 명령에서 호출자는 pvarargIn 및 pvarargOut에 대한 NULL을 전달할 수 있습니다. 입력 값이 예상되는 명령의 경우 호출자는 VARIANTARG 변수를 선언 및 초기화하고 pvarargIn의 변수에 대한 포인터를 전달할 수 있습니다. 단일 값이 필요한 명령의 경우 인수를 VARIANTARG에 직접 저장하고 함수에 전달할 수 있습니다. 지원되는 형식(예: IDispatch
SAFEARRAY) 중 하나를 사용하여 VARIANTARG 내에서 여러 인수를 패키지해야 합니다.
마찬가지로 명령이 인수를 반환하는 경우 호출자는 VARIANTARG를 선언하고, VT_EMPTY 초기화하고, pvarargOut에서 해당 주소를 전달해야 합니다. 명령이 단일 값을 반환하는 경우 개체는 해당 값을 pvarargOut에 직접 저장할 수 있습니다. VARIANTARG에 적합한 방식으로 여러 출력 값을 패키지해야 합니다.
이 함수의 기본 클래스 구현은 명령 대상과 연결된 OLE_COMMAND_MAP 구조를 안내하고 명령을 적절한 처리기에 디스패치하려고 합니다. 기본 클래스 구현은 인수를 수락하거나 값을 반환하지 않는 명령에서만 작동합니다. 인수를 수락하거나 값을 반환하는 명령을 처리해야 하는 경우 이 함수를 재정의 하고 pvarargIn 및 pvarargOut 매개 변수를 직접 사용해야 합니다.
COleServerDoc::OnFrameWindowActivate
프레임워크는 컨테이너 애플리케이션의 프레임 창이 활성화되거나 비활성화될 때 이 함수를 호출합니다.
virtual void OnFrameWindowActivate(BOOL bActivate);
매개 변수
bActivate
프레임 창을 활성화할지 비활성화할지 여부를 지정합니다.
설명
기본 구현은 프레임 창에 있을 수 있는 모든 도움말 모드를 취소합니다. 프레임 창이 활성화되거나 비활성화될 때 특수한 처리를 수행하려는 경우 이 함수를 재정의합니다.
자세한 내용은 정품 인증 문서를 참조하세요.
COleServerDoc::OnGetEmbeddedItem
컨테이너 애플리케이션이 서버 애플리케이션을 호출하여 포함된 항목을 만들거나 편집할 때 프레임워크에서 호출됩니다.
virtual COleServerItem* OnGetEmbeddedItem() = 0;
Return Value
전체 문서를 나타내는 항목에 대한 포인터입니다. 작업이 실패한 경우 NULL입니다.
설명
기본 구현은 없습니다. 전체 문서를 나타내는 항목을 반환하려면 이 함수를 재정의해야 합니다. 이 반환 값은 파생 클래스의 COleServerItem
개체여야 합니다.
COleServerDoc::OnReactivateAndUndo
프레임워크는 사용자가 현재 위치에서 활성화, 변경 및 이후에 비활성화된 항목에 대한 변경 내용을 실행 취소하도록 선택할 때 이 함수를 호출합니다.
virtual BOOL OnReactivateAndUndo();
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
기본 구현은 실패를 나타내기 위해 FALSE를 반환하는 것 외에는 아무 작업도 수행하지 않습니다.
애플리케이션에서 실행 취소를 지원하는 경우 이 함수를 재정의합니다. 일반적으로 실행 취소 작업을 수행한 다음, 호출 ActivateInPlace
하여 항목을 활성화합니다. 컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 호출 COleClientItem::ReactivateAndUndo
하면 이 함수가 호출됩니다.
COleServerDoc::OnResizeBorder
프레임워크는 컨테이너 애플리케이션의 프레임 창 크기가 변경되면 이 함수를 호출합니다.
virtual void OnResizeBorder(
LPCRECT lpRectBorder,
LPOLEINPLACEUIWINDOW lpUIWindow,
BOOL bFrame);
매개 변수
lpRectBorder
테두리의 RECT
좌표를 지정하는 구조체 또는 CRect
개체에 대한 포인터입니다.
lpUIWindow
현재 현재 위치 편집 세션을 소유하는 클래스 IOleInPlaceUIWindow
의 개체에 대한 포인터입니다.
bFrame
lpUIWindow가 컨테이너 애플리케이션의 최상위 프레임 창을 가리키는 경우 TRUE이거나, lpUIWindow가 컨테이너 애플리케이션의 문서 수준 프레임 창을 가리키는 경우 FALSE입니다.
설명
이 함수는 새 창 크기에 따라 도구 모음 및 기타 사용자 인터페이스 요소의 크기를 조정하고 조정합니다.
자세한 내용은 Windows SDK의 IOleInPlaceUIWindow 를 참조하세요.
이는 고급 재정의 가능입니다.
COleServerDoc::OnSetHostNames
컨테이너가 이 문서의 호스트 이름을 설정하거나 변경할 때 프레임워크에서 호출됩니다.
virtual void OnSetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
매개 변수
lpszHost
컨테이너 애플리케이션의 이름을 지정하는 문자열에 대한 포인터입니다.
lpszHostObj
문서의 컨테이너 이름을 지정하는 문자열에 대한 포인터입니다.
설명
기본 구현은 이 문서를 참조하는 모든 보기의 문서 제목을 변경합니다.
애플리케이션이 다른 메커니즘을 통해 타이틀을 설정하는 경우 이 함수를 재정의합니다.
COleServerDoc::OnSetItemRects
프레임워크는 이 함수를 호출하여 컨테이너 애플리케이션의 프레임 창 내에 현재 위치 편집 프레임 창을 배치합니다.
virtual void OnSetItemRects(
LPCRECT lpPosRect,
LPCRECT lpClipRect);
매개 변수
lpPosRect
RECT
컨테이너 애플리케이션의 클라이언트 영역을 기준으로 현재 위치 프레임 창의 위치를 지정하는 구조체 또는 CRect
개체에 대한 포인터입니다.
lpClipRect
RECT
컨테이너 애플리케이션의 클라이언트 영역을 기준으로 현재 위치 프레임 창의 클리핑 사각형을 지정하는 구조체 또는 CRect
개체에 대한 포인터입니다.
설명
필요한 경우 이 함수를 재정의하여 뷰의 확대/축소 인수를 업데이트합니다.
이 함수는 일반적으로 호출에 RequestPositionChange
대한 응답으로 호출되지만 컨테이너에서 언제든지 호출하여 현재 위치 항목에 대한 위치 변경을 요청할 수 있습니다.
COleServerDoc::OnShowControlBars
프레임워크는 이 함수를 호출하여 pFrameWnd로 식별된 프레임 창과 연결된 서버 애플리케이션의 컨트롤 막대를 표시하거나 숨깁니다.
virtual void OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
매개 변수
pFrameWnd
컨트롤 막대를 숨기거나 표시해야 하는 프레임 창에 대한 포인터입니다.
bShow
컨트롤 막대가 표시되거나 숨겨지는지 여부를 결정합니다.
설명
기본 구현은 해당 프레임 창에서 소유한 모든 컨트롤 막대를 열거하고 숨기거나 표시합니다.
COleServerDoc::OnShowDocument
프레임워크는 서버 문서를 숨기거나 표시해야 하는 경우 함수를 호출 OnShowDocument
합니다.
virtual void OnShowDocument(BOOL bShow);
매개 변수
bShow
문서에 대한 사용자 인터페이스를 표시할지 숨길지 여부를 지정합니다.
설명
bShow가 TRUE이면 기본 구현은 필요한 경우 서버 애플리케이션을 활성화하고 컨테이너 애플리케이션이 해당 창을 스크롤하여 항목이 표시되도록 합니다. bShow가 FALSE이면 기본 구현은 호출을 OnDeactivate
통해 항목을 비활성화한 다음 첫 번째 프레임 창을 제외하고 문서에 대해 만들어진 모든 프레임 창을 삭제하거나 숨깁니다. 표시되는 문서가 남아 있지 않으면 기본 구현은 서버 애플리케이션을 숨깁니다.
COleServerDoc::OnUpdateDocument
복합 문서에 포함된 항목인 문서를 저장할 때 프레임워크에서 호출됩니다.
virtual BOOL OnUpdateDocument();
Return Value
문서가 성공적으로 업데이트된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
기본 구현에서는 COleServerDoc::NotifySaved 및 COleServerDoc::SaveEmbedding 멤버 함수를 호출한 다음 문서를 정리된 것으로 표시합니다. 포함된 항목을 업데이트할 때 특수 처리를 수행하려는 경우 이 함수를 재정의합니다.
COleServerDoc::RequestPositionChange
컨테이너 애플리케이션이 항목의 위치를 변경하도록 하려면 이 멤버 함수를 호출합니다.
void RequestPositionChange(LPCRECT lpPosRect);
매개 변수
lpPosRect
항목의 RECT
새 위치를 포함하는 구조체 또는 CRect
개체에 대한 포인터입니다.
설명
이 함수는 일반적으로 현재 위치 활성 항목의 데이터가 변경될 때 (함께 UpdateAllItems
) 호출됩니다. 이 호출 후 컨테이너는 호출 OnSetItemRects
하여 변경 작업을 수행할 수도 있고 수행하지 않을 수도 있습니다. 결과 위치는 요청된 위치와 다를 수 있습니다.
COleServerDoc::SaveEmbedding
이 함수를 호출하여 컨테이너 애플리케이션에 포함된 개체를 저장하도록 지시합니다.
void SaveEmbedding();
설명
이 함수는 .에서 OnUpdateDocument
자동으로 호출됩니다. 이 함수는 디스크에서 항목을 업데이트하므로 일반적으로 특정 사용자 작업의 결과로만 호출됩니다.
COleServerDoc::ScrollContainerBy
멤버 함수를 ScrollContainerBy
호출하여 컨테이너 문서를 픽셀 sizeScroll
단위로 스크롤합니다.
BOOL ScrollContainerBy(CSize sizeScroll);
매개 변수
sizeScroll
컨테이너 문서를 스크롤할 정도를 나타냅니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
양수 값은 아래로 스크롤하고 오른쪽으로 스크롤함을 나타냅니다. 음수 값은 위쪽과 왼쪽으로 스크롤함을 나타냅니다.
COleServerDoc::UpdateAllItems
문서에 연결된 모든 연결된 항목에 문서가 변경되었음을 알리려면 이 함수를 호출합니다.
void UpdateAllItems(
COleServerItem* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
매개 변수
pSender
문서를 수정한 항목에 대한 포인터이거나, 모든 항목을 업데이트할 경우 NULL입니다.
lHint
수정에 대한 정보를 포함합니다.
pHint
수정에 대한 정보를 저장하는 개체에 대한 포인터입니다.
nDrawAspect
항목을 그릴 방법을 결정합니다. DVASPECT 열거형의 값입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
설명
일반적으로 사용자가 서버 문서를 변경한 후 이 함수를 호출합니다. 자동 링크가 있는 문서에 OLE 항목이 연결된 경우 변경 내용을 반영하도록 항목이 업데이트됩니다. Microsoft Foundation 클래스 라이브러리 로 작성된 컨테이너 애플리케이션에서 OnChange 멤버 함수 COleClientItem
가 호출됩니다.
이 함수는 pHint, lHint 및 nDrawAspect를 전달하는 송신 항목을 제외한 각 문서의 항목에 대한 멤버 함수를 호출 OnUpdate
합니다. 이러한 매개 변수를 사용하여 문서의 수정 내용에 대한 정보를 항목에 전달합니다. lHint를 사용하여 정보를 인코딩하거나 -derived 클래스를 CObject
정의하여 수정 내용에 대한 정보를 저장하고 pHint를 사용하여 해당 클래스의 개체를 전달할 수 있습니다. 프레젠테이션이 OnUpdate
변경되었는지 여부에 따라 각 항목의 업데이트를 최적화하도록 파생 클래스의 멤버 함수 COleServerItem
를 재정의합니다.
참고 항목
MFC 샘플 HIERSVR
COleLinkingDoc 클래스
계층 구조 차트
COleDocument 클래스
COleLinkingDoc 클래스
COleTemplateServer 클래스