在C#中实现ILockBytes(对于I_IrmProtector)

时间:2013-06-06 09:02:04

标签: c# com

我需要从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,这将节省我很多时间。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

是。从Microsoft下载AD RMS Bulk Protection tool,然后使用Reflector之类的内容对其进行反编译。这使用IrmProtectorWrapper,MsoIrmProtector和OpcIrmWrapper DLL。