#include "ltwrappr.h"

virtual L_INT LAnnButton::GetUserHandle(uIndex, pAnnHandle)

L_INT32 uIndex;

index of user handle to get

pANNHANDLE pAnnHandle;

pointer to a structure

Gets information about the specified user-defined annotation handle.




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


Pointer to an ANNHANDLE structure to be updated with the user handle.



The function was successful.

< 1

An error occurred. Refer to Return Codes.


Before calling this function, you must create the Button 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


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.

See Also


Class Members


Annotation Functions: Object Properties


Implementing Annotations


Automated User Interface for Annotations


Annotation Functions: Creating and Deleting Annotations


Types of Annotations


Annotation Functions: Implementing Custom Annotations


Annotation Functions: Creating Custom Annotations


Fixed Annotations


Minimizing Flicker With Double Buffering


Annotation Functions: Working with the Toolbar


// This example displays information about the first user handle in an annotation object

static L_VOID DumpAnnHandle(L_UINT uIndex, pANNHANDLE pAnnHandle)  
   L_TCHAR szMsg[400];  
   if (pAnnHandle)  
      wsprintf(szMsg, TEXT("uIndex %d\nuStructSize: %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 LAnnButton_GetUserHandleExample(LAnnButton *LButton)  
   L_INT nRet; 
   L_UINT uCount;  
   ANNHANDLE AnnHandle;  
   // Get the total count of user handles 
   nRet = LButton->GetUserHandles(NULL, &uCount);  
   if(nRet != SUCCESS) 
      return nRet; 
   if (uCount > 0)  
      memset(&AnnHandle, 0, sizeof(ANNHANDLE));  
      AnnHandle.uStructSize = sizeof(&AnnHandle); 
      nRet = LButton->GetUserHandle(0, &AnnHandle);  
      if(nRet != SUCCESS) 
         return nRet; 
      DumpAnnHandle(0, &AnnHandle);  
      MessageBox(NULL, TEXT("No User Handles!"), TEXT("Error"), MB_OK);  
      return FAILURE; 
   return SUCCESS; 

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

LEADTOOLS Raster Imaging C++ Class Library Help