/// <summary> /// Копирование свойств из документа в документ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonRight_Click(object sender, EventArgs e) { // Документ-приемник ListItem <Document> doc2 = (ListItem <Document>)comboDoc2.SelectedItem; // Список свойств документа-приемника Microsoft.Office.Core.DocumentProperties props = doc2.Item.CustomDocumentProperties; // Обработка только выбранных полей foreach (ListItem <Microsoft.Office.Core.DocumentProperty> item in listFields1.CheckedItems) { try { // Копирование свойства props.Add(item.Item.Name, item.Item.LinkToContent, item.Item.Type, item.Item.Value); } catch (System.Runtime.InteropServices.COMException ex) { if (ex.ErrorCode == -2147467259) { // Свойство уже существует, повторное добавление невозможно switch (MessageBox.Show($"Свойство '{item.Item.Name}' уже существует. Перезаписать?", "Копирование свойств", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) { case DialogResult.Yes: // [!] надо перезаписать свойство, но я пока не знаю как это сделать break; case DialogResult.No: // Намеренно ничего не делаем break; case DialogResult.Cancel: return; default: throw new Exception("Ну так не бывает!"); } } else { throw ex; } } } // Обновление списка comboDoc_SelectedIndexChanged(comboDoc2, null); }
private void SetTimeLIMITButton_Click(object sender, RibbonControlEventArgs e) { Microsoft.Office.Interop.PowerPoint.Presentation PPT = Globals.ThisAddIn.Application.ActivePresentation; Microsoft.Office.Core.DocumentProperties oCusProps = PPT.CustomDocumentProperties; bool TimeSetted = false; foreach (Microsoft.Office.Core.DocumentProperty oCusProp in oCusProps) { if (oCusProp.Name == "TIMELIMIT")// MessageBox.Show( oCusProp.Name); { TimeSetted = true; System.Windows.MessageBox.Show(String.Format("{0:f}min", oCusProp.Value)); } } if (!TimeSetted) { oCusProps.Add("TIMELIMIT", false, Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeFloat, 5F, false); } }