Jump to content

GreSavePath

From EDM2

GreSavePath is called during SaveDC and OpenDC to allow the path handling routines to save their local data structures. When a new DC is created, GreSavePath is called with a count of 1 to initialize its local data. A Save with a count of one more than the current save level generates intervening levels.

This function can be hooked by the presentation driver.

Simulation support
This function is simulated by a handling routine in the graphics engine.

Syntax

GreSavePath(hdc, cSave, pInstance, lFunction)

Parameters

hdc (HDC) - input
Device context handle.
cSave (LONG) - input
DC save level. This must not be a negative value.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreSavePath.

Return Code

fSuccess (BOOL) - returns
Return codes.
This function returns BOOLEAN (fSuccess).
  • TRUE Successful
  • FALSE Error
Possible Errors Detected: When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
  • PMERR_HDC_BUSY
  • PMERR_INV_HDC
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Remarks

This function is required to ensure that the path data is saved.

Sample Code

#define INCL_GRE_PATHS
#include <os2.h>

HDC      hdc;        /*  Device context handle. */
LONG     cSave;      /*  DC save level. This must not be a negative value. */
PVOID    pInstance;  /*  Pointer to instance data. */
ULONG    lFunction;  /*  High-order WORD=flags; low-order WORD=NGreSavePath. */
BOOL     fSuccess;   /*  Return codes. */

fSuccess = GreSavePath(hdc, cSave, pInstance, lFunction);