Jump to content

GreSaveRegion

From EDM2
Revision as of 18:21, 7 February 2020 by Martini (talk | contribs) (Created page with "GreSaveRegion is called during SaveDC and OpenDC to allow the region handling routines to save their local data structures. When a new DC is created, GreSaveRegion is called w...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

GreSaveRegion is called during SaveDC and OpenDC to allow the region handling routines to save their local data structures. When a new DC is created, GreSaveRegion is called with a save level of 1 to initialize its local data. A Save with a count of one more than the current save level generates intervening levels. A negative save value is invalid. When initializing a new DC, a valid visible region handle must be created.

This function can be hooked by the presentation driver.

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

Syntax

 GreSaveRegion(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=NGreSaveRegion.

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_INSUFFICIENT_MEMORY
  • PMERR_INV_COORDINATE
  • PMERR_INV_HDC
  • PMERR_INV_HRGN
  • PMERR_INV_RECT
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Remarks

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

Declaration

#define INCL_GRE_CLIP
#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=NGreSaveRegion. */
BOOL     fSuccess;   /*  Return codes. */

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