Click to See Complete Forum and Search --> : ATL Memory Leaks


mcprint
May 7th, 1999, 07:36 PM
Hi,

i had a problem, i can release memory after detach from a com.
i am appreciate any body to help me.

ccode
void CTestDlg::OnButton1()
{
ITEST CardManager;
HRESULT hr = CardManager.CreateDispatch("ITEST.TEST");

VARIANT* pvars = new VARIANT [1]; // Prepare arr of ptr
ITEST.Test1(&pvars[0]);

// i wan delete it in this level!
VariantClear(&pvars[0]); <------ Seem nothing
delete [] pvars[0].piVal; <------ Cause System Hanged!

ITEST.ReleaseDispatch();
return;
}

In my COM
I want to make a new short array for my test function to delete it.
STDMETHODIMP CTEST::Test1(VARIANT *sArr1)
{
sArr1[0].vt = VT_BYREF|VT_I2;
sArr1[0].piVal = new short[10];
for(int k=0;k<10;k++)
sArr1[0].piVal[k] = (short) k;
// i want to detach SArr[0] like colevariant(..).detach
return S_ok
}
/ccode