// main.cpp // // Copyright 2000 Microsoft Corporation, all rights reserved // // Created 2-00 anbrad // #include #include "resource.h" #include "shelltray.h" #include "netwatch.h" #define _GLOBALS #include "main.h" #include "update.h" #define TIMER_NUM 1 #define TIMER_FREQUENCY 5000 LRESULT CALLBACK MainWindowProc ( HWND hwnd, UINT unMsg, WPARAM wParam, LPARAM lParam) { BOOL fDoDefault = FALSE; LRESULT lr = 0; switch (unMsg) { case WM_CREATE: AddTrayIcon(hwnd); StartListening(hwnd); break; case WM_DESTROY: StopCapture(); RemoveTrayIcon(hwnd); if (g_unTimer) { KillTimer (hwnd, g_unTimer); g_unTimer = 0; } PostQuitMessage (0); break; case WM_USER_TRAYCALLBACK: ProcessTrayCallback(hwnd, wParam, lParam); break; default: fDoDefault = TRUE; } if (fDoDefault) { lr = DefWindowProc (hwnd, unMsg, wParam, lParam); } return lr; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE pPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MSG msg; WNDCLASSEX wcex; g_hInst = GetModuleHandle (NULL); // // Register our window class. // ZeroMemory (&wcex, sizeof(wcex)); wcex.cbSize = sizeof(wcex); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = MainWindowProc; wcex.hInstance = g_hInst; wcex.hCursor = LoadCursor (NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszClassName = SZ_MAIN_WINDOW_CLASS_NAME; if (!RegisterClassEx (&wcex)) return 0; if (!CheckForUpdate()) { _tcscpy(g_szMsg, "Updating netwatch.exe"); HWND hDlg = CreateDialog( g_hInst, MAKEINTRESOURCE(IDD_MESSAGE), NULL, DlgProcMsg); ShowWindow(hDlg, SW_SHOWNORMAL); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return 0; } // Create our main window. // HWND hwnd; hwnd = CreateWindowEx ( 0, SZ_MAIN_WINDOW_CLASS_NAME, SZ_MAIN_WINDOW_TITLE, WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, g_hInst, NULL); if (hwnd) { ShowWindow (hwnd, SW_HIDE); // Main message loop. // while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } } UnregisterClass (SZ_MAIN_WINDOW_CLASS_NAME, g_hInst); return 0; }