| 
   Available in LEADTOOLS Medical Imaging toolkits.  | 
LDicomDS::SetOverlayAttributes
#include "ltdic.h"
L_UINT16 LDicomDS::SetOverlayAttributes (uOverlayIndex,pOverlayAttributes,uFlags)
| 
 L_UINT uOverlayIndex;  | 
 /* index */  | 
| 
 pOVERLAYATTRIBUTES pOverlayAttributes;  | 
 /* pointer to a structure */  | 
| 
 L_UINT uFlags;  | 
 /* flags */  | 
Sets overlay attributes for a certain index.
| 
 Parameter  | 
 Description  | 
|
| 
 uOverlayIndex  | 
 The index of the overlay for which to set the attributes. This index is zero-based.  | 
|
| 
 pOverlayAttributes  | 
 Pointer to a structure containing the overlay attributes to set.  | 
|
| 
 uFlags  | 
 Binary flags that determine the behavior of the function. Possible values are:  | 
|
| 
 
  | 
 Value  | 
 Meaning  | 
| 
 
  | 
 SET_OVERLAY_ATTRIB_NO_OVERRIDE  | 
 Set this flag if you dont want to update an overlay that already exists in the dataset.  | 
Returns
| 
 0  | 
 The function was successful.  | 
| 
 > 0  | 
 An error occurred. Refer to Return Codes.  | 
Comments
Before calling this function, initialize pOverlayAttributes->uStructSize to be sizeof(OVERLAYATTRIBUTES) and initialize all the OVERLAYATTRIBUTES structure members.
Required DLLs and Libraries
| 
 LTDIC For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application  | 
See Also
Example
// This function will delete all overlays in a dataset.
L_UINT16 DeleteAllOverlays(LDicomDS &InDS)
{
   L_UINT16 nRet;
   L_UINT   uOverlayCount = 0;
   L_UINT16 uOverlayIndex;
   nRet  = InDS.GetOverlayCount (&uOverlayCount); 
   if(DICOM_SUCCESS != nRet) 
   {
      return nRet;   
   }
   for(uOverlayIndex = 0 ; uOverlayIndex < uOverlayCount ; uOverlayIndex++)
   {
      nRet = InDS.DeleteOverlay (uOverlayIndex,0); 
      if(DICOM_SUCCESS != nRet) 
      {
         return nRet; 
      }
   }
   return DICOM_SUCCESS; 
}
// This function will store the overlays associated 
// with a bitmap handle inside the DICOM dataset
L_INT LDicomDS_SetOverlayAttributesExample(LDicomDS &InDS, pBITMAPHANDLE pBitmap)
{
   OVERLAYATTRIBUTES OverlayAttributes; 
   BITMAPHANDLE      OverlayBitmap; 
   L_UINT            uOverlayCount; 
   L_UINT            uOverlayIndex; 
   L_INT             nLEADRet; 
   L_UINT16          uDICOMRet; 
   //(1)Sanity Check ! 
   if(NULL == pBitmap) 
   {
      return DICOM_ERROR_NULL_PTR;
   }
   //(2)Do we have any overlays at all ? 
   nLEADRet = L_GetOverlayCount( pBitmap, &uOverlayCount, 0); 
   if(SUCCESS != nLEADRet) 
   {
      return DICOM_ERROR_PARAMETER; 
   }
   // If no overlays just return
   if(0 == uOverlayCount) 
   {
      return DICOM_SUCCESS;   
   }
   //(3)Blow away all the overlays in the file
   uDICOMRet = DeleteAllOverlays(InDS); 
   if(DICOM_SUCCESS != uDICOMRet) 
   {
      return uDICOMRet;    
   }   
   //(4) Loop through the overlays and add them into the DICOM file
   for(uOverlayIndex = 0 ; uOverlayIndex < uOverlayCount ; uOverlayIndex++)
   {
      memset(&OverlayAttributes    , 0 , sizeof(OVERLAYATTRIBUTES)); 
      memset(&OverlayBitmap        , 0 , sizeof(BITMAPHANDLE)); 
      // Get overlay attributes
      nLEADRet = L_GetOverlayAttributes(  pBitmap, 
         uOverlayIndex, 
         &OverlayAttributes, 
         sizeof(OverlayAttributes), 
         OVERLAYATTRIBUTES_ORIGIN      |
         OVERLAYATTRIBUTES_FLAGS       |
         OVERLAYATTRIBUTES_BITINDEX    |
         OVERLAYATTRIBUTES_DICOM); 
      if(SUCCESS != nLEADRet) 
      {
         return DICOM_ERROR_PARAMETER; 
      }
      // Set overlay attributes inside DICOM
      uDICOMRet = InDS.SetOverlayAttributes (uOverlayIndex,&OverlayAttributes,0); 
      if(DICOM_SUCCESS != uDICOMRet) 
      {
         return uDICOMRet; 
      }
      // burn overlays which need to be part of the image
      if(OverlayAttributes.uFlags &OVERLAY_USEBITPLANE) 
      {
         nLEADRet = L_UpdateBitmapOverlayBits(  pBitmap, 
            uOverlayIndex, 
            SETOVERLAYBITS_FROMOVERLAY); 
         if(SUCCESS != nLEADRet) 
         {
            return DICOM_ERROR_PARAMETER; 
         }      
      }
      // Get the overlay data (if it's not part of the image) 
      nLEADRet = L_GetOverlayBitmap (  pBitmap, 
         uOverlayIndex, 
         &OverlayBitmap, 
         sizeof(BITMAPHANDLE), 
         OVERLAY_NOCOPY); 
      if(SUCCESS != nLEADRet) 
      {
         return DICOM_ERROR_PARAMETER; 
      }
      // Set overlay data into DICOM
      uDICOMRet = InDS.SetOverlayBitmap (uOverlayIndex,&OverlayBitmap,0); 
      if(DICOM_SUCCESS != uDICOMRet) 
      {
         return uDICOMRet; 
      }
   }
   return DICOM_SUCCESS; 
}