CComSafeArray из _variant_t, содержащий безопасный массив - PullRequest
0 голосов
/ 25 ноября 2018

Я получаю вариантную переменную _variant_t из метода COM-объекта.Этот вариант на самом деле имеет тип SAFEARRAY из VARIANT.Я хотел бы использовать CComSafeArray для управления им.

Теперь я использую следующий код:

_variant_t v_sa = /*call to the object method*/
CComSafeArray<VARIANT> csa(v_sa.parray);

Пока это работает, я узнал из конструктора CComSafeArray документация that

Конструктор использует этот адрес для создания копии массива, поэтому на массив не ссылаются после построения.

Итак, я, вероятно, делаюизбыточная копия безопасного массива.Есть ли лучший способ для создания объекта CComSafeArray?

Причина, по которой необходимо использовать объект _variant_t, заключается в том, что он возвращается кодом, созданным директивой #import.

...