L_DispContainerSaveAnnotation

#include "l_bitmap.h"

L_LTIVW_API L_INT EXT_FUNCTION L_DispContainerSaveAnnotation(hCellWnd, pFileName, nSubCellIndex, nStartPage, uFlags)

HWND hCellWnd;

/* handle to the cell window */

LPTSTR pFileName;

/* output file name */

L_INT nSubCellIndex;

/* index into the image list attached to the cell */

L_INT nStartPage;

/* the page number of a multi-page file */

L_UINT uFlags;

/* flag */

Saves the annotation of the specified cell or sub-cell to a file.

Parameter

Description

hCellWnd

A handle to the window that represents the cell on which the function's effect will be applied.

pFileName

Character string that contains the name of the file to save.

nSubCellIndex

A zero-based index into the image list attached to the cell specified in nCellIndex. This sub-cell contains the image the annotation that will be saved. Pass -2 to refer to the selected sub-cell. If the cell contains 1 frame then the nSubCellIndex should be 0.

nStartPage

The page number of a multi-page file, which can contain more than one image.

uFlags

Flag that is used to determine the way of saving the annotation. Possible values are:

 

Value

Meaning

 

CONTAINER_FILE_CREATE

[0x00000000] Create a file.

 

CONTAINER_FILE_APPEND

[0x00000001] Append an existing file.

 

CONTAINER_FILE_REPLACE

[0x00000002] Replace the annotation in the index nStartPage in the existing file with the new annotation.

 

CONTAINER_FILE_INSERT

[0x00000003] Insert the annotation in the index nStartPage in the existing file.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function saves the annotation to an XML file. To load the saved annotation file use L_DispContainerLoadAnnotation.

Required DLLs and Libraries

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

See Also

Functions:

L_DispContainerSetAnnotationContainer, L_DispContainerAnnToRgn, L_DispContainerGetSelectedAnnotationAttributes, L_DispContainerSetAnnotationCallBack, L_DispContainerGetAnnotationCallBack, L_DispContainerGetAnnotationContainer, L_DispContainerSetAnnotationCreatedCallBack, L_DispContainerLoadAnnotation, DISPCONTAINERANNOTATIONCALLBACK, DISPCONTAINERANNOTATIONCREATEDCALLBACK

Topics:

Image Viewer Cells

 

Image Viewer Functions: Working with Annotations

Example

This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button.

#if defined LEADTOOLS_V17_OR_LATER
static L_INT EXT_CALLBACK MouseCallBack(HWND hCellWnd,
                                        L_UINT                 uMessage,
                                 pDISPCONTAINERCELLINFO pCellInfo,
                                 L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   UNREFERENCED_PARAMETER(pUserData);

   switch(uMessage)
   {
   case WM_LBUTTONUP:
      {
         L_DispContainerLoadAnnotation(hCellWnd, TEXT("%UserProfile%\\My Documents\\LEADTOOLS Images\\Test.cmp"), pCellInfo->nSubCellIndex, 0, 0);
      }
      break;
   case WM_RBUTTONUP:
         L_DispContainerSaveAnnotation(hCellWnd, TEXT("%UserProfile%\\My Documents\\LEADTOOLS Images\\Test.cmp"), pCellInfo->nSubCellIndex, 0, 0);
      break;
   }

   return SUCCESS;
}

L_INT DispContainerSaveAnnotationExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERMOUSECALLBACK oldCallBack;
   L_VOID *                   pOldUserData;

   L_INT nCellIndex = 0;
   HWND hCellWnd = L_DispContainerGetCellWindowHandle(hCon, nCellIndex, 0);

   L_DispContainerGetMouseCallBack(hCellWnd, &oldCallBack, &pOldUserData);

   L_DispContainerSetMouseCallBack(hCellWnd, MouseCallBack, hCon);

   return SUCCESS;
}


#else



static L_INT EXT_CALLBACK MouseCallBack(L_UINT                 uMessage,
                                 pDISPCONTAINERCELLINFO pCellInfo,
                                 L_VOID *               pUserData)
{
   UNREFERENCED_PARAMETER(pCellInfo);
   HDISPCONTAINER hCon = (HDISPCONTAINER)pUserData;

   switch(uMessage)
   {
   case WM_LBUTTONUP:
      {
         L_DispContainerLoadAnnotation(hCon, TEXT("%UserProfile%\\My Documents\\LEADTOOLS Images\\Test.cmp"), pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, 0, 0);
      }
      break;
   case WM_RBUTTONUP:
         L_DispContainerSaveAnnotation(hCon, TEXT("%UserProfile%\\My Documents\\LEADTOOLS Images\\Test.cmp"), pCellInfo->nCellIndex, pCellInfo->nSubCellIndex, 0, 0);
      break;
   }

   return SUCCESS;
}

L_INT DispContainerSaveAnnotationExample(HDISPCONTAINER hCon)
{
   DISPCONTAINERMOUSECALLBACK oldCallBack;
   L_VOID *                   pOldUserData;

   L_DispContainerGetMouseCallBack(hCon, &oldCallBack, &pOldUserData);

   L_DispContainerSetMouseCallBack(hCon, MouseCallBack, hCon);

   return SUCCESS;
}


#endif