3
我想从IDL返回一个接口数组。 我试试这个:COM - 返回一个对象接口数组
interface ISecurityPolicy : IDispatch{
[id(6)] HRESULT GetPolicyList([out, ref, retval] SAFEARRAY(IEntityPolicy*)* result);
}
我得到这样的警告(在VS 2010): 警告1个警告MIDL2456:[参数 '结果' 程序':SAFEARRAY(接口指针)不使用MIDL生成的代理工作GetPolicyList'(Interface'ISecurityPolicy')]
这是一个虚假的警告,因为http://social.msdn.microsoft.com/Forums/en-US/vcmfcatl/thread/84a632a9-4e29-4a95-8da7-f7aedb650339可能暗示?
删除[ref]属性,没有多大意义。 –
恐怕我仍然得到这个警告。另一方面,事情是有效的,你只需要将返回类型调整为SAFEARRAY(IUnknown *)*以使事情变得更容易 – Ghita
尽管如此,对我来说,使用集合实现可能是一个更好的主意。这将更清楚,只有更多的工作要做:-) – Ghita