我的情况是,我有一个 COM 对象,我需要在仅 Windows 的 C++ 代码中使用该对象。COM 对象具有接受 SAFEARRAY 作为参数以传递字节数组的函数。在查看了 SAFEARRAY API ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms221145(v=vs.85).aspx ) 之后,我决定这不是我想要的,我应该找到一个面向对象的包装器。我尝试寻找开源的,但没有找到。我发现微软创建了两个似乎封装了 SAFEARRAY 的对象。看起来 CComSafeArray 正是我所需要的,并且 COleSafeArray 可能很有用,但只能用于遗留兼容性。
COleSafeArray 只是为了历史兼容性还是我缺少什么?
何时应使用 COleSafeArray 代替 CComSafeArray?
是否有任何值得研究的开源实现?
各自的优点和缺点是什么?