IXMLDOMDocumentPtr 类型求解
nemo 2011-10-18 11:47:21 今天在学习对xml进行操作的时候,发现IXMLDOMDocumentPtr 这个很奇怪,不知道IXMLDOMDocumentPtr 到底是指针还是一般类型,IXMLDOMDocumentPtr 展开后为:_com_ptr_t<_com_IIID<IXMLDOMDocument, __uuidof(IXMLDOMDocument)>>,代码中有
IXMLDOMDocumentPtr pDoc;
那么这个pDoc到底是指针还是一般的变量呢,如果是指针,他怎么可以通过点运算符调用成员函数呢,如果是一般变量,他又怎么可以通过指向运算符调用成员函数呢?还望各位c++大牛不吝赐教,在此先谢过各位。
void xml_creat()
{
IXMLDOMDocumentPtr pDoc;
HRESULT hr = pDoc.CreateInstance(__uuidof(DOMDocument));
if(!SUCCEEDED(hr))
{
cout << "unable to creat DOMDocument object" << endl;
xml_exit();
}
IXMLDOMElementPtr pDocElement = pDoc -> createElement("China");
pDoc -> appendChild(pDocElement);
cout << "root: " << pDoc -> xml << endl;
IXMLDOMElementPtr pNewChildElement;
pNewChildElement = pDoc -> createElement("beijing");
pNewChildElement -> Puttext("-11");
cout << "s: " << pDoc -> xml << endl;
pDocElement -> appendChild(pNewChildElement);
cout << "e : " << pDoc -> xml << endl;
pNewChildElement = pDoc -> createElement("shanghai");
pNewChildElement -> Puttext("-12");
cout << "s: " << pDoc -> xml << endl;
pDocElement -> appendChild(pNewChildElement);
cout << "e : " << pDoc -> xml << endl;
pDoc -> save(".//test1.xml");
}