【发布时间】:2011-07-02 10:33:49
【问题描述】:
我正在编写一个将由 VB 6 程序使用的 C# COM 对象。这应该不是什么大问题,但是,对 COM 对象的 VB6 调用传入了一个 VB 控件(在本例中是一个文本框)。程序期望 COM 对象更改控件的 Text 属性。不幸的是,我必须坚持使用这个界面,因为我正在处理其他人的遗留代码。
如何设置传入的TextBox的属性?我是否只需创建一个带有 Text 属性的接口并将input 转换为该接口?这甚至可能吗?
如果我需要澄清,请告诉我。注意:我打算省略以下代码中的 COM 声明。
// C# COM Object Interface
public interface IObj
{
// This function must receive the argument of type object.
void Test(object input);
}
// C# COM Object Implementation
public class Obj : IOjb
{
// A VB6 TextBox is passed into here,
// expecting a change to the Text property.
public void Test(object input)
{
// INSERT NECESSARY CODE HERE
input.Text = "arbitrary string";
}
}
// VB 6
comObject.Test (txtBox)
【问题讨论】:
-
当前的COM对象是怎么做的?您需要复制其所有方法的签名。
-
当前 COM 对象是一个 VB6 COM 对象,它接受
object类型的参数。所以这应该是签名的副本。
标签: c# com vb6 com-interop