• C# 编写ActiveX


    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. 网页引用就可以了

       <object id="obj1" classid="clsid:07333C44-7CFD-3C64-A540-C476FE80EEF2" >      
        </object>

    7. 安装程序

    新建项目-> 安装项目 -> Appliction Folder -> 添加 项目的主输出,并设置Register属性为vsdrpCOM.

  • 相关阅读:
    根据SVG Arc求出其开始角、摆动角和椭圆圆心
    如何做好数字乡村项目
    Nginx部署Vue项目动态路由刷新404
    设计模式 建造者模式
    设计模式 抽象工厂模式
    设计模式 单例模式
    Q&A:「微搭低代码」计费相关问题
    云托管已支持一键搭建服务商开发环境
    Q&A:「微搭低代码」数据源相关问题
    腾讯云微搭x腾讯文档,企业协同研发更便捷
  • 原文地址:https://www.cnblogs.com/machaofast/p/3222553.html
Copyright © 2020-2023  润新知