#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