GreCombineRectRegion
From EDM2
GreCombineRectRegion combines a region with a rectangle to make a new region. If COM_TRANSFORM is not set, the function expects the point to be in device coordinates. The destination region can be the same as the source region. An error is raised if either of the regions specified is currently selected as the clip region. The source and destination regions must be of the same device class.
This function can be hooked by the presentation driver.
- Simulation support
- This function is simulated by a handling routine in the graphics engine.
Contents
Syntax
GreCombineRectRegion(hdc, hrgnDst, prclRect, hrgnSrc, cmdMode, pInstance, lFunction)
Parameters
- hdc (HDC) - input
- Device context handle.
- hrgnDst (HRGN) - input
- Destination region handle.
- prclRect (PRECTL) - input
- Pointer to rectangle.
- hrgnSrc (HRGN) - input
- Region handle.
- cmdMode (LONG) - input
- Method of combination.
- CRGN_OR: Union of hrgnSrc and prclRect.
- CRGN_COPY: Uses prclRect only. The hrgnSrc parameter is ignored.
- CRGN_XOR: Symmetric difference of hrgnSrc and prclRect.
- CRGN_AND: Intersection of hrgnSrc and prclRect.
- CRGN_DIFF: Uses hrgnSrc and not (prclRect).
- pInstance (PVOID) - input
- Pointer to instance data.
- lFunction (ULONG) - input
- High-order WORD=flags; low-order WORD=NGreCombineRectRegion.
Returns
- rc (LONG) - returns
- This function returns an integer (lComplexity) indicating the complexity of the new region:
- RGN_ERROR: Error
- RGN_NULL: Null region
- RGN_RECT: Rectangular region
- RGN_COMPLEX: Complex region (more than one rectangle)
- 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_HRGN_BUSY
- PMERR_INSUFFICIENT_MEMORY
- PMERR_INV_COORDINATE
- PMERR_INV_HRGN
- PMERR_INV_RECT
- PMERR_INV_REGION_MIX_MODE
- PMERR_REGION_IS_CLIP_REGION
- Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.
Sample
#define INCL_GRE_REGIONS #include <os2.h> HDC hdc; /* Device context handle. */ HRGN hrgnDst; /* Destination region handle. */ PRECTL prclRect; /* Pointer to rectangle. */ HRGN hrgnSrc; /* Region handle. */ LONG cmdMode; /* Method of combination. */ PVOID pInstance; /* Pointer to instance data. */ ULONG lFunction; /* High-order WORD=flags; low-order WORD=NGreCombineRectRegion. */ LONG rc; rc = GreCombineRectRegion(hdc, hrgnDst, prclRect, hrgnSrc, cmdMode, pInstance, lFunction);