home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
windows
/
kamakazi.zip
/
KAMAKAZI.C
< prev
next >
Wrap
C/C++ Source or Header
|
1988-10-18
|
3KB
|
134 lines
#include <Windows.H>
#include <StdIO.H>
#include "Kamakazi.H"
char szAppName[] = "Kamakazi";
BOOL FAR PASCAL ExitWindows(LPSTR);
HWND hMainWnd, hMSDOS;
HANDLE hInst;
BOOL FAR PASCAL FindMSDOS (hWnd, lParam)
HWND hWnd;
LONG lParam;
{
char title[25];
if (GetWindowText (hWnd, (LPSTR)title, 24)) {
if (!strcmp (title, "MS-DOS Executive")){
PostMessage (LOWORD(lParam), KAMAKAZI, hWnd, 0L);
}
}
return 1;
} /* FindMSDOS */
long FAR PASCAL WndProc (HWND, unsigned, WORD, LONG);
int PASCAL WinMain (hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
HANDLE hInstance, hPrevInstance;
LPSTR lpszCmdLine;
int nCmdShow;
{
MSG msg;
WNDCLASS wndclass;
if (!hPrevInstance) {
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = COLOR_WINDOW+1;
wndclass.lpszMenuName = szAppName;
wndclass.lpszClassName = szAppName;
if (!RegisterClass (&wndclass))
return FALSE;
}
hMainWnd = CreateWindow (szAppName, szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0,
CW_USEDEFAULT, 0,
NULL, NULL, hInstance, NULL);
ShowWindow (hMainWnd, nCmdShow);
UpdateWindow (hMainWnd);
hInst = hInstance;
while (GetMessage (&msg, NULL, 0, 0)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
BOOL FAR PASCAL CanWeQuit()
{
return (MessageBox (GetFocus(), "Do You Really Want to Quit?", szAppName, MB_YESNO) == IDYES);
}
long FAR PASCAL WndProc (hWnd, iMessage, wParam, lParam)
HWND hWnd;
unsigned iMessage;
WORD wParam;
LONG lParam;
{
FARPROC lpEnumFunc;
switch (iMessage) {
case WM_COMMAND:
switch (wParam) {
case IDM_TEST1:
lpEnumFunc = MakeProcInstance (FindMSDOS, hInst);
EnumWindows (lpEnumFunc, MAKELONG(hMainWnd, hMainWnd));
FreeProcInstance (lpEnumFunc);
break;
case IDM_TEST2:
ExitWindows(MAKEINTRESOURCE(0));
break;
case IDM_TEST3:
FatalExit(0);
break;
case IDM_TEST4:
break;
}
break;
case KAMAKAZI: /* We are being asked to quit */
PostMessage (wParam, WM_SYSCOMMAND, SC_CLOSE, lParam);
break;
case WM_QUERYENDSESSION:
return CanWeQuit();
break;
case WM_ENDSESSION:
if (wParam) {
/* Windows is shutting down */
} else {
MessageBox (GetFocus(), "False Alarm...", szAppName, MB_OK);
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
case WM_CLOSE:
if (!CanWeQuit()) break;
/* else fall through to... */
default:
return DefWindowProc (hWnd, iMessage, wParam, lParam);
}
return 0L;
}