IOleObjectImpl 클래스
이 클래스는 컨테이너가 IUnknown
컨트롤과 통신하는 주 인터페이스를 구현하고 사용합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject
매개 변수
T
에서 파생된 IOleObjectImpl
클래스입니다.
멤버
공용 메서드
설명
IOleObject 인터페이스는 컨테이너가 컨트롤과 통신하는 주 인터페이스입니다. 클래스 IOleObjectImpl
는 이 인터페이스의 기본 구현을 IUnknown
제공하고 디버그 빌드의 덤프 디바이스에 정보를 전송하여 구현합니다.
관련 문서 ATL 자습서, ATL 프로젝트 만들기
상속 계층 구조
IOleObject
IOleObjectImpl
요구 사항
헤더: atlctl.h
IOleObjectImpl::Advise
컨트롤과 권고 연결을 설정합니다.
STDMETHOD(Advise)(
IAdviseSink* pAdvSink,
DWORD* pdwConnection);
설명
Windows SDK에서 IOleObject::Advise를 참조하세요.
IOleObjectImpl::Close
컨트롤 상태를 실행에서 로드됨으로 변경합니다.
STDMETHOD(Close)(DWORD dwSaveOption);
설명
컨트롤을 비활성화하고 컨트롤 창이 있으면 삭제합니다. 컨트롤 클래스 데이터 멤버 CComControlBase::m_bRequiresSave TRUE이고 dwSaveOption 매개 변수가 OLECLOSE_SAVEIFDIRTY 또는 OLECLOSE_PROMPTSAVE 경우 닫기 전에 컨트롤 속성이 저장됩니다.
컨트롤 클래스 데이터 멤버 CComControlBase::m_spInPlaceSite 및 CComControlBase::m_spAdviseSink 에 저장된 포인터가 해제되고 데이터 멤버 CComControlBase::m_bNegotiatedWnd, CComControlBase::m_bWndless 및 CComControlBase::m_bInPlaceSiteEx FALSE로 설정됩니다.
Windows SDK에서 IOleObject::Close를 참조하세요.
IOleObjectImpl::D oVerb
열거된 작업 중 하나를 수행하도록 컨트롤에 지시합니다.
STDMETHOD(DoVerb)(
LONG iVerb,
LPMSG /* pMsg */,
IOleClientSite* pActiveSite,
LONG /* lindex */,
HWND hwndParent,
LPCRECT lprcPosRect);
설명
값 iVerb
에 따라 ATL DoVerb
도우미 함수 중 하나가 다음과 같이 호출됩니다.
iVerb 값 | DoVerb 도우미 함수 호출 |
---|---|
OLEIVERB_DISCARDUNDOSTATE | DoVerbDiscardUndo |
OLEIVERB_HIDE | DoVerbHide |
OLEIVERB_INPLACEACTIVATE | DoVerbInPlaceActivate |
OLEIVERB_OPEN | DoVerbOpen |
OLEIVERB_PRIMARY | DoVerbPrimary |
OLEIVERB_PROPERTIES | CComControlBase::DoVerbProperties |
OLEIVERB_SHOW | DoVerbShow |
OLEIVERB_UIACTIVATE | DoVerbUIActivate |
Windows SDK에서 IOleObject::D oVerb을 참조하세요.
IOleObjectImpl::D oVerbDiscardUndo
유지 관리 중인 실행 취소 상태를 취소하도록 컨트롤에 지시합니다.
HRESULT DoVerbDiscardUndo(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다.
Return Value
S_OK 반환합니다.
IOleObjectImpl::D oVerbHide
컨트롤의 사용자 인터페이스를 비활성화 및 제거하고 컨트롤을 숨깁니다.
HRESULT DoVerbHide(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다. ATL 구현에는 사용되지 않습니다.
Return Value
S_OK 반환합니다.
IOleObjectImpl::D oVerbInPlaceActivate
컨트롤을 실행하고 해당 창을 설치하지만 컨트롤의 사용자 인터페이스는 설치하지 않습니다.
HRESULT DoVerbInPlaceActivate(LPCRECT prcPosRect, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다. ATL 구현에는 사용되지 않습니다.
Return Value
표준 HRESULT 값 중 하나입니다.
설명
CComControlBase::InPlaceActivate를 호출 하여 현재 위치에서 컨트롤을 활성화합니다. 컨트롤 클래스의 데이터 멤버 m_bWindowOnly
가 TRUE DoVerbInPlaceActivate
가 아니면 먼저 컨트롤을 창 없는 컨트롤로 활성화하려고 시도합니다(컨테이너가 IOleInPlaceSiteWindowless를 지원하는 경우에만 가능). 실패하면 함수는 확장된 기능을 사용하여 컨트롤을 활성화하려고 시도합니다(컨테이너가 IOleInPlaceSiteEx를 지원하는 경우에만 가능). 실패하면 함수는 확장된 기능 없이 컨트롤을 활성화하려고 시도합니다(컨테이너가 IOleInPlaceSite를 지원하는 경우에만 가능). 활성화에 성공하면 함수는 컨트롤이 활성화되었음을 컨테이너에 알깁니다.
IOleObjectImpl::D oVerbOpen
컨트롤이 별도의 창에서 열려 있는 편집되도록 합니다.
HRESULT DoVerbOpen(LPCRECT /* prcPosRect */, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다.
Return Value
S_OK 반환합니다.
IOleObjectImpl::D oVerbPrimary
사용자가 컨트롤을 두 번 클릭할 때 수행되는 작업을 정의합니다.
HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다.
Return Value
표준 HRESULT 값 중 하나입니다.
설명
기본적으로 속성 페이지를 표시하도록 설정합니다. 컨트롤 클래스에서 이를 재정의하여 두 번 클릭 시 다른 동작을 호출할 수 있습니다. 예를 들어 비디오를 재생하거나 현재 위치로 이동합니다.
IOleObjectImpl::D oVerbShow
컨트롤을 표시하도록 컨테이너에 지시합니다.
HRESULT DoVerbShow(LPCRECT prcPosRect, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다. ATL 구현에는 사용되지 않습니다.
Return Value
표준 HRESULT 값 중 하나입니다.
IOleObjectImpl::D oVerbUIActivate
컨트롤의 사용자 인터페이스를 활성화하고 해당 메뉴가 복합 메뉴로 대체되고 있음을 컨테이너에 알립니다.
HRESULT DoVerbUIActivate(LPCRECT prcPosRect, HWND /* hwndParent */);
매개 변수
prcPosRec
[in] 컨테이너에서 컨트롤을 그릴 사각형에 대한 포인터입니다.
hwndParent
[in] 컨트롤이 포함된 창의 핸들입니다. ATL 구현에는 사용되지 않습니다.
Return Value
표준 HRESULT 값 중 하나입니다.
IOleObjectImpl::EnumAdvise
이 컨트롤에 대해 등록된 권고 연결의 열거형을 제공합니다.
STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);
설명
Windows SDK에서 IOleObject::EnumAdvise를 참조하세요.
IOleObjectImpl::EnumVerbs
를 호출 OleRegEnumVerbs
하여 이 컨트롤에 대해 등록된 작업(동사)의 열거형을 제공합니다.
STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);
설명
프로젝트의 .rgs 파일에 동사를 추가할 수 있습니다. 예를 들어 CIRCCTL을 참조하세요. CIRC 샘플의 RGS입니다.
Windows SDK에서 IOleObject::EnumVerbs를 참조하세요.
IOleObjectImpl::GetClientSite
컨트롤 클래스 데이터 멤버 CComControlBase::m_spClientSite 포인터를 ppClientSite에 넣고 포인터의 참조 수를 증분합니다.
STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);
설명
Windows SDK에서 IOleObject::GetClientSite를 참조하세요.
IOleObjectImpl::GetClipboardData
클립보드에서 데이터를 검색합니다.
STDMETHOD(GetClipboardData)(
DWORD /* dwReserved */,
IDataObject** /* ppDataObject */);
Return Value
E_NOTIMPL을 반환합니다.
설명
Windows SDK에서 IOleObject::GetClipboardData를 참조하세요.
IOleObjectImpl::GetExtent
HIMETRIC 단위(단위당 0.01mm)로 실행 중인 컨트롤의 표시 크기를 검색합니다.
STDMETHOD(GetExtent)(
DWORD dwDrawAspect,
SIZEL* psizel);
설명
크기는 컨트롤 클래스 데이터 멤버 CComControlBase::m_sizeExtent 저장됩니다.
Windows SDK에서 IOleObject::GetExtent를 참조하세요.
IOleObjectImpl::GetMiscStatus
를 호출하여 컨트롤에 대해 등록된 상태 정보에 대한 포인터를 반환 OleRegGetMiscStatus
합니다.
STDMETHOD(GetMiscStatus)(
DWORD dwAspect,
DWORD* pdwStatus);
설명
상태 정보에는 컨트롤 및 프레젠테이션 데이터에서 지원하는 동작이 포함됩니다. 프로젝트의 .rgs 파일에 상태 정보를 추가할 수 있습니다.
Windows SDK에서 IOleObject::GetMiscStatus를 참조하세요.
IOleObjectImpl::GetMoniker
컨트롤의 모니커를 검색합니다.
STDMETHOD(GetMoniker)(
DWORD /* dwAssign */,
DWORD /* dwWhichMoniker */,
IMoniker** /* ppmk */);
Return Value
E_NOTIMPL을 반환합니다.
설명
Windows SDK에서 IOleObject::GetMoniker를 참조하세요.
IOleObjectImpl::GetUserClassID
컨트롤의 클래스 식별자를 반환합니다.
STDMETHOD(GetUserClassID)(CLSID* pClsid);
설명
Windows SDK에서 IOleObject::GetUserClassID를 참조하세요.
IOleObjectImpl::GetUserType
를 호출하여 컨트롤의 사용자 유형 이름을 반환 OleRegGetUserType
합니다.
STDMETHOD(GetUserType)(
DWORD dwFormOfType,
LPOLESTR* pszUserType);
설명
사용자 유형 이름은 메뉴 및 대화 상자와 같은 사용자 인터페이스 요소에 표시하는 데 사용됩니다. 프로젝트의 .rgs 파일에서 사용자 유형 이름을 변경할 수 있습니다.
Windows SDK에서 IOleObject::GetUserType을 참조하세요.
IOleObjectImpl::InitFromData
선택한 데이터에서 컨트롤을 초기화합니다.
STDMETHOD(InitFromData)(
IDataObject* /* pDataObject */,
BOOL /* fCreation */,
DWORD /* dwReserved */);
Return Value
E_NOTIMPL을 반환합니다.
설명
Windows SDK에서 IOleObject::InitFromData를 참조하세요.
IOleObjectImpl::IsUpToDate
컨트롤이 최신 상태인지 확인합니다.
STDMETHOD(IsUpToDate)(void);
Return Value
S_OK 반환합니다.
설명
Windows SDK에서 IOleObject::IsUpToDate를 참조하세요.
IOleObjectImpl::OnPostVerbDiscardUndo
실행 취소 상태가 삭제된 후 DoVerbDiscardUndo에서 호출됩니다.
HRESULT OnPostVerbDiscardUndo();
Return Value
S_OK 반환합니다.
설명
실행 취소 상태가 삭제된 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPostVerbHide
컨트롤이 숨겨진 후 DoVerbHide 에서 호출됩니다.
HRESULT OnPostVerbHide();
Return Value
S_OK 반환합니다.
설명
컨트롤이 숨겨진 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPostVerbInPlaceActivate
컨트롤이 활성화된 후 DoVerbInPlaceActivate 에서 호출됩니다.
HRESULT OnPostVerbInPlaceActivate();
Return Value
S_OK 반환합니다.
설명
컨트롤이 활성화된 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPostVerbOpen
별도의 창에서 편집하기 위해 컨트롤을 연 후 DoVerbOpen에서 호출됩니다.
HRESULT OnPostVerbOpen();
Return Value
S_OK 반환합니다.
설명
별도의 창에서 편집하기 위해 컨트롤을 연 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPostVerbShow
컨트롤이 표시된 후 DoVerbShow 에서 호출됩니다.
HRESULT OnPostVerbShow();
Return Value
S_OK 반환합니다.
설명
컨트롤이 표시된 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPostVerbUIActivate
컨트롤의 사용자 인터페이스가 활성화된 후 DoVerbUIActivate에서 호출됩니다.
HRESULT OnPostVerbUIActivate();
Return Value
S_OK 반환합니다.
설명
컨트롤의 사용자 인터페이스가 활성화된 후 실행하려는 코드로 이 메서드를 재정의합니다.
IOleObjectImpl::OnPreVerbDiscardUndo
실행 취소 상태가 삭제되기 전에 DoVerbDiscardUndo에서 호출됩니다.
HRESULT OnPreVerbDiscardUndo();
Return Value
S_OK 반환합니다.
설명
실행 취소 상태가 삭제되지 않도록 하려면 이 메서드를 재정의하여 오류 HRESULT를 반환합니다.
IOleObjectImpl::OnPreVerbHide
컨트롤이 숨겨지기 전에 DoVerbHide 에서 호출됩니다.
HRESULT OnPreVerbHide();
Return Value
S_OK 반환합니다.
설명
컨트롤이 숨겨지는 것을 방지하려면 이 메서드를 재정의하여 오류 HRESULT를 반환합니다.
IOleObjectImpl::OnPreVerbInPlaceActivate
컨트롤이 활성화되기 전에 DoVerbInPlaceActivate 에서 호출됩니다.
HRESULT OnPreVerbInPlaceActivate();
Return Value
S_OK 반환합니다.
설명
컨트롤이 활성화되지 않도록 하려면 오류 HRESULT를 반환하도록 이 메서드를 재정의합니다.
IOleObjectImpl::OnPreVerbOpen
별도의 창에서 편집하기 위해 컨트롤을 열기 전에 DoVerbOpen에서 호출됩니다.
HRESULT OnPreVerbOpen();
Return Value
S_OK 반환합니다.
설명
별도의 창에서 편집을 위해 컨트롤이 열리지 않도록 하려면 오류 HRESULT를 반환하도록 이 메서드를 재정의합니다.
IOleObjectImpl::OnPreVerbShow
컨트롤이 표시되기 전에 DoVerbShow 에서 호출됩니다.
HRESULT OnPreVerbShow();
Return Value
S_OK 반환합니다.
설명
컨트롤이 표시되지 않도록 하려면 이 메서드를 재정의하여 오류 HRESULT를 반환합니다.
IOleObjectImpl::OnPreVerbUIActivate
컨트롤의 사용자 인터페이스가 활성화되기 전에 DoVerbUIActivate에서 호출됩니다.
HRESULT OnPreVerbUIActivate();
Return Value
S_OK 반환합니다.
설명
컨트롤의 사용자 인터페이스가 활성화되지 않도록 하려면 이 메서드를 재정의하여 오류 HRESULT를 반환합니다.
IOleObjectImpl::SetClientSite
컨테이너의 클라이언트 사이트에 대한 컨트롤을 알려줍니다.
STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);
설명
그런 다음 메서드는 S_OK 반환합니다.
Windows SDK에서 IOleObject::SetClientSite를 참조하세요.
IOleObjectImpl::SetColorScheme
컨트롤의 애플리케이션에 색 구성표를 권장합니다(있는 경우).
STDMETHOD(SetColorScheme)(LOGPALETTE* /* pLogPal */);
Return Value
E_NOTIMPL을 반환합니다.
설명
Windows SDK에서 IOleObject::SetColorScheme을 참조하세요.
IOleObjectImpl::SetExtent
컨트롤의 표시 영역 범위를 설정합니다.
STDMETHOD(SetExtent)(
DWORD dwDrawAspect,
SIZEL* psizel);
설명
그렇지 않으면 SetExtent
컨트롤 클래스 데이터 멤버 CComControlBase::m_sizeExtent 가리키는 psizel
값을 저장합니다. 이 값은 HIMETRIC 단위(단위당 0.01mm)입니다.
컨트롤 클래스 데이터 멤버 CComControlBase::m_bResizeNatural TRUE SetExtent
이면 컨트롤 클래스 데이터 멤버 CComControlBase::m_sizeNatural 가리키는 psizel
값도 저장합니다.
컨트롤 클래스 데이터 멤버 CComControlBase::m_bRecomposeOnResize TRUE SetExtent
이면 제어 크기가 변경되었음을 자문 소유자에 등록된 모든 권고 싱크를 호출 SendOnDataChange
하고 SendOnViewChange
알립니다.
Windows SDK에서 IOleObject::SetExtent를 참조하세요.
IOleObjectImpl::SetHostNames
컨테이너 애플리케이션 및 컨테이너 문서의 이름을 컨트롤에 알릴 수 있습니다.
STDMETHOD(SetHostNames)(LPCOLESTR /* szContainerApp */, LPCOLESTR /* szContainerObj */);
Return Value
S_OK 반환합니다.
설명
Windows SDK에서 IOleObject::SetHostNames를 참조하세요.
IOleObjectImpl::SetMoniker
모니커가 무엇인지 컨트롤에 알릴 수 있습니다.
STDMETHOD(SetMoniker)(
DWORD /* dwWhichMoniker */,
IMoniker** /* pmk */);
Return Value
E_NOTIMPL을 반환합니다.
설명
Windows SDK에서 IOleObject::SetMoniker를 참조하세요.
IOleObjectImpl::Unadvise
컨트롤 클래스의 m_spOleAdviseHolder
데이터 멤버에 저장된 권고 연결을 삭제합니다.
STDMETHOD(Unadvise)(DWORD dwConnection);
설명
Windows SDK에서 IOleObject::Unadvise를 참조하세요.
IOleObjectImpl::Update
컨트롤을 업데이트합니다.
STDMETHOD(Update)(void);
Return Value
S_OK 반환합니다.
설명
Windows SDK에서 IOleObject::Update를 참조하세요.