L_AnnGetUserHandle

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnGetUserHandle(hObject, uIndex, pAnnHandle)

HANNOBJECT hObject;

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

L_INT32 uIndex;

/* index of user handle to get */

pANNHANDLE pAnnHandle;

/* pointer to a structure */

Gets information about the specified user-defined annotation handle. This function is available in the Document/Medical Toolkits.

Parameter

Description

hObject

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

uIndex

Index of user handle to get. The index is zero based. Passing a negative value returns ERROR_INV_PARAMETER.

pAnnHandle

Pointer to structure to be updated with the user handle.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

Before calling this function, you must create the annotation object.

Call this function to get information about an existing user-defined annotation handle.

If successful, the entire pAnnHandle structure is filled. The pAnnHandle->uFlags field is ignored. For more information, refer to ANNHANDLE.

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_AnnGetUserHandles, 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 the first user handle in an annotation object.

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  AnnGetUserHandleexample(HANNOBJECT hObject)
{
   L_INT nRet;
   L_UINT      uCount;
   ANNHANDLE   AnnHandle;

   // Get the total count of user handles
   nRet = L_AnnGetUserHandles(hObject, NULL, &uCount);
   if(nRet != SUCCESS)
      return nRet;
   if (uCount > 0)
   {
      memset(&AnnHandle, 0, sizeof(ANNHANDLE));
      AnnHandle.uStructSize = sizeof(&AnnHandle);
      nRet = L_AnnGetUserHandle(hObject, 0, &AnnHandle);
      if(nRet != SUCCESS)
         return nRet;
      DumpAnnHandle(0, &AnnHandle);
   }
   else
   {
      MessageBox(NULL, TEXT("No User Handles!"), TEXT("Error"), MB_OK);
      return nRet;
   }
   return SUCCESS;
}