#include "l_bitmap.h"

L_INT pEXT_CALLBACK YourFunction (hRgn, pBoundingRect, iHoleIndex, iHoleTotalCount, iWhiteCount, iBlackCount, pUserData)

Handles each hole punch found by L_HolePunchRemoveBitmap.



Windows region representing one of the holes of the hole punch pattern. It is the programmers responsibility to delete this region (using DeleteObject())when it is no longer needed.

PRECT pBoundingRect

Pointer to a RECT structure that contains the bounding rectangle of one of the holes in a hole punch pattern.

L_INT iHoleIndex

Index of the hole within a hole punch pattern. The holes are numbered from 1 to n, where n is the total number of holes in the hole punch pattern.

L_INT iHoleTotalCount

The total number of holes that make up the hole punch pattern. This value will not change for a particular call to L_HolePunchRemoveBitmap().

L_INT iWhiteCount

Total number of white pixels in one of the holes of a hole punch pattern.

L_INT iBlackCount

Total number of black pixels in one of the holes of a hole punch pattern.

L_VOID *pUserData

A void pointer that you can use to access a variable or structure containing data that your callback function needs. This gives you a way to receive data indirectly from the function that uses this callback function. (This is the same pointer that you pass in the pUserData parameter of L_HolePunchRemoveBitmap).

Keep in mind that this is a void pointer, which must be cast to the appropriate data type within your callback function.


Value Meaning
SUCCESS_REMOVE Remove the hole.
SUCCESS_NOREMOVE Do not remove the hole.
Otherwise An error occurred. Refer to Return Codes.


The callback is called once for each occurring hole in the hole punch configuration. For example, if there are three holes, the callback gets called three times. Return SUCCESS_REMOVE to have a particular hole removed. Return SUCCESS_NOREMOVE to leave the hole unchanged. Pass any other value to abort. This value will be the return value of the L_HolePunchRemoveBitmap() . If HOLEPUNCH_IMAGE_UNCHANGED and HOLEPUNCH_SINGLE_REGION are being used, then the return value of the callback affects the internal single region that contains all the changes.

Required DLLs and Libraries

Help Version 21.0.2021.4.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C API Help