L_AnnGetUserHandles

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnGetUserHandles(hObject, pAnnHandle, pCount)

HANNOBJECT hObject;

/* handle to the annotation object with the user-defined handles */

pANNHANDLE pAnnHandle;

/* array of ANNHANDLE structures that define user handles */

L_UINT *pCount;

/* pointer to an unsigned integer used to return the total count of user handles */

Gets information about all existing user-defined annotation handles.

This function is available in the Document and Medical Imaging toolkits.

Parameter

Description

hObject

Handle to the annotation object for which to get the user handles.

pAnnHandle

Array of ANNHANDLE structures to be updated with the user-defined handles.

pCount

Pointer to an unsigned integer used to return the total number of user handles

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

Call with pAnnHandle == NULL to get the total number of user handles. Then allocate memory for an array of ANNHANDLE structures and call this function again.

Gets an array of user-defined handles associated with the annotation object.

Required DLLs and Libraries

LTANN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 2000 / XP/Vista.

See Also

Functions:

L_AnnDefine, L_AnnAddUserHandle, L_AnnAdjustPoint, L_AnnChangeUserHandle, L_AnnConvert, L_AnnDefine2, L_AnnDeleteUserHandle, L_AnnEnumerateHandles, L_AnnGetRestrictToContainer, L_AnnGetRotateAngle, L_AnnGetUserHandle, L_AnnHitTest, L_AnnRestrictCursor, L_AnnSetRestrictToContainer

Topics:

Annotation Functions: Creating and Deleting Annotations

 

Implementing Custom Annotations

 

Implementing Annotations

 

Implementing an Automated Annotation Program

 

Implementing a Non-automated Annotation Program

 

Obtaining Annotation Object Information

Example

This example displays information about all the user handles in an object.

 static L_VOID DumpAnnHandle(L_UINT      uIndex,
                            pANNHANDLE  pAnnHandle)
{
   L_TCHAR szMsg[400];

   if (pAnnHandle)
   {
      _stprintf_s(szMsg, TEXT("uIndex %d\nnSize: %d\nnID: %d\n aptContainer[%f,%f]\nptClient[%d,%d]\nbVisible: %s\ncrPen: 0x%x\ncrFill: 0x%x\nnShape: %s\nhCursor: %s\n"),
         uIndex,
         pAnnHandle->uStructSize,  
         pAnnHandle->nID,
         pAnnHandle->aptContainer.x, pAnnHandle->aptContainer.y, 
         pAnnHandle->ptClient.x,     pAnnHandle->ptClient.y,
         pAnnHandle->bVisible ? TEXT("Visible") : TEXT("Not Visible"),
         pAnnHandle->crPen,
         pAnnHandle->crFill,
         pAnnHandle->nShape == ANNHANDLE_SHAPE_SQUARE ? TEXT("Square") : TEXT("Circle"),
         pAnnHandle->hCursor ? TEXT("Cursor") : TEXT("No Cursor")
         );
      MessageBox(NULL, szMsg, TEXT(""), MB_OK);
   }
}

 L_INT AnnGetUserHandlesExample(HANNOBJECT hObject)
{
   L_INT nRet;
   L_UINT      i;
   L_UINT      uCount;
   pANNHANDLE  pAnnHandle;

   // Get the total count of user handles, and allocate memory
   nRet = L_AnnGetUserHandles(hObject, NULL, &uCount);
   if(nRet != SUCCESS)
      return nRet;
   pAnnHandle = (pANNHANDLE)malloc(uCount * sizeof(ANNHANDLE));

   nRet = L_AnnGetUserHandles(hObject, pAnnHandle, &uCount);
   if(nRet != SUCCESS)
      return nRet;
   for (i = 0; i<uCount; i++)
      DumpAnnHandle(i, pAnnHandle + i);

   free(pAnnHandle);
   return SUCCESS;
}