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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы