Объявление этого как:
interface ISecurityPolicy : IDispatch{
[id(6)] HRESULT GetPolicyList([out, ref, retval] SAFEARRAY(IUnknown*)* result);
}
немного упрощает реализацию интерфейса.
Тем не менее, это может быть лучшей идеей, вместо того, чтобы возвращать вызывающему массиву массив интерфейсов, чтобы он возвращал ему итератор над «коллекцией».