L_CreateMarkers

#include "l_bitmap.h"

L_LTFIL_API L_INT L_CreateMarkers(phMarkers)

L_HANDLE* phMarkers;

/* pointer to a marker handle */

Creates an empty marker collection.

Parameter

Description

phMarkers

Pointer to a variable to be updated with a handle to an empty marker collection.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

Markers can be added to the collection using L_InsertMarker function.

When the marker collection handle is no longer needed, free it by calling L_FreeMarkers.

Required DLLs and Libraries

LTFIL

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

Win32, x64.

See Also

Functions:

L_LoadMarkers, L_FreeMarkers, L_InsertMarker, L_EnumMarkers, L_GetMarkerCount, L_GetMarker, L_MarkersSupported

Topics:

Raster Image Functions: Markers

 

Working with Markers

Example

This example will copy all APPn markers from one marker collection to another

L_INT EXT_CALLBACK MyCopyCallback(L_UINT             uMarker,
                                  L_UINT             uMarkerSize,
                                  L_UCHAR          * pMarkerData,
                                  L_VOID           * pUserData,
                                  LEADMARKERCALLBACK pfnLEADCallback,
                                  L_VOID           * pLEADUserData)
{
   UNREFERENCED_PARAMETER(pfnLEADCallback);
   UNREFERENCED_PARAMETER(pUserData);
   UNREFERENCED_PARAMETER(pMarkerData);
   
   // is it a APPn marker?
   if(uMarker >= 0xE0 && uMarker < 0xF0)
   {
      // just insert all the markers in the destination collection list
      // L_InsertMarker will never return SUCCESS_IGNOREMARKER, so the source collection list will not be changed.
      return L_InsertMarker((L_HANDLE)pLEADUserData, 0xFFFFFFFF, uMarker, uMarkerSize, pMarkerData);
   }
   return SUCCESS;
}

L_INT  CreateMarkersExample(HANDLE hSrcMarkers, HANDLE * phDstMarkers)
{
   L_INT nRet;

   nRet = L_CreateMarkers(phDstMarkers);
   if(nRet != SUCCESS)
      return nRet;

   // copy the APPn markers from hSrcMarkers
   nRet = L_EnumMarkers(hSrcMarkers, 0, MyCopyCallback, (L_VOID *)*phDstMarkers);
   if(nRet != SUCCESS)
   {
      // An error occurred. Free the marker list we have created
      L_FreeMarkers(*phDstMarkers);
      *phDstMarkers = NULL;
   }
   return nRet;
}