BOOL CBrowseDlg::OnInitDialog() { CCeDialog::OnInitDialog(); LocalizeDialog(GetSafeHwnd(), IDD); // make extension list int nStart = 0; int nSemiCol = m_strExts.Find(';'); while (nSemiCol != -1) { m_arExts.Add(m_strExts.Mid(nStart, nSemiCol - nStart)); nStart = nSemiCol + 1; nSemiCol = m_strExts.Find(';', nStart); } m_arExts.Add(m_strExts.Mid(nStart)); CDC *pDC = GetDC(); if (pDC->GetDeviceCaps(LOGPIXELSX) > 130) m_oImageList.Create(IDB_DIRS_HI, SCALEX(16), 10, RGB(255, 0, 255)); else m_oImageList.Create(IDB_DIRS, SCALEX(16), 10, RGB(255, 0, 255)); ReleaseDC(pDC); // menu bar BOOL fSuccess; SHMENUBARINFO mbi = { 0 }; mbi.cbSize = sizeof(mbi); mbi.dwFlags = SHCMBF_HMENU; mbi.nToolBarId = m_nMenuID; //m_bNewFolderBtn ? IDR_BROWSE : IDR_CANCEL; mbi.hInstRes = AfxGetInstanceHandle(); mbi.hwndParent = GetSafeHwnd(); fSuccess = SHCreateMenuBar(&mbi); m_hwndCmdBar = mbi.hwndMB; LocalizeMenubar(m_hwndCmdBar); SHFILEINFO sfi = { 0 }; // folder ZeroMemory(&sfi, sizeof(sfi)); SHGetFileInfo(_T("\\"), 0, &sfi, sizeof(sfi), SHGFI_ICON | SHGFI_SMALLICON); m_oImageList.Add(sfi.hIcon); m_ctlDirs.SetImageList(&m_oImageList, TVSIL_NORMAL); // m_ctlCaption.SetTitle(m_strCaption); // sanitize path if (m_strPath.Right(1).CompareNoCase(_T("\\")) != 0) m_strPath += _T("\\"); FillMe(); SelectPath(m_strPath); SetForegroundWindow(); // SESSION_RESTORE; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
/* Except in response to the WM_INITDIALOG message, the dialog box procedure should return nonzero if it processes the message, and zero if it does not. - see DialogProc */ BOOL CALLBACK CommandHelpDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { if (lParam); /* remove warning */ if (wParam); /* remove warning */ switch (msg) { case WM_INITDIALOG: { char * tmp = err_malloc(8192); char tmp2[MAX_PATH * 2]; argumentspec *as; int i; LocalizeDialog (hwndDlg, "IDD_COMMANDHELP_DLG"); as = (argumentspec*) lParam; *tmp = 0; strcpy (tmp, "Command line options:\n\n"); for (i = 0; i < as->arg_cnt; i ++) { if (!as->args[i].Internal) { sprintf(tmp2, "%s\t%s\n", as->args[i].short_name, as->args[i].long_name); strcat(tmp,tmp2); } } strcat (tmp, "\nExamples:\n\nMount a volume as X:\ttruecrypt.exe /q /v volume.tc /l X\nDismount a volume X:\ttruecrypt.exe /q /d X"); SetWindowText (GetDlgItem (hwndDlg, IDC_COMMANDHELP_TEXT), (char*) tmp); return 1; } case WM_COMMAND: EndDialog (hwndDlg, IDOK); return 1; case WM_CLOSE: EndDialog (hwndDlg, 0); return 1; } return 0; }
/* Except in response to the WM_INITDIALOG message, the dialog box procedure should return nonzero if it processes the message, and zero if it does not. - see DialogProc */ BOOL CALLBACK CommandHelpDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { if (lParam); /* remove warning */ if (wParam); /* remove warning */ switch (msg) { case WM_INITDIALOG: { char * tmp = err_malloc(8192); char tmp2[MAX_PATH * 2]; argumentspec *as; int i; LocalizeDialog (hwndDlg, "IDD_COMMANDHELP_DLG"); as = (argumentspec*) lParam; *tmp = 0; StringCbCopyA (tmp, 8192, "Command line options:\n\n"); for (i = 0; i < as->arg_cnt; i ++) { if (!as->args[i].Internal) { StringCchPrintf(tmp2, MAX_PATH * 2, "%s\t%s\n", as->args[i].short_name, as->args[i].long_name); StringCchCat(tmp, 8192, tmp2); } } SetWindowText (GetDlgItem (hwndDlg, IDC_COMMANDHELP_TEXT), (char*) tmp); TCfree(tmp); return 1; } case WM_COMMAND: EndDialog (hwndDlg, IDOK); return 1; case WM_CLOSE: EndDialog (hwndDlg, 0); return 1; } return 0; }
BOOL CGrabKeyDlg::OnInitDialog() { CDialog::OnInitDialog(); LocalizeDialog(GetSafeHwnd(), IDD); // register all HW buttons HINSTANCE hCoreDll; UnregisterFunc1Proc procUnregisterFunc; hCoreDll = LoadLibrary(_T("coredll.dll")); ASSERT(hCoreDll); procUnregisterFunc = (UnregisterFunc1Proc) GetProcAddress(hCoreDll, _T("UnregisterFunc1")); ASSERT(procUnregisterFunc); for (int i = 0xc1; i <= 0xcf; i++) { procUnregisterFunc(MOD_WIN, i); RegisterHotKey(GetSafeHwnd(), i, MOD_WIN, i); } FreeLibrary(hCoreDll); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
BOOL CALLBACK HotkeysDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { WORD lw = LOWORD (wParam); WORD hw = HIWORD (wParam); static BOOL bKeyScanOn; static BOOL bTPlaySoundOnSuccessfulHkDismount; static BOOL bTDisplayBalloonOnSuccessfulHkDismount; switch (msg) { case WM_INITDIALOG: { LVCOLUMNW col; HWND hList = GetDlgItem (hwndDlg, IDC_HOTKEY_LIST); bKeyScanOn = FALSE; nSelectedHotkeyId = -1; currentVKeyCode = 0; memcpy (tmpHotkeys, Hotkeys, sizeof(tmpHotkeys)); memset (vkeysDown, 0, sizeof(vkeysDown)); SendMessageW (hList,LVM_SETEXTENDEDLISTVIEWSTYLE,0, LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_LABELTIP ); memset (&col,0,sizeof(col)); col.mask = LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM|LVCF_FMT; col.pszText = GetString ("ACTION"); col.cx = CompensateXDPI (341); col.fmt = LVCFMT_LEFT; SendMessageW (hList,LVM_INSERTCOLUMNW,0,(LPARAM)&col); col.pszText = GetString ("SHORTCUT"); col.cx = CompensateXDPI (190); col.fmt = LVCFMT_LEFT; SendMessageW (hList,LVM_INSERTCOLUMNW,1,(LPARAM)&col); LocalizeDialog (hwndDlg, "IDD_HOTKEYS_DLG"); SetCheckBox (hwndDlg, IDC_HK_MOD_CTRL, TRUE); SetCheckBox (hwndDlg, IDC_HK_MOD_SHIFT, FALSE); SetCheckBox (hwndDlg, IDC_HK_MOD_ALT, TRUE); SetCheckBox (hwndDlg, IDC_HK_MOD_WIN, FALSE); SetCheckBox (hwndDlg, IDC_HK_DISMOUNT_PLAY_SOUND, bPlaySoundOnSuccessfulHkDismount); SetCheckBox (hwndDlg, IDC_HK_DISMOUNT_BALLOON_TOOLTIP, bDisplayBalloonOnSuccessfulHkDismount); bTPlaySoundOnSuccessfulHkDismount = bPlaySoundOnSuccessfulHkDismount; bTDisplayBalloonOnSuccessfulHkDismount = bDisplayBalloonOnSuccessfulHkDismount; EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), FALSE); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_REMOVE), FALSE); DisplayHotkeyList(hwndDlg); SetTimer (hwndDlg, 0xfe, 10, NULL); return 1; } case WM_TIMER: { if ((nSelectedHotkeyId > -1) && (GetFocus () == GetDlgItem (hwndDlg, IDC_HOTKEY_KEY))) { wchar_t keyName [MAX_KEY_COMB_NAME_LEN]; UINT tmpVKeyCode; keyName[0] = 0; ScanAndProcessKey (&tmpVKeyCode, &keyName[0]); if (keyName[0] != 0) { currentVKeyCode = tmpVKeyCode; SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), keyName); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), TRUE); } else if ((currentVKeyCode != 0) && GetKeyName (currentVKeyCode, keyName)) { SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), keyName); } } return 1; } case WM_NOTIFY: if (wParam == IDC_HOTKEY_LIST) { if (((LPNMHDR) lParam)->code == LVN_ITEMACTIVATE || ((LPNMHDR) lParam)->code == LVN_ITEMCHANGED && (((LPNMLISTVIEW) lParam)->uNewState & LVIS_FOCUSED)) { LVITEM item; memset(&item,0,sizeof(item)); nSelectedHotkeyId = ((LPNMLISTVIEW) lParam)->iItem; currentVKeyCode = 0; memset (vkeysDown, 0, sizeof(vkeysDown)); SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), GetString ("PRESS_A_KEY_TO_ASSIGN")); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_REMOVE), (tmpHotkeys[nSelectedHotkeyId].vKeyCode > 0)); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), FALSE); bKeyScanOn = TRUE; return 1; } } return 0; case WM_COMMAND: if (lw == IDC_HOTKEY_KEY && hw == EN_CHANGE) { if (!bKeyScanOn && nSelectedHotkeyId < 0 && GetWindowTextLengthW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY))) SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), L""); } if (lw == IDC_HOTKEY_ASSIGN) { BOOL bOwnActiveShortcut = FALSE; if (nSelectedHotkeyId >= 0 && currentVKeyCode != 0) { UINT modifiers = 0; if (GetCheckBox (hwndDlg, IDC_HK_MOD_CTRL)) modifiers = MOD_CONTROL; if (GetCheckBox (hwndDlg, IDC_HK_MOD_ALT)) modifiers |= MOD_ALT; if (GetCheckBox (hwndDlg, IDC_HK_MOD_SHIFT)) modifiers |= MOD_SHIFT; if (GetCheckBox (hwndDlg, IDC_HK_MOD_WIN)) modifiers |= MOD_WIN; // Check if it's not already assigned if (ShortcutInUse (currentVKeyCode, modifiers, tmpHotkeys)) { Error ("SHORTCUT_ALREADY_IN_USE", hwndDlg); return 1; } // Check for reserved system keys switch (currentVKeyCode) { case VK_F1: case VK_F12: /* F1 is help and F12 is reserved for use by the debugger at all times */ if (modifiers == 0) { Error ("CANNOT_USE_RESERVED_KEY", hwndDlg); return 1; } break; } bOwnActiveShortcut = ShortcutInUse (currentVKeyCode, modifiers, Hotkeys); // Test if the shortcut can be assigned without errors if (!bOwnActiveShortcut && !RegisterHotKey (hwndDlg, nSelectedHotkeyId, modifiers, currentVKeyCode)) { handleWin32Error(hwndDlg, SRC_POS); return 1; } else { if (!bOwnActiveShortcut && !UnregisterHotKey (hwndDlg, nSelectedHotkeyId)) handleWin32Error(hwndDlg, SRC_POS); tmpHotkeys[nSelectedHotkeyId].vKeyCode = currentVKeyCode; tmpHotkeys[nSelectedHotkeyId].vKeyModifiers = modifiers; SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), L""); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), FALSE); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_REMOVE), FALSE); nSelectedHotkeyId = -1; bKeyScanOn = FALSE; currentVKeyCode = 0; memset (vkeysDown, 0, sizeof(vkeysDown)); } } DisplayHotkeyList(hwndDlg); return 1; } if (lw == IDC_HOTKEY_REMOVE) { if (nSelectedHotkeyId >= 0) { tmpHotkeys[nSelectedHotkeyId].vKeyCode = 0; tmpHotkeys[nSelectedHotkeyId].vKeyModifiers = 0; SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), L""); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), FALSE); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_REMOVE), FALSE); nSelectedHotkeyId = -1; bKeyScanOn = FALSE; currentVKeyCode = 0; memset (vkeysDown, 0, sizeof(vkeysDown)); DisplayHotkeyList(hwndDlg); } return 1; } if (lw == IDC_RESET_HOTKEYS) { int i; for (i = 0; i < NBR_HOTKEYS; i++) { tmpHotkeys[i].vKeyCode = 0; tmpHotkeys[i].vKeyModifiers = 0; } SetWindowTextW (GetDlgItem (hwndDlg, IDC_HOTKEY_KEY), L""); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_ASSIGN), FALSE); EnableWindow (GetDlgItem (hwndDlg, IDC_HOTKEY_REMOVE), FALSE); nSelectedHotkeyId = -1; bKeyScanOn = FALSE; currentVKeyCode = 0; memset (vkeysDown, 0, sizeof(vkeysDown)); DisplayHotkeyList(hwndDlg); return 1; } if (lw == IDC_HK_DISMOUNT_PLAY_SOUND) { bTPlaySoundOnSuccessfulHkDismount = GetCheckBox (hwndDlg, IDC_HK_DISMOUNT_PLAY_SOUND); } if (lw == IDC_HK_DISMOUNT_BALLOON_TOOLTIP) { bTDisplayBalloonOnSuccessfulHkDismount = GetCheckBox (hwndDlg, IDC_HK_DISMOUNT_BALLOON_TOOLTIP); } if (lw == IDCANCEL || lw == IDCLOSE) { KillTimer (hwndDlg, 0xfe); EndDialog (hwndDlg, IDCANCEL); return 1; } if (lw == IDOK) { HWND hwndMainDlg = hwndDlg; while (GetParent (hwndMainDlg) != NULL) { hwndMainDlg = GetParent (hwndMainDlg); } UnregisterAllHotkeys (hwndMainDlg, Hotkeys); memcpy (Hotkeys, tmpHotkeys, sizeof(Hotkeys)); RegisterAllHotkeys (hwndMainDlg, Hotkeys); KillTimer (hwndDlg, 0xfe); bPlaySoundOnSuccessfulHkDismount = bTPlaySoundOnSuccessfulHkDismount; bDisplayBalloonOnSuccessfulHkDismount = bTDisplayBalloonOnSuccessfulHkDismount; SaveSettings (hwndDlg); EndDialog (hwndDlg, IDCANCEL); return 1; } return 0; case WM_CLOSE: KillTimer (hwndDlg, 0xfe); EndDialog (hwndDlg, IDCANCEL); return 1; } return 0; }