怎样在DotNet Framework中实现对象安全接口(IObjectSafety)

Mittermeyer 2003-10-14 02:41:37
在我实现的模块中,需要采用C#包装一个ActiveX Control,并且通过IE在客户端脚本中调用。由于IE安全策略的设置,必须实现IObjectSafety接口在能够保证正确运行。
在.Net Framework中没有IObjectSafe的定义,我的方案是按照IObjectSafety的形式自己定义该接口,并且在需要支持的控件中实现。
IObjectSafety的定义如下:
[Guid("CB5BDC81-93C1-11cf-8F20-00805F2CD064")]
public interface IObjectSafety
{
// methods
unsafe void GetInterfacceSafyOptions(
System.Int32 riid,
System.Int32* pdwSupportedOptions,
System.Int32* pdwEnabledOptions);
void SetInterfaceSafetyOptions(
System.Int32 riid,
System.Int32 dwOptionsSetMask,
System.Int32 dwEnabledOptions);
}
在控件中继承该接口,并且实现其中的两个方法。但是在IE中调用,装载页面时会产生严重的错误,关闭应用程序。

请教各位原因何在,有没有更好的解决方法。
谢谢先。
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
超人汪 2003-12-11
  • 打赏
  • 举报
回复
你的帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不平凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。
ajex 2003-12-11
  • 打赏
  • 举报
回复
好文章,求源码!alexajex@etang.com
atlove 2003-10-31
  • 打赏
  • 举报
回复
-
scbeans 2003-10-30
  • 打赏
  • 举报
回复
mark
Mittermeyer 2003-10-16
  • 打赏
  • 举报
回复
问题解决了,把解决过程整理如下:
http://www.csdn.net/develop/read_article.asp?id=21583
希望大家指正。

另外我建议每个帖子的发起者,进一下楼主的义务,如果问题解决得话,那么把最终解决得方案整理一下,或者把自己的验证结果描述一下,有总结有记录大家才有提高。对个人,对这个社区都有好处:)

响应回复者有分!!
Mittermeyer 2003-10-15
  • 打赏
  • 举报
回复
我改写了定义,除去了Unsafe的代码,但是还存在同样的问题--控件加载的时候非法的内存访问非法的内存访问。
[Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
public interface IObjectSafety
{
// methods
void GetInterfacceSafyOptions(
System.Int32 riid,
out System.Int32 pdwSupportedOptions,
out System.Int32 pdwEnabledOptions);
void SetInterfaceSafetyOptions(
System.Int32 riid,
System.Int32 dwOptionsSetMask,
System.Int32 dwEnabledOptions);
}
此时类型库中的申明如下:
[
odl,
uuid(CB5BDC81-93C1-11CF-8F20-00805F2CD064),
version(1.0),
dual,
oleautomation,
custom({0F21F359-AB84-41E8-9A78-36D110E6D2F9}, "LsDehs.IObjectSafety")

]
interface IObjectSafety : IDispatch {
[id(0x60020000)]
HRESULT GetInterfacceSafyOptions(
[in] long riid,
[out] long* pdwSupportedOptions,
[out] long* pdwEnabledOptions);
[id(0x60020001)]
HRESULT SetInterfaceSafetyOptions(
[in] long riid,
[in] long dwOptionsSetMask,
[in] long dwEnabledOptions);
};
ruanyuping 2003-10-15
  • 打赏
  • 举报
回复
up
这个是分卷压缩最后一个包,没控制好大小,Sorry啦! 零资源分下载。 ========================== 资料分享 ==========================  文档大小: 96.7 MB ,共 6 个分卷压缩包。 ========================== 编译日志 ========================== Compile time: 71 minutes, 14 seconds 43,832 Topics 388,319 Local links 1,990 Internet links 8,015 Graphics Created D:\DotNet_Framework_4.0_参考手册.chm, 101,399,540 bytes Compression decreased file by 300,698,100 bytes. ========================== 补充说明 ========================== 本文档采用离线浏览方式,采集微软官方 MSDN 最新数据,收录了“MSDN Library -.NET Framework 4”除“.NET Framework 类库”以外的其他所有文档,包括: 快速技术查找器 .NET Framework 4 的新增功能 .NET Framework 概述 .NET Framework 核心开发 .NET Framework 高级开发 .NET Framework 安全性 ASP.NET 门户网站 Windows 窗体门户网站 .NET Compact Framework 门户 Windows Presentation Foundation Windows Communication Foundation Windows Workflow Foundation .NET Framework 常规参考 工具 .NET Framework 示例 文档采用 CHM 格式制作,支持全文检索和关键字查找,目的是方便上网查询不方便的人。页面文档数量巨大,难免会出现一些错误和瑕疵,请大家见谅并指正,对于严重的错误(遗漏、错链)将考虑修正后重新编译发布。 “.NET Framework 类库”部分,将制作成独立的 CHM 文档,单独发布! ========================== Enjoy It !!! ==========================

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧