Callback Functions Used by MFC

Three callback functions appear in the Microsoft Foundation Class Library. These callback functions are passed to CDC::EnumObjects, CDC::GrayString, and CDC::SetAbortProc. Note that all callback functions must trap MFC exceptions before returning to Windows, since exceptions cannot be thrown across callback boundaries. For more information about exceptions, see the article Exceptions.

Callback Function for CDC::EnumObjects
Callback Function for CDC::GrayString
Callback Function for CDC::SetAbortProc

Requirements

Header: afxwin.h

Callback Function for CDC::EnumObjects

The ObjectFunc name is a placeholder for the application-supplied function name.

Syntax

int CALLBACK EXPORT ObjectFunc(
    LPSTR lpszLogObject,
    LPSTR* lpData);

Parameters

lpszLogObject
Points to a LOGPEN or LOGBRUSH data structure that contains information about the logical attributes of the object.

lpData
Points to the application-supplied data passed to the EnumObjects function.

Return Value

The callback function returns an int. The value of this return is user-defined. If the callback function returns 0, EnumObjects stops enumeration early.

Remarks

The actual name must be exported.

Callback Function for CDC::GrayString

OutputFunc is a placeholder for the application-supplied callback function name.

Syntax

BOOL CALLBACK EXPORT OutputFunc(
    HDC hDC,
    LPARAM lpData,
    int nCount);

Parameters

hDC
Identifies a memory device context with a bitmap of at least the width and height specified by nWidth and nHeight to GrayString.

lpData
Points to the character string to be drawn.

nCount
Specifies the number of characters to output.

Return Value

The callback function's return value must be TRUE to indicate success; otherwise it is FALSE.

Remarks

The callback function (OutputFunc) must draw an image relative to the coordinates (0,0) rather than (x, y).

Callback Function for CDC::SetAbortProc

The name AbortFunc is a placeholder for the application-supplied function name.

Syntax

BOOL CALLBACK EXPORT AbortFunc(
    HDC hPr,
    int code);

Parameters

hPr
Identifies the device context.

code
Specifies whether an error has occurred. It is 0 if no error has occurred. It is SP_OUTOFDISK if the Print Manager is currently out of disk space and more disk space will become available if the application waits. If code is SP_OUTOFDISK, the application does not have to abort the print job. If it does not, it must yield to the Print Manager by calling the PeekMessage or GetMessage Windows function.

Return Value

The return value of the abort-handler function is nonzero if the print job is to continue, and 0 if it is canceled.

Remarks

The actual name must be exported as described in the Remarks section of CDC::SetAbortProc.

See also

Structures, Styles, Callbacks, and Message Maps
CDC::EnumObjects
CDC::SetAbortProc
CDC::GrayString