Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

172 lines
6.0 KiB

#include "stdafx.h"
#include "resource.h"
#include "wiaregme.h"
#include "msgwrap.h"
CMessageWrapper g_MsgWrapper;
//////////////////////////////////////////////////////////////////////////
//
// Function: WinMain()
// Details: This function is WinMain... enough said. ;) It creates a Modal
// dialog as the main application window.
//
// hInstance - instance of this application
// hPrevInstance - Previous instance of this applcation (already running)
// lpCmdLine - command line arguments
// nCmdShow - show state, specifies how the window should be shown
//
//////////////////////////////////////////////////////////////////////////
INT APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
CoInitialize(NULL);
g_MsgWrapper.Initialize(hInstance);
DialogBox(hInstance, (LPCTSTR)IDD_MAIN_DIALOG, NULL, (DLGPROC)MainDlg);
CoUninitialize();
return 0;
}
//////////////////////////////////////////////////////////////////////////
//
// Function: MainDlg()
// Details: This function is the Window Proc for this dialog. It
// dispatches messages to their correct handlers. If there is
// handler, we let Windows handle the message for us.
//
// hDlg - handle to the dialog's window
// message - windows message (incoming from system)
// wParam - WPARAM parameter (used for windows data/argument passing)
// lParam - LPARAM parameter (used for windows data/argument passing)
//
//////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK MainDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
INT wmId = 0;
INT wmEvent = 0;
TCHAR szApplicationFilePath[1024];
HWND hApplicationPathEditBox = NULL;
switch (message)
{
//
// We want first crack at processing any messages
//
case WM_INITDIALOG:
return g_MsgWrapper.OnInitDialog(hDlg);
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch(wmId)
{
//
// Trap Button IDs, and Menu IDs
//
case IDC_WIA_DEVICE_LIST:
if(wmEvent == LBN_SELCHANGE){
if(!g_MsgWrapper.OnRefreshEventListBox(hDlg)){
g_MsgWrapper.EnableAllControls(hDlg, FALSE);
} else {
g_MsgWrapper.EnableAllControls(hDlg, TRUE);
}
}
break;
case IDC_BROWSE_BUTTON: // BROWSE (Button)
if(g_MsgWrapper.OnBrowse(hDlg,szApplicationFilePath)){
//
// register this Application Path
//
hApplicationPathEditBox = GetDlgItem(hDlg,IDC_APPLICATION_LAUNCH_PATH_EDITBOX);
SetWindowText(hApplicationPathEditBox,szApplicationFilePath);
}
break;
case IDC_REGISTER_BUTTON: // REGISTER (Button)
if(g_MsgWrapper.Register(hDlg,WIA_REGISTER_EVENT_CALLBACK)){
}
break;
case IDC_UNREGISTER_BUTTON: // UNREGISTER (Button)
if(g_MsgWrapper.Register(hDlg,WIA_UNREGISTER_EVENT_CALLBACK)){
}
break;
case IDCANCEL: // CANCEL (Button)
case IDM_EXIT: // FILE | EXIT (Menu)
return g_MsgWrapper.OnExit(hDlg,wParam);
break;
case IDM_ABOUT: // HELP | ABOUT (Menu)
g_MsgWrapper.OnAbout(hDlg);
break;
default:
break;
}
break;
default:
//
// Let windows take care of it (DefWindowProc(hDlg,message,wParam,lParam))
//
break;
}
return FALSE;
}
#ifdef _OVERRIDE_LIST_BOXES
//////////////////////////////////////////////////////////////////////////
//
// Function: DeviceListBox()
// Details: This function is the Window Proc for the Device ListBox. It
// dispatches messages to their correct handlers. If there is
// handler, we let Windows handle the message for us.
//
// hDlg - handle to the dialog's window
// message - windows message (incoming from system)
// wParam - WPARAM parameter (used for windows data/argument passing)
// lParam - LPARAM parameter (used for windows data/argument passing)
//
//////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK DeviceListBox(HWND hListBox, UINT message, WPARAM wParam, LPARAM lParam)
{
INT wmId = 0;
INT wmEvent = 0;
return DefDeviceListBox(hListBox,message,wParam,lParam);
}
//////////////////////////////////////////////////////////////////////////
//
// Function: EventListBox()
// Details: This function is the Window Proc for the Event ListBox. It
// dispatches messages to their correct handlers. If there is
// handler, we let Windows handle the message for us.
//
// hDlg - handle to the dialog's window
// message - windows message (incoming from system)
// wParam - WPARAM parameter (used for windows data/argument passing)
// lParam - LPARAM parameter (used for windows data/argument passing)
//
//////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK EventListBox(HWND hListBox, UINT message, WPARAM wParam, LPARAM lParam)
{
INT wmId = 0;
INT wmEvent = 0;
return DefEventListBox(hListBox,message,wParam,lParam);
}
#endif