Abort Procedure

Any application written for Windows that supports printing should provide an abort procedure and a modeless dialog box that allow a user to cancel a print job. The abort procedure for the sample application contains a message loop that retrieves messages for the modeless dialog box.

BOOL CALLBACK AbortProc(HDC hdc, int nCode)

{

MSG msg;

/*

* Retrieve and remove messages from the thread's message

* queue.

*/

while (PeekMessage((LPMSG) &msg, (HWND) NULL,

0, 0, PM_REMOVE)) {

/* Process any messages for the Cancel dialog box. */

if (!IsDialogMessage(hdlgCancel, (LPMSG) &msg)) {

TranslateMessage((LPMSG) &msg);

DispatchMessage((LPMSG) &msg);

}

}

/*

* Return the global bPrint flag (which is set to FALSE

* if the user presses the Cancel button).

*/

return bPrint;

}

For Win16-based applications, this procedure must be exported in the application's module-definition (.DEF) file.