Справочник по технологии COM Страница 23. VariantCopy
|
Страница 23 из 111 VariantCopy Освобождает принимающий вариант и копирует исходный. HRESULT VariantCopy ( VARIANTARG FAR* pvargDest, VARIANTARG FAR* pvargSrc );
Параметры: - pvargDest - Указатель на VARIANTARG, принимающий копию.
- pvargSrc - Указатель на копируемый VARIANTARG.
Коды возврата: Из возвращенного HRESULT получают один из следующих кодов возврата: Код возврата | Значение | S_OK | Успех. | DISP_E_ARRAYISLOCKED | Вариант содержит заблокированный массив. | DISP_E_BADVARTYPE | Исходный или принимающий вариант имеют недопустимый тип (обычно не инициализированы). | E_OUTOFMEMORY | He хватает памяти для копирования. | E_INVALIDARG | Один из аргументов неверен. | Комментарии: Сначала память, владельцем которой является pvargDest, освобождается так же, как при вызове VariantClear (pvargDest должен указывать на инициализированный вариант, а не просто на неинициализированный блок памяти). Затем в pvargDest помещается точная копия содержимого pvargSrc. Если pvargSrc имеет тип VT_BSTR, то копируется строка. Если pvargSrc — это VT_ARRAY, то копируется весь массив. Если pvargSrc — это VT_DISPATCH или VT_UNKNOWN, то вызывается AddRef для увеличения счетчика ссылок объекта. |