mirror of https://github.com/tongzx/nt5src
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
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
|