在C#中设置com控件的TYPEATTR

时间:2012-06-14 14:57:01

标签: c# com interop

我已将vb6 ocx转换为C#c​​om控件。 此com控件由以下设置:

[Guid("986067DA-F6C4-4C19-82ED-5D4DF1F54DB1")]
[ClassInterface(ClassInterfaceType.AutoDual)]
//Implementing interface that will be visible from PowerBuilder
[ProgId("Cmnd90.ACmnd")]
[ComVisible(true)]

在vb6应用程序中加载此com控件时,它显示正确。 但是客户正在使用powerbuilder并且它没有显示在那里。客户说,为了让com控件在他的应用程序中显示,我们需要将控件的TYPEFLAGS设置为TYPEFLAG_FCONTROL。 怎么能在.NET中完成?

1 个答案:

答案 0 :(得分:1)

也添加以下装饰:

[System.Runtime.InteropServices.TypeLibType(TypeLibTypeFlags.FControl)]

请参阅:http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.typelibtypeattribute.aspx