2010-02-24 9 views
1

Le CComSafeArray::SetAt method fournit un paramètre pour contrôler si la variable référencée est copié:Est-ce que CComSafeArray MultiDimSetAt fait une copie de l'élément référencé?

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

... mais le CComSafeArray::MultiDimSetAt method ne propose pas le même paramètre:

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

Deux questions:

1.) Y at-il une raison pour que cette option ne soit pas offerte dans la méthode MultiDim?

2.) Les docs ne spécifient pas si la variable référencée est copiée. Est-il copié implicitement?

(Dans mon cas, je voudrais qu'il ne à copier, car il est une enveloppe temporaire pour un type Variant qui pourrait être « Detach'd après la mise dans le tableau)

Répondre

0

utilise en interne MultiDimSetAt Fonction SafeArrayPutElement. Cela signifie que les BSTR seraient copiés et que les objets seraient AddRef'ed.