Purify указывает на утечку памяти в ole32.dll при возврате варианта с VT, установленным в VT_RECORD как OUT параметр . Я использую User Marshalling путем создания прокси / заглушки DLL из IDL.
Можете ли вы предложить, как избежать этой утечки памяти?
Структура, определенная в 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
Спасибо
Пикаро Де Восио