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.