我从COM对象方法中获得了一个 _variant_t 变体变量。该变体实际上是SAFEARRAY为VARIANT的类型。我想使用CComSafeArray对其进行操作。
现在我使用以下代码:
_variant_t v_sa = /*call to the object method*/
CComSafeArray<VARIANT> csa(v_sa.parray);
虽然可行,但我从CComSafeArray构造函数documentation中学到了
构造函数使用此地址创建数组的副本,因此构造后不会引用该数组。
因此,我可能正在复制安全阵列。有没有更好的方法来构造CComSafeArray对象?
必须使用_variant_t对象的原因是因为它是由#import指令生成的代码返回的。