LBitmap::GetOverlay

#include "ltwrappr.h"

virtual L_INT LBitmap::GetOverlay(nIndex, pOverlayBitmap, uStructSize, uFlags)

virtual L_INT LBitmap::GetOverlay(nIndex, pBitmap, uStructSize, uFlags)

Gets the overlay bitmap for a certain index.

Parameters

L_INT nIndex

The index of the overlay being retrieved. This index is zero-based.

pBITMAPHANDLE pOverlayBitmap

Pointer to the overlay bitmap handle which will be filled with the new overlay bitmap. Cannot be NULL.

L_UINT uStructSize

Size of the BITMAPHANDLE structure pointed to by pOverlayBitmap. Pass sizeof(BITMAPHANDLE).

L_UINT uFlags

Flags that determine retrieving options. Values cannot be combined. Possible values are:

Value Meaning
OVERLAY_COPY [0x0000] Retrieve a copy of the overlay bitmap from the overlay list.
OVERLAY_NOCOPY [0x0001] Retrieve the actual overlay bitmap. No copy is made. You should be careful when modifying the overlay bitmap because you can modify/invalidate the entry in the overlay bitmap list.
OVERLAY_MOVE [0x0003] Retrieve the actual overlay bitmap, and also remove the bitmap from the overlay list. This is recommended over OVERLAY_NOCOPY.

LBitmapBase* pBitmap

Pointer to the overlay bitmap object which will be filled with the new overlay bitmap. Cannot be NULL.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function will get the overlay bitmap. You can get a copy of the overlay bitmap (OVERLAY_COPY) or you can get the bitmap without making a copy (OVERLAY_NOCOPY or OVERLAY_MOVE).

The quickest way to get the overlay bitmap is to avoid making a copy. For more information about how to use OVERLAY_NOCOPY, refer to the Comments section of LBitmap::SetOverlay.

If you use OVERLAY_MOVE, the overlay bitmap from the corresponding index will be invalidated.

pOverlayBitmap is assumed to be unallocated an uninitialized. It will be filled without freeing the existing data.

Required DLLs and Libraries

Platforms

Win32, x64.

See Also

Functions

Topics

Example

This example will get the overlay bitmaps and save them to separate files.

L_INT LBitmap__GetOverlayExample(HWND hWnd, LBitmap *plBitmap)  
{ 
 
   L_INT nRet;  
   LBitmap OverlayBitmap;  
   L_INT    i;  
   L_TCHAR   s[100];  
 
   for(i = 0; i < MAX_OVERLAYS; i++) 
   { 
      // note that I am using OVERLAY_NOCOPY, so I should not free the overlay bitmap!  
      nRet = plBitmap->GetOverlay(i, &OverlayBitmap, sizeof(BITMAPHANDLE), OVERLAY_NOCOPY);  
      if(nRet == SUCCESS)  
      { 
         wsprintf(s,MAKE_IMAGE_PATH(TEXT("overlay%d_copy.cmp")), i);  
         nRet = OverlayBitmap.Save(s , FILE_LEAD1BIT, 1, 1, NULL);  
         if(nRet != SUCCESS)  
            MessageBox(hWnd, TEXT("Error saving file!"), s, MB_OK);  
      } 
      else 
         return nRet; 
   } 
   return SUCCESS; 
} 

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

LEADTOOLS Raster Imaging C++ Class Library Help