| LEADTOOLS DICOM C DLL Help > Function References > L_DicomGetGraphicObjectInfo | 
#include "l_bitmap.h"
L_LTDIC_API L_UINT16 L_DicomGetGraphicObjectInfo(hDS, pGraphicAnnSQItem, uGraphicObjectIndex, pGraphicObject, uStructSize)
| HDICOMDS hDS; | /* a DICOM handle */ | 
| pDICOMELEMENT pGraphicAnnSQItem; | /* pointer to a DICOMELEMENTstructure */ | 
| L_UINT uGraphicObjectIndex; | /* graphic annotation object index */ | 
| pDICOMGRAPHICOBJECT pGraphicObject; | /* pointer to the graphic annotation object attributes structure to be updated */ | 
| L_UINT uStructSize; | /* the size of the DICOMGRAPHICOBJECT structure - pass sizeof(DICOMGRAPHICOBJECT) */ | 
Gets the attributes of the specified graphic annotation object.
| Parameter | Description | 
| hDS | A DICOM handle. | 
| pGraphicAnnSQItem | Pointer to an item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". | 
| uGraphicObjectIndex | The index of the graphic annotation object whose attributes we want to retrieve. | 
| pGraphicObject | Pointer to a structure which will be filled with the graphic annotation object attributes. | 
| uStructSize | Size of the DICOMGRAPHICOBJECT structure. Pass sizeof(DICOMGRAPHICOBJECT). | 
Returns
| DICOM_SUCCESS | The function was successful. | 
| >0 | An error occurred. Refer to Return Codes. | 
Comments
This function will retrieve the attributes of the specified graphic object and store their values in the structure pointed to by pGraphicObject.
pGraphicObject->uStructSize will be set to the value of the parameter uStructSize.
Before calling this function you can call L_DicomGetGraphicObjPointsCount in order to get the "Number of Graphic Points" (0070,0021) in this object and allocate pGraphicObject->pAnnPoints accordingly.
Required DLLs and Libraries
| For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application | 
Win32, x64, Linux.
See Also
Example
L_INT DicomGetGraphicObjectInfoExample(HDICOMDS hPresStateDS)
{
   L_TCHAR szText[256] = TEXT("\0");
   L_UINT16 nRet;
   L_TCHAR* pszType = NULL;
   DICOMGRAPHICOBJECT AnnGraphic;
   L_UINT uPointsCount;
   L_UINT uObjCount;
   pDICOMANNPOINT pPoints = NULL;
   L_UINT i;
   pDICOMELEMENT pGraphicAnnSQItem = L_DicomFindFirstGraphicAnnSQItem(hPresStateDS);
   nRet = L_DicomGetLayerGraphicObjectCount(hPresStateDS,pGraphicAnnSQItem, &uObjCount);
   if (nRet != DICOM_SUCCESS)
      return nRet;
   if (uObjCount > 0)
   {
      for (i = 0; i < uObjCount; i++)
      {
         memset(&AnnGraphic, 0, sizeof(DICOMGRAPHICOBJECT));
         nRet = L_DicomGetGraphicObjPointCount(hPresStateDS,pGraphicAnnSQItem, i, & uPointsCount);
         if (nRet != DICOM_SUCCESS)
            return nRet;
         if (uPointsCount > 0)
         {
            pPoints = (DICOMANNPOINT *)malloc(sizeof(DICOMANNPOINT) * uPointsCount);
            if (!pPoints)
               return ERROR_NOT_ENOUGH_MEMORY;
            AnnGraphic.pAnnPoints = pPoints;
            AnnGraphic.nPointCount = (L_UINT16)uPointsCount;
            nRet = L_DicomGetGraphicObjectInfo( hPresStateDS,
               pGraphicAnnSQItem,
               i,
               &AnnGraphic,
               sizeof(DICOMGRAPHICOBJECT));
            if (nRet == DICOM_SUCCESS)
            {
               switch (AnnGraphic.uType)
               {
               case DICANN_TYPE_POINT:
                  pszType = TEXT("Point Annotation");
                  break;
               case DICANN_TYPE_POLYLINE:
                  pszType = TEXT("Polyline Annotation");
                  break;
               case DICANN_TYPE_INTERPOLATED:
                  pszType = TEXT("Interpolated Line Annotation");
                  break;
               case DICANN_TYPE_CIRCLE:
                  pszType = TEXT("Circle Annotation");
                  break;
               case DICANN_TYPE_ELLIPSE:
                  pszType = TEXT("Ellipse Annotation");
                  break;
               }
               if (pszType)
               {
                  wsprintf(szText, TEXT("Annotation type is: %s"), pszType);
                  MessageBox( NULL, szText, TEXT("Note"), MB_OK);
               }
               // Do something with the points
               if (pPoints)
                  free(pPoints);
            }
         }
      }
   }
   return DICOM_SUCCESS;
}