首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA中自定义COM类中的IntelliSense

VBA中自定义COM类中的IntelliSense
EN

Stack Overflow用户
提问于 2016-12-15 11:05:13
回答 1查看 1.6K关注 0票数 11

有没有一种方法可以在VBA中自己构建的COM类中获取IntelliSense?

例如,在下面的示例中,每当我按下点(或ctrl+space表示快捷方式)时,我都希望显示“数字”:

我想,如果以某种方式解决了这个问题,我也会在这里得到一些关于对象的公共功能的信息:

因此,有甚麽建议呢?

建议1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-15 11:35:20

简单的例子可能是这样的。

c#类库名为IntellisenseDemo代码

代码语言:javascript
复制
using System;
using System.Runtime.InteropServices;

namespace IntellisenseDemo
{
    [ComVisible(true)]
    [Guid("41B3F5BC-A52B-4AED-90A0-F48BC8A391F1")]
    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface IIntellisenseDemo
    {
        int Number { get; set; }
        string TestString(string name);
    }

    [ComVisible(true)]
    [Guid("20EBC3AF-22C6-47CE-B70C-7EBBA12D0A29")]
    [ClassInterface(ClassInterfaceType.None)]
    [ProgId("IntellisenseDemo.Demo")]
    public class Demo : IIntellisenseDemo
    {
        public int Number { get; set; }
        public string TestString(string name)
        {
            throw new NotImplementedException();
        }
    }
}

注意:[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]表示一个接口作为一个分配接口公开给COM,它只允许后期绑定。

[ClassInterface(ClassInterfaceType.None)]意味着CLR不公开此类型的类接口。COM客户端可以使用IIntellisenseDemo接口中的方法调用该类的成员。

雷公

代码语言:javascript
复制
C:\Windows\Microsoft.NET\Framework\v4.0.30319>regasm C:\Temp\IntellisenseDemo.dll /tlb: C:\Temp\IntellisenseDemo.tlb

VBA

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41162601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档