INF: Meanings and Uses of OLE Rendering Options

ID Number: Q83660

3.10

WINDOWS

Summary:

During the process of creating an object linking and embedding (OLE)

object, an application must specify a rendering option. This article

discusses each of the three rendering options: olerender_draw,

olerender_format, and olerender_none.

More Information:

The olerender_draw Option

-------------------------

The OLE client library manages the presentation data. The client

application calls the OleDraw function to display the object. This

option is the simplest and most common rendering option. It imposes

the least amount of overhead on an application.

This rendering option allows an object handler to provide rendering

services for objects of its class. If the client application does not

call OleDraw, the object handler cannot intercept the call to the Draw

method.

The olerender_format Option

---------------------------

The client application manages the presentation data. The client must

call the OleGetData function to obtain data in a presentation format

(CF_BITMAP, CF_DIB, or CF_METAFILEPICT) and render the image. If the

application obtains a metafile, the application can call the

PlayMetaFile function or enumerate the records from the metafile and

process them individually.

Using the olerender_format option prevents an object handler from

fully participating in rendering an object because handlers typically

handle the OLEOBJECT::Draw method. When a client specifies

olerender_format, the client application typically draws the object

manually as described above, bypassing the call to the OleDraw

function. Because the client does not call OleDraw, this method also

bypasses any special rendering provided by a handler.

The olerender_none Option

-------------------------

This object has no presentation data. The client application calls the

OleGetData function to retrieve information only for OwnerLink and

ObjectLink data formats. Any presentation data used by the object is

defined by the client and must be drawn by the client. This option is

most useful for implementing hyperlinks.

As with the olerender_format option, using olerender_none prevents

object handlers from rendering the object. However, because this

option implies that there is no presentation data, there should be

nothing for the handler to render.

Additional reference words: 3.10