IOleInPlaceObjectWindowlessImpl Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at IOleInPlaceObjectWindowlessImpl Class.

This class implements IUnknown and provides methods that enable a windowless control to receive window messages and to participate in drag-and-drop operations.

Important

This class and its members cannot be used in applications that execute in the Windows Runtime.

Syntax

template<class T>
class IOleInPlaceObjectWindowlessImpl

Parameters

T
Your class, derived from IOleInPlaceObjectWindowlessImpl.

Members

Public Methods

Name Description
IOleInPlaceObjectWindowlessImpl::ContextSensitiveHelp Enables context-sensitive help. The ATL implementation returns E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::GetDropTarget Supplies the IDropTarget interface for an in-place active, windowless object that supports drag and drop. The ATL implementation returns E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::GetWindow Gets a window handle.
IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate Deactivates an active in-place control.
IOleInPlaceObjectWindowlessImpl::OnWindowMessage Dispatches a message from the container to a windowless control that is in-place active.
IOleInPlaceObjectWindowlessImpl::ReactivateAndUndo Reactivates a previously deactivated control. The ATL implementation returns E_NOTIMPL.
IOleInPlaceObjectWindowlessImpl::SetObjectRects Indicates what part of the in-place control is visible.
IOleInPlaceObjectWindowlessImpl::UIDeactivate Deactivates and removes the user interface that supports in-place activation.

Remarks

The IOleInPlaceObject interface manages the reactivation and deactivation of in-place controls and determines how much of the control should be visible. The IOleInPlaceObjectWindowless interface enables a windowless control to receive window messages and to participate in drag-and-drop operations. Class IOleInPlaceObjectWindowlessImpl provides a default implementation of IOleInPlaceObject and IOleInPlaceObjectWindowless and implements IUnknown by sending information to the dump device in debug builds.

Related Articles ATL Tutorial, Creating an ATL Project

Inheritance Hierarchy

IOleInPlaceObjectWindowless

IOleInPlaceObjectWindowlessImpl

Requirements

Header: atlctl.h

IOleInPlaceObjectWindowlessImpl::ContextSensitiveHelp

Returns E_NOTIMPL.

HRESULT ContextSensitiveHelp(BOOL fEnterMode);

Remarks

See IOleWindow::ContextSensitiveHelp in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::GetDropTarget

Returns E_NOTIMPL.

HRESULT GetDropTarget(IDropTarget** ppDropTarget);

Remarks

See IOleInPlaceObjectWindowless::GetDropTarget in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::GetWindow

The container calls this function to get the window handle of the control.

HRESULT GetWindow(HWND* phwnd);

Remarks

Some containers will not work with a control that has been windowless, even if it is currently windowed. In ATL's implementation, if the control class's data member m_bWasOnceWindowless is TRUE, the function returns E_FAIL. Otherwise, if phwnd is not NULL, GetWindow sets * phwnd to the control class's data member m_hWnd and returns S_OK.

See IOleWindow::GetWindow in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate

Called by the container to deactivate an in-place active control.

HRESULT InPlaceDeactivate(HWND* phwnd);

Remarks

This method performs a full or partial deactivation depending on the state of the control. If necessary, the control's user interface is deactivated, and the control's window, if any, is destroyed. The container is notified that the control is no longer active in place. The IOleInPlaceUIWindow interface used by the container to negotiate menus and border space is released.

See IOleInPlaceObject::InPlaceDeactivate in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::OnWindowMessage

Dispatches a message from a container to a windowless control that is in-place active.

HRESULT OnWindowMessage(
    UINT msg,
    WPARAM WParam,
    LPARAM LParam,
    LRESULT plResultParam);

Remarks

See IOleInPlaceObjectWindowless::OnWindowMessage in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::ReactivateAndUndo

Returns E_NOTIMPL.

HRESULT ReactivateAndUndo();

Remarks

See IOleInPlaceObject::ReactivateAndUndo in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::SetObjectRects

Called by the container to inform the control that its size and/or position has changed.

HRESULT SetObjectRects(LPCRECT prcPos, LPCRECT prcClip);

Remarks

Updates the control's m_rcPos data member and the control display. Only the part of the control that intersects the clip region is displayed. If a control's display was previously clipped but the clipping has been removed, this function can be called to redraw a full view of the control.

See IOleInPlaceObject::SetObjectRects in the Windows SDK.

IOleInPlaceObjectWindowlessImpl::UIDeactivate

Deactivates and removes the control's user interface that supports in-place activation.

HRESULT UIDeactivate();

Remarks

Sets the control class's data member m_bUIActive to FALSE. The ATL implementation of this function always returns S_OK.

See IOleInPlaceObject::UIDeactivate in the Windows SDK.

See Also

CComControl Class
Class Overview