.NET 是否为 DispId 预定义了常量值?
Does .NET have predefined constant values for DispIds?
DispId attribute 可以传递某些值,这些值赋予使用您的 COM 对象的任何人特定的含义。
例如,here is one example。
典型的建议似乎是硬编码 "magic number" 适合您的目的。但是由于 .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
ref https://msdn.microsoft.com/en-us/library/windows/desktop/ms221242(v=vs.85).aspx
我刚刚使用 .NET Reflector 在 .NET Framework 的所有程序集中搜索 "dispid"。似乎没有公开这些标准 DISPID 的 public 常量或枚举。有几个内部 类 -- System.Dynamic.ComDispIds
和 System.Windows.Forms.NativeMethods+ActiveX
-- 暴露了这些常量,但如果不进行反射就无法获取它们。
DispId attribute 可以传递某些值,这些值赋予使用您的 COM 对象的任何人特定的含义。
例如,here is one example。
典型的建议似乎是硬编码 "magic number" 适合您的目的。但是由于 .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
ref https://msdn.microsoft.com/en-us/library/windows/desktop/ms221242(v=vs.85).aspx
我刚刚使用 .NET Reflector 在 .NET Framework 的所有程序集中搜索 "dispid"。似乎没有公开这些标准 DISPID 的 public 常量或枚举。有几个内部 类 -- System.Dynamic.ComDispIds
和 System.Windows.Forms.NativeMethods+ActiveX
-- 暴露了这些常量,但如果不进行反射就无法获取它们。