XResult GetParentDir(CString& path,BOOL slash) { Return_OnXError(Format(path,slash)); Return_OnXError(RemoveLastSplit(path,slash)); Return_OnXError(GetDir(path,slash)); return XResult_OK; }
XResult FormatDirPath( CString& path,BOOL slash/*=TRUE*/ ) { Return_OnXError(Format(path,slash)); Return_OnXError(RemoveLastSplit(path,slash)); path += SplitChar(slash); return XResult_OK; }
void ShortcutDlg::OnOK(void) { xpr_tchar_t sName[XPR_MAX_PATH + 1]; xpr_tchar_t sTarget[XPR_MAX_PATH + 1]; xpr_tchar_t sStartup[XPR_MAX_PATH + 1]; xpr_tchar_t sDesc[MAX_SHORTCUT_DESC + 1]; WORD sHotKey, sTemp; xpr_sint_t sShowCmd; GetDlgItemText(IDC_CREATE_SHORTCUT_NAME, sName, XPR_MAX_PATH); GetDlgItemText(IDC_CREATE_SHORTCUT_TARGET, sTarget, XPR_MAX_PATH); GetDlgItemText(IDC_CREATE_SHORTCUT_STARTUP, sStartup, XPR_MAX_PATH); GetDlgItemText(IDC_CREATE_SHORTCUT_DESC, sDesc, MAX_SHORTCUT_DESC); ((CHotKeyCtrl *)GetDlgItem(IDC_CREATE_SHORTCUT_HOTKEY))->GetHotKey(sHotKey, sTemp); sShowCmd = ((CComboBox *)GetDlgItem(IDC_CREATE_SHORTCUT_SHOWCMD))->GetCurSel(); switch (sShowCmd) { case 1: sShowCmd = SW_SHOWMINNOACTIVE; break; case 2: sShowCmd = SW_SHOWMAXIMIZED; break; default: sShowCmd = SW_SHOWNORMAL; break; } if (_tcslen(sName) <= 0 || _tcslen(sTarget) <= 0) { const xpr_tchar_t *sMsg = gApp.loadString(XPR_STRING_LITERAL("popup.create_shortcut.msg.input")); MessageBox(sMsg, XPR_NULL, MB_OK | MB_ICONSTOP); return; } if (VerifyFileName(sName) == XPR_FALSE) { const xpr_tchar_t *sMsg = gApp.loadString(XPR_STRING_LITERAL("popup.create_shortcut.msg.invalid_filename")); MessageBox(sMsg, XPR_NULL, MB_OK | MB_ICONSTOP); return; } xpr::string sLinkPath(mPath); RemoveLastSplit(sLinkPath); sLinkPath += XPR_STRING_LITERAL("\\"); sLinkPath += sName; sLinkPath += XPR_STRING_LITERAL(".lnk"); xpr_tchar_t sPath[XPR_MAX_PATH + 1]; ::SHGetPathFromIDList(mFullPidl, sPath); if (_tcsicmp(sPath, sTarget) == 0) CreateShortcut(sLinkPath.c_str(), mFullPidl, sStartup, sHotKey, sShowCmd, sDesc); else CreateShortcut(sLinkPath.c_str(), sTarget, sStartup, sHotKey, sShowCmd, sDesc); super::OnOK(); }