将索引器之类的属性暴露给COM
|
我在现有的COM接口中。我不想创建一个.net程序集以将新接口公开为COM(带有新的GUID),但是该接口的结构必须相同。
我如何创建一个暴露此接口的.net类(C#)?
[
odl,
uuid(1ED4C594-DDD7-402F-90DE-7F85D65560C4),
hidden,
oleautomation
]
interface _IFlashPhase : IUnknown {
[propget]
HRESULT _stdcall ComponentName(
[in] short i,
[out, retval] BSTR* pVal);
[propput]
HRESULT _stdcall ComponentName(
[in] short i,
[in] BSTR pVal);
[propget]
HRESULT _stdcall ComponentMolePercent(
[in] short i,
[out, retval] double* pVal);
[propput]
HRESULT _stdcall ComponentMolePercent(
[in] short i,
[in] double pVal);
[propget]
HRESULT _stdcall ComponentFugacity(
[in] short i,
[out, retval] double* pVal);
[propput]
HRESULT _stdcall ComponentFugacity(
[in] short i,
[in] double pVal);
};
没有找到相关结果
已邀请:
1 个回复
舜辉
注意使用
,dispid 0是特殊的,它是接口的默认属性。这对应于C#语言中的索引器。 VB.NET所需的只是声明,您仍然可以使用C#语言编写接口的实现。在“项目+添加引用”的“项目”选项卡中,然后选择VB.NET项目。使它看起来与此类似:
您需要在VB.NET和C#程序集上运行Tlbexp.exe来生成类型库。具有实现的C#包括VB.NET之一。 要使接口派生自IUnknown而不是IDispatch,请编辑接口声明。删除DispId属性并使用
。