VBA中自定义COM类中的智能感知
有没有办法在VBA中的自己构建的COM类中获得IntelliSense?
例如,在下面的例子中,我想要显示“数字”,只要按下点(或ctrl +空格键)即可:
我想,如果这个问题得到了解决,我也会在这里得到关于这些对象的公共职能的一些信息:
因此,有什么建议?
建议1 :
结果 - 没有工作。
结果:这对我很有用(代码主要来自@dee):https://github.com/Vitosh/C-Sharp-Stuff/tree/master/IntSense
简单的例子可能是这样的。
名为IntellisenseDemo
代码的c#类库
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
接口中的方法调用此类的成员。
regasm
C:WindowsMicrosoft.NETFrameworkv4.0.30319>regasm C:TempIntellisenseDemo.dll /tlb: C:TempIntellisenseDemo.tlb
VBA
链接地址: http://www.djcxy.com/p/37611.html上一篇: IntelliSense in custom COM classes in VBA
下一篇: Altering different python objects in parallel processes, respectively