.NET 是否有预定义的 DispId 常量值?

问题描述 投票:0回答:1

可以向 DispId 属性传递某些值,这些值向 COM 对象的任何使用者赋予特定含义。

例如,这是一个例子

典型的建议似乎是对适合您目的的“神奇数字”进行硬编码。但由于 .NET 包含了

DispIdAttribute
,我期待着一份常量列表 - 但一直没能找到。有这种事吗?

郑重声明,我所说的 DispId 值是:

DISPID_COLLECT         -8    
DISPID_CONSTRUCTOR     -6    
DISPID_DESTRUCTOR      -7    
DISPID_EVALUATE        -5     
DISPID_NEWENUM         -4    
DISPID_PROPERTYPUT     -3    
DISPID_UNKNOWN         -1    
DISPID_VALUE            0

参考https://msdn.microsoft.com/en-us/library/windows/desktop/ms221242(v=vs.85).aspx

c# .net com interop
1个回答
2
投票

我刚刚使用.NET Reflector在.NET框架中的所有程序集中搜索“dispid”。看起来没有公开这些标准 DISPID 的“public”常量或枚举。有几个内部类 - System.Dynamic.ComDispIds

System.Windows.Forms.NativeMethods+ActiveX
- 公开了这些常量,但如果不反思就无法获取它们。
    

© www.soinside.com 2019 - 2024. All rights reserved.