具有固定大小数组的Com接口

时间:2011-11-16 11:20:45

标签: nav

我需要使用实现一个固定大小数组参数的方法公开COM接口。 数组大小是固定的,因为使用者基于必须声明数组大小的技术。 所以我可以做这样的事情

[Guid("2AE7C342-89ED-492B-B9AA-92A778332000")]
public interface _DocSolutionsClassic

{
    [DispId(1)]
    void Execute( string[] InputParams);
}

它适用于我,但消费者存在不同的尺寸错误。

我想写点这个

[DispId(1)]
void Execute( string[50] InputParams);

或者

[DispId(1)]
string[] InputParams = new string[50];
void Execute(string[] InputParams);

但Vstudio 2010给我一个错误......

1 个答案:

答案 0 :(得分:1)

也许这可能会有所帮助:

IDL代码段:

[id(1), helpstring("method foobar")] HRESULT foobar( BSTR * bstrs, ULONG size );

这样您就可以发送任意数量的字符串。 'size'参数实际上是'bstrs'指向的字符串数。

注意: 使用SysAllocString() / SysFreeString()进行字符串分配/取消分配(或您环境中的某些等效项)。