C# ActiveX 与JS 交互,只介绍JS调用ActiveX的情况

关于如何编写ActiveX程序,请参考我的博客 C#编写ActiveX控件 http://blog.csdn.net/hndkbadxv/article/details/9084167


第一步:在控件类中加入一个方法和一个属性

public string ShowNow()
{
return DateTime.Now.ToString();
}


private string _str;
public string str
{//必须要完整写出get 和 set ,不能只写 get 或者 set
get{return _str;}
set{_str = value;}
}

第二步:在html中书写代码

object id="ActiveXDemo" name="ActiveXDemo" classid="clsid:0A031CA1-6B7C-409d-8FC8-FFE4E0FCEE94"{控件类头部的GUID} width=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#ActiveX + JS +Flex通訊 全實現 因項目部署需要,特把之前寫的與讀卡器通訊的模塊改為ActiveX插件,給Flash調用,由於Flash不能直接調用ActiveX,所以,用JS作為中間層,作為Flash和ActiveX通訊的橋梁。 開發環境:WINXP _EN 開發工具:VS2005,Flex 3. .net 2.0 ActiveX控件開發 1:新建一個工程項目,MyActiveXDemo,選擇Visual C#->Windows Control Library 2:修改UserControl1.cs為ReadICCard.cs 3:設置工程發布屬性,工程屬性->Application->Assembly information, 把Make assembly Com-Visible 勾上。 4:到 工程屬性->Build->Output, 把 Register for COM interop 勾上。 5:修改AssemblyInfo.cs文件,加上紅色方框部分內容: 6:在ReadICCardActiveX 控件里,添加一個GUID,可以使用 工具-创建GUID 菜单创建一个GUID 7:为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能修改该接口的GUID值):(這里是直接copy網上的) using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace Preresearch.CSharpActiveX { [ComImport, GuidAttribute( " CB5BDC81-93C1-11CF-8F20-00805F2CD064 " )] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] public interface IObjectSafety { [PreserveSig] int GetInterfaceSafetyOptions( ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions); [PreserveSig()] int SetInterfaceSafetyOptions( ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions); } } 然后在控件类中继承并实现该接口: #region IObjectSafety 成员 private const string _IID_IDispatch = " {00020400-0000-0000-C000-000000000046} " ; private const string _IID_IDispatchEx = " {a6ef9860-c720-11d0-9337-00a0c90dcaa9} " ; private const string _IID_IPersistStorage = " {0000010A-0000-0000-C000-000000000046} " ; private const string _IID_IPersistStream = " {00000109-0000-0000-C000-000000000046} " ; private const string _IID_IPersistPropertyBag = " {37D84F60-42CB-11CE-8135-00AA004BB851} " ; private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER = 0x00000001 ; private const

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值