COleServerItem 클래스
OLE 항목에 대한 서버 인터페이스를 제공합니다.
구문
class COleServerItem : public CDocItem
멤버
보호된 생성자
속성 | 설명 |
---|---|
COleServerItem::COleServerItem | COleServerItem 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
COleServerItem::AddOtherClipboardData | 개체에 프레젠테이션 및 변환 형식을 COleDataSource 배치합니다. |
COleServerItem::CopyToClipboard | 항목을 클립보드에 복사합니다. |
COleServerItem::DoDragDrop | 끌어서 놓기 작업을 수행합니다. |
COleServerItem::GetClipboardData | 데이터 전송에 사용할 데이터 원본을 가져옵니다(끌어서 놓기 또는 클립보드). |
COleServerItem::GetDocument | 항목이 포함된 서버 문서를 반환합니다. |
COleServerItem::GetEmbedSourceData | OLE 항목에 대한 CF_EMBEDSOURCE 데이터를 가져옵니다. |
COleServerItem::GetItemName | 항목의 이름을 반환합니다. 연결된 항목에만 사용됩니다. |
COleServerItem::GetLinkSourceData | OLE 항목에 대한 CF_LINKSOURCE 데이터를 가져옵니다. |
COleServerItem::GetObjectDescriptorData | OLE 항목에 대한 CF_OBJECTDESCRIPTOR 데이터를 가져옵니다. |
COleServerItem::IsConnected | 항목이 현재 활성 컨테이너에 연결되어 있는지 여부를 나타냅니다. |
COleServerItem::IsLinkedItem | 항목이 연결된 OLE 항목을 나타내는지 여부를 나타냅니다. |
COleServerItem::NotifyChanged | 자동 링크 업데이트로 모든 컨테이너를 업데이트합니다. |
COleServerItem::OnDoVerb | 동사를 실행하기 위해 호출되었습니다. |
COleServerItem::OnDraw | 컨테이너가 항목을 그리도록 요청할 때 호출됩니다. 구현이 필요합니다. |
COleServerItem::OnDrawEx | 특수 항목 그리기를 위해 호출됩니다. |
COleServerItem::OnGetClipboardData | 클립보드에 복사할 데이터를 가져오기 위해 프레임워크에서 호출됩니다. |
COleServerItem::OnGetExtent | OLE 항목의 크기를 검색하기 위해 프레임워크에서 호출됩니다. |
COleServerItem::OnInitFromData | 지정된 데이터 전송 개체의 콘텐츠를 사용하여 OLE 항목을 초기화하기 위해 프레임워크에서 호출됩니다. |
COleServerItem::OnQueryUpdateItems | 연결된 항목에 업데이트가 필요한지 여부를 확인하기 위해 호출되었습니다. |
COleServerItem::OnRenderData | 지연된 렌더링의 일부로 데이터를 검색합니다. |
COleServerItem::OnRenderFileData | 지연된 렌더링의 일부로 개체로 데이터를 CFile 검색합니다. |
COleServerItem::OnRenderGlobalData | 지연된 렌더링의 일부로 HGLOBAL로 데이터를 검색합니다. |
COleServerItem::OnSetColorScheme | 항목의 색 구성표를 설정하기 위해 호출됩니다. |
COleServerItem::OnSetData | 항목의 데이터를 설정하기 위해 호출됩니다. |
COleServerItem::OnSetExtent | OLE 항목의 크기를 설정하기 위해 프레임워크에서 호출됩니다. |
COleServerItem::OnUpdate | 항목이 속한 문서의 일부가 변경될 때 호출됩니다. |
COleServerItem::OnUpdateItems | 서버 문서에 있는 모든 항목의 프레젠테이션 캐시를 업데이트하기 위해 호출됩니다. |
COleServerItem::SetItemName | 항목의 이름을 설정합니다. 연결된 항목에만 사용됩니다. |
보호된 메서드
속성 | 설명 |
---|---|
COleServerItem::GetDataSource | 변환 형식을 저장하는 데 사용되는 개체를 가져옵니다. |
COleServerItem::OnHide | OLE 항목을 숨기기 위해 프레임워크에서 호출됩니다. |
COleServerItem::OnOpen | 프레임워크에서 호출하여 자체 최상위 창에 OLE 항목을 표시합니다. |
COleServerItem::OnShow | 컨테이너가 항목을 표시하도록 요청할 때 호출됩니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
COleServerItem::m_sizeExtent | 표시되는 OLE 항목의 양을 서버에 알립니다. |
설명
연결된 항목은 서버 문서의 일부 또는 전체를 나타낼 수 있습니다. 포함된 항목은 항상 전체 서버 문서를 나타냅니다.
이 클래스는 COleServerItem
일반적으로 컨테이너 애플리케이션의 요청에 대한 응답으로 OLE 시스템 DLL(동적 연결 라이브러리)에서 호출되는 몇 가지 재정의 가능한 멤버 함수를 정의합니다. 이러한 멤버 함수를 사용하면 컨테이너 애플리케이션이 항목을 표시하거나 동사를 실행하거나 다양한 형식으로 데이터를 검색하는 등 다양한 방법으로 간접적으로 항목을 조작할 수 있습니다.
사용COleServerItem
하려면 클래스를 파생시키고 OnDraw 및 Serialize 멤버 함수를 구현합니다. 이 함수는 OnDraw
항목의 메타파일 표현을 제공하여 컨테이너 애플리케이션이 복합 문서를 열 때 표시할 수 있도록 합니다. 이 함수 CObject
는 Serialize
포함된 항목을 서버와 컨테이너 애플리케이션 간에 전송할 수 있도록 항목의 네이티브 표현을 제공합니다. OnGetExtent 는 컨테이너에 항목의 자연스러운 크기를 제공하여 컨테이너가 항목의 크기를 조정하도록 합니다.
서버 및 관련 항목에 대한 자세한 내용은 컨테이너: 고급 기능 문서에서 서버 구현 및 "컨테이너/서버 애플리케이션 만들기" 문서를 참조하세요.
상속 계층 구조
COleServerItem
요구 사항
헤더: afxole.h
COleServerItem::AddOtherClipboardData
지정된 COleDataSource
개체에 OLE 항목의 프레젠테이션 및 변환 형식을 배치하려면 이 함수를 호출합니다.
void AddOtherClipboardData(COleDataSource* pDataSource);
매개 변수
pDataSource
COleDataSource
데이터를 배치해야 하는 개체에 대한 포인터입니다.
설명
항목에 대한 프레젠테이션 형식(메타파일 그림)을 제공하려면 OnDraw 멤버 함수를 구현해야 합니다. 다른 변환 형식을 지원하려면 GetDataSource에서 반환된 COleDataSource 개체를 사용하여 등록하고 OnRenderData 멤버 함수를 재정의하여 지원하려는 형식으로 데이터를 제공합니다.
COleServerItem::COleServerItem
개체를 COleServerItem
생성하고 서버 문서의 문서 항목 컬렉션에 추가합니다.
COleServerItem(
COleServerDoc* pServerDoc,
BOOL bAutoDelete);
매개 변수
pServerDoc
새 항목을 포함할 문서에 대한 포인터입니다.
bAutoDelete
개체에 대한 링크가 해제될 때 개체를 삭제할 수 있는지 여부를 나타내는 플래그입니다. 개체가 삭제해야 하는 문서 데이터의 필수적인 부분인 경우 COleServerItem
이 값을 FALSE로 설정합니다. 개체가 프레임워크에서 삭제할 수 있는 문서 데이터의 범위를 식별하는 데 사용되는 보조 구조인 경우 이를 TRUE로 설정합니다.
COleServerItem::CopyToClipboard
OLE 항목을 클립보드에 복사하려면 이 함수를 호출합니다.
void CopyToClipboard(BOOL bIncludeLink = FALSE);
매개 변수
bIncludeLink
링크 데이터를 클립보드에 복사해야 하는 경우 이 값을 TRUE로 설정합니다. 서버 애플리케이션이 링크를 지원하지 않는 경우 이를 FALSE로 설정합니다.
설명
이 함수는 OnGetClipboardData 멤버 함수를 사용하여 지원되는 형식으로 OLE 항목의 데이터를 포함하는 COleDataSource 개체를 만듭니다. 그런 다음, COleDataSource::SetClipboard 함수를 사용하여 개체를 클립보드에 배치 COleDataSource
합니다. 개체에는 COleDataSource
항목의 네이티브 데이터와 CF_METAFILEPICT 형식의 표현뿐만 아니라 지원하도록 선택한 변환 형식의 데이터가 포함됩니다. 이 멤버 함수가 작동하려면 Serialize 및 OnDraw 를 구현해야 합니다.
COleServerItem::DoDragDrop
멤버 함수를 DoDragDrop
호출하여 끌어서 놓기 작업을 수행합니다.
DROPEFFECT DoDragDrop(
LPCRECT lpRectItem,
CPoint ptOffset,
BOOL bIncludeLink = FALSE,
DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
LPCRECT lpRectStartDrag = NULL);
매개 변수
lpRectItem
클라이언트 영역을 기준으로 화면의 항목 사각형(픽셀)입니다.
ptOffset
끌기 시 마우스 위치가 있었던 lpItemRect의 오프셋입니다.
bIncludeLink
링크 데이터를 클립보드에 복사해야 하는 경우 이 값을 TRUE로 설정합니다. 애플리케이션에서 링크를 지원하지 않는 경우 FALSE로 설정합니다.
dwEffects
끌기 작업(복사, 이동 및 링크의 조합)에서 끌기 소스가 허용하는 효과를 결정합니다.
lpRectStartDrag
끌기가 실제로 시작되는 위치를 정의하는 사각형에 대한 포인터입니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
Return Value
DROPEFFECT 열거형의 값입니다. DROPEFFECT_MOVE 경우 원래 데이터를 제거해야 합니다.
설명
끌어서 놓기 작업은 즉시 시작되지 않습니다. 마우스 커서가 lpRectStartDrag로 지정된 사각형을 벗어나거나 지정된 시간(밀리초)이 지나갈 때까지 기다립니다. lpRectStartDrag가 NULL이면 마우스 커서가 1픽셀을 이동할 때 끌기가 시작되도록 기본 사각형이 사용됩니다.
지연 시간은 레지스트리 키 설정에 의해 지정됩니다. CWinApp::WriteProfileString 또는 CWinApp::WriteProfileInt를 호출하여 지연 시간을 변경할 수 있습니다. 지연 시간을 지정하지 않으면 기본값인 200밀리초가 사용됩니다. 끌기 지연 시간은 다음과 같이 저장됩니다.
Windows NT 끌기 지연 시간은 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay에 저장됩니다.
Windows 3.x 끌기 지연 시간은 WIN에 저장됩니다. [Windows} 섹션 아래의 INI 파일입니다.
Windows 95/98 끌기 지연 시간은 캐시된 버전의 WIN에 저장됩니다. INI.
끌기 지연 정보가 레지스트리 또는 에 저장되는 방법에 대한 자세한 내용은 . INI 파일은 Windows SDK의 WriteProfileString을 참조하세요.
COleServerItem::GetClipboardData
CopyToClipboard를 호출한 경우 지정된 COleDataSource 개체를 클립보드에 복사할 모든 데이터로 채우려면 이 함수를 호출합니다(DoDragDrop을 호출한 경우에도 동일한 데이터가 전송됨).
void GetClipboardData(
COleDataSource* pDataSource,
BOOL bIncludeLink = FALSE,
LPPOINT lpOffset = NULL,
LPSIZE lpSize = NULL);
매개 변수
pDataSource
COleDataSource
지원되는 모든 형식으로 OLE 항목의 데이터를 받을 개체에 대한 포인터입니다.
bIncludeLink
링크 데이터를 클립보드에 복사해야 하는 경우 TRUE입니다. 서버 애플리케이션이 링크를 지원하지 않는 경우 FALSE입니다.
lpOffset
개체의 원점에서 마우스 커서의 오프셋(픽셀)입니다.
lpSize
개체의 크기(픽셀)입니다.
설명
이 함수는 GetEmbedSourceData 멤버 함수를 호출하여 OLE 항목에 대한 네이티브 데이터를 가져와서 AddOtherClipboardData 멤버 함수를 호출하여 프레젠테이션 형식 및 지원되는 모든 변환 형식을 가져옵니다. bIncludeLink가 TRUE이면 함수는 GetLinkSourceData를 호출하여 항목에 대한 링크 데이터를 가져옵니다.
제공된 형식의 앞이나 뒤를 개체에 COleDataSource
넣으려면 이 함수를 재정의합니다 CopyToClipboard
.
COleServerItem::GetDataSource
이 함수를 호출하여 서버 애플리케이션에서 지원하는 변환 형식을 저장하는 데 사용되는 COleDataSource 개체를 가져옵니다.
COleDataSource* GetDataSource();
Return Value
변환 형식을 COleDataSource
저장하는 데 사용되는 개체에 대한 포인터입니다.
설명
서버 애플리케이션이 데이터 전송 작업 중에 다양한 형식의 데이터를 제공하도록 하려면 이 함수에서 반환된 개체에 해당 형식을 COleDataSource
등록합니다. 예를 들어 클립보드 또는 끌어서 놓기 작업에 대한 OLE 항목의 CF_TEXT 표현을 제공하려는 경우 이 함수가 반환하는 개체에 COleDataSource
형식을 등록한 다음 멤버 함수를 재정의 OnRenderXxxData
하여 데이터를 제공합니다.
COleServerItem::GetDocument
이 함수를 호출하여 항목이 포함된 문서에 대한 포인터를 가져옵니다.
COleServerDoc* GetDocument() const;
Return Value
항목을 포함하는 문서에 대한 포인터입니다. 항목이 문서의 일부가 아닌 경우 NULL입니다.
설명
이렇게 하면 생성자에 인수로 전달한 서버 문서에 액세스할 수 COleServerItem
있습니다.
COleServerItem::GetEmbedSourceData
이 함수를 호출하여 OLE 항목에 대한 CF_EMBEDSOURCE 데이터를 가져옵니다.
void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);
매개 변수
lpStgMedium
OLE 항목에 대한 CF_EMBEDSOURCE 데이터를 받을 STGMEDIUM 구조체에 대한 포인터입니다.
설명
이 형식에는 항목의 네이티브 데이터가 포함됩니다. 이 함수가 Serialize
제대로 작동하려면 멤버 함수를 구현해야 합니다.
그런 다음 COleDataSource::CacheData를 사용하여 결과를 데이터 원본에 추가할 수 있습니다. 이 함수는 COleServerItem::OnGetClipboardData에 의해 자동으로 호출됩니다.
자세한 내용은 Windows SDK의 STGMEDIUM 을 참조하세요.
COleServerItem::GetItemName
이 함수를 호출하여 항목의 이름을 가져옵니다.
const CString& GetItemName() const;
Return Value
항목의 이름입니다.
설명
일반적으로 연결된 항목에 대해서만 이 함수를 호출합니다.
COleServerItem::GetLinkSourceData
이 함수를 호출하여 OLE 항목에 대한 CF_LINKSOURCE 데이터를 가져옵니다.
BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);
매개 변수
lpStgMedium
OLE 항목에 대한 CF_LINKSOURCE 데이터를 받을 STGMEDIUM 구조체에 대한 포인터입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
이 형식에는 OLE 항목의 형식과 OLE 항목이 포함된 문서를 찾는 데 필요한 정보를 설명하는 CLSID가 포함됩니다.
그런 다음 COleDataSource::CacheData를 사용하여 결과를 데이터 원본에 추가할 수 있습니다. 이 함수는 OnGetClipboardData에 의해 자동으로 호출됩니다.
자세한 내용은 Windows SDK의 STGMEDIUM 을 참조하세요.
COleServerItem::GetObjectDescriptorData
이 함수를 호출하여 OLE 항목에 대한 CF_OBJECTDESCRIPTOR 데이터를 가져옵니다.
void GetObjectDescriptorData(
LPPOINT lpOffset,
LPSIZE lpSize,
LPSTGMEDIUM lpStgMedium);
매개 변수
lpOffset
OLE 항목의 왼쪽 위 모서리에서 마우스 클릭의 오프셋입니다. NULL일 수 있습니다.
lpSize
OLE 항목의 크기입니다. NULL일 수 있습니다.
lpStgMedium
OLE 항목에 대한 CF_OBJECTDESCRIPTOR 데이터를 받을 STGMEDIUM 구조체에 대한 포인터입니다.
설명
정보는 lpStgMedium이 STGMEDIUM
가리키는 구조체로 복사됩니다. 이 형식에는 붙여넣기 특수 대화 상자에 필요한 정보가 포함됩니다.
자세한 내용은 Windows SDK의 STGMEDIUM 을 참조하세요.
COleServerItem::IsConnected
이 함수를 호출하여 OLE 항목이 연결되어 있는지 확인합니다.
BOOL IsConnected() const;
Return Value
항목이 연결된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
하나 이상의 컨테이너에 항목에 대한 참조가 있는 경우 OLE 항목이 연결된 것으로 간주됩니다. 참조 수가 0보다 크거나 포함된 항목인 경우 항목이 연결됩니다.
COleServerItem::IsLinkedItem
이 함수를 호출하여 OLE 항목이 연결된 항목인지 확인합니다.
BOOL IsLinkedItem() const;
Return Value
항목이 연결된 항목인 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
항목이 유효하고 문서의 포함된 항목 목록에 반환되지 않은 경우 항목이 연결됩니다. 연결된 항목이 컨테이너에 연결될 수도 있고 연결되지 않을 수도 있습니다.
연결된 항목과 포함된 항목 모두에 대해 동일한 클래스를 사용하는 것이 일반적입니다. IsLinkedItem
에서는 코드가 일반적인 경우가 많지만 연결된 항목이 포함된 항목과 다르게 동작하도록 할 수 있습니다.
COleServerItem::m_sizeExtent
이 멤버는 컨테이너 문서에 표시되는 개체의 양을 서버에 알려줍니다.
CSize m_sizeExtent;
설명
OnSetExtent의 기본 구현은 이 멤버를 설정합니다.
COleServerItem::NotifyChanged
연결된 항목이 변경된 후 이 함수를 호출합니다.
void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);
매개 변수
nDrawAspect
OLE 항목의 어떤 측면이 변경되었는지를 나타내는 DVASPECT 열거형의 값입니다. 이 매개 변수에 가능한 값은 다음과 같습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
설명
컨테이너 항목이 자동 링크가 있는 문서에 연결된 경우 변경 내용을 반영하도록 항목이 업데이트됩니다. Microsoft Foundation 클래스 라이브러리 를 사용하여 작성된 컨테이너 애플리케이션에서 COleClientItem::OnChange 가 응답으로 호출됩니다.
COleServerItem::OnDoVerb
프레임워크에서 지정된 동사를 실행하기 위해 호출됩니다.
virtual void OnDoVerb(LONG iVerb);
매개 변수
iVerb
실행할 동사를 지정합니다. 다음 중 하나일 수 있습니다.
값 | 의미 | 기호 |
---|---|---|
0 | 기본 동사 | OLEIVERB_PRIMARY |
1 | 보조 동사 | (없음) |
- 1 | 편집할 항목 표시 | OLEIVERB_SHOW |
- 2 | 별도의 창에서 항목 편집 | OLEIVERB_OPEN |
- 3 | 항목 숨기기 | OLEIVERB_HIDE |
-1 값은 일반적으로 다른 동사의 별칭입니다. 열린 편집이 지원되지 않는 경우 -2는 -1과 같은 효과를 집니다. 추가 값 은 Windows SDK의 IOleObject::D oVerb 을 참조하세요.
설명
컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 이 함수는 해당 COleClientItem
개체의 COleClientItem::Activate 멤버 함수를 호출할 때 호출됩니다. 기본 구현은 기본 동사 또는 OLEIVERB_SHOW 지정된 경우 OnShow 멤버 함수를 호출하고, 보조 동사 또는 OLEIVERB_OPEN 지정하면 OnOpen을, OLEIVERB_HIDE 지정하면 OnHide를 호출합니다. iVerb이 위에 나열된 동사 중 하나가 아닌 경우 기본 구현이 호출 OnShow
됩니다.
기본 동사에 항목이 표시되지 않는 경우 이 함수를 재정의합니다. 예를 들어 항목이 사운드 녹음이고 기본 동사가 Play인 경우 해당 항목을 재생하기 위해 서버 애플리케이션을 표시할 필요가 없습니다.
자세한 내용은 Windows SDK의 IOleObject::D oVerb 을 참조하세요.
COleServerItem::OnDraw
OLE 항목을 메타파일로 렌더링하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnDraw(
CDC* pDC,
CSize& rSize) = 0;
매개 변수
pDC
항목을 그릴 CDC 개체에 대한 포인터입니다. 표시 컨텍스트는 특성 표시 컨텍스트에 자동으로 연결되므로 특성 함수를 호출할 수 있지만, 이렇게 하면 메타파일 디바이스에 따라 다릅니다.
rSize
메타파일을 그릴 HIMETRIC 단위의 크기입니다.
Return Value
항목이 성공적으로 그려진 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
OLE 항목의 메타파일 표현은 컨테이너 애플리케이션에서 항목을 표시하는 데 사용됩니다. 컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 메타파일은 해당 COleClientItem 개체의 그리기 멤버 함수에서 사용됩니다. 기본 구현은 없습니다. 지정된 디바이스 컨텍스트에 항목을 그리려면 이 함수를 재정의해야 합니다.
COleServerItem::OnDrawEx
모든 그리기에 대해 프레임워크에서 호출됩니다.
virtual BOOL OnDrawEx(
CDC* pDC,
DVASPECT nDrawAspect,
CSize& rSize);
매개 변수
pDC
항목을 그릴 CDC 개체에 대한 포인터입니다. DC는 특성 DC에 자동으로 연결되므로 특성 함수를 호출할 수 있지만, 이렇게 하면 메타파일 디바이스에 따라 다릅니다.
nDrawAspect
DVASPECT 열거형의 값입니다. 이 매개 변수에 가능한 값은 다음과 같습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
rSize
HIMETRIC 단위의 항목 크기입니다.
Return Value
항목이 성공적으로 그려진 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
DVASPECT가 DVASPECT_CONTENT 같으면 기본 구현이 호출 OnDraw
되고, 그렇지 않으면 실패합니다.
DVASPECT_ICON 또는 DVASPECT_THUMBNAIL 같은 DVASPECT_CONTENT 이외의 측면에 대한 프레젠테이션 데이터를 제공하도록 이 함수를 재정의합니다.
COleServerItem::OnGetClipboardData
CopyToClipboard 멤버 함수를 호출하여 클립보드에 배치 되는 모든 데이터를 포함하는 COleDataSource
개체를 가져오기 위해 프레임 워크에서 호출됩니다.
virtual COleDataSource* OnGetClipboardData(
BOOL bIncludeLink,
LPPOINT lpOffset,
LPSIZE lpSize);
매개 변수
bIncludeLink
링크 데이터를 클립보드에 복사해야 하는 경우 이 값을 TRUE로 설정합니다. 서버 애플리케이션이 링크를 지원하지 않는 경우 이를 FALSE로 설정합니다.
lpOffset
개체의 원점에서 마우스 커서의 오프셋(픽셀)입니다.
lpSize
개체의 크기(픽셀)입니다.
Return Value
클립보드 데이터를 포함하는 COleDataSource 개체에 대한 포인터입니다.
설명
이 함수의 기본 구현은 GetClipboardData를 호출합니다.
COleServerItem::OnGetExtent
OLE 항목의 크기(HIMETRIC 단위)를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnGetExtent(
DVASPECT nDrawAspect,
CSize& rSize);
매개 변수
nDrawAspect
범위를 검색할 OLE 항목의 측면을 지정합니다. 이 매개 변수에 가능한 값은 다음과 같습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
rSize
CSize
OLE 항목의 크기를 받을 개체에 대한 참조입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 이 함수는 해당 COleClientItem
개체의 GetExtent 멤버 함수를 호출할 때 호출됩니다. 기본 구현은 아무 작업도 수행하지 않습니다. 직접 구현해야 합니다. OLE 항목의 크기에 대한 요청을 처리할 때 특수 처리를 수행하려는 경우 이 함수를 재정의합니다.
COleServerItem::OnHide
OLE 항목을 숨기기 위해 프레임워크에서 호출됩니다.
virtual void OnHide();
설명
기본값은 .를 호출합니다 COleServerDoc::OnShowDocument( FALSE )
. 또한 이 함수는 OLE 항목이 숨겨져 있음을 컨테이너에 알립니다. OLE 항목을 숨길 때 특수 처리를 수행하려는 경우 이 함수를 재정의합니다.
COleServerItem::OnInitFromData
pDataObject의 콘텐츠를 사용하여 OLE 항목을 초기화하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnInitFromData(
COleDataObject* pDataObject,
BOOL bCreation);
매개 변수
pDataObject
OLE 항목을 초기화하기 위한 다양한 형식의 데이터를 포함하는 OLE 데이터 개체에 대한 포인터입니다.
bCreation
TRUE이면 컨테이너 애플리케이션에서 새로 만드는 OLE 항목을 초기화하기 위해 함수가 호출됩니다. 기존 OLE 항목의 내용을 바꾸기 위해 함수가 호출되면 FALSE입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
bCreation이 TRUE이면 컨테이너가 현재 선택에 따라 새 개체 삽입을 구현하는 경우 이 함수가 호출됩니다. 선택한 데이터는 새 OLE 항목을 만들 때 사용됩니다. 예를 들어 스프레드시트 프로그램에서 셀 범위를 선택한 다음 새 개체 삽입을 사용하여 선택한 범위의 값을 기반으로 차트를 만드는 경우입니다. 기본 구현은 아무 작업도 수행하지 않습니다. pDataObject에서 제공하는 형식 중에서 허용되는 형식을 선택하고 제공된 데이터에 따라 OLE 항목을 초기화하도록 이 함수를 재정의합니다. 이는 고급 재정의 가능입니다.
자세한 내용은 Windows SDK에서 IOleObject::InitFromData 를 참조하세요.
COleServerItem::OnOpen
OLE 항목을 배치가 아닌 서버 애플리케이션의 별도 인스턴스에 표시하기 위해 프레임워크에서 호출됩니다.
virtual void OnOpen();
설명
기본 구현은 OLE 항목이 포함된 문서를 표시하는 첫 번째 프레임 창을 활성화합니다. 애플리케이션이 미니 서버이면 기본 구현에 주 창이 표시됩니다. 또한 이 함수는 OLE 항목이 열려 있음을 컨테이너에 알립니다.
OLE 항목을 열 때 특수 처리를 수행하려는 경우 이 함수를 재정의합니다. 이는 선택 영역을 열 때 링크로 설정하려는 연결된 항목에서 특히 일반적입니다.
자세한 내용은 Windows SDK에서 IOleClientSite::OnShowWindow 를 참조하세요.
COleServerItem::OnQueryUpdateItems
현재 서버 문서의 연결된 항목이 만료되었는지 여부를 확인하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnQueryUpdateItems();
Return Value
문서에 업데이트가 필요한 항목이 있는 경우 0이 아닌 경우 모든 항목이 최신 상태이면 0입니다.
설명
원본 문서가 변경되었지만 문서의 변경 내용을 반영하도록 연결된 항목이 업데이트되지 않은 경우 항목이 최신 상태가 아닙니다.
COleServerItem::OnRenderData
지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
lpStgMedium
데이터를 반환할 STGMEDIUM 구조를 가리킵니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링을 COleDataSource
위해 DelayRenderData 또는 DelayRenderFileData 멤버 함수를 사용하여 개체에 이전에 배치된 형식입니다. 제공된 스토리지 매체가 파일 또는 메모리인 경우 이 함수의 기본 구현은 OnRenderFileData 또는 OnRenderGlobalData를 각각 호출합니다. 이러한 형식 중 어느 것도 제공되지 않으면 기본 구현은 0을 반환하고 아무 것도 수행하지 않습니다.
lpStgMedium-tymed>가 TYMED_NULL 경우 STGMEDIUM은 lpFormatEtc-tymed>에 지정된 대로 할당되고 채워져야 합니다. TYMED_NULL 않으면 STGMEDIUM을 데이터로 채워야 합니다.
이는 고급 재정의 가능입니다. 요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 데이터가 작고 크기가 고정된 경우 재정 OnRenderGlobalData
의합니다. 데이터가 파일에 있거나 가변 크기인 경우 재정 OnRenderFileData
의합니다.
자세한 내용은 Windows SDK에서 IDataObject::GetData, STGMEDIUM, FORMATETC 및 TYMED 를 참조하세요.
COleServerItem::OnRenderFileData
스토리지 미디어가 파일일 때 지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderFileData(
LPFORMATETC lpFormatEtc,
CFile* pFile);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
pFile
CFile
데이터를 렌더링할 개체를 가리킵니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링에 COleDataSource
DelayRenderData 멤버 함수를 사용하여 개체에 이전에 배치된 형식입니다. 이 함수의 기본 구현은 단순히 FALSE를 반환합니다.
이는 고급 재정의 가능입니다. 요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 여러 스토리지 매체를 처리하려면 OnRenderData를 재정의합니다. 데이터가 파일에 있거나 크기가 가변적인 경우 OnRenderFileData를 재정의합니다.
자세한 내용은 Windows SDK에서 IDataObject::GetData 및 FORMATETC 를 참조하세요.
COleServerItem::OnRenderGlobalData
지정된 스토리지 매체가 전역 메모리일 때 지정된 형식으로 데이터를 검색하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnRenderGlobalData(
LPFORMATETC lpFormatEtc,
HGLOBAL* phGlobal);
매개 변수
lpFormatEtc
정보가 요청되는 형식을 지정하는 FORMATETC 구조를 가리킵니다.
phGlobal
데이터를 반환할 전역 메모리에 대한 핸들을 가리킵니다. 메모리가 할당되지 않은 경우 이 매개 변수는 NULL일 수 있습니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
지정된 형식은 지연된 렌더링에 COleDataSource
DelayRenderData 멤버 함수를 사용하여 개체에 이전에 배치된 형식입니다. 이 함수의 기본 구현은 단순히 FALSE를 반환합니다.
phGlobal이 NULL이면 새 HGLOBAL을 할당하고 phGlobal에서 반환해야 합니다. 그렇지 않으면 phGlobal에서 지정한 HGLOBAL 을 데이터로 채워야 합니다. HGLOBAL에 배치된 데이터의 양은 메모리 블록의 현재 크기를 초과해서는 안 합니다. 또한 블록을 더 큰 크기로 다시 할당할 수 없습니다.
이는 고급 재정의 가능입니다. 요청된 형식 및 중간 형식으로 데이터를 제공하도록 이 함수를 재정의합니다. 데이터에 따라 이 함수의 다른 버전 중 하나를 대신 재정의할 수 있습니다. 여러 스토리지 매체를 처리하려면 OnRenderData를 재정의합니다. 데이터가 파일에 있거나 크기가 가변적인 경우 OnRenderFileData를 재정의합니다.
자세한 내용은 Windows SDK에서 IDataObject::GetData 및 FORMATETC 를 참조하세요.
COleServerItem::OnSetColorScheme
OLE 항목을 편집할 때 사용할 색상표를 지정하기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);
매개 변수
lpLogPalette
Windows LOGPALETTE 구조체에 대한 포인터입니다.
Return Value
색상표가 사용되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
Microsoft Foundation 클래스 라이브러리를 사용하여 컨테이너 애플리케이션을 작성한 경우 이 함수는 해당 COleClientItem
개체의 IOleObject::SetColorScheme 함수를 호출할 때 호출됩니다. 기본 구현은 FALSE를 반환합니다. 권장 팔레트를 사용하려면 이 함수를 재정의합니다. 서버 애플리케이션은 제안된 팔레트를 사용할 필요가 없습니다.
자세한 내용은 Windows SDK에서 IOleObject::SetColorScheme 을 참조하세요.
COleServerItem::OnSetData
OLE 항목의 데이터를 지정된 데이터로 바꾸기 위해 프레임워크에서 호출됩니다.
virtual BOOL OnSetData(
LPFORMATETC lpFormatEtc,
LPSTGMEDIUM lpStgMedium,
BOOL bRelease);
매개 변수
lpFormatEtc
데이터 형식을 지정하는 FORMATETC 구조체에 대한 포인터입니다.
lpStgMedium
데이터가 상주하는 STGMEDIUM 구조체에 대한 포인터입니다.
bRelease
함수 호출을 완료한 후 스토리지 매체의 소유권이 있는 사용자를 나타냅니다. 호출자는 스토리지 매체를 대신하여 할당된 리소스를 해제할 책임이 있는 사람을 결정합니다. 호출자는 bRelease를 설정 하여 이 작업을 수행합니다. bRelease가 0이 아니면 서버 항목이 소유권을 가져와서 사용이 완료되면 매체를 해제합니다. bRelease가 0이면 호출자는 소유권을 유지하고 서버 항목은 호출 기간 동안에만 스토리지 매체를 사용할 수 있습니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
서버 항목은 성공적으로 가져올 때까지 데이터의 소유권을 가져오지 않습니다. 즉, 0을 반환하는 경우 소유권을 사용하지 않습니다. 데이터 원본이 소유권을 가져오는 경우 ReleaseStgMedium 함수를 호출하여 스토리지 매체를 해제합니다.
기본 구현은 아무 작업도 수행하지 않습니다. OLE 항목의 데이터를 지정된 데이터로 바꾸려면 이 함수를 재정의합니다. 이는 고급 재정의 가능입니다.
자세한 내용은 Windows SDK의 STGMEDIUM, FORMATETC 및 ReleaseStgMedium 을 참조하세요.
COleServerItem::OnSetExtent
컨테이너 문서에서 사용할 수 있는 공간의 양을 OLE 항목에 알리기 위해 프레임워크에서 호출합니다.
virtual BOOL OnSetExtent(
DVASPECT nDrawAspect,
const CSize& size);
매개 변수
nDrawAspect
범위가 지정되는 OLE 항목의 측면을 지정합니다. 이 매개 변수에 가능한 값은 다음과 같습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
size
OLE 항목의 새 크기를 지정하는 CSize 구조체입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
컨테이너 애플리케이션이 Microsoft Foundation 클래스 라이브러리를 사용하여 작성된 경우 이 함수는 해당 COleClientItem
개체의 SetExtent 멤버 함수를 호출할 때 호출됩니다. 기본 구현은 nDrawAspect가 DVASPECT_CONTENT 경우 m_sizeExtent 멤버를 지정된 크기로 설정하고, 그렇지 않으면 0을 반환합니다. 항목의 크기를 변경할 때 특수 처리를 수행하도록 이 함수를 재정의합니다.
COleServerItem::OnShow
OLE 항목을 제자리에 표시하도록 서버 애플리케이션에 지시하기 위해 프레임워크에서 호출됩니다.
virtual void OnShow();
설명
이 함수는 일반적으로 컨테이너 애플리케이션의 사용자가 항목을 만들거나 항목이 표시되어야 하는 Edit와 같은 동사를 실행할 때 호출됩니다. 기본 구현은 현재 위치 활성화를 시도합니다. 이 작업이 실패하면 함수는 멤버 함수를 OnOpen
호출하여 별도의 창에 OLE 항목을 표시합니다.
OLE 항목이 표시되면 특수 처리를 수행하려는 경우 이 함수를 재정의합니다.
COleServerItem::OnUpdate
항목이 수정되었을 때 프레임워크에서 호출됩니다.
virtual void OnUpdate(
COleServerItem* pSender,
LPARAM lHint,
CObject* pHint,
DVASPECT nDrawAspect);
매개 변수
pSender
문서를 수정한 항목에 대한 포인터입니다. NULL일 수 있습니다.
lHint
수정에 대한 정보를 포함합니다.
pHint
수정에 대한 정보를 저장하는 개체에 대한 포인터입니다.
nDrawAspect
DVASPECT 열거형의 값입니다. 이 매개 변수는 다음 값 중 하나를 가질 수 있습니다.
DVASPECT_CONTENT 항목은 컨테이너 내에 포함된 개체로 표시될 수 있는 방식으로 표시됩니다.
DVASPECT_THUMBNAIL 항목은 검색 도구에 표시될 수 있도록 "썸네일" 표현으로 렌더링됩니다.
DVASPECT_ICON 항목은 아이콘으로 표시됩니다.
DVASPECT_DOCPRINT 항목은 파일 메뉴의 인쇄 명령을 사용하여 인쇄된 것처럼 표시됩니다.
설명
기본 구현은 힌트 또는 발신자에 관계없이 NotifyChanged를 호출합니다.
COleServerItem::OnUpdateItems
서버 문서의 모든 항목을 업데이트하기 위해 프레임워크에서 호출됩니다.
virtual void OnUpdateItems();
설명
기본 구현은 문서의 모든 COleClientItem
개체에 대해 UpdateLink를 호출합니다.
COleServerItem::SetItemName
연결된 항목을 만들어 이름을 설정할 때 이 함수를 호출합니다.
void SetItemName(LPCTSTR lpszItemName);
매개 변수
lpszItemName
항목의 새 이름에 대한 포인터입니다.
설명
이름은 문서 내에서 고유해야 합니다. 연결된 항목을 편집하기 위해 서버 애플리케이션이 호출되면 애플리케이션은 이 이름을 사용하여 항목을 찾습니다. 포함된 항목에 대해 이 함수를 호출할 필요가 없습니다.
참고 항목
MFC 샘플 HIERSVR
CDocItem 클래스
계층 구조 차트
COleClientItem 클래스
COleServerDoc 클래스
COleTemplateServer 클래스