C# и Word служба управления правами на доступ к данным (IRM)?
Формулировка задачи:
В Word можно поставить различные ограничения на документ: не разрешать печатать, копировать, выставлять срок действия документа и т. д., на базе службы управления правами на доступ к данным (IRM).
Нельзя ли программным путем, используя VS2005 (VSTO), задавать документам Word различные ограничения?
Решение задачи: «C# и Word служба управления правами на доступ к данным (IRM)?»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Reflection; namespace XML_Parser_WinForm { public class MyWord { private object internalWord; private object objCurDoc=null; private bool FAutoClose = false; private bool IsSuccesLast = false; public bool IsSucces { get { bool old = IsSuccesLast; IsSuccesLast = false; return old; } } public MyWord (bool AutoClose) { FAutoClose = AutoClose; try { Type objClassType; objClassType = Type.GetTypeFromProgID("Word.Application"); internalWord = Activator.CreateInstance(objClassType); IsSuccesLast = true; } catch { IsSuccesLast = false; } } ~MyWord() { if ((FAutoClose) && (objCurDoc!=null)) { this.CloseDoc(); } } public bool CloseDoc() { try { //Close Active Document objCurDoc.GetType().InvokeMember("Close", BindingFlags.InvokeMethod, null, objCurDoc, null); objCurDoc = null; return true; } catch { return false; } } public bool Quit() { try { object[] Parameters; Parameters = new Object[3]; Parameters[0] = 0; Parameters[1] = 0; Parameters[2] = false; internalWord.GetType().InvokeMember("Quit", BindingFlags.SetProperty, null, internalWord, Parameters); return true; } catch { return false; } } public bool ShowWord(bool is_visible) { try { object[] Parameters; Parameters = new Object[1]; Parameters[0] = is_visible; internalWord.GetType().InvokeMember("Visible", BindingFlags.SetProperty, null, internalWord, Parameters); return true; } catch { return false; } } public bool OpenFile(string FileName) { try { object objDocs_Late = internalWord.GetType().InvokeMember( "Documents", BindingFlags.GetProperty, null, internalWord, null); object[] Parameters; Parameters = new Object[1]; Parameters[0] = FileName; objCurDoc = objDocs_Late.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, objDocs_Late, Parameters); return true; } catch { return false; } } public bool SaveDocument() { if (objCurDoc == null)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д