непонятка с SafeArrayGetElement
От: Аноним  
Дата: 06.02.10 12:35
Оценка:
обработчик событий от com:
HRESULT __stdcall Add (VARIANT aAV )
{
VARIANT varVal; 
CString sVal;
long i=3; 
SafeArrayGetElement(aAV.parray, &i, &varVal);
sVal=(varVal.bstrVal);
VariantClear(&varVal);
....
//VariantClear( &aAV )
}

вопрос: нужно ли вызывать VariantClear( &aAV ) ?
Re: непонятка с SafeArrayGetElement
От: Vi2 Удмуртия http://www.adem.ru
Дата: 06.02.10 13:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>обработчик событий от com:

А>HRESULT __stdcall Add (VARIANT aAV )
А>{
А>....
А>//VariantClear( &aAV )
А>}

А>вопрос: нужно ли вызывать VariantClear( &aAV ) ?

Нет.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: непонятка с SafeArrayGetElement
От: Аноним  
Дата: 06.02.10 13:32
Оценка:
Здравствуйте, Vi2, Вы писали:

А>>вопрос: нужно ли вызывать VariantClear( &aAV ) ?


Vi2>Нет.


мне тоже кажется, ненужным, но идет ругань, что в SafeArrayGetElement(aAV.parray, &i, &varVal) утечка памяти. вот и верь этим искателям утечек ;(
Re[3]: непонятка с SafeArrayGetElement
От: Vi2 Удмуртия http://www.adem.ru
Дата: 06.02.10 15:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>мне тоже кажется, ненужным, но идет ругань, что в SafeArrayGetElement(aAV.parray, &i, &varVal) утечка памяти. вот и верь этим искателям утечек ;(


Я бы проинициализировал VARIANT varVal; перед передачей в SafeArrayGetElement через VariantInit(&varVal).
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[4]: непонятка с SafeArrayGetElement
От: Аноним  
Дата: 06.02.10 16:15
Оценка:
А>>мне тоже кажется, ненужным, но идет ругань, что в SafeArrayGetElement(aAV.parray, &i, &varVal) утечка памяти. вот и верь этим искателям утечек ;(

Vi2>Я бы проинициализировал VARIANT varVal; перед передачей в SafeArrayGetElement через VariantInit(&varVal).

а если так (где не используются BSTR && VARIANT) varVal.vt = VT_EMPTY; ?
Re[5]: непонятка с SafeArrayGetElement
От: Vi2 Удмуртия http://www.adem.ru
Дата: 06.02.10 16:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>а если так (где не используются BSTR && VARIANT) varVal.vt = VT_EMPTY; ?


varVal.vt = VT_EMPTY тоже достаточная инициализация для VARIANT.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.