BUG: Windows 95 Access Violation Error After Disabling CTRL+C
ID: Q137379
|
The information in this article applies to:
-
Microsoft Win32 Application Programming Interface (API), included with:
SYMPTOMS
In a Win32 environment, a console application can be terminated by
pressing CTRL+C. To disable CTRL+C input, a console application can call
the SetConsoleCtrlHandler(NULL, TRUE) API function.
When this API function is called in Windows NT, CTRL+C is ignored if
pressed. However, when it is called in Windows 95, pressing CTRL+C
generates an Access Violation error. Similarly, when this API is called in
Windows 95, pressing CTRL+BREAK generates an Access Violation error.
RESOLUTION
There are two alternatives when you want to disable CTRL+C and avoid
generating an Access Violation error:
- Install a console control handler to capture and ignore the CTRL+C
keypress:
SetConsoleCtrlHandler(MyHandler, TRUE);
BOOL MyHandler(DWORD dwEventType)
{
if ( dwEvnetType == CTRL_C_EVENT
if ( dwEventType == CTRL_C_EVENT )
return TRUE; // CTRL+C handle by function
else
return FALSE; // pass to next handler
}
-or-
- Disable CTRL+C by disabling the ENABLE_PROCESSED_INPUT console mode.
Disabling the ENABLE_PROCESSED_INPUT console mode then reports CTRL+C
to the input buffer, not the system:
SetConsoleMode( hConsoleHandle,
(Mode & ~ ENABLE_PROCESSED_INPUT) );
STATUS
Microsoft has confirmed this to be a bug in the products listed at the
beginning of this article.
Additional query words:
Keywords : kbprg kbConsole kbKernBase kbGrpKernBase
Version : winnt:
Platform : winnt
Issue type : kbbug