У меня есть структура, определенная в 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 для освобождения объекта.
Спасибо
Пикаро Де Восио