IOleDocumentView

The IOleDocumentView interface enables a container to communicate with each view supported by a document object. A document object that supports multiple views of its data represents each view as a separate object. Each document view object implements IOleDocumentView, along with IOleInPlaceObject, IOleInPlaceActiveObject, and optional interfaces such as IPrint and IOleCommandTarget. A document object that supports only a single view does not require that view to be implemented as a separate object. Instead, both document and view can be implemented as a single class.

The IOleDocumentView interface provides all the necessary methods for a container to manipulate, manage, and activate a document view object.

The SetInPlaceSite method enables a container to hand a document object an IOleInPlaceSite pointer to its view site in the container. The method GetInPlaceSite enables a container to retrieve a document object’s IOleInPlaceSite pointer.

The GetDocument method provides a container with access to the IUnknown pointer of the document object containing the view object to which the call is made.

The SetRect and GetRect methods manage the simple rectangle that a view will occupy in the container. SetRectComplex enables a container to specify not only the simple rectangle but also the spaces that should be occupied by the view’s scrollbars and size box.

The Show, UIActivate, and Open methods enable a container to manipulate a document view object’s visual state. Show instructs a document view object to activate or deactivate itself in-place. When a view object is active, UIActivate instructs it to activate or deactivate its user interface elements, such as menus, toolbars, and accelerators. IOleDocumentView::Show provides document objects with the same functionality that the IOleInPlaceObject methods InPlaceActivate and InPlaceDeactivate provide to normal in-place-active objects; IOleDocumentView::UIActivate, the same functionality as UIActivate and UIDeactivate.

The Open method activates a document object in a separate window, as is the case with an embedded OLE Document that does not support in-place activation.

The Close method instructs a document view object to deactivate itself and release its document view site pointer. If the view is active in a separate window, the document view object should also close that window

The SaveViewState method enables a container to save a view’s internal state to a stream. The ApplyViewState method enables a container to reload a previously saved view state.

The Clone method enables a container to create a duplicate of the current view object.

When to Implement

All document objects must implement IOleDocumentView for each and every view they support. If a document object supports multiple views, each view must be implemented as a separate class object. If a document object supports only a single view, the document object and its view can both be implemented as a single class.

When to Use

A container calls the methods of this interface to activate, deactivate, close, and generally communicate with a document view object.

Methods in VTable Order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IOleDocumentView Methods

Description

SetInPlaceSite

Associates a container site with this view.

GetInPlaceSite

Retrieves the last site passed in SetInPlaceSite.

GetDocument

Returns the IUnknown pointer of the document object that owns this view.

SetRect

Sets the coordinates of the view port.

GetRect

Retrieves the coordinates last passed in SetRect

SetRectComplex

Sets the coordinates of the view port, scroll bars, and size box.

Show

In-place activates or deactivates a view.

UIActivate

In-place activates or deactivates a view’s user-interface elements.

Open

Displays view in a separate pop-up window

Close

Instructs view to close

SaveViewState

Saves view state into stream

ApplyViewState

Initializes view with view state previously saved in call to SaveViewState.

Clone

Creates a duplicate view object.

See Also

TBD