|
|
/*****************************************************************************
* * diqedev.c * * The dialog box that modifies device enumeration. * *****************************************************************************/
#include "diquick.h"
/*****************************************************************************
* * DEnum_OnInitDialog * * Initialize the enumeration controls based on the current settings. * *****************************************************************************/
BOOL INTERNAL DEnum_OnInitDialog(HWND hdlg) { if (g_dwEnumType & DIDEVTYPE_HID) { CheckDlgButton(hdlg, IDC_ENUMDEV_HID, TRUE); }
if (g_dwEnumFlags & DIEDFL_ATTACHEDONLY) { CheckDlgButton(hdlg, IDC_ENUMDEV_ATT, TRUE); }
if (g_dwEnumFlags & DIEDFL_FORCEFEEDBACK) { CheckDlgButton(hdlg, IDC_ENUMDEV_FF, TRUE); }
if (g_dwEnumFlags & DIEDFL_INCLUDEALIASES) { CheckDlgButton(hdlg, IDC_ENUMDEV_ALIAS, TRUE); }
if (g_dwEnumFlags & DIEDFL_INCLUDEPHANTOMS) { CheckDlgButton(hdlg, IDC_ENUMDEV_PHANTOM, TRUE); }
CheckRadioButton(hdlg, IDC_ENUMDEV_ALL, IDC_ENUMDEV_LAST, IDC_ENUMDEV_ALL + GET_DIDEVICE_TYPE(g_dwEnumType));
return 1; }
/*****************************************************************************
* * DEnum_Apply * * pull out the settings and stash them back. * *****************************************************************************/
void INTERNAL DEnum_Apply(HWND hdlg) { DWORD dw;
dw = GetCheckedRadioButton(hdlg, IDC_ENUMDEV_ALL, IDC_ENUMDEV_LAST) - IDC_ENUMDEV_ALL;
if (IsDlgButtonChecked(hdlg, IDC_ENUMDEV_HID)) { dw |= DIDEVTYPE_HID; }
g_dwEnumType = dw;
dw = 0;
if (IsDlgButtonChecked(hdlg, IDC_ENUMDEV_ATT)) { dw |= DIEDFL_ATTACHEDONLY; }
if (IsDlgButtonChecked(hdlg, IDC_ENUMDEV_FF)) { dw |= DIEDFL_FORCEFEEDBACK; }
if (IsDlgButtonChecked(hdlg, IDC_ENUMDEV_ALIAS)) { dw |= DIEDFL_INCLUDEALIASES; }
if (IsDlgButtonChecked(hdlg, IDC_ENUMDEV_PHANTOM)) { dw |= DIEDFL_INCLUDEPHANTOMS; }
g_dwEnumFlags = dw;
}
/*****************************************************************************
* * DEnum_OnCommand * *****************************************************************************/
BOOL INLINE DEnum_OnCommand(HWND hdlg, int id, UINT cmd) { switch (id) {
case IDOK: DEnum_Apply(hdlg); EndDialog(hdlg, 1); return TRUE; case IDCANCEL: EndDialog(hdlg, 0); return TRUE; } return FALSE; }
/*****************************************************************************
* * DEnum_DlgProc * *****************************************************************************/
INT_PTR EXTERNAL DEnum_DlgProc(HWND hdlg, UINT wm, WPARAM wp, LPARAM lp) { switch (wm) { case WM_INITDIALOG: return DEnum_OnInitDialog(hdlg);
case WM_COMMAND: return DEnum_OnCommand(hdlg, (int)GET_WM_COMMAND_ID(wp, lp), (UINT)GET_WM_COMMAND_CMD(wp, lp));
}
return 0; }
|