怎样在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中调用,装载页面时会产生严重的错误,关闭应用程序。

请教各位原因何在,有没有更好的解决方法。
谢谢先。
...全文
131 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
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

111,129

社区成员

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

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

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