//------------------------------------------------------------------------- static INT_PTR CALLBACK MainDialogProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: { ResetPermissionDialog::hDlg = hWnd; SendDlgItemMessage( hDlg, IDCHK_RESETPERM, BM_SETCHECK, BST_CHECKED, 0); SendDlgItemMessage( hDlg, IDCHK_DONTFOLLOWLINKS, BM_SETCHECK, BST_CHECKED, 0); SendDlgItemMessage( hDlg, IDCHK_RECURSE, BM_SETCHECK, BST_CHECKED, 0); HICON t = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SMALL)); SendMessage(hDlg, WM_SETICON, ICON_BIG, (LPARAM)t); LPCTSTR Arg = GetArgs(); if (Arg != NULL) SetFolderText(Arg); #ifdef _DEBUG //else // SetFolderText(_TEXT("C:\\Temp\\perm")); #endif if (Arg != NULL) UpdateCommandText(); return (INT_PTR)TRUE; } case WM_MENUCOMMAND: break; case WM_COMMAND: { #ifdef _DEBUG TCHAR b[1024]; _sntprintf_s(b, _countof(b), _TEXT("WM_COMMAND: wmParam=%08X lParam=%08X\n"), wParam, lParam); OutputDebugString(b); #endif UINT wmId = LOWORD(wParam); UINT wmEvent = HIWORD(wParam); switch (wmId) { case IDCHK_RECURSE: case IDCHK_DONTFOLLOWLINKS: case IDCHK_TAKEOWN: case IDCHK_RESETPERM: case IDCHK_RM_HS: { if (wmEvent == BN_CLICKED) { UpdateCommandText(); return TRUE; } break; } case IDM_ADDTOEXPLORERFOLDERRIGHT: case IDM_REMOVEFROMEXPLORERFOLDERCONTEXTMENU: { AddToExplorerContextMenu(wmId == IDM_ADDTOEXPLORERFOLDERRIGHT); break; } case IDBTN_ABOUT: { DialogBox( hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hDlg, AboutDlgProc); return TRUE; } case IDBTN_CHOOSE_FOLDER: { stringT out; if (BrowseFolder(hDlg, STR_SELECT_FOLDER, out)) { SetFolderText(out.c_str()); UpdateCommandText(); } return TRUE; } case IDBTN_MORE_ACTIONS: { ShowMoreActionsMenu(); return TRUE; } case IDOK: { ExecuteCommand(); return TRUE; } } break; } // Close dialog case WM_CLOSE: { EndDialog(hDlg, 0); return TRUE; } } return FALSE; }
// The following code should be deleted in next releases void CSettings::ApplyRegSettingsRightNow() { // Applying Startup settings // EnableAutostartup(AutoStartup); RegisterShellExtension( ExplorerContextMenu ); // if(SendToContextMenu_changed) { CString ShortcutName = GetSendToPath() + _T("\\Image Uploader.lnk"); if (SendToContextMenu ) { if (FileExists(ShortcutName)) DeleteFile(ShortcutName); CreateShortCut(ShortcutName, CmdLine.ModuleName(), WinUtils::GetAppFolder(), _T( " /upload"), 0, SW_SHOW, CmdLine.ModuleName(), 0); } else { DeleteFile(ShortcutName); } } // if(ExplorerImagesContextMenu_changed || ExplorerVideoContextMenu_changed) { TCHAR szFileName[MAX_PATH + 8] = _T("\""); GetModuleFileName(0, szFileName + 1, MAX_PATH); lstrcat(szFileName, _T("\" \"%1\"")); LPTSTR szList = _T("jpg\0jpeg\0png\0bmp\0gif"); int Res; UnRegisterClsId(); // if(ExplorerContextMenu_changed) { while ((*szList) != 0) { Res = AddToExplorerContextMenu(szList, (/*ExplorerImagesContextMenu?TR("Загрузить изображения"):*/ 0), szFileName, true); szList += lstrlen(szList) + 1; } } // if( ExplorerVideoContextMenu_changed) { szList = VIDEO_FORMATS; while ((*szList) != 0) { Res = AddToExplorerContextMenu(szList, (/*ExplorerVideoContextMenu?TR("Открыть в Image Uploader"):*/ 0), szFileName, false); szList += lstrlen(szList) + 1; } } } }
//------------------------------------------------------------------------- INT_PTR CALLBACK ResetPermissionDialog::MainDialogProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: { hDlg = hWnd; // Set the initial states/configuration bRecurse = true; bResetPerm = true; bRmHidSys = false; bTakeOwn = false; bDontFollowLinks = true; UpdateCheckboxes(false); HICON hIcon = LoadIcon( hInstance, MAKEINTRESOURCE(IDI_SMALL)); SendMessage( hDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon); LPCTSTR Arg = GetArg(1); #ifdef _DEBUG if (Arg == NULL) Arg = _TEXT("C:\\Temp\\perm"); // Enable editing for the folder text editbox in debug mode SendDlgItemMessage(hDlg, IDTXT_FOLDER, EM_SETREADONLY, FALSE, 0); #endif if (Arg != NULL) { SetFolderText(Arg); UpdateCommandText(); } return TRUE; } case WM_MENUCOMMAND: break; case WM_COMMAND: { UINT wmId = LOWORD(wParam); UINT wmEvent = HIWORD(wParam); #ifdef _DEBUG TCHAR b[1024]; _sntprintf_s( b, _countof(b), _TEXT("WM_COMMAND: wmParam=%08X lParam=%08X | ID=%04X Event=%04X\n"), wParam, lParam, wmId, wmEvent); OutputDebugString(b); // Reflect the folder text changes when the control is editable if (wmId == IDTXT_FOLDER && wmEvent == EN_CHANGE) UpdateCommandText(); #endif switch (wmId) { // // Handle checkboxes // case IDCHK_RECURSE: case IDCHK_DONTFOLLOWLINKS: case IDCHK_TAKEOWN: case IDCHK_RESETPERM: case IDCHK_RM_HS: { // Reforumulate the command text on each option change if (wmEvent == BN_CLICKED) { UpdateCommandText(); return TRUE; } break; } // // Handle context menu // case IDM_ADDTOEXPLORERFOLDERCONTEXTMENU: case IDM_REMOVEFROMEXPLORERFOLDERCONTEXTMENU: AddToExplorerContextMenu(wmId == IDM_ADDTOEXPLORERFOLDERCONTEXTMENU); break; case IDM_BACKUPPERMSCONTEXTMENU: case IDM_RESTOREPERMSCONTEXTMENU: BackRestorePermissions(wmId == IDM_BACKUPPERMSCONTEXTMENU); break; // // About box // case IDBTN_ABOUT: { DialogBox( hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hDlg, AboutDlgProc); return TRUE; } // // Choose folder // case IDBTN_CHOOSE_FOLDER: { stringT Folder; if (BrowseFolder(hDlg, STR_SELECT_FOLDER, Folder)) { SetFolderText(Folder.c_str()); UpdateCommandText(); } return TRUE; } // // Trigger the "Advanced" menu // case IDBTN_ADVANCED: { ShowPopupMenu(IDR_ADVANCED_MENU, IDBTN_ADVANCED); return TRUE; } // // GO button // case IDOK: { // Validate the input folder and execute the command ExecuteWindowCommand(true); return TRUE; } // HELP button case IDBTN_HELP: { ShellExecute( hDlg, _TEXT("open"), STR_HELP_URL, nullptr, nullptr, SW_SHOW); return TRUE; } } // switch(wmId) break; } // case WM_COMMAND // Close dialog case WM_CLOSE: EndDialog(hDlg, IDOK); return TRUE; } return FALSE; }