windows-nt/Source/XPSP1/NT/net/diagnostics/netwatch/main.cpp

138 lines
2.8 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
// main.cpp
//
// Copyright 2000 Microsoft Corporation, all rights reserved
//
// Created 2-00 anbrad
//
#include <shellapi.h>
#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;
}