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
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