when I call uno function through activex, it throw a exception: "InterfaceOleWrapper_Impl::Invoke : [automation bridge]UnoConversionUtilities<T>::variantToAny Cannot convert the value of vartype :"8201" to the expected UNO type of type class: 12"
by debug, I found the Invoke function throw this exception, who can help me??? thanks and follow some resource code : ////// SAFEARRAY FAR* pPropVals = SafeArrayCreateVector( VT_DISPATCH, 0, 1 ); long ix = 0; OLECHAR* sPropMemberNames[2] = { L"Name", L"Value" }; CComPtr<IDispatch> pdispPropVal; hr = GetUnoStruct( L"com.sun.star.beans.PropertyValue", pdispPropVal ); if( !SUCCEEDED( hr ) ) return hr; CComVariant pPropVar[2]; pPropVar[0] = CComVariant(L"FilterName" ); pPropVar[1] = CComVariant(); pPropVar[1].vt = VT_BSTR; pPropVar[1].bstrVal = L"writer8"; hr = PutPropertiesToIDisp( pdispPropVal, sPropMemberNames, pPropVar, 2 ); if( !SUCCEEDED( hr ) ) return hr; SafeArrayPutElement( pPropVals, &ix, pdispPropVal ); CComVariant aDispArgs[2]; aDispArgs[0] = CComVariant(L"d:/ee.odt"); aDispArgs[1] = CComVariant(); aDispArgs[1].vt = VT_ARRAY | VT_DISPATCH; aDispArgs[1].parray = pPropVals; CComVariant dummyResult; hr = ExecuteFunc( pModel, L"storeToURL",aDispArgs, 2, &dummyResult ); ////// the ExecuteFunc function is: HRESULT CDocument::ExecuteFunc( IDispatch* idispUnoObject, OLECHAR* sFuncName, VARIANT* params, unsigned int count, VARIANT* pResult ) { if( !idispUnoObject ) return E_FAIL; DISPID id; HRESULT hr = idispUnoObject->GetIDsOfNames( IID_NULL, &sFuncName, 1, LOCALE_USER_DEFAULT, &id); if( !SUCCEEDED( hr ) ) return hr; DISPPARAMS dispparams= { params, 0, count, 0}; // DEBUG EXCEPINFO myInfo; hr = idispUnoObject->Invoke( id, IID_NULL,LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pResult, &myInfo, 0); return hr; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]