I have a function is this:
bool SetAttrib(CComQIPtr<IXMLDOMElement> &_elem, CString _AttribName,
CString _AttribValue)
{
ASSERT(_elem); // Check for valid
_AttribValue.TrimLeft();
_AttribValue.TrimRight();
try {
BSTR name;
name = _AttribName.AllocSysString();
VARIANT value;
value.vt = VT_BSTR;
value.bstrVal = _AttribValue.AllocSysString();
HRESULT hr = _elem->setAttribute(name, value);
::SysFreeString(name);
::SysFreeString(value.bstrVal);
value.vt = VT_EMPTY;
if (hr == S_OK)
return true;
}
catch (_com_error &e)
{
dump_com_error(e);
}
return false;
}
"Oleg Tkachenko [MVP]" wrote:
Kevin Tang wrote:
I am using MS XML Parser 3.0, I want to know what will cause the
"setAttribute" fail in IXMLDOMElement ??
My program is:
extern CComQIPtr<IXMLDOMElement> elem;
ASSERT(elem); // this is a valid element.
HRESULT hr = elem->setAttribute(name, value); // why it return S_FAIL ???
That might be different reasons. Have you any additional information?
What are name and value?
--
Oleg Tkachenko [XML MVP]
http://blog.tkachenko.com