У меня есть структура, определенная в IDL. Эта структура имеет следующие члены:
{
BSTR m_sFirst;
BSTR m_sSecond;
VARIANT m_vChildStruct; //This member encapsulate a sub structure
SAFEARRAY __RPC_FAR * m_saArray;
}CustomINFO;
Я выделяю память для структур с помощью CoTaskMemAlloc и инкапсулирую ее в Variant следующим образом:
vV->vt = VT_RECORD;
vV->pvRecord = pStruct; //Pointer of sturct
vV->pRecInfo = pRI; //RecordInfo Interface
Достаточно ли вызвать VariantClear, чтобы освободить память структуры и ее элементов? Будет ли также выпущен интерфейс IRecordInfo?
Или мне нужно вручную получить инкапсулированную структуру и самостоятельно освободить каждый элемент, а затем использовать CoTaskMemFree для освобождения структуры.
Спасибо
Пикаро Де Восио