有了SafeArrayCreate还要SafeArrayAllocDescriptor做什么?解决方法

有了SafeArrayCreate还要SafeArrayAllocDescriptor做什么?
创建一个SafeArray既然可以SafeArrayCreate一步达到,还要SafeArrayAllocDescriptor+SafeArrayAllocData分两步做什么?
    难道是历史原因? 还是说设计上有不同的需求和行为吗? 总感觉多余啊。

------解决方案--------------------
This function allows the creation of safe arrays that contain elements with data types other than those provided by SafeArrayCreate. After creating an array descriptor using SafeArrayAllocDescriptor, set the element size in the array descriptor, an call SafeArrayAllocData to allocate memory for the array elements