1. 新建 WindowFormControlLibrary
2. 修改 项目->右键属性->Application-> Assembly Information ->勾选 Make Assembly Com-Visible
3. 修改 项目->右键属性-> Build -> 勾选 Register for Com interop
4. 控件cs界面, using System.Runtime.InteropServices 命名空间; 类名添加 GUID属性
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace MyActiveX2{ [Guid("07333C44-7CFD-3C64-A540-C476FE80EEF2")] public partial class demo : UserControl, IObjectSafety { .....
5. 继承IObjectSafety 接口
#region IObjectSafety Members public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions) { pdwSupportedOptions = 1; pdwEnabledOptions = 2; } public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions) { //throw new NotImplementedException(); } #endregion
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace MyActiveX2{ [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IObjectSafety { void GetInterfacceSafyOptions(System.Int32 riid, out System.Int32 pdwSupportedOptions, out System.Int32 pdwEnabledOptions); void SetInterfaceSafetyOptions(System.Int32 riid, System.Int32 dwOptionsSetMask, System.Int32 dwEnabledOptions); }}
6. 网页引用就可以了
7. 安装程序
新建项目-> 安装项目 -> Appliction Folder -> 添加 项目的主输出,并设置Register属性为vsdrpCOM.