LMemoryFile::SaveFileCallBack

#include "ltwrappr.h"

virtual L_INT LMemoryFile::SaveFileCallBack(pLBitmap, pLBuffer, uRow, uLines)

LBitmapBase *pLBitmap;

/* pointer to an LBitmap object */

LBuffer * pLBuffer;

/* pointer to an LBuffer object */

L_UINT uRow;

/* row number */

L_UINT uLines;

/* number of lines to save */

This function is called by the LMemoryFile::SaveFileBuffer function to save the specified image data.

Parameter

Description

pLBitmap

Pointer to an LBitmapBase object that contains the image data.

pLBuffer

Pointer to an LBuffer object into which the bitmap will be saved.

uRow

Number of the first row of data that the callback will write to the buffer.

uLines

Number of lines that the callback will write to the buffer.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

If this function is overridden, the user must supply the image data that the function will save. The base class implementation saves data from the class object's associated bitmap.

This function does not support signed data images, unless they are DICOM images. It returns the error code ERROR_SIGNED_DATA_NOT_SUPPORTED if a signed data image that is not a DICOM image is passed to this function.

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.

See Also

Functions:

LMemoryFile::SaveFileBuffer, Class Members

Topics:

Raster Image Functions: Saving Files

 

Raster Image Functions: Redirecting Input and Output

 

Raster Image Functions: Input and Output

 

Loading and Saving Images

Example

class LUserMemoryFile : public LMemoryFile
{
   virtual L_INT SaveFileCallBack(LBitmapBase * pLBitmap,
                                  LBuffer * pLBuffer,
                                  L_UINT uRow,
                                  L_UINT uLines)
   {
      L_TCHAR szMessage[64];
      
      wsprintf(szMessage, TEXT("The number of lines is %u."), uLines);
      MessageBox(NULL, szMessage, TEXT("Testing"), MB_OK);

      return SUCCESS;
   }
};

L_INT SaveFileBufferSample(LBitmapBase & Bitmap)
{
   LUserMemoryFile MemoryFile;
   LBuffer Buffer(1000);   // 1000 bytes; supposed to be enough
   L_UINT32 dwFileSize;
   
   MemoryFile.SetBitmap(&Bitmap);

   if (!MemoryFile.IsCallBackEnabled())
      MemoryFile.EnableCallBack(TRUE);

   return MemoryFile.SaveFileBuffer(&Buffer,
                                    &dwFileSize,
                                    FILE_TIF,
                                    0,
                                    QS,
                                    SAVEFILE_FIXEDPALETTE,
                                    NULL);
}