SafeArrayAccessData 有没有 return 不同于 pvData 的指针?

Does SafeArrayAccessData ever return a pointer different from pvData?

我知道 SafeArrayAccessData 也可以 locking/unlocking,但没关系,我只想知道它是否曾 returns 一个不同于 pvData 的指针。

例如,此代码永远不会触发断言(我可以在测试中看到):

SafeArrayAccessData(sa, (void**) &ptr);
assert(ptr == sa->pvData);

有谁知道 SafeArrayAccessData 会产生一个不等于 pvData 的指针的场景?

如果函数的 return 值不是 S_OK(例如无法锁定数组,在这种情况下,输出参数的值未指定)。

如果函数执行 return S_OK,则输出参数指针必须等于 psa->pvData(毕竟,它还能是什么?)。