ImageGear for C and C++ on Windows v19.10 - Updated
LPFNIG_ERRSTACK_ADD
API Reference Guide > Core Component API Reference > Core Component Callback Functions Reference > LPFNIG_ERRSTACK_ADD

This callback function is called each time a thread that registered this callback (using IG_err_callback_set() function) adds a new record to the error stack.

Declaration:

 
Copy Code
typedef VOID (LPACCUAPI LPFNIG_ERRSTACK_ADD)(
        LPVOID lpPrivate,     
        UINT nRecord,
        INT iLineNumber,
        AT_ERRCODE iCode,
        UINT nLevel,
        AT_INT lValue1,
        AT_INT lValue2,
        LPCHAR lpFileName,
        LPCHAR lpExtratext
);

Arguments:

Name Type Description
lpPrivate LPVOID Private data passed in when you register a callback.
nRecord UINT Index of this record in the stack.
iLineNumber INT Line number where the problem has occurred.
iCode AT_ERRCODE Error code.
nLevel UINT Level of the error.
lValue1 AT_INT Specific value identifying the reason for the error.
lValue2 AT_INT Specific value identifying the reason for the error.
lpFileName LPCHAR Pointer to a string holding a filename or NULL if not available.
lpExtratext LPCHAR Pointer to a string holding additional information, or NULL if not available.

Return Value:

None

Supported Raster Image Formats:

This function does not process image pixels.

Sample:

Filter, Multimedia, MFC Threads

Example:

 
Copy Code
VOID   ACCUAPI  LocThErrAddCB(
LPVOID   lpPrivate,    /* Private data passed in.  */
UINT    nRecord,     /* index of this record in the stack    */
INT      iLineNumber, /* line number where problen occurred   */
AT_ERRCODE   iCode,     /* error code. */
UINT      nLevel,       /* level of the error.     */
LONG      lValue1,
LONG      lValue2,
LPCHAR    lpFileName,  /* filename str ofr NULL if not present. */
LPCHAR    lpExtratext  /* extra text info about error.  */
)
{
        char     szOutput[1024];
        sprintf( szOutput, "Local CallBack - new error record added:\nThread Id:%u\nThread
Number=%i\nRecord=%i\nLine=%i\nCode=%i\nLevel=%i\nValue1=%i; Value2=%i,\nFile Name:
%s\nExtra Text: %s", 
                GetCurrentThreadId(), (int)lpPrivate, nRecord, iLineNumber, iCode, nLevel, lValue1,
lValue2, lpFileName, lpExtratext );
        //AfxMessageBox( szOutput );
        ::MessageBox(NULL, szOutput, "THREADS", MB_OK);
}