2010-02-24 3 views
1

CComSafeArray::SetAt method обеспечивает параметр для управления, следует ли копировать ссылки переменная:Создает ли CComSafeArray MultiDimSetAt копию ссылочного элемента?

HRESULT SetAt(
LONG lIndex, 
const T& t, 
BOOL bCopy = TRUE 
); 

... но CComSafeArray::MultiDimSetAt method не предлагает тот же параметр:

HRESULT MultiDimSetAt(
const LONG * alIndex, 
const T& t 
); 

два вопроса:

1.) Есть ли причина, по которой этот вариант не предлагается в методе MultiDim?

2.) Документы не указывают, будет ли скопирована ссылочная переменная. Скопировано ли оно неявно?

(В моем случае, я хотел бы это не быть скопирован, поскольку это временная оболочка для типа VARIANT, который может быть «Detach'd после установки его в массив)

ответ

0

Внутренне MultiDimSetAt использования Функция SafeArrayPutElement. Это означает, что BSTR будут скопированы, а объекты будут AddRef'ed.

Смежные вопросы