/***************************************************************************** * * diquv.c * * The dialog box that tinkers with joystick user values. * *****************************************************************************/ #include "diquick.h" #include "dinputd.h" //#ifdef DEBUG /***************************************************************************** * * Joystick user values dialog instance data * * Instance data for control panel joystick user values dialog box. * *****************************************************************************/ typedef struct UVDLGINFO { IDirectInputJoyConfig *pdjc;/* The thing we created */ DIJOYUSERVALUES juv; } UVDLGINFO, *PUVDLGINFO; /***************************************************************************** * * Uv_OnInitDialog * *****************************************************************************/ BOOL INTERNAL Uv_OnInitDialog(HWND hdlg, LPARAM lp) { PUVDLGINFO puvi = (PV)lp; HRESULT hres; TCHAR tsz[MAX_JOYSTRING]; SetDialogPtr(hdlg, puvi); puvi->juv.dwSize = cbX(puvi->juv); hres = puvi->pdjc->lpVtbl->GetUserValues(puvi->pdjc, &puvi->juv, DIJU_USERVALUES | DIJU_GLOBALDRIVER | DIJU_GAMEPORTEMULATOR); if (SUCCEEDED(hres)) { HWND hwnd; int ids; hwnd = GetDlgItem(hdlg, IDC_JOYUV_AXIS); for (ids = IDS_AXIS_MIN; ids < IDS_AXIS_MAX; ids++) { int iItem; LoadString(g_hinst, ids, tsz, cA(tsz)); iItem = ListBox_AddString(hwnd, tsz); if (iItem >= 0) { ListBox_SetItemData(hwnd, iItem, ids - IDS_AXIS_MIN); } } ConvertString(TRUE, puvi->juv.wszGlobalDriver, tsz, cA(tsz)); SetDlgItemText(hdlg, IDC_JOYUV_CALLOUT, tsz); ConvertString(TRUE, puvi->juv.wszGameportEmulator, tsz, cA(tsz)); SetDlgItemText(hdlg, IDC_JOYUV_EMULATOR, tsz); #if 0 #define IDC_JOYUV_AXIS 16 #define IDC_JOYUV_MIN 17 #define IDC_JOYUV_CENTER 18 #define IDC_JOYUV_MAX 19 #define IDC_JOYUV_DEADZONE 20 $$$ #endif } return 1; } /***************************************************************************** * * Uv_DlgProc * *****************************************************************************/ INT_PTR INTERNAL Uv_DlgProc(HWND hdlg, UINT wm, WPARAM wp, LPARAM lp) { switch (wm) { case WM_INITDIALOG: return Uv_OnInitDialog(hdlg, lp); case WM_CLOSE: EndDialog(hdlg, TRUE); return TRUE; } return 0; } /***************************************************************************** * * Uv_Create * * Display the user values. * *****************************************************************************/ INT_PTR EXTERNAL Uv_Create(HWND hdlg, struct IDirectInputJoyConfig *pdjc) { UVDLGINFO tdi; tdi.pdjc = pdjc; return DialogBoxParam(g_hinst, MAKEINTRESOURCE(IDD_JOYUV), hdlg, Uv_DlgProc, (LPARAM)&tdi); } //#endif