在c#中实现ILockBytes(用于I_IrmProtector)

本文关键字:IrmProtector 用于 实现 ILockBytes | 更新日期: 2023-09-27 18:17:06

我需要从c#调用Microsoft Office Protector (OpcIrmProtector)的函数。该保护器实现I_IrmProtector接口(详细信息:http://msdn.microsoft.com/en-us/library/ms475158%28v=office.14%29.aspx)。呼叫HrInit()没问题。

但是对于例如HrIsProtected(),我需要提供ILockBytes的实现。有没有人有经验如何在托管代码中正确实现ILockBytes ?我对这里的期望有点茫然。

对于非托管代码,我发现了一个使用CreateILockBytesOnHGlobal()的示例。这将返回ILockBytes的非托管实例。是否有机会从托管代码(可能没有…)中使用此非托管实例或将其编组到托管结构中?或者c#中有类似的方法吗?在这种情况下,我不需要实现ILockBytes,这将节省我很多时间。

当然,我可以在非托管代码中实现这部分,但如果可能的话,我更喜欢托管代码的解决方案…

谢谢!

在c#中实现ILockBytes(用于I_IrmProtector)

是。从微软下载AD RMS Bulk Protection工具,然后使用Reflector之类的工具进行反编译。这使用了IrmProtectorWrapper, MsoIrmProtector和OpcIrmWrapper dll。