a strange problemo..
-
hi there.. thanks for your time firstly.. i am having a strange problem in the invoke of my IDispatch.. This method is called from the get property of an aX control. When i call this get method, i dont seem to get any return vaule in the pvarresult variable.. any suggestions.. here is the method: double CControl:: GetNumber(long nRow, long nCol) { DISPPARAMS DispParam1; EXCEPINFO excep; UINT nArgErr; VARIANT pVarResult; double temp; DispParam1.cArgs = 2; //number of arguments DispParam1.cNamedArgs = 0;// Number of named arguments. DispParam1.rgvarg = new VARIANTARG[2]; DispParam1.rgvarg->vt = VT_ARRAY; DispParam1.rgvarg[1].vt = VT_I4; DispParam1.rgvarg[1].lVal = nRow; DispParam1.rgvarg[0].vt = VT_I4; DispParam1.rgvarg[0].lVal = nCol; IImpl::Invoke(DISPID_Number , IID_NULL , 0 , DISPATCH_PROPERTYGET, &DispParam1, &pVarResult , &excep, &nArgErr); temp = pVarResult.dblVal; //delete [] DispParam1.rgvarg; return temp; }
-
hi there.. thanks for your time firstly.. i am having a strange problem in the invoke of my IDispatch.. This method is called from the get property of an aX control. When i call this get method, i dont seem to get any return vaule in the pvarresult variable.. any suggestions.. here is the method: double CControl:: GetNumber(long nRow, long nCol) { DISPPARAMS DispParam1; EXCEPINFO excep; UINT nArgErr; VARIANT pVarResult; double temp; DispParam1.cArgs = 2; //number of arguments DispParam1.cNamedArgs = 0;// Number of named arguments. DispParam1.rgvarg = new VARIANTARG[2]; DispParam1.rgvarg->vt = VT_ARRAY; DispParam1.rgvarg[1].vt = VT_I4; DispParam1.rgvarg[1].lVal = nRow; DispParam1.rgvarg[0].vt = VT_I4; DispParam1.rgvarg[0].lVal = nCol; IImpl::Invoke(DISPID_Number , IID_NULL , 0 , DISPATCH_PROPERTYGET, &DispParam1, &pVarResult , &excep, &nArgErr); temp = pVarResult.dblVal; //delete [] DispParam1.rgvarg; return temp; }
-
try to
VariantInit
the result variant.VariantInit( &pVarResult );
this can help (and if not, it's anyway better)thanks :) kindest regards