void CPanel::ChangeComment() { CPanel::CDisableTimerProcessing disableTimerProcessing2(*this); int index = _listView.GetFocusedItem(); if (index < 0) return; int realIndex = GetRealItemIndex(index); if (realIndex == kParentIndex) return; CSelectedState state; SaveSelectedState(state); CMyComPtr<IFolderOperations> folderOperations; if (_folder.QueryInterface(IID_IFolderOperations, &folderOperations) != S_OK) { MessageBoxErrorLang(IDS_OPERATION_IS_NOT_SUPPORTED, 0x03020208); return; } UString comment; { NCOM::CPropVariant propVariant; if (_folder->GetProperty(realIndex, kpidComment, &propVariant) != S_OK) return; if (propVariant.vt == VT_BSTR) comment = propVariant.bstrVal; else if (propVariant.vt != VT_EMPTY) return; } UString name = GetItemRelPath(realIndex); CComboDialog comboDialog; comboDialog.Title = name + L" " + LangString(IDS_COMMENT, 0x03020290); comboDialog.Value = comment; comboDialog.Static = LangString(IDS_COMMENT2, 0x03020291); if (comboDialog.Create(GetParent()) == IDCANCEL) return; NCOM::CPropVariant propVariant = comboDialog.Value; HRESULT result = folderOperations->SetProperty(realIndex, kpidComment, &propVariant, NULL); if (result != S_OK) { if (result == E_NOINTERFACE) MessageBoxErrorLang(IDS_OPERATION_IS_NOT_SUPPORTED, 0x03020208); else MessageBoxError(result, L"Set Comment Error"); } RefreshListCtrl(state); }