L_AnnEnumerateTextTokenTable

#include "l_bitmap.h"

L_LTANN_API L_INT L_AnnEnumerateTextTokenTable(hAutomation, pfnCallback, pUserData)

Lets you examine the contents of the annotation text token table.

Parameters

HANNOBJECT hAutomation

Handle of the automation object.

ANNENUMTEXTTOKENTABLECALLBACK pfnCallback

Callback function for processing each entry in the text token table. Use the function pointer as the value of this parameter.

L_AnnEnumerateTextTokenTable calls the pfnCallback callback function for each entry in the annotation text token table. The callback function must adhere to the function prototype described in the ANNENUMTEXTTOKENTABLECALLBACK Function.

L_VOID *pUserData

Void pointer that you can use to pass one or more additional parameters that the callback function needs.

To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. If the additional parameters are not needed, you can pass NULL in this parameter.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

Use this function to examine the contents of the annotation text token table. This function is used with the text annotation objects that support tokens, namely the following:

The pfnCallback is called for each token. Note that the tokens cannot be changed with this function. To modify the text token table, use one of the following functions:

Required DLLs and Libraries

Platforms

Win32, x64.

See Also

Functions

Topics

Example

This example enumerates all of the tokens in the text token table, and displays the result.

L_INT EXT_CALLBACK annTextTokenTableCallback(L_INT          nTextTokenCount, 
                                             L_INT          nIndex, 
                                             pANNTEXTTOKEN  pTextToken, 
                                             L_VOID*        pUserData) 
{ 
   L_TCHAR* pszMsg; 
   L_TCHAR  szTemp[100]; 
   L_TCHAR* pszType; 
 
   pszMsg = (L_TCHAR *)pUserData; 
 
   if (nIndex == 0) 
      wsprintf(pszMsg, TEXT("Total Tokens: %d\n"), nTextTokenCount); 
   pszType = TEXT("Unknown"); 
   switch(pTextToken->nTokenType) 
   { 
   case ANNTOKEN_NONE: 
      pszType = TEXT("ANNTOKEN_NONE"); 
      break; 
 
   case ANNTOKEN_SEPARATOR: 
      pszType = TEXT("ANNTOKEN_SEPARATOR"); 
      break; 
 
   case ANNTOKEN_TEXT: 
      pszType = TEXT("ANNTOKEN_TEXT"); 
      break; 
 
   case ANNTOKEN_DATE_YYYY: 
      pszType = TEXT("ANNTOKEN_DATE_YYYY"); 
      break; 
 
   case ANNTOKEN_DATE_YY: 
      pszType = TEXT("ANNTOKEN_DATE_YY"); 
      break; 
 
   case ANNTOKEN_DATE_MM: 
      pszType = TEXT("ANNTOKEN_DATE_MM"); 
      break; 
 
   case ANNTOKEN_DATE_DD: 
      pszType = TEXT("ANNTOKEN_DATE_DD"); 
      break; 
 
   case ANNTOKEN_DATE_MONTH_NAME: 
      pszType = TEXT("ANNTOKEN_DATE_MONTH_NAME"); 
      break; 
 
   case ANNTOKEN_DATE_DAY_OF_WEEK: 
      pszType = TEXT("ANNTOKEN_DATE_DAY_OF_WEEK"); 
      break; 
 
   case ANNTOKEN_TIME_HH_12: 
      pszType = TEXT("ANNTOKEN_TIME_HH_12"); 
      break; 
 
   case ANNTOKEN_TIME_HH_24: 
      pszType = TEXT("ANNTOKEN_TIME_HH_24"); 
      break; 
 
   case ANNTOKEN_TIME_MM: 
      pszType = TEXT("ANNTOKEN_TIME_MM"); 
      break; 
 
   case ANNTOKEN_TIME_SS: 
      pszType = TEXT("ANNTOKEN_TIME_SS"); 
      break; 
 
   case ANNTOKEN_TIME_MILLISECONDS: 
      pszType = TEXT("ANNTOKEN_TIME_MILLISECONDS"); 
      break; 
 
   case ANNTOKEN_AM_PM: 
      pszType = TEXT("ANNTOKEN_AM_PM"); 
      break; 
   } 
 
   wsprintf(szTemp, TEXT("[%d]#%c\t%s\t%s\t%s\n"), 
      nIndex, 
      pTextToken->cToken ? pTextToken->cToken : ' ', 
      pTextToken->pszDesc  ? pTextToken->pszDesc : TEXT(""), 
      pTextToken->pszTokenString  ? pTextToken->pszTokenString : TEXT(""), 
      pszType); 
 
   lstrcat(pszMsg, szTemp); 
   return SUCCESS; 
} 
 
 
L_INT AnnEnumeratTextTokenTableExample(HANNOBJECT hAutomation) 
{ 
   L_INT nRet; 
   L_TCHAR szMsg[1000]; 
 
   lstrcpy(szMsg, TEXT("")); 
   nRet = L_AnnEnumerateTextTokenTable(hAutomation, annTextTokenTableCallback, szMsg); 
   if(nRet != SUCCESS) 
      return nRet; 
   MessageBox(NULL, szMsg, TEXT("Text Token Table"), MB_OK); 
   return SUCCESS; 
} 

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

LEADTOOLS Raster Imaging C API Help