6.4.3 Object-Manipulation Functions in Handler

The handler object-manipulation functions take the place of the original object-manipulation functions in the OLECLI.DLL.

The following pseudocode shows a typical handler object-manipulation function that calls one of the original OLECLI.DLL object-manipulation functions.

DllDraw(parameters)

{

lpvtblDef->GetData(cfNative, &hNative); /* Get native data */

UseNativeDataToDraw; /* Draw with it */

Return OLE_OK;

}

To write a function that calls the original function from the OLECLI.DLL but allow the ability to modify the function, use the following pseudocode.

DllGetData(parameters)

{

lpvtblDef->GetData(parameters);/* Use the pointer from

the backup copy of

OLEOBJECTVTBL */

AdditionalCoding;/* After you get call

original function,

...manipulate*/

Return OLE_OK;

}

Note Any pointers to functions not modified in the handler VTBL will point to the original functions in OLECLI.DLL. You do not need to write a function that just calls the original function.