带有可变参数列表的ActiveX方法?

时间:2013-04-15 13:25:35

标签: windows mfc activex ocx

我有一个DLL,它为函数提供了一个定义为

的变量参数列表

my_func(int var,...)

根据my_func()的调用方式,它会提供更多或更少的附加参数。

现在这个DLL必须由基于MFC的ActiveX控件包装。对于方法定义,我可以找到许多包含在特定的预定义类型中的VT_和VTS_定义。但是,也可以使用带有这样的可变参数列表的ActiveX方法吗?

如果是:如何实施?

1 个答案:

答案 0 :(得分:0)

虽然技术上可行,但通过在IDL中使用vararg关键字和指定为SAFEARRAY(VARIANT)的参数,不支持在MFC ActiveX项目中指定此类方法。你可以用ATL代替它,但我认为这只是为了获得你描述的功能会带来巨大的不便。

一些更好的选择(在我看来)将是:

  1. 为包装函数的每个用例提供特定方法。
  2. 提供一个公开所有参数的方法,并根据应使用的参数添加UINT来设置标志。
  3. 我的选择是1。